diff --git a/config.xml b/config.xml new file mode 100644 index 00000000..d8256b3e --- /dev/null +++ b/config.xml @@ -0,0 +1,19 @@ + + + LiveWell + + An application for bipolar disorder + + + Evan Goulding + + + + + + + + + + + diff --git a/hooks/README.md b/hooks/README.md new file mode 100644 index 00000000..62e58b48 --- /dev/null +++ b/hooks/README.md @@ -0,0 +1,196 @@ + +# Cordova Hooks + +Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. Hook scripts could be defined by adding them to the special predefined folder (`/hooks`) or via configuration files (`config.xml` and `plugin.xml`) and run serially in the following order: +* Application hooks from `/hooks`; +* Application hooks from `config.xml`; +* Plugin hooks from `plugins/.../plugin.xml`. + +__Remember__: Make your scripts executable. + +__Note__: `.cordova/hooks` directory is also supported for backward compatibility, but we don't recommend using it as it is deprecated. + +## Supported hook types +The following hook types are supported: + + after_build/ + after_compile/ + after_docs/ + after_emulate/ + after_platform_add/ + after_platform_rm/ + after_platform_ls/ + after_plugin_add/ + after_plugin_ls/ + after_plugin_rm/ + after_plugin_search/ + after_plugin_install/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being installed + after_prepare/ + after_run/ + after_serve/ + before_build/ + before_compile/ + before_docs/ + before_emulate/ + before_platform_add/ + before_platform_rm/ + before_platform_ls/ + before_plugin_add/ + before_plugin_ls/ + before_plugin_rm/ + before_plugin_search/ + before_plugin_install/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being installed + before_plugin_uninstall/ <-- Plugin hooks defined in plugin.xml are executed exclusively for a plugin being uninstalled + before_prepare/ + before_run/ + before_serve/ + pre_package/ <-- Windows 8 and Windows Phone only. + +## Ways to define hooks +### Via '/hooks' directory +To execute custom action when corresponding hook type is fired, use hook type as a name for a subfolder inside 'hooks' directory and place you script file here, for example: + + # script file will be automatically executed after each build + hooks/after_build/after_build_custom_action.js + + +### Config.xml + +Hooks can be defined in project's `config.xml` using `` elements, for example: + + + + + + + + + + ... + + + + + + + ... + + +### Plugin hooks (plugin.xml) + +As a plugin developer you can define hook scripts using `` elements in a `plugin.xml` like that: + + + + + + + + ... + + +`before_plugin_install`, `after_plugin_install`, `before_plugin_uninstall` plugin hooks will be fired exclusively for the plugin being installed/uninstalled. + +## Script Interface + +### Javascript + +If you are writing hooks in Javascript you should use the following module definition: +```javascript +module.exports = function(context) { + ... +} +``` + +You can make your scipts async using Q: +```javascript +module.exports = function(context) { + var Q = context.requireCordovaModule('q'); + var deferral = new Q.defer(); + + setTimeout(function(){ + console.log('hook.js>> end'); + deferral.resolve(); + }, 1000); + + return deferral.promise; +} +``` + +`context` object contains hook type, executed script full path, hook options, command-line arguments passed to Cordova and top-level "cordova" object: +```json +{ + "hook": "before_plugin_install", + "scriptLocation": "c:\\script\\full\\path\\appBeforePluginInstall.js", + "cmdLine": "The\\exact\\command\\cordova\\run\\with arguments", + "opts": { + "projectRoot":"C:\\path\\to\\the\\project", + "cordova": { + "platforms": ["wp8"], + "plugins": ["com.plugin.withhooks"], + "version": "0.21.7-dev" + }, + "plugin": { + "id": "com.plugin.withhooks", + "pluginInfo": { + ... + }, + "platform": "wp8", + "dir": "C:\\path\\to\\the\\project\\plugins\\com.plugin.withhooks" + } + }, + "cordova": {...} +} + +``` +`context.opts.plugin` object will only be passed to plugin hooks scripts. + +You can also require additional Cordova modules in your script using `context.requireCordovaModule` in the following way: +```javascript +var Q = context.requireCordovaModule('q'); +``` + +__Note__: new module loader script interface is used for the `.js` files defined via `config.xml` or `plugin.xml` only. +For compatibility reasons hook files specified via `/hooks` folders are run via Node child_process spawn, see 'Non-javascript' section below. + +### Non-javascript + +Non-javascript scripts are run via Node child_process spawn from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables: + +* CORDOVA_VERSION - The version of the Cordova-CLI. +* CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios). +* CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer) +* CORDOVA_HOOK - Path to the hook that is being executed. +* CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate) + +If a script returns a non-zero exit code, then the parent cordova command will be aborted. + +## Writing hooks + +We highly recommend writing your hooks using Node.js so that they are +cross-platform. Some good examples are shown here: + +[http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/) + +Also, note that even if you are working on Windows, and in case your hook scripts aren't bat files (which is recommended, if you want your scripts to work in non-Windows operating systems) Cordova CLI will expect a shebang line as the first line for it to know the interpreter it needs to use to launch the script. The shebang line should match the following example: + + #!/usr/bin/env [name_of_interpreter_executable] diff --git a/icon.png b/icon.png new file mode 100755 index 00000000..c1259d5c Binary files /dev/null and b/icon.png differ diff --git a/package.json b/package.json index 243b2e98..e465f971 100644 --- a/package.json +++ b/package.json @@ -1,40 +1,51 @@ { - "name": "livewell", - "version": "0.0.0", - "dependencies": {}, - "devDependencies": { - "grunt": "^0.4.1", - "grunt-autoprefixer": "^0.7.3", - "grunt-concurrent": "^0.5.0", - "grunt-contrib-clean": "^0.5.0", - "grunt-contrib-concat": "^0.4.0", - "grunt-contrib-connect": "^0.7.1", - "grunt-contrib-copy": "^0.5.0", - "grunt-contrib-cssmin": "^0.9.0", - "grunt-contrib-htmlmin": "^0.3.0", - "grunt-contrib-imagemin": "^0.7.0", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-uglify": "^0.4.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-filerev": "^0.2.1", - "grunt-google-cdn": "^0.4.0", - "grunt-newer": "^0.7.0", - "grunt-ngmin": "^0.0.3", - "grunt-svgmin": "^0.4.0", - "grunt-usemin": "^2.1.1", - "grunt-wiredep": "^1.7.0", - "jshint-stylish": "^0.2.0", - "load-grunt-tasks": "^0.4.0", - "time-grunt": "^0.3.1", - "grunt-karma": "~0.9.0", - "karma-phantomjs-launcher": "~0.1.4", - "karma": "~0.12.23", - "karma-jasmine": "~0.1.5" + "name": "LiveWell", + "version": "0.0.1", + "description": "LiveWell application, expert system and notifications for bipolar intervention", + "author": "Mark Begale", + "contributors": [ + { + "name": "Mark Begale", + "email": "m-begale@northwestern.edu" + } + ], + "dependencies": { + "angular": "^1.4.0", + "angular-resource": "^1.4.0", + "angular-route": "^1.4.0", + "cordova": "5.3.1", + "font-awesome": "^4.3.0", + "moment": "^2.10.2" }, - "engines": { - "node": ">=0.10.0" + "devDependencies": { + "angular-mocks": "^1.4.0", + "chai": "^2.1.2", + "chai-as-promised": "^5.0.0", + "eslint": "^1.3.1", + "mocha": "^2.2.1", + "sinon": "^1.14.1", + "testem": "^0.8.0-0", + "wd": "^0.3.11" }, + "keywords": [ + "bipolar" + ], "scripts": { - "test": "grunt test" + "init": "npm install && npm_config_env=test npm_config_server=http://127.0.0.1:3000 npm run set_endpoint && npm run set_endpoint && npm run build:prepare && npm run browser:add_platform && npm run android:add_platform && npm run add_plugins", + "set_endpoint": "echo \"{\\\"environment\\\":\\\"$npm_config_env\\\",\\\"server\\\":\\\"$npm_config_server\\\"}\" > src/config.json && sed s%ACCESS_ORIGIN%$npm_config_server%g config > config.xml", + "android:add_platform": "./node_modules/.bin/cordova platform remove android && ./node_modules/.bin/cordova platform add android@4.0.0", + "android:build": "npm run build:prepare && ./node_modules/.bin/cordova build android", + "android:simulator": "npm run android:build && ./node_modules/.bin/cordova run android", + "browser:add_platform": "./node_modules/.bin/cordova platform remove browser && ./node_modules/.bin/cordova platform add browser && npm run add_plugins", + "add_plugins": "", + "browser:build": "npm run build:prepare && ./node_modules/.bin/cordova build browser", + "browser:simulator": "npm run browser:build && ./node_modules/.bin/cordova run browser", + "build:all": "npm run browser:build && npm run android:build", + "build:clean": "rm -rf www && mkdir -p www/js www/css", + "build:prepare": "npm run build:clean && cp -r src/* www/", + "eslint": "./node_modules/.bin/eslint src && ./node_modules/.bin/eslint test", + "eslint:src": "./node_modules/.bin/eslint src", + "eslint:test": "./node_modules/.bin/eslint test", + "serve": "npm run build:prepare && ./node_modules/.bin/cordova run browser" } } diff --git a/platforms/android/.gitignore b/platforms/android/.gitignore new file mode 100644 index 00000000..6e524459 --- /dev/null +++ b/platforms/android/.gitignore @@ -0,0 +1,14 @@ +# Non-project-specific build files: +build.xml +local.properties +/gradlew +/gradlew.bat +/gradle +# Ant builds +ant-build +ant-gen +# Eclipse builds +gen +out +# Gradle builds +/build diff --git a/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties b/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties new file mode 100644 index 00000000..37827ff7 --- /dev/null +++ b/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties @@ -0,0 +1 @@ +#Thu Apr 14 18:49:51 CDT 2016 diff --git a/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties.lock b/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties.lock new file mode 100644 index 00000000..6da0e6f3 Binary files /dev/null and b/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties.lock differ diff --git a/platforms/android/.gradle/2.2.1/taskArtifacts/fileHashes.bin b/platforms/android/.gradle/2.2.1/taskArtifacts/fileHashes.bin new file mode 100644 index 00000000..e70954f7 Binary files /dev/null and b/platforms/android/.gradle/2.2.1/taskArtifacts/fileHashes.bin differ diff --git a/platforms/android/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin b/platforms/android/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin new file mode 100644 index 00000000..2d484d3b Binary files /dev/null and b/platforms/android/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin differ diff --git a/platforms/android/.gradle/2.2.1/taskArtifacts/outputFileStates.bin b/platforms/android/.gradle/2.2.1/taskArtifacts/outputFileStates.bin new file mode 100644 index 00000000..935ca43b Binary files /dev/null and b/platforms/android/.gradle/2.2.1/taskArtifacts/outputFileStates.bin differ diff --git a/platforms/android/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin b/platforms/android/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin new file mode 100644 index 00000000..a6b185de Binary files /dev/null and b/platforms/android/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin differ diff --git a/platforms/android/AndroidManifest.xml b/platforms/android/AndroidManifest.xml new file mode 100644 index 00000000..0362c219 --- /dev/null +++ b/platforms/android/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platforms/android/CordovaLib/AndroidManifest.xml b/platforms/android/CordovaLib/AndroidManifest.xml new file mode 100755 index 00000000..3feb903c --- /dev/null +++ b/platforms/android/CordovaLib/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/platforms/android/CordovaLib/build.gradle b/platforms/android/CordovaLib/build.gradle new file mode 100644 index 00000000..f1c6682d --- /dev/null +++ b/platforms/android/CordovaLib/build.gradle @@ -0,0 +1,61 @@ +/* Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + + + +buildscript { + repositories { + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:1.5.0' + } + +} + +apply plugin: 'android-library' + +ext { + apply from: 'cordova.gradle' + cdvCompileSdkVersion = privateHelpers.getProjectTarget() + cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools() +} + +android { + compileSdkVersion cdvCompileSdkVersion + buildToolsVersion cdvBuildToolsVersion + publishNonDefault true + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_6 + targetCompatibility JavaVersion.VERSION_1_6 + } + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + } + } +} diff --git a/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml b/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml new file mode 100644 index 00000000..90863ed8 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/bundles/debug/aapt/AndroidManifest.xml b/platforms/android/CordovaLib/build/intermediates/bundles/debug/aapt/AndroidManifest.xml new file mode 100644 index 00000000..90863ed8 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/bundles/debug/aapt/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml b/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml new file mode 100644 index 00000000..90863ed8 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/bundles/release/aapt/AndroidManifest.xml b/platforms/android/CordovaLib/build/intermediates/bundles/release/aapt/AndroidManifest.xml new file mode 100644 index 00000000..90863ed8 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/bundles/release/aapt/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store b/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store new file mode 100644 index 00000000..8b8400dc Binary files /dev/null and b/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store differ diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store b/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store new file mode 100644 index 00000000..8b8400dc Binary files /dev/null and b/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store differ diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml b/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml new file mode 100644 index 00000000..d775de8b --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml new file mode 100644 index 00000000..e14a3039 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml b/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml new file mode 100644 index 00000000..3ecb160a --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml b/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml new file mode 100644 index 00000000..a6fb7780 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml b/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml new file mode 100644 index 00000000..fe12e91a --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml b/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml new file mode 100644 index 00000000..51521fa7 --- /dev/null +++ b/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar b/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar new file mode 100644 index 00000000..7fdd4a1a Binary files /dev/null and b/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar differ diff --git a/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar b/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar new file mode 100644 index 00000000..f972f9d1 Binary files /dev/null and b/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar differ diff --git a/platforms/android/CordovaLib/cordova.gradle b/platforms/android/CordovaLib/cordova.gradle new file mode 100644 index 00000000..74652667 --- /dev/null +++ b/platforms/android/CordovaLib/cordova.gradle @@ -0,0 +1,201 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +import java.util.regex.Pattern +import groovy.swing.SwingBuilder + +String doEnsureValueExists(filePath, props, key) { + if (props.get(key) == null) { + throw new GradleException(filePath + ': Missing key required "' + key + '"') + } + return props.get(key) +} + +String doGetProjectTarget() { + def props = new Properties() + file('project.properties').withReader { reader -> + props.load(reader) + } + return doEnsureValueExists('project.properties', props, 'target') +} + +String[] getAvailableBuildTools() { + def buildToolsDir = new File(getAndroidSdkDir(), "build-tools") + buildToolsDir.list() + .findAll { it ==~ /[0-9.]+/ } + .sort { a, b -> compareVersions(b, a) } +} + +String doFindLatestInstalledBuildTools(String minBuildToolsVersion) { + def availableBuildToolsVersions + try { + availableBuildToolsVersions = getAvailableBuildTools() + } catch (e) { + println "An exception occurred while trying to find the Android build tools." + throw e + } + if (availableBuildToolsVersions.length > 0) { + def highestBuildToolsVersion = availableBuildToolsVersions[0] + if (compareVersions(highestBuildToolsVersion, minBuildToolsVersion) < 0) { + throw new RuntimeException( + "No usable Android build tools found. Highest installed version is " + + highestBuildToolsVersion + "; minimum version required is " + + minBuildToolsVersion + ".") + } + highestBuildToolsVersion + } else { + throw new RuntimeException( + "No installed build tools found. Please install the Android build tools version " + + minBuildToolsVersion + " or higher.") + } +} + +// Return the first non-zero result of subtracting version list elements +// pairwise. If they are all identical, return the difference in length of +// the two lists. +int compareVersionList(Collection aParts, Collection bParts) { + def pairs = ([aParts, bParts]).transpose() + pairs.findResult(aParts.size()-bParts.size()) {it[0] - it[1] != 0 ? it[0] - it[1] : null} +} + +// Compare two version strings, such as "19.0.0" and "18.1.1.0". If all matched +// elements are identical, the longer version is the largest by this method. +// Examples: +// "19.0.0" > "19" +// "19.0.1" > "19.0.0" +// "19.1.0" > "19.0.1" +// "19" > "18.999.999" +int compareVersions(String a, String b) { + def aParts = a.tokenize('.').collect {it.toInteger()} + def bParts = b.tokenize('.').collect {it.toInteger()} + compareVersionList(aParts, bParts) +} + +String getAndroidSdkDir() { + def rootDir = project.rootDir + def androidSdkDir = null + String envVar = System.getenv("ANDROID_HOME") + def localProperties = new File(rootDir, 'local.properties') + String systemProperty = System.getProperty("android.home") + if (envVar != null) { + androidSdkDir = envVar + } else if (localProperties.exists()) { + Properties properties = new Properties() + localProperties.withInputStream { instr -> + properties.load(instr) + } + def sdkDirProp = properties.getProperty('sdk.dir') + if (sdkDirProp != null) { + androidSdkDir = sdkDirProp + } else { + sdkDirProp = properties.getProperty('android.dir') + if (sdkDirProp != null) { + androidSdkDir = (new File(rootDir, sdkDirProp)).getAbsolutePath() + } + } + } + if (androidSdkDir == null && systemProperty != null) { + androidSdkDir = systemProperty + } + if (androidSdkDir == null) { + throw new RuntimeException( + "Unable to determine Android SDK directory.") + } + androidSdkDir +} + +def doExtractIntFromManifest(name) { + def manifestFile = file(android.sourceSets.main.manifest.srcFile) + def pattern = Pattern.compile(name + "=\"(\\d+)\"") + def matcher = pattern.matcher(manifestFile.getText()) + matcher.find() + return Integer.parseInt(matcher.group(1)) +} + +def doExtractStringFromManifest(name) { + def manifestFile = file(android.sourceSets.main.manifest.srcFile) + def pattern = Pattern.compile(name + "=\"(\\S+)\"") + def matcher = pattern.matcher(manifestFile.getText()) + matcher.find() + return matcher.group(1) +} + +def doPromptForPassword(msg) { + if (System.console() == null) { + def ret = null + new SwingBuilder().edt { + dialog(modal: true, title: 'Enter password', alwaysOnTop: true, resizable: false, locationRelativeTo: null, pack: true, show: true) { + vbox { + label(text: msg) + def input = passwordField() + button(defaultButton: true, text: 'OK', actionPerformed: { + ret = input.password; + dispose(); + }) + } + } + } + if (!ret) { + throw new GradleException('User canceled build') + } + return new String(ret) + } else { + return System.console().readPassword('\n' + msg); + } +} + +def doGetConfigXml() { + def xml = file("res/xml/config.xml").getText() + // Disable namespace awareness since Cordova doesn't use them properly + return new XmlParser(false, false).parseText(xml) +} + +def doGetConfigPreference(name, defaultValue) { + name = name.toLowerCase() + def root = doGetConfigXml() + + def ret = defaultValue + root.preference.each { it -> + def attrName = it.attribute("name") + if (attrName && attrName.toLowerCase() == name) { + ret = it.attribute("value") + } + } + return ret +} + +// Properties exported here are visible to all plugins. +ext { + // These helpers are shared, but are not guaranteed to be stable / unchanged. + privateHelpers = {} + privateHelpers.getProjectTarget = { doGetProjectTarget() } + privateHelpers.findLatestInstalledBuildTools = { doFindLatestInstalledBuildTools('19.1.0') } + privateHelpers.extractIntFromManifest = { name -> doExtractIntFromManifest(name) } + privateHelpers.extractStringFromManifest = { name -> doExtractStringFromManifest(name) } + privateHelpers.promptForPassword = { msg -> doPromptForPassword(msg) } + privateHelpers.ensureValueExists = { filePath, props, key -> doEnsureValueExists(filePath, props, key) } + + // These helpers can be used by plugins / projects and will not change. + cdvHelpers = {} + // Returns a XmlParser for the config.xml. Added in 4.1.0. + cdvHelpers.getConfigXml = { doGetConfigXml() } + // Returns the value for the desired . Added in 4.1.0. + cdvHelpers.getConfigPreference = { name, defaultValue -> doGetConfigPreference(name, defaultValue) } +} + diff --git a/platforms/android/CordovaLib/project.properties b/platforms/android/CordovaLib/project.properties new file mode 100644 index 00000000..2342a162 --- /dev/null +++ b/platforms/android/CordovaLib/project.properties @@ -0,0 +1,16 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Indicates whether an apk should be generated for each density. +split.density=false +# Project target. +target=android-23 +apk-configurations= +renderscript.opt.level=O0 +android.library=true diff --git a/platforms/android/android.json b/platforms/android/android.json new file mode 100644 index 00000000..7b5bbe51 --- /dev/null +++ b/platforms/android/android.json @@ -0,0 +1,138 @@ +{ + "prepare_queue": { + "installed": [], + "uninstalled": [] + }, + "config_munge": { + "files": { + "res/xml/config.xml": { + "parents": { + "/*": [ + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + } + ] + } + }, + "AndroidManifest.xml": { + "parents": { + "/*": [], + "/manifest": [ + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + } + ], + "/manifest/application": [ + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + }, + { + "xml": "", + "count": 1 + } + ] + } + }, + "res/values/strings.xml": { + "parents": { + "/resources": [ + { + "xml": "334078391843", + "count": 1 + } + ] + } + } + } + }, + "installed_plugins": { + "cordova-plugin-whitelist": { + "PACKAGE_NAME": "edu.northwestern.cbits.livewell" + }, + "phonegap-plugin-push": { + "SENDER_ID": "334078391843", + "PACKAGE_NAME": "edu.northwestern.cbits.livewell" + }, + "cordova-plugin-device": { + "PACKAGE_NAME": "edu.northwestern.cbits.livewell" + } + }, + "dependent_plugins": {}, + "modules": [ + { + "file": "plugins/cordova-plugin-whitelist/whitelist.js", + "id": "cordova-plugin-whitelist.whitelist", + "runs": true + }, + { + "file": "plugins/phonegap-plugin-push/www/push.js", + "id": "phonegap-plugin-push.PushNotification", + "clobbers": [ + "PushNotification" + ] + }, + { + "file": "plugins/cordova-plugin-device/www/device.js", + "id": "cordova-plugin-device.device", + "clobbers": [ + "device" + ] + } + ], + "plugin_metadata": { + "cordova-plugin-whitelist": "1.2.2-dev", + "phonegap-plugin-push": "1.6.2", + "cordova-plugin-device": "1.1.2" + } +} \ No newline at end of file diff --git a/platforms/android/assets/www/404.html b/platforms/android/assets/www/404.html new file mode 100644 index 00000000..ec98e3c2 --- /dev/null +++ b/platforms/android/assets/www/404.html @@ -0,0 +1,157 @@ + + + + + Page Not Found :( + + + +
+

Not found :(

+

Sorry, but the page you were trying to view does not exist.

+

It looks like this was the result of either:

+
    +
  • a mistyped address
  • +
  • an out-of-date link
  • +
+ + +
+ + diff --git a/platforms/android/assets/www/config.json b/platforms/android/assets/www/config.json new file mode 100644 index 00000000..70789f22 --- /dev/null +++ b/platforms/android/assets/www/config.json @@ -0,0 +1 @@ +{"environment":"","server":""} diff --git a/platforms/android/assets/www/config.xml b/platforms/android/assets/www/config.xml new file mode 100644 index 00000000..1a5fe06e --- /dev/null +++ b/platforms/android/assets/www/config.xml @@ -0,0 +1,21 @@ + + + LiveWell + + An application for bipolar disorder + + + Evan Goulding + + + + + + + + + + + + + diff --git a/platforms/android/assets/www/cordova-js-src/android/nativeapiprovider.js b/platforms/android/assets/www/cordova-js-src/android/nativeapiprovider.js new file mode 100644 index 00000000..2e9aa67b --- /dev/null +++ b/platforms/android/assets/www/cordova-js-src/android/nativeapiprovider.js @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +/** + * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. + */ + +var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); +var currentApi = nativeApi; + +module.exports = { + get: function() { return currentApi; }, + setPreferPrompt: function(value) { + currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; + }, + // Used only by tests. + set: function(value) { + currentApi = value; + } +}; diff --git a/platforms/android/assets/www/cordova-js-src/android/promptbasednativeapi.js b/platforms/android/assets/www/cordova-js-src/android/promptbasednativeapi.js new file mode 100644 index 00000000..f7fb6bc7 --- /dev/null +++ b/platforms/android/assets/www/cordova-js-src/android/promptbasednativeapi.js @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +/** + * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. + * This is used pre-JellyBean, where addJavascriptInterface() is disabled. + */ + +module.exports = { + exec: function(bridgeSecret, service, action, callbackId, argsJson) { + return prompt(argsJson, 'gap:'+JSON.stringify([bridgeSecret, service, action, callbackId])); + }, + setNativeToJsBridgeMode: function(bridgeSecret, value) { + prompt(value, 'gap_bridge_mode:' + bridgeSecret); + }, + retrieveJsMessages: function(bridgeSecret, fromOnlineEvent) { + return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); + } +}; diff --git a/platforms/android/assets/www/cordova-js-src/exec.js b/platforms/android/assets/www/cordova-js-src/exec.js new file mode 100644 index 00000000..fa8b41be --- /dev/null +++ b/platforms/android/assets/www/cordova-js-src/exec.js @@ -0,0 +1,283 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +/** + * Execute a cordova command. It is up to the native side whether this action + * is synchronous or asynchronous. The native side can return: + * Synchronous: PluginResult object as a JSON string + * Asynchronous: Empty string "" + * If async, the native side will cordova.callbackSuccess or cordova.callbackError, + * depending upon the result of the action. + * + * @param {Function} success The success callback + * @param {Function} fail The fail callback + * @param {String} service The name of the service to use + * @param {String} action Action to be run in cordova + * @param {String[]} [args] Zero or more arguments to pass to the method + */ +var cordova = require('cordova'), + nativeApiProvider = require('cordova/android/nativeapiprovider'), + utils = require('cordova/utils'), + base64 = require('cordova/base64'), + channel = require('cordova/channel'), + jsToNativeModes = { + PROMPT: 0, + JS_OBJECT: 1 + }, + nativeToJsModes = { + // Polls for messages using the JS->Native bridge. + POLLING: 0, + // For LOAD_URL to be viable, it would need to have a work-around for + // the bug where the soft-keyboard gets dismissed when a message is sent. + LOAD_URL: 1, + // For the ONLINE_EVENT to be viable, it would need to intercept all event + // listeners (both through addEventListener and window.ononline) as well + // as set the navigator property itself. + ONLINE_EVENT: 2 + }, + jsToNativeBridgeMode, // Set lazily. + nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT, + pollEnabled = false, + bridgeSecret = -1; + +var messagesFromNative = []; +var isProcessing = false; +var resolvedPromise = typeof Promise == 'undefined' ? null : Promise.resolve(); +var nextTick = resolvedPromise ? function(fn) { resolvedPromise.then(fn); } : function(fn) { setTimeout(fn); }; + +function androidExec(success, fail, service, action, args) { + if (bridgeSecret < 0) { + // If we ever catch this firing, we'll need to queue up exec()s + // and fire them once we get a secret. For now, I don't think + // it's possible for exec() to be called since plugins are parsed but + // not run until until after onNativeReady. + throw new Error('exec() called without bridgeSecret'); + } + // Set default bridge modes if they have not already been set. + // By default, we use the failsafe, since addJavascriptInterface breaks too often + if (jsToNativeBridgeMode === undefined) { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } + + // Process any ArrayBuffers in the args into a string. + for (var i = 0; i < args.length; i++) { + if (utils.typeName(args[i]) == 'ArrayBuffer') { + args[i] = base64.fromArrayBuffer(args[i]); + } + } + + var callbackId = service + cordova.callbackId++, + argsJson = JSON.stringify(args); + + if (success || fail) { + cordova.callbacks[callbackId] = {success:success, fail:fail}; + } + + var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); + // If argsJson was received by Java as null, try again with the PROMPT bridge mode. + // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. + if (jsToNativeBridgeMode == jsToNativeModes.JS_OBJECT && msgs === "@Null arguments.") { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); + androidExec(success, fail, service, action, args); + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } else if (msgs) { + messagesFromNative.push(msgs); + // Always process async to avoid exceptions messing up stack. + nextTick(processMessages); + } +} + +androidExec.init = function() { + bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); + channel.onNativeReady.fire(); +}; + +function pollOnceFromOnlineEvent() { + pollOnce(true); +} + +function pollOnce(opt_fromOnlineEvent) { + if (bridgeSecret < 0) { + // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. + // We know there's nothing to retrieve, so no need to poll. + return; + } + var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); + if (msgs) { + messagesFromNative.push(msgs); + // Process sync since we know we're already top-of-stack. + processMessages(); + } +} + +function pollingTimerFunc() { + if (pollEnabled) { + pollOnce(); + setTimeout(pollingTimerFunc, 50); + } +} + +function hookOnlineApis() { + function proxyEvent(e) { + cordova.fireWindowEvent(e.type); + } + // The network module takes care of firing online and offline events. + // It currently fires them only on document though, so we bridge them + // to window here (while first listening for exec()-releated online/offline + // events). + window.addEventListener('online', pollOnceFromOnlineEvent, false); + window.addEventListener('offline', pollOnceFromOnlineEvent, false); + cordova.addWindowEventHandler('online'); + cordova.addWindowEventHandler('offline'); + document.addEventListener('online', proxyEvent, false); + document.addEventListener('offline', proxyEvent, false); +} + +hookOnlineApis(); + +androidExec.jsToNativeModes = jsToNativeModes; +androidExec.nativeToJsModes = nativeToJsModes; + +androidExec.setJsToNativeBridgeMode = function(mode) { + if (mode == jsToNativeModes.JS_OBJECT && !window._cordovaNative) { + mode = jsToNativeModes.PROMPT; + } + nativeApiProvider.setPreferPrompt(mode == jsToNativeModes.PROMPT); + jsToNativeBridgeMode = mode; +}; + +androidExec.setNativeToJsBridgeMode = function(mode) { + if (mode == nativeToJsBridgeMode) { + return; + } + if (nativeToJsBridgeMode == nativeToJsModes.POLLING) { + pollEnabled = false; + } + + nativeToJsBridgeMode = mode; + // Tell the native side to switch modes. + // Otherwise, it will be set by androidExec.init() + if (bridgeSecret >= 0) { + nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); + } + + if (mode == nativeToJsModes.POLLING) { + pollEnabled = true; + setTimeout(pollingTimerFunc, 1); + } +}; + +function buildPayload(payload, message) { + var payloadKind = message.charAt(0); + if (payloadKind == 's') { + payload.push(message.slice(1)); + } else if (payloadKind == 't') { + payload.push(true); + } else if (payloadKind == 'f') { + payload.push(false); + } else if (payloadKind == 'N') { + payload.push(null); + } else if (payloadKind == 'n') { + payload.push(+message.slice(1)); + } else if (payloadKind == 'A') { + var data = message.slice(1); + payload.push(base64.toArrayBuffer(data)); + } else if (payloadKind == 'S') { + payload.push(window.atob(message.slice(1))); + } else if (payloadKind == 'M') { + var multipartMessages = message.slice(1); + while (multipartMessages !== "") { + var spaceIdx = multipartMessages.indexOf(' '); + var msgLen = +multipartMessages.slice(0, spaceIdx); + var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); + multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); + buildPayload(payload, multipartMessage); + } + } else { + payload.push(JSON.parse(message)); + } +} + +// Processes a single message, as encoded by NativeToJsMessageQueue.java. +function processMessage(message) { + var firstChar = message.charAt(0); + if (firstChar == 'J') { + // This is deprecated on the .java side. It doesn't work with CSP enabled. + eval(message.slice(1)); + } else if (firstChar == 'S' || firstChar == 'F') { + var success = firstChar == 'S'; + var keepCallback = message.charAt(1) == '1'; + var spaceIdx = message.indexOf(' ', 2); + var status = +message.slice(2, spaceIdx); + var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); + var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); + var payloadMessage = message.slice(nextSpaceIdx + 1); + var payload = []; + buildPayload(payload, payloadMessage); + cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); + } else { + console.log("processMessage failed: invalid message: " + JSON.stringify(message)); + } +} + +function processMessages() { + // Check for the reentrant case. + if (isProcessing) { + return; + } + if (messagesFromNative.length === 0) { + return; + } + isProcessing = true; + try { + var msg = popMessageFromQueue(); + // The Java side can send a * message to indicate that it + // still has messages waiting to be retrieved. + if (msg == '*' && messagesFromNative.length === 0) { + nextTick(pollOnce); + return; + } + processMessage(msg); + } finally { + isProcessing = false; + if (messagesFromNative.length > 0) { + nextTick(processMessages); + } + } +} + +function popMessageFromQueue() { + var messageBatch = messagesFromNative.shift(); + if (messageBatch == '*') { + return '*'; + } + + var spaceIdx = messageBatch.indexOf(' '); + var msgLen = +messageBatch.slice(0, spaceIdx); + var message = messageBatch.substr(spaceIdx + 1, msgLen); + messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); + if (messageBatch) { + messagesFromNative.unshift(messageBatch); + } + return message; +} + +module.exports = androidExec; diff --git a/platforms/android/assets/www/cordova-js-src/platform.js b/platforms/android/assets/www/cordova-js-src/platform.js new file mode 100644 index 00000000..2bfd0247 --- /dev/null +++ b/platforms/android/assets/www/cordova-js-src/platform.js @@ -0,0 +1,125 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +// The last resume event that was received that had the result of a plugin call. +var lastResumeEvent = null; + +module.exports = { + id: 'android', + bootstrap: function() { + var channel = require('cordova/channel'), + cordova = require('cordova'), + exec = require('cordova/exec'), + modulemapper = require('cordova/modulemapper'); + + // Get the shared secret needed to use the bridge. + exec.init(); + + // TODO: Extract this as a proper plugin. + modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); + + var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; + + // Inject a listener for the backbutton on the document. + var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); + backButtonChannel.onHasSubscribersChange = function() { + // If we just attached the first handler or detached the last handler, + // let native know we need to override the back button. + exec(null, null, APP_PLUGIN_NAME, "overrideBackbutton", [this.numHandlers == 1]); + }; + + // Add hardware MENU and SEARCH button handlers + cordova.addDocumentEventHandler('menubutton'); + cordova.addDocumentEventHandler('searchbutton'); + + function bindButtonChannel(buttonName) { + // generic button bind used for volumeup/volumedown buttons + var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); + volumeButtonChannel.onHasSubscribersChange = function() { + exec(null, null, APP_PLUGIN_NAME, "overrideButton", [buttonName, this.numHandlers == 1]); + }; + } + // Inject a listener for the volume buttons on the document. + bindButtonChannel('volumeup'); + bindButtonChannel('volumedown'); + + // The resume event is not "sticky", but it is possible that the event + // will contain the result of a plugin call. We need to ensure that the + // plugin result is delivered even after the event is fired (CB-10498) + var cordovaAddEventListener = document.addEventListener; + + document.addEventListener = function(evt, handler, capture) { + cordovaAddEventListener(evt, handler, capture); + + if (evt === 'resume' && lastResumeEvent) { + handler(lastResumeEvent); + } + }; + + // Let native code know we are all done on the JS side. + // Native code will then un-hide the WebView. + channel.onCordovaReady.subscribe(function() { + exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); + exec(null, null, APP_PLUGIN_NAME, "show", []); + }); + } +}; + +function onMessageFromNative(msg) { + var cordova = require('cordova'); + var action = msg.action; + + switch (action) + { + // Button events + case 'backbutton': + case 'menubutton': + case 'searchbutton': + // App life cycle events + case 'pause': + // Volume events + case 'volumedownbutton': + case 'volumeupbutton': + cordova.fireDocumentEvent(action); + break; + case 'resume': + if(arguments.length > 1 && msg.pendingResult) { + if(arguments.length === 2) { + msg.pendingResult.result = arguments[1]; + } else { + // The plugin returned a multipart message + var res = []; + for(var i = 1; i < arguments.length; i++) { + res.push(arguments[i]); + } + msg.pendingResult.result = res; + } + + // Save the plugin result so that it can be delivered to the js + // even if they miss the initial firing of the event + lastResumeEvent = msg; + } + cordova.fireDocumentEvent(action, msg); + break; + default: + throw new Error('Unknown event action ' + action); + } +} diff --git a/platforms/android/assets/www/cordova-js-src/plugin/android/app.js b/platforms/android/assets/www/cordova-js-src/plugin/android/app.js new file mode 100644 index 00000000..22cf96e8 --- /dev/null +++ b/platforms/android/assets/www/cordova-js-src/plugin/android/app.js @@ -0,0 +1,108 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var exec = require('cordova/exec'); +var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; + +module.exports = { + /** + * Clear the resource cache. + */ + clearCache:function() { + exec(null, null, APP_PLUGIN_NAME, "clearCache", []); + }, + + /** + * Load the url into the webview or into new browser instance. + * + * @param url The URL to load + * @param props Properties that can be passed in to the activity: + * wait: int => wait msec before loading URL + * loadingDialog: "Title,Message" => display a native loading dialog + * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error + * clearHistory: boolean => clear webview history (default=false) + * openExternal: boolean => open in a new browser (default=false) + * + * Example: + * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); + */ + loadUrl:function(url, props) { + exec(null, null, APP_PLUGIN_NAME, "loadUrl", [url, props]); + }, + + /** + * Cancel loadUrl that is waiting to be loaded. + */ + cancelLoadUrl:function() { + exec(null, null, APP_PLUGIN_NAME, "cancelLoadUrl", []); + }, + + /** + * Clear web history in this web view. + * Instead of BACK button loading the previous web page, it will exit the app. + */ + clearHistory:function() { + exec(null, null, APP_PLUGIN_NAME, "clearHistory", []); + }, + + /** + * Go to previous page displayed. + * This is the same as pressing the backbutton on Android device. + */ + backHistory:function() { + exec(null, null, APP_PLUGIN_NAME, "backHistory", []); + }, + + /** + * Override the default behavior of the Android back button. + * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "backbutton" event, this is automatically done. + * + * @param override T=override, F=cancel override + */ + overrideBackbutton:function(override) { + exec(null, null, APP_PLUGIN_NAME, "overrideBackbutton", [override]); + }, + + /** + * Override the default behavior of the Android volume button. + * If overridden, when the volume button is pressed, the "volume[up|down]button" + * JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "volume[up|down]button" event, this is automatically done. + * + * @param button volumeup, volumedown + * @param override T=override, F=cancel override + */ + overrideButton:function(button, override) { + exec(null, null, APP_PLUGIN_NAME, "overrideButton", [button, override]); + }, + + /** + * Exit and terminate the application. + */ + exitApp:function() { + return exec(null, null, APP_PLUGIN_NAME, "exitApp", []); + } +}; diff --git a/platforms/android/assets/www/cordova.js b/platforms/android/assets/www/cordova.js new file mode 100644 index 00000000..e94e0f7f --- /dev/null +++ b/platforms/android/assets/www/cordova.js @@ -0,0 +1,2167 @@ +// Platform: android +// c517ca811b4948b630e0b74dbae6c9637939da24 +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +;(function() { +var PLATFORM_VERSION_BUILD_LABEL = '5.1.1'; +// file: src/scripts/require.js + +/*jshint -W079 */ +/*jshint -W020 */ + +var require, + define; + +(function () { + var modules = {}, + // Stack of moduleIds currently being built. + requireStack = [], + // Map of module ID -> index into requireStack of modules currently being built. + inProgressModules = {}, + SEPARATOR = "."; + + + + function build(module) { + var factory = module.factory, + localRequire = function (id) { + var resultantId = id; + //Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === ".") { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; + module.exports = {}; + delete module.factory; + factory(localRequire, module.exports, module); + return module.exports; + } + + require = function (id) { + if (!modules[id]) { + throw "module " + id + " not found"; + } else if (id in inProgressModules) { + var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; + throw "Cycle in require graph: " + cycle; + } + if (modules[id].factory) { + try { + inProgressModules[id] = requireStack.length; + requireStack.push(id); + return build(modules[id]); + } finally { + delete inProgressModules[id]; + requireStack.pop(); + } + } + return modules[id].exports; + }; + + define = function (id, factory) { + if (modules[id]) { + throw "module " + id + " already defined"; + } + + modules[id] = { + id: id, + factory: factory + }; + }; + + define.remove = function (id) { + delete modules[id]; + }; + + define.moduleMap = modules; +})(); + +//Export for use in node +if (typeof module === "object" && typeof require === "function") { + module.exports.require = require; + module.exports.define = define; +} + +// file: src/cordova.js +define("cordova", function(require, exports, module) { + +// Workaround for Windows 10 in hosted environment case +// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object +if (window.cordova && !(window.cordova instanceof HTMLElement)) { + throw new Error("cordova already defined"); +} + + +var channel = require('cordova/channel'); +var platform = require('cordova/platform'); + + +/** + * Intercept calls to addEventListener + removeEventListener and handle deviceready, + * resume, and pause events. + */ +var m_document_addEventListener = document.addEventListener; +var m_document_removeEventListener = document.removeEventListener; +var m_window_addEventListener = window.addEventListener; +var m_window_removeEventListener = window.removeEventListener; + +/** + * Houses custom event handlers to intercept on document + window event listeners. + */ +var documentEventHandlers = {}, + windowEventHandlers = {}; + +document.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof documentEventHandlers[e] != 'undefined') { + documentEventHandlers[e].subscribe(handler); + } else { + m_document_addEventListener.call(document, evt, handler, capture); + } +}; + +window.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof windowEventHandlers[e] != 'undefined') { + windowEventHandlers[e].subscribe(handler); + } else { + m_window_addEventListener.call(window, evt, handler, capture); + } +}; + +document.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof documentEventHandlers[e] != "undefined") { + documentEventHandlers[e].unsubscribe(handler); + } else { + m_document_removeEventListener.call(document, evt, handler, capture); + } +}; + +window.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof windowEventHandlers[e] != "undefined") { + windowEventHandlers[e].unsubscribe(handler); + } else { + m_window_removeEventListener.call(window, evt, handler, capture); + } +}; + +function createEvent(type, data) { + var event = document.createEvent('Events'); + event.initEvent(type, false, false); + if (data) { + for (var i in data) { + if (data.hasOwnProperty(i)) { + event[i] = data[i]; + } + } + } + return event; +} + + +var cordova = { + define:define, + require:require, + version:PLATFORM_VERSION_BUILD_LABEL, + platformVersion:PLATFORM_VERSION_BUILD_LABEL, + platformId:platform.id, + /** + * Methods to add/remove your own addEventListener hijacking on document + window. + */ + addWindowEventHandler:function(event) { + return (windowEventHandlers[event] = channel.create(event)); + }, + addStickyDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.createSticky(event)); + }, + addDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.create(event)); + }, + removeWindowEventHandler:function(event) { + delete windowEventHandlers[event]; + }, + removeDocumentEventHandler:function(event) { + delete documentEventHandlers[event]; + }, + /** + * Retrieve original event handlers that were replaced by Cordova + * + * @return object + */ + getOriginalHandlers: function() { + return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + }, + /** + * Method to fire event from native code + * bNoDetach is required for events which cause an exception which needs to be caught in native code + */ + fireDocumentEvent: function(type, data, bNoDetach) { + var evt = createEvent(type, data); + if (typeof documentEventHandlers[type] != 'undefined') { + if( bNoDetach ) { + documentEventHandlers[type].fire(evt); + } + else { + setTimeout(function() { + // Fire deviceready on listeners that were registered before cordova.js was loaded. + if (type == 'deviceready') { + document.dispatchEvent(evt); + } + documentEventHandlers[type].fire(evt); + }, 0); + } + } else { + document.dispatchEvent(evt); + } + }, + fireWindowEvent: function(type, data) { + var evt = createEvent(type,data); + if (typeof windowEventHandlers[type] != 'undefined') { + setTimeout(function() { + windowEventHandlers[type].fire(evt); + }, 0); + } else { + window.dispatchEvent(evt); + } + }, + + /** + * Plugin callback mechanism. + */ + // Randomize the starting callbackId to avoid collisions after refreshing or navigating. + // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. + callbackId: Math.floor(Math.random() * 2000000000), + callbacks: {}, + callbackStatus: { + NO_RESULT: 0, + OK: 1, + CLASS_NOT_FOUND_EXCEPTION: 2, + ILLEGAL_ACCESS_EXCEPTION: 3, + INSTANTIATION_EXCEPTION: 4, + MALFORMED_URL_EXCEPTION: 5, + IO_EXCEPTION: 6, + INVALID_ACTION: 7, + JSON_EXCEPTION: 8, + ERROR: 9 + }, + + /** + * Called by native code when returning successful result from an action. + */ + callbackSuccess: function(callbackId, args) { + cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); + }, + + /** + * Called by native code when returning error result from an action. + */ + callbackError: function(callbackId, args) { + // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. + // Derive success from status. + cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); + }, + + /** + * Called by native code when returning the result from an action. + */ + callbackFromNative: function(callbackId, isSuccess, status, args, keepCallback) { + try { + var callback = cordova.callbacks[callbackId]; + if (callback) { + if (isSuccess && status == cordova.callbackStatus.OK) { + callback.success && callback.success.apply(null, args); + } else if (!isSuccess) { + callback.fail && callback.fail.apply(null, args); + } + /* + else + Note, this case is intentionally not caught. + this can happen if isSuccess is true, but callbackStatus is NO_RESULT + which is used to remove a callback from the list without calling the callbacks + typically keepCallback is false in this case + */ + // Clear callback if not expecting any more results + if (!keepCallback) { + delete cordova.callbacks[callbackId]; + } + } + } + catch (err) { + var msg = "Error in " + (isSuccess ? "Success" : "Error") + " callbackId: " + callbackId + " : " + err; + console && console.log && console.log(msg); + cordova.fireWindowEvent("cordovacallbackerror", { 'message': msg }); + throw err; + } + }, + addConstructor: function(func) { + channel.onCordovaReady.subscribe(function() { + try { + func(); + } catch(e) { + console.log("Failed to run constructor: " + e); + } + }); + } +}; + + +module.exports = cordova; + +}); + +// file: /Users/steveng/repo/cordova/cordova-android/cordova-js-src/android/nativeapiprovider.js +define("cordova/android/nativeapiprovider", function(require, exports, module) { + +/** + * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. + */ + +var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); +var currentApi = nativeApi; + +module.exports = { + get: function() { return currentApi; }, + setPreferPrompt: function(value) { + currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; + }, + // Used only by tests. + set: function(value) { + currentApi = value; + } +}; + +}); + +// file: /Users/steveng/repo/cordova/cordova-android/cordova-js-src/android/promptbasednativeapi.js +define("cordova/android/promptbasednativeapi", function(require, exports, module) { + +/** + * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. + * This is used pre-JellyBean, where addJavascriptInterface() is disabled. + */ + +module.exports = { + exec: function(bridgeSecret, service, action, callbackId, argsJson) { + return prompt(argsJson, 'gap:'+JSON.stringify([bridgeSecret, service, action, callbackId])); + }, + setNativeToJsBridgeMode: function(bridgeSecret, value) { + prompt(value, 'gap_bridge_mode:' + bridgeSecret); + }, + retrieveJsMessages: function(bridgeSecret, fromOnlineEvent) { + return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); + } +}; + +}); + +// file: src/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var utils = require('cordova/utils'); + +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var typeName; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + typeName = utils.typeName(arg); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (typeName != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + typeName + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running unit tests. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +function getValue(value, defaultValue) { + return value === undefined ? defaultValue : value; +} + +moduleExports.checkArgs = checkArgs; +moduleExports.getValue = getValue; +moduleExports.enableChecks = true; + + +}); + +// file: src/common/base64.js +define("cordova/base64", function(require, exports, module) { + +var base64 = exports; + +base64.fromArrayBuffer = function(arrayBuffer) { + var array = new Uint8Array(arrayBuffer); + return uint8ToBase64(array); +}; + +base64.toArrayBuffer = function(str) { + var decodedStr = typeof atob != 'undefined' ? atob(str) : new Buffer(str,'base64').toString('binary'); + var arrayBuffer = new ArrayBuffer(decodedStr.length); + var array = new Uint8Array(arrayBuffer); + for (var i=0, len=decodedStr.length; i < len; i++) { + array[i] = decodedStr.charCodeAt(i); + } + return arrayBuffer; +}; + +//------------------------------------------------------------------------------ + +/* This code is based on the performance tests at http://jsperf.com/b64tests + * This 12-bit-at-a-time algorithm was the best performing version on all + * platforms tested. + */ + +var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_12bit; + +var b64_12bitTable = function() { + b64_12bit = []; + for (var i=0; i<64; i++) { + for (var j=0; j<64; j++) { + b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + } + } + b64_12bitTable = function() { return b64_12bit; }; + return b64_12bit; +}; + +function uint8ToBase64(rawData) { + var numBytes = rawData.byteLength; + var output=""; + var segment; + var table = b64_12bitTable(); + for (var i=0;i> 12]; + output += table[segment & 0xfff]; + } + if (numBytes - i == 2) { + segment = (rawData[i] << 16) + (rawData[i+1] << 8); + output += table[segment >> 12]; + output += b64_6bit[(segment & 0xfff) >> 6]; + output += '='; + } else if (numBytes - i == 1) { + segment = (rawData[i] << 16); + output += table[segment >> 12]; + output += '=='; + } + return output; +} + +}); + +// file: src/common/builder.js +define("cordova/builder", function(require, exports, module) { + +var utils = require('cordova/utils'); + +function each(objects, func, context) { + for (var prop in objects) { + if (objects.hasOwnProperty(prop)) { + func.apply(context, [objects[prop], prop]); + } + } +} + +function clobber(obj, key, value) { + exports.replaceHookForTesting(obj, key); + var needsProperty = false; + try { + obj[key] = value; + } catch (e) { + needsProperty = true; + } + // Getters can only be overridden by getters. + if (needsProperty || obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + +function assignOrWrapInDeprecateGetter(obj, key, value, message) { + if (message) { + utils.defineGetter(obj, key, function() { + console.log(message); + delete obj[key]; + clobber(obj, key, value); + return value; + }); + } else { + clobber(obj, key, value); + } +} + +function include(parent, objects, clobber, merge) { + each(objects, function (obj, key) { + try { + var result = obj.path ? require(obj.path) : {}; + + if (clobber) { + // Clobber if it doesn't exist. + if (typeof parent[key] === 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else if (typeof obj.path !== 'undefined') { + // If merging, merge properties onto parent, otherwise, clobber. + if (merge) { + recursiveMerge(parent[key], result); + } else { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } + } + result = parent[key]; + } else { + // Overwrite if not currently defined. + if (typeof parent[key] == 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else { + // Set result to what already exists, so we can build children into it if they exist. + result = parent[key]; + } + } + + if (obj.children) { + include(result, obj.children, clobber, merge); + } + } catch(e) { + utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); + } + }); +} + +/** + * Merge properties from one object onto another recursively. Properties from + * the src object will overwrite existing target property. + * + * @param target Object to merge properties into. + * @param src Object to merge properties from. + */ +function recursiveMerge(target, src) { + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + if (target.prototype && target.prototype.constructor === target) { + // If the target object is a constructor override off prototype. + clobber(target.prototype, prop, src[prop]); + } else { + if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { + recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } + } + } + } +} + +exports.buildIntoButDoNotClobber = function(objects, target) { + include(target, objects, false, false); +}; +exports.buildIntoAndClobber = function(objects, target) { + include(target, objects, true, false); +}; +exports.buildIntoAndMerge = function(objects, target) { + include(target, objects, true, true); +}; +exports.recursiveMerge = recursiveMerge; +exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; +exports.replaceHookForTesting = function() {}; + +}); + +// file: src/common/channel.js +define("cordova/channel", function(require, exports, module) { + +var utils = require('cordova/utils'), + nextGuid = 1; + +/** + * Custom pub-sub "channel" that can have functions subscribed to it + * This object is used to define and control firing of events for + * cordova initialization, as well as for custom events thereafter. + * + * The order of events during page load and Cordova startup is as follows: + * + * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. + * onNativeReady* Internal event that indicates the Cordova native side is ready. + * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. + * onDeviceReady* User event fired to indicate that Cordova is ready + * onResume User event fired to indicate a start/resume lifecycle event + * onPause User event fired to indicate a pause lifecycle event + * + * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. + * All listeners that subscribe after the event is fired will be executed right away. + * + * The only Cordova events that user code should register for are: + * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript + * pause App has moved to background + * resume App has returned to foreground + * + * Listeners can be registered as: + * document.addEventListener("deviceready", myDeviceReadyListener, false); + * document.addEventListener("resume", myResumeListener, false); + * document.addEventListener("pause", myPauseListener, false); + * + * The DOM lifecycle events should be used for saving and restoring state + * window.onload + * window.onunload + * + */ + +/** + * Channel + * @constructor + * @param type String the channel name + */ +var Channel = function(type, sticky) { + this.type = type; + // Map of guid -> function. + this.handlers = {}; + // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. + this.state = sticky ? 1 : 0; + // Used in sticky mode to remember args passed to fire(). + this.fireArgs = null; + // Used by onHasSubscribersChange to know if there are any listeners. + this.numHandlers = 0; + // Function that is called when the first listener is subscribed, or when + // the last listener is unsubscribed. + this.onHasSubscribersChange = null; +}, + channel = { + /** + * Calls the provided function only after all of the channels specified + * have been fired. All channels must be sticky channels. + */ + join: function(h, c) { + var len = c.length, + i = len, + f = function() { + if (!(--i)) h(); + }; + for (var j=0; jNative bridge. + POLLING: 0, + // For LOAD_URL to be viable, it would need to have a work-around for + // the bug where the soft-keyboard gets dismissed when a message is sent. + LOAD_URL: 1, + // For the ONLINE_EVENT to be viable, it would need to intercept all event + // listeners (both through addEventListener and window.ononline) as well + // as set the navigator property itself. + ONLINE_EVENT: 2 + }, + jsToNativeBridgeMode, // Set lazily. + nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT, + pollEnabled = false, + bridgeSecret = -1; + +var messagesFromNative = []; +var isProcessing = false; +var resolvedPromise = typeof Promise == 'undefined' ? null : Promise.resolve(); +var nextTick = resolvedPromise ? function(fn) { resolvedPromise.then(fn); } : function(fn) { setTimeout(fn); }; + +function androidExec(success, fail, service, action, args) { + if (bridgeSecret < 0) { + // If we ever catch this firing, we'll need to queue up exec()s + // and fire them once we get a secret. For now, I don't think + // it's possible for exec() to be called since plugins are parsed but + // not run until until after onNativeReady. + throw new Error('exec() called without bridgeSecret'); + } + // Set default bridge modes if they have not already been set. + // By default, we use the failsafe, since addJavascriptInterface breaks too often + if (jsToNativeBridgeMode === undefined) { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } + + // Process any ArrayBuffers in the args into a string. + for (var i = 0; i < args.length; i++) { + if (utils.typeName(args[i]) == 'ArrayBuffer') { + args[i] = base64.fromArrayBuffer(args[i]); + } + } + + var callbackId = service + cordova.callbackId++, + argsJson = JSON.stringify(args); + + if (success || fail) { + cordova.callbacks[callbackId] = {success:success, fail:fail}; + } + + var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); + // If argsJson was received by Java as null, try again with the PROMPT bridge mode. + // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. + if (jsToNativeBridgeMode == jsToNativeModes.JS_OBJECT && msgs === "@Null arguments.") { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); + androidExec(success, fail, service, action, args); + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } else if (msgs) { + messagesFromNative.push(msgs); + // Always process async to avoid exceptions messing up stack. + nextTick(processMessages); + } +} + +androidExec.init = function() { + bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); + channel.onNativeReady.fire(); +}; + +function pollOnceFromOnlineEvent() { + pollOnce(true); +} + +function pollOnce(opt_fromOnlineEvent) { + if (bridgeSecret < 0) { + // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. + // We know there's nothing to retrieve, so no need to poll. + return; + } + var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); + if (msgs) { + messagesFromNative.push(msgs); + // Process sync since we know we're already top-of-stack. + processMessages(); + } +} + +function pollingTimerFunc() { + if (pollEnabled) { + pollOnce(); + setTimeout(pollingTimerFunc, 50); + } +} + +function hookOnlineApis() { + function proxyEvent(e) { + cordova.fireWindowEvent(e.type); + } + // The network module takes care of firing online and offline events. + // It currently fires them only on document though, so we bridge them + // to window here (while first listening for exec()-releated online/offline + // events). + window.addEventListener('online', pollOnceFromOnlineEvent, false); + window.addEventListener('offline', pollOnceFromOnlineEvent, false); + cordova.addWindowEventHandler('online'); + cordova.addWindowEventHandler('offline'); + document.addEventListener('online', proxyEvent, false); + document.addEventListener('offline', proxyEvent, false); +} + +hookOnlineApis(); + +androidExec.jsToNativeModes = jsToNativeModes; +androidExec.nativeToJsModes = nativeToJsModes; + +androidExec.setJsToNativeBridgeMode = function(mode) { + if (mode == jsToNativeModes.JS_OBJECT && !window._cordovaNative) { + mode = jsToNativeModes.PROMPT; + } + nativeApiProvider.setPreferPrompt(mode == jsToNativeModes.PROMPT); + jsToNativeBridgeMode = mode; +}; + +androidExec.setNativeToJsBridgeMode = function(mode) { + if (mode == nativeToJsBridgeMode) { + return; + } + if (nativeToJsBridgeMode == nativeToJsModes.POLLING) { + pollEnabled = false; + } + + nativeToJsBridgeMode = mode; + // Tell the native side to switch modes. + // Otherwise, it will be set by androidExec.init() + if (bridgeSecret >= 0) { + nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); + } + + if (mode == nativeToJsModes.POLLING) { + pollEnabled = true; + setTimeout(pollingTimerFunc, 1); + } +}; + +function buildPayload(payload, message) { + var payloadKind = message.charAt(0); + if (payloadKind == 's') { + payload.push(message.slice(1)); + } else if (payloadKind == 't') { + payload.push(true); + } else if (payloadKind == 'f') { + payload.push(false); + } else if (payloadKind == 'N') { + payload.push(null); + } else if (payloadKind == 'n') { + payload.push(+message.slice(1)); + } else if (payloadKind == 'A') { + var data = message.slice(1); + payload.push(base64.toArrayBuffer(data)); + } else if (payloadKind == 'S') { + payload.push(window.atob(message.slice(1))); + } else if (payloadKind == 'M') { + var multipartMessages = message.slice(1); + while (multipartMessages !== "") { + var spaceIdx = multipartMessages.indexOf(' '); + var msgLen = +multipartMessages.slice(0, spaceIdx); + var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); + multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); + buildPayload(payload, multipartMessage); + } + } else { + payload.push(JSON.parse(message)); + } +} + +// Processes a single message, as encoded by NativeToJsMessageQueue.java. +function processMessage(message) { + var firstChar = message.charAt(0); + if (firstChar == 'J') { + // This is deprecated on the .java side. It doesn't work with CSP enabled. + eval(message.slice(1)); + } else if (firstChar == 'S' || firstChar == 'F') { + var success = firstChar == 'S'; + var keepCallback = message.charAt(1) == '1'; + var spaceIdx = message.indexOf(' ', 2); + var status = +message.slice(2, spaceIdx); + var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); + var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); + var payloadMessage = message.slice(nextSpaceIdx + 1); + var payload = []; + buildPayload(payload, payloadMessage); + cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); + } else { + console.log("processMessage failed: invalid message: " + JSON.stringify(message)); + } +} + +function processMessages() { + // Check for the reentrant case. + if (isProcessing) { + return; + } + if (messagesFromNative.length === 0) { + return; + } + isProcessing = true; + try { + var msg = popMessageFromQueue(); + // The Java side can send a * message to indicate that it + // still has messages waiting to be retrieved. + if (msg == '*' && messagesFromNative.length === 0) { + nextTick(pollOnce); + return; + } + processMessage(msg); + } finally { + isProcessing = false; + if (messagesFromNative.length > 0) { + nextTick(processMessages); + } + } +} + +function popMessageFromQueue() { + var messageBatch = messagesFromNative.shift(); + if (messageBatch == '*') { + return '*'; + } + + var spaceIdx = messageBatch.indexOf(' '); + var msgLen = +messageBatch.slice(0, spaceIdx); + var message = messageBatch.substr(spaceIdx + 1, msgLen); + messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); + if (messageBatch) { + messagesFromNative.unshift(messageBatch); + } + return message; +} + +module.exports = androidExec; + +}); + +// file: src/common/exec/proxy.js +define("cordova/exec/proxy", function(require, exports, module) { + + +// internal map of proxy function +var CommandProxyMap = {}; + +module.exports = { + + // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); + add:function(id,proxyObj) { + console.log("adding proxy for " + id); + CommandProxyMap[id] = proxyObj; + return proxyObj; + }, + + // cordova.commandProxy.remove("Accelerometer"); + remove:function(id) { + var proxy = CommandProxyMap[id]; + delete CommandProxyMap[id]; + CommandProxyMap[id] = null; + return proxy; + }, + + get:function(service,action) { + return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null ); + } +}; +}); + +// file: src/common/init.js +define("cordova/init", function(require, exports, module) { + +var channel = require('cordova/channel'); +var cordova = require('cordova'); +var modulemapper = require('cordova/modulemapper'); +var platform = require('cordova/platform'); +var pluginloader = require('cordova/pluginloader'); +var utils = require('cordova/utils'); + +var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; + +function logUnfiredChannels(arr) { + for (var i = 0; i < arr.length; ++i) { + if (arr[i].state != 2) { + console.log('Channel not fired: ' + arr[i].type); + } + } +} + +window.setTimeout(function() { + if (channel.onDeviceReady.state != 2) { + console.log('deviceready has not fired after 5 seconds.'); + logUnfiredChannels(platformInitChannelsArray); + logUnfiredChannels(channel.deviceReadyChannelsArray); + } +}, 5000); + +// Replace navigator before any modules are required(), to ensure it happens as soon as possible. +// We replace it so that properties that can't be clobbered can instead be overridden. +function replaceNavigator(origNavigator) { + var CordovaNavigator = function() {}; + CordovaNavigator.prototype = origNavigator; + var newNavigator = new CordovaNavigator(); + // This work-around really only applies to new APIs that are newer than Function.bind. + // Without it, APIs such as getGamepads() break. + if (CordovaNavigator.bind) { + for (var key in origNavigator) { + if (typeof origNavigator[key] == 'function') { + newNavigator[key] = origNavigator[key].bind(origNavigator); + } + else { + (function(k) { + utils.defineGetterSetter(newNavigator,key,function() { + return origNavigator[k]; + }); + })(key); + } + } + } + return newNavigator; +} + +if (window.navigator) { + window.navigator = replaceNavigator(window.navigator); +} + +if (!window.console) { + window.console = { + log: function(){} + }; +} +if (!window.console.warn) { + window.console.warn = function(msg) { + this.log("warn: " + msg); + }; +} + +// Register pause, resume and deviceready channels as events on document. +channel.onPause = cordova.addDocumentEventHandler('pause'); +channel.onResume = cordova.addDocumentEventHandler('resume'); +channel.onActivated = cordova.addDocumentEventHandler('activated'); +channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); + +// Listen for DOMContentLoaded and notify our channel subscribers. +if (document.readyState == 'complete' || document.readyState == 'interactive') { + channel.onDOMContentLoaded.fire(); +} else { + document.addEventListener('DOMContentLoaded', function() { + channel.onDOMContentLoaded.fire(); + }, false); +} + +// _nativeReady is global variable that the native side can set +// to signify that the native code is ready. It is a global since +// it may be called before any cordova JS is ready. +if (window._nativeReady) { + channel.onNativeReady.fire(); +} + +modulemapper.clobbers('cordova', 'cordova'); +modulemapper.clobbers('cordova/exec', 'cordova.exec'); +modulemapper.clobbers('cordova/exec', 'Cordova.exec'); + +// Call the platform-specific initialization. +platform.bootstrap && platform.bootstrap(); + +// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. +// The delay allows the attached modules to be defined before the plugin loader looks for them. +setTimeout(function() { + pluginloader.load(function() { + channel.onPluginsReady.fire(); + }); +}, 0); + +/** + * Create all cordova objects once native side is ready. + */ +channel.join(function() { + modulemapper.mapModules(window); + + platform.initialize && platform.initialize(); + + // Fire event to notify that all objects are created + channel.onCordovaReady.fire(); + + // Fire onDeviceReady event once page has fully loaded, all + // constructors have run and cordova info has been received from native + // side. + channel.join(function() { + require('cordova').fireDocumentEvent('deviceready'); + }, channel.deviceReadyChannelsArray); + +}, platformInitChannelsArray); + + +}); + +// file: src/common/init_b.js +define("cordova/init_b", function(require, exports, module) { + +var channel = require('cordova/channel'); +var cordova = require('cordova'); +var modulemapper = require('cordova/modulemapper'); +var platform = require('cordova/platform'); +var pluginloader = require('cordova/pluginloader'); +var utils = require('cordova/utils'); + +var platformInitChannelsArray = [channel.onDOMContentLoaded, channel.onNativeReady, channel.onPluginsReady]; + +// setting exec +cordova.exec = require('cordova/exec'); + +function logUnfiredChannels(arr) { + for (var i = 0; i < arr.length; ++i) { + if (arr[i].state != 2) { + console.log('Channel not fired: ' + arr[i].type); + } + } +} + +window.setTimeout(function() { + if (channel.onDeviceReady.state != 2) { + console.log('deviceready has not fired after 5 seconds.'); + logUnfiredChannels(platformInitChannelsArray); + logUnfiredChannels(channel.deviceReadyChannelsArray); + } +}, 5000); + +// Replace navigator before any modules are required(), to ensure it happens as soon as possible. +// We replace it so that properties that can't be clobbered can instead be overridden. +function replaceNavigator(origNavigator) { + var CordovaNavigator = function() {}; + CordovaNavigator.prototype = origNavigator; + var newNavigator = new CordovaNavigator(); + // This work-around really only applies to new APIs that are newer than Function.bind. + // Without it, APIs such as getGamepads() break. + if (CordovaNavigator.bind) { + for (var key in origNavigator) { + if (typeof origNavigator[key] == 'function') { + newNavigator[key] = origNavigator[key].bind(origNavigator); + } + else { + (function(k) { + utils.defineGetterSetter(newNavigator,key,function() { + return origNavigator[k]; + }); + })(key); + } + } + } + return newNavigator; +} +if (window.navigator) { + window.navigator = replaceNavigator(window.navigator); +} + +if (!window.console) { + window.console = { + log: function(){} + }; +} +if (!window.console.warn) { + window.console.warn = function(msg) { + this.log("warn: " + msg); + }; +} + +// Register pause, resume and deviceready channels as events on document. +channel.onPause = cordova.addDocumentEventHandler('pause'); +channel.onResume = cordova.addDocumentEventHandler('resume'); +channel.onActivated = cordova.addDocumentEventHandler('activated'); +channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); + +// Listen for DOMContentLoaded and notify our channel subscribers. +if (document.readyState == 'complete' || document.readyState == 'interactive') { + channel.onDOMContentLoaded.fire(); +} else { + document.addEventListener('DOMContentLoaded', function() { + channel.onDOMContentLoaded.fire(); + }, false); +} + +// _nativeReady is global variable that the native side can set +// to signify that the native code is ready. It is a global since +// it may be called before any cordova JS is ready. +if (window._nativeReady) { + channel.onNativeReady.fire(); +} + +// Call the platform-specific initialization. +platform.bootstrap && platform.bootstrap(); + +// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. +// The delay allows the attached modules to be defined before the plugin loader looks for them. +setTimeout(function() { + pluginloader.load(function() { + channel.onPluginsReady.fire(); + }); +}, 0); + +/** + * Create all cordova objects once native side is ready. + */ +channel.join(function() { + modulemapper.mapModules(window); + + platform.initialize && platform.initialize(); + + // Fire event to notify that all objects are created + channel.onCordovaReady.fire(); + + // Fire onDeviceReady event once page has fully loaded, all + // constructors have run and cordova info has been received from native + // side. + channel.join(function() { + require('cordova').fireDocumentEvent('deviceready'); + }, channel.deviceReadyChannelsArray); + +}, platformInitChannelsArray); + +}); + +// file: src/common/modulemapper.js +define("cordova/modulemapper", function(require, exports, module) { + +var builder = require('cordova/builder'), + moduleMap = define.moduleMap, + symbolList, + deprecationMap; + +exports.reset = function() { + symbolList = []; + deprecationMap = {}; +}; + +function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { + if (!(moduleName in moduleMap)) { + throw new Error('Module ' + moduleName + ' does not exist.'); + } + symbolList.push(strategy, moduleName, symbolPath); + if (opt_deprecationMessage) { + deprecationMap[symbolPath] = opt_deprecationMessage; + } +} + +// Note: Android 2.3 does have Function.bind(). +exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('c', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('m', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('d', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.runs = function(moduleName) { + addEntry('r', moduleName, null); +}; + +function prepareNamespace(symbolPath, context) { + if (!symbolPath) { + return context; + } + var parts = symbolPath.split('.'); + var cur = context; + for (var i = 0, part; part = parts[i]; ++i) { + cur = cur[part] = cur[part] || {}; + } + return cur; +} + +exports.mapModules = function(context) { + var origSymbols = {}; + context.CDV_origSymbols = origSymbols; + for (var i = 0, len = symbolList.length; i < len; i += 3) { + var strategy = symbolList[i]; + var moduleName = symbolList[i + 1]; + var module = require(moduleName); + // + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: src/common/modulemapper_b.js +define("cordova/modulemapper_b", function(require, exports, module) { + +var builder = require('cordova/builder'), + symbolList = [], + deprecationMap; + +exports.reset = function() { + symbolList = []; + deprecationMap = {}; +}; + +function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { + symbolList.push(strategy, moduleName, symbolPath); + if (opt_deprecationMessage) { + deprecationMap[symbolPath] = opt_deprecationMessage; + } +} + +// Note: Android 2.3 does have Function.bind(). +exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('c', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('m', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('d', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.runs = function(moduleName) { + addEntry('r', moduleName, null); +}; + +function prepareNamespace(symbolPath, context) { + if (!symbolPath) { + return context; + } + var parts = symbolPath.split('.'); + var cur = context; + for (var i = 0, part; part = parts[i]; ++i) { + cur = cur[part] = cur[part] || {}; + } + return cur; +} + +exports.mapModules = function(context) { + var origSymbols = {}; + context.CDV_origSymbols = origSymbols; + for (var i = 0, len = symbolList.length; i < len; i += 3) { + var strategy = symbolList[i]; + var moduleName = symbolList[i + 1]; + var module = require(moduleName); + // + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: /Users/steveng/repo/cordova/cordova-android/cordova-js-src/platform.js +define("cordova/platform", function(require, exports, module) { + +// The last resume event that was received that had the result of a plugin call. +var lastResumeEvent = null; + +module.exports = { + id: 'android', + bootstrap: function() { + var channel = require('cordova/channel'), + cordova = require('cordova'), + exec = require('cordova/exec'), + modulemapper = require('cordova/modulemapper'); + + // Get the shared secret needed to use the bridge. + exec.init(); + + // TODO: Extract this as a proper plugin. + modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); + + var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; + + // Inject a listener for the backbutton on the document. + var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); + backButtonChannel.onHasSubscribersChange = function() { + // If we just attached the first handler or detached the last handler, + // let native know we need to override the back button. + exec(null, null, APP_PLUGIN_NAME, "overrideBackbutton", [this.numHandlers == 1]); + }; + + // Add hardware MENU and SEARCH button handlers + cordova.addDocumentEventHandler('menubutton'); + cordova.addDocumentEventHandler('searchbutton'); + + function bindButtonChannel(buttonName) { + // generic button bind used for volumeup/volumedown buttons + var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); + volumeButtonChannel.onHasSubscribersChange = function() { + exec(null, null, APP_PLUGIN_NAME, "overrideButton", [buttonName, this.numHandlers == 1]); + }; + } + // Inject a listener for the volume buttons on the document. + bindButtonChannel('volumeup'); + bindButtonChannel('volumedown'); + + // The resume event is not "sticky", but it is possible that the event + // will contain the result of a plugin call. We need to ensure that the + // plugin result is delivered even after the event is fired (CB-10498) + var cordovaAddEventListener = document.addEventListener; + + document.addEventListener = function(evt, handler, capture) { + cordovaAddEventListener(evt, handler, capture); + + if (evt === 'resume' && lastResumeEvent) { + handler(lastResumeEvent); + } + }; + + // Let native code know we are all done on the JS side. + // Native code will then un-hide the WebView. + channel.onCordovaReady.subscribe(function() { + exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); + exec(null, null, APP_PLUGIN_NAME, "show", []); + }); + } +}; + +function onMessageFromNative(msg) { + var cordova = require('cordova'); + var action = msg.action; + + switch (action) + { + // Button events + case 'backbutton': + case 'menubutton': + case 'searchbutton': + // App life cycle events + case 'pause': + // Volume events + case 'volumedownbutton': + case 'volumeupbutton': + cordova.fireDocumentEvent(action); + break; + case 'resume': + if(arguments.length > 1 && msg.pendingResult) { + if(arguments.length === 2) { + msg.pendingResult.result = arguments[1]; + } else { + // The plugin returned a multipart message + var res = []; + for(var i = 1; i < arguments.length; i++) { + res.push(arguments[i]); + } + msg.pendingResult.result = res; + } + + // Save the plugin result so that it can be delivered to the js + // even if they miss the initial firing of the event + lastResumeEvent = msg; + } + cordova.fireDocumentEvent(action, msg); + break; + default: + throw new Error('Unknown event action ' + action); + } +} + +}); + +// file: /Users/steveng/repo/cordova/cordova-android/cordova-js-src/plugin/android/app.js +define("cordova/plugin/android/app", function(require, exports, module) { + +var exec = require('cordova/exec'); +var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; + +module.exports = { + /** + * Clear the resource cache. + */ + clearCache:function() { + exec(null, null, APP_PLUGIN_NAME, "clearCache", []); + }, + + /** + * Load the url into the webview or into new browser instance. + * + * @param url The URL to load + * @param props Properties that can be passed in to the activity: + * wait: int => wait msec before loading URL + * loadingDialog: "Title,Message" => display a native loading dialog + * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error + * clearHistory: boolean => clear webview history (default=false) + * openExternal: boolean => open in a new browser (default=false) + * + * Example: + * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); + */ + loadUrl:function(url, props) { + exec(null, null, APP_PLUGIN_NAME, "loadUrl", [url, props]); + }, + + /** + * Cancel loadUrl that is waiting to be loaded. + */ + cancelLoadUrl:function() { + exec(null, null, APP_PLUGIN_NAME, "cancelLoadUrl", []); + }, + + /** + * Clear web history in this web view. + * Instead of BACK button loading the previous web page, it will exit the app. + */ + clearHistory:function() { + exec(null, null, APP_PLUGIN_NAME, "clearHistory", []); + }, + + /** + * Go to previous page displayed. + * This is the same as pressing the backbutton on Android device. + */ + backHistory:function() { + exec(null, null, APP_PLUGIN_NAME, "backHistory", []); + }, + + /** + * Override the default behavior of the Android back button. + * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "backbutton" event, this is automatically done. + * + * @param override T=override, F=cancel override + */ + overrideBackbutton:function(override) { + exec(null, null, APP_PLUGIN_NAME, "overrideBackbutton", [override]); + }, + + /** + * Override the default behavior of the Android volume button. + * If overridden, when the volume button is pressed, the "volume[up|down]button" + * JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "volume[up|down]button" event, this is automatically done. + * + * @param button volumeup, volumedown + * @param override T=override, F=cancel override + */ + overrideButton:function(button, override) { + exec(null, null, APP_PLUGIN_NAME, "overrideButton", [button, override]); + }, + + /** + * Exit and terminate the application. + */ + exitApp:function() { + return exec(null, null, APP_PLUGIN_NAME, "exitApp", []); + } +}; + +}); + +// file: src/common/pluginloader.js +define("cordova/pluginloader", function(require, exports, module) { + +var modulemapper = require('cordova/modulemapper'); +var urlutil = require('cordova/urlutil'); + +// Helper function to inject a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platforms/android/assets/www/lib/PurpleRobotClient/.bower.json b/platforms/android/assets/www/lib/PurpleRobotClient/.bower.json new file mode 100644 index 00000000..30421c24 --- /dev/null +++ b/platforms/android/assets/www/lib/PurpleRobotClient/.bower.json @@ -0,0 +1,32 @@ +{ + "name": "PurpleRobotClient", + "homepage": "https://github.com/cbitstech/PurpleRobotClient", + "authors": [ + "Mark Begale ", + "Eric Carty-Fickes " + ], + "description": "JavaScript client for Purple Robot services", + "main": "purple-robot.js", + "devDependencies": { + "jasmine": "2" + }, + "ignore": [ + "README.md", + "default-triggers.js", + "index.html", + "purple-robot-client.js", + "run_specs", + "test-prompt copy.js", + "docs", + "spec" + ], + "_release": "1.5.10.0", + "_resolution": { + "type": "tag", + "tag": "1.5.10.0", + "commit": "c3f27a19f14a86699d1bc4a19f3df38d8a160a4f" + }, + "_source": "git@github.com:cbitstech/PurpleRobotClient.git", + "_target": "1.5.10.0", + "_originalSource": "git@github.com:cbitstech/PurpleRobotClient.git" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/PurpleRobotClient/.gitignore b/platforms/android/assets/www/lib/PurpleRobotClient/.gitignore new file mode 100644 index 00000000..878275d5 --- /dev/null +++ b/platforms/android/assets/www/lib/PurpleRobotClient/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +bower_components diff --git a/platforms/android/assets/www/lib/PurpleRobotClient/bower.json b/platforms/android/assets/www/lib/PurpleRobotClient/bower.json new file mode 100644 index 00000000..4d7a07a4 --- /dev/null +++ b/platforms/android/assets/www/lib/PurpleRobotClient/bower.json @@ -0,0 +1,24 @@ +{ + "name": "PurpleRobotClient", + "version": "1.5.10.0", + "homepage": "https://github.com/cbitstech/PurpleRobotClient", + "authors": [ + "Mark Begale ", + "Eric Carty-Fickes " + ], + "description": "JavaScript client for Purple Robot services", + "main": "purple-robot.js", + "devDependencies": { + "jasmine": "2" + }, + "ignore": [ + "README.md", + "default-triggers.js", + "index.html", + "purple-robot-client.js", + "run_specs", + "test-prompt copy.js", + "docs", + "spec" + ] +} diff --git a/platforms/android/assets/www/lib/PurpleRobotClient/purple-robot.js b/platforms/android/assets/www/lib/PurpleRobotClient/purple-robot.js new file mode 100644 index 00000000..30828543 --- /dev/null +++ b/platforms/android/assets/www/lib/PurpleRobotClient/purple-robot.js @@ -0,0 +1,1039 @@ +;(function() { + // ## Example + // + // var pr = new PurpleRobot(); + // pr.playDefaultTone().execute(); + + // __constructor__ + // + // Initialize the client with an options object made up of + // `serverUrl` - the url to which commands are sent + function PurpleRobot(options) { + options = options || {}; + + // __className__ + // + // `@public` + this.className = "PurpleRobot"; + + // ___serverUrl__ + // + // `@private` + this._serverUrl = options.serverUrl || "http://localhost:12345/json/submit"; + // ___script__ + // + // `@private` + this._script = options.script || ""; + } + + var PR = PurpleRobot; + var root = window; + + function PurpleRobotArgumentException(methodName, argument, expectedArgument) { + this.methodName = methodName; + this.argument = argument; + this.expectedArgument = expectedArgument; + this.message = ' received an unexpected argument "'; + + this.toString = function() { + return [ + "PurpleRobot.", + this.methodName, + this.message, + this.argument, + '" expected: ', + this.expectedArgument + ].join(""); + }; + } + + // __apiVersion__ + // + // `@public` + // + // The version of the API, corresponding to the version of Purple Robot. + PR.apiVersion = "1.5.10.0"; + + // __setEnvironment()__ + // + // `@public` + // `@param {string} ['production'|'debug'|'web']` + // + // Set the environment to one of: + // `production`: Make real calls to the Purple Robot HTTP server with minimal + // logging. + // `debug': Make real calls to the Purple Robot HTTP server with extra + // logging. + // `web`: Make fake calls to the Purple Robot HTTP server with extra logging. + PR.setEnvironment = function(env) { + if (env !== 'production' && env !== 'debug' && env !== 'web') { + throw new PurpleRobotArgumentException('setEnvironment', env, '["production", "debug", "web"]'); + } + + this.env = env; + + return this; + }; + + // ___push(nextScript)__ + // + // `@private` + // `@returns {Object}` A new PurpleRobot instance. + // + // Enables chaining of method calls. + PR.prototype._push = function(methodName, argStr) { + var nextScript = ["PurpleRobot.", methodName, "(", argStr, ");"].join(""); + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, nextScript].join(" ").trim() + }); + }; + + // ___stringify(value)__ + // + // `@private` + // `@param {*} value` The value to be stringified. + // `@returns {string}` The stringified representation. + // + // Returns a string representation of the input. If the input is a + // `PurpleRobot` instance, a string expression is returned, otherwise a JSON + // stringified version is returned. + PR.prototype._stringify = function(value) { + var str; + + if (value !== null && + typeof value === "object" && + value.className === this.className) { + str = value.toStringExpression(); + } else { + str = JSON.stringify(value); + } + + return str; + }; + + // __toString()__ + // + // `@returns {string}` The current script as a string. + // + // Returns the string representation of the current script. + PR.prototype.toString = function() { + return this._script; + }; + + // __toStringExpression()__ + // + // `@returns {string}` A string representation of a function that returns the + // value of this script when evaluated. + // + // Example + // + // pr.emitToast("foo").toStringExpression(); + // // "(function() { return PurpleRobot.emitToast('foo'); })()" + PR.prototype.toStringExpression = function () { + return "(function() { return " + this._script + " })()"; + }; + + // __toJson()__ + // + // `@returns {string}` A JSON stringified version of this script. + // + // Returns the escaped string representation of the method call. + PR.prototype.toJson = function() { + return JSON.stringify(this.toString()); + }; + + // __execute(callbacks)__ + // + // Executes the current method (and any previously chained methods) by + // making an HTTP request to the Purple Robot HTTP server. + // + // Example + // + // pr.fetchEncryptedString("foo").execute({ + // done: function(payload) { + // console.log(payload); + // } + // }) + PR.prototype.execute = function(callbacks) { + var json = JSON.stringify({ + command: "execute_script", + script: this.toString() + }); + + if (PR.env !== 'web') { + function onChange() { + if (callbacks && httpRequest.readyState === XMLHttpRequest.DONE) { + if (httpRequest.response === null) { + callbacks.fail && callbacks.fail(); + } else if (callbacks.done) { + callbacks.done(JSON.parse(httpRequest.response).payload); + } + } + } + + var httpRequest = new XMLHttpRequest(); + httpRequest.onreadystatechange = onChange; + var isAsynchronous = true; + httpRequest.open("POST", this._serverUrl, isAsynchronous); + httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + httpRequest.send("json=" + json); + } else { + console.log('PurpleRobot POSTing to "' + this._serverUrl + '": ' + json); + } + }; + + // __save()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Saves a string representation of script(s) to localStorage. + // + // Example + // + // pr.emitReading("foo", "bar").save(); + PR.prototype.save = function() { + localStorage.prQueue = localStorage.prQueue || ""; + localStorage.prQueue += this.toString(); + + return this; + }; + + // __restore()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Restores saved script(s) from localStorage. + // + // Example + // + // pr.restore().execute(); + PR.prototype.restore = function() { + localStorage.prQueue = localStorage.prQueue || ""; + this._script = localStorage.prQueue; + + return this; + }; + + // __destroy()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Deletes saved script(s) from localStorage. + // + // Example + // + // pr.destroy(); + PR.prototype.destroy = function() { + delete localStorage.prQueue; + + return this; + }; + + // __isEqual(valA, valB)__ + // + // `@param {*} valA` The left hand value. + // `@param {*} valB` The right hand value. + // `@returns {Object}` Returns the current object instance. + // + // Generates an equality expression between two values. + // + // Example + // + // pr.isEqual(pr.fetchEncryptedString("a"), null); + PR.prototype.isEqual = function(valA, valB) { + var expr = this._stringify(valA) + " == " + this._stringify(valB); + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, expr].join(" ").trim() + }); + }; + + // __ifThenElse(condition, thenStmt, elseStmt)__ + // + // `@param {Object} condition` A PurpleRobot instance that evaluates to true or + // false. + // `@param {Object} thenStmt` A PurpleRobot instance. + // `@param {Object} elseStmt` A PurpleRobot instance. + // `@returns {Object}` A new PurpleRobot instance. + // + // Generates a conditional expression. + // + // Example + // + // pr.ifThenElse(pr.isEqual(1, 1), pr.emitToast("true"), pr.emitToast("error")); + PR.prototype.ifThenElse = function(condition, thenStmt, elseStmt) { + var expr = "if (" + condition.toString() + ") { " + + thenStmt.toString() + + " } else { " + + elseStmt.toString() + + " }"; + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, expr].join(" ").trim() + }); + }; + + // __doNothing()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Generates an explicitly empty script. + // + // Example + // + // pr.doNothing(); + PR.prototype.doNothing = function() { + return new PR({ + serverUrl: this._serverUrl, + script: this._script + }); + }; + + // __q(value)__ + // + // `@private` + // `@param {string} value` A string argument. + // `@returns {string}` A string with extra single quotes surrounding it. + function q(value) { + return "'" + value + "'"; + }; + + // ##Purple Robot API + + // __addNamespace(namespace)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds a namespace under which unencrypted values might be stored. + // + // Example + // + // pr.addNamespace("foo"); + PR.prototype.addNamespace = function(namespace) { + return this._push("addNamespace", [q(namespace)].join(", ")); + }; + + // __broadcastIntent(action, options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Broadcasts an Android intent. + // + // Example + // + // pr.broadcastIntent("intent"); + PR.prototype.broadcastIntent = function(action, options) { + return this._push("broadcastIntent", [q(action), + JSON.stringify(options || null)].join(", ")); + }; + + // __cancelScriptNotification()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Removes the tray notification from the task bar. + // + // Example + // + // pr.cancelScriptNotification(); + PR.prototype.cancelScriptNotification = function() { + return this._push("cancelScriptNotification"); + }; + + // __clearNativeDialogs()__ + // __clearNativeDialogs(tag)__ + // + // `@param {string} tag (optional)` An identifier of a specific dialog. + // `@returns {Object}` A new PurpleRobot instance. + // + // Removes all native dialogs from the screen. + // + // Examples + // + // pr.clearNativeDialogs(); + // pr.clearNativeDialogs("my-id"); + PR.prototype.clearNativeDialogs = function(tag) { + if (tag) { + return this._push("clearNativeDialogs", q(tag)); + } else { + return this._push("clearNativeDialogs"); + } + }; + + // __clearTriggers()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Deletes all Purple Robot triggers. + // + // Example + // + // pr.clearTriggers(); + PR.prototype.clearTriggers = function() { + return this._push("clearTriggers"); + }; + + // __dateFromTimestamp(epoch)__ + // + // `@param {number} epoch` The Unix epoch timestamp including milliseconds. + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a Date object given an epoch timestamp. + // + // Example + // + // pr.dateFromTimestamp(1401205124000); + PR.prototype.dateFromTimestamp = function(epoch) { + return this._push("dateFromTimestamp", epoch); + }; + + // __deleteTrigger(id)__ + // + // `@param {string} id` The id of the trigger. + // `@returns {Object}` A new PurpleRobot instance. + // + // Deletes the Purple Robot trigger identified by `id`; + // + // Example + // + // pr.deleteTrigger("MY-TRIGGER"); + PR.prototype.deleteTrigger = function(id) { + return this._push("deleteTrigger", q(id)); + }; + + // __disableTrigger(id)__ + // + // `@param {string} id` The id of the trigger. + // `@returns {Object}` A new PurpleRobot instance. + // + // Disables the Purple Robot trigger identified by `id`; + // + // Example + // + // pr.disableTrigger("MY-TRIGGER"); + PR.prototype.disableTrigger = function(id) { + return this._push("disableTrigger", q(id)); + }; + + // __emitReading(name, value)__ + // + // `@param {string} name` The name of the reading. + // `@param {*} value` The value of the reading. + // `@returns {Object}` A new PurpleRobot instance. + // + // Transmits a name value pair to be stored in Purple Robot Warehouse. The + // table name will be *name*, and the columns and data values will be + // extrapolated from the *value*. + // + // Example + // + // pr.emitReading("sandwich", "pb&j"); + PR.prototype.emitReading = function(name, value) { + return this._push("emitReading", q(name) + ", " + JSON.stringify(value)); + }; + + // __emitToast(message, hasLongDuration)__ + // + // `@param {string} message` The text of the toast. + // `@param {boolean} hasLongDuration` True if the toast should display longer. + // `@returns {Object}` A new PurpleRobot instance. + // + // Displays a native toast message on the phone. + // + // Example + // + // pr.emitToast("howdy", true); + PR.prototype.emitToast = function(message, hasLongDuration) { + hasLongDuration = (typeof hasLongDuration === "boolean") ? hasLongDuration : true; + + return this._push("emitToast", q(message) + ", " + hasLongDuration); + }; + + // __enableTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Enables the trigger. + // + // Example + // + // pr.enableTrigger("my-trigger"); + PR.prototype.enableTrigger = function(id) { + return this._push("enableTrigger", q(id)); + }; + + // __fetchConfig()__ + PR.prototype.fetchConfig = function() { + return this._push("fetchConfig"); + }; + + // __fetchEncryptedString(key, namespace)__ + // __fetchEncryptedString(key)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a value stored for the namespace and key provided. Generally + // paired with `persistEncryptedString`. + // + // Examples + // + // pr.fetchEncryptedString("x", "my stuff"); + // pr.fetchEncryptedString("y"); + PR.prototype.fetchEncryptedString = function(key, namespace) { + if (typeof namespace === "undefined") { + return this._push("fetchEncryptedString", q(key)); + } else { + return this._push("fetchEncryptedString", q(namespace) + ", " + q(key)); + } + }; + + // __fetchNamespace(namespace)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a hash of the keys and values stored in the namespace. + // + // Examples + // + // pr.fetchNamespace("x").execute({ + // done(function(store) { + // ... + // }); + PR.prototype.fetchNamespace = function(namespace) { + return this._push("fetchNamespace", [q(namespace)].join(", ")); + }; + + // __fetchNamespaces()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns an array of all the namespaces + // + // Examples + // + // pr.fetchNamespaces.execute({ + // done(function(namespaces) { + // ... + // }); + PR.prototype.fetchNamespaces = function() { + return this._push("fetchNamespaces"); + }; + + // __fetchTrigger(id)__ + // + // Example + // + // pr.fetchTrigger("my-trigger").execute({ + // done: function(triggerConfig) { + // ... + // } + // }); + PR.prototype.fetchTrigger = function(id) { + return this._push("fetchTrigger", [q(id)].join(", ")); + }; + + // __fetchTriggerIds()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns an array of Trigger id strings. + // + // Example + // + // pr.fetchTriggerIds().execute({ + // done: function(ids) { + // ... + // } + // }); + PR.prototype.fetchTriggerIds = function() { + return this._push("fetchTriggerIds"); + }; + + // __fetchUserId()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the Purple Robot configured user id string. + // + // Example + // + // pr.fetchUserId().execute().done(function(userId) { + // console.log(userId); + // }); + PR.prototype.fetchUserId = function() { + return this._push("fetchUserId"); + }; + + // __fetchWidget()__ + PR.prototype.fetchWidget = function(id) { + throw new Error("PurpleRobot.prototype.fetchWidget not implemented yet"); + }; + + // __fireTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Fires the trigger immediately. + // + // Example + // + // pr.fireTrigger("my-trigger"); + PR.prototype.fireTrigger = function(id) { + return this._push("fireTrigger", q(id)); + }; + + // __formatDate(date)__ + PR.prototype.formatDate = function(date) { + throw new Error("PurpleRobot.prototype.formatDate not implemented yet"); + }; + + // __launchApplication(name)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Launches the specified Android application as if the user had pressed + // the icon. + // + // Example + // + // pr.launchApplication("edu.northwestern.cbits.awesome_app"); + PR.prototype.launchApplication = function(name) { + return this._push("launchApplication", q(name)); + }; + + // __launchInternalUrl(url)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Launches a URL within the Purple Robot application WebView. + // + // Example + // + // pr.launchInternalUrl("https://www.google.com"); + PR.prototype.launchInternalUrl = function(url) { + return this._push("launchInternalUrl", [q(url)].join(", ")); + }; + + // __launchUrl(url)__ + // + // `@param {string} url` The URL to request. + // `@returns {Object}` A new object instance. + // + // Opens a new browser tab and requests the URL. + // + // Example + // + // pr.launchUrl("https://www.google.com"); + PR.prototype.launchUrl = function(url) { + return this._push("launchUrl", q(url)); + }; + + // __loadLibrary(name)__ + PR.prototype.loadLibrary = function(name) { + throw new Error("PurpleRobot.prototype.loadLibrary not implemented yet"); + }; + + // __log(name, value)__ + // + // `@param {string} name` The prefix to the log message. + // `@param {*} value` The contents of the log message. + // `@returns {Object}` A new PurpleRobot instance. + // + // Logs an event to the PR event capturing service as well as the Android log. + // + // Example + // + // pr.log("zing", { wing: "ding" }); + PR.prototype.log = function(name, value) { + return this._push("log", q(name) + ", " + JSON.stringify(value)); + }; + + // __models()__ + PR.prototype.models = function() { + throw new Error("PurpleRobot.prototype.models not implemented yet"); + }; + + // __now()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Calculates a string representing the current date. + // + // Example + // + // pr.now().execute({ + // done: function(dateStr) { + // ... + // } + // }); + PR.prototype.now = function() { + return this._push("now"); + }; + + // __packageForApplicationName(applicationName)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the package name string for the application. + // + // Example + // + // pr.packageForApplicationName("edu.northwestern.cbits.purple_robot_manager").execute({ + // done: function(package) { + // ... + // } + // }); + PR.prototype.packageForApplicationName = function(applicationName) { + return this._push("packageForApplicationName", [q(applicationName)].join(", ")); + }; + + // __parseDate(dateString)__ + PR.prototype.parseDate = function(dateString) { + throw new Error("PurpleRobot.prototype.parseDate not implemented yet"); + }; + + // __persistEncryptedString(key, value, namespace)__ + // __persistEncryptedString(key, value)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Stores the *value* within the *namespace*, identified by the *key*. + // + // Examples + // + // pr.persistEncryptedString("foo", "bar", "app Q"); + // pr.persistEncryptedString("foo", "bar"); + PR.prototype.persistEncryptedString = function(key, value, namespace) { + if (typeof namespace === "undefined") { + return this._push("persistEncryptedString", q(key) + ", " + q(value)); + } else { + return this._push("persistEncryptedString", q(namespace) + ", " + q(key) + ", " + q(value)); + } + }; + + // __playDefaultTone()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Plays a default Android notification sound. + // + // Example + // + // pr.playDefaultTone(); + PR.prototype.playDefaultTone = function() { + return this._push("playDefaultTone"); + }; + + // __playTone(tone)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Plays an existing notification sound on an Android phone. + // + // Example + // + // pr.playTone("Hojus"); + PR.prototype.playTone = function(tone) { + return this._push("playTone", q(tone)); + }; + + // __predictions()__ + PR.prototype.predictions = function() { + throw new Error("PurpleRobot.prototype.predictions not implemented yet"); + }; + + // __readings()__ + PR.prototype.readings = function() { + throw new Error("PurpleRobot.prototype.readings not implemented yet"); + }; + + // __readUrl(url)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Attempts to GET a URL and return the body as a string. + // + // Example + // + // pr.readUrl("http://www.northwestern.edu"); + PR.prototype.readUrl = function(url) { + return this._push("readUrl", q(url)); + }; + + // __resetTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Resets the trigger. __Note: the default implementation of this method in + // PurpleRobot does nothing.__ + // + // Example + // + // pr.resetTrigger("my-trigger"); + PR.prototype.resetTrigger = function(id) { + return this._push("resetTrigger", q(id)); + }; + + // __runScript(script)__ + // + // `@param {Object} script` A PurpleRobot instance. + // `@returns {Object}` A new PurpleRobot instance. + // + // Runs a script immediately. + // + // Example + // + // pr.runScript(pr.emitToast("toasty")); + PR.prototype.runScript = function(script) { + return this._push("runScript", script.toJson()); + }; + + // __scheduleScript(name, minutes, script)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Schedules a script to run a specified number of minutes in the future + // (calculated from when this script is evaluated). + // + // Example + // + // pr.scheduleScript("fancy script", 5, pr.playDefaultTone()); + PR.prototype.scheduleScript = function(name, minutes, script) { + var timestampStr = "(function() { var now = new Date(); var scheduled = new Date(now.getTime() + " + minutes + " * 60000); var pad = function(n) { return n < 10 ? '0' + n : n; }; return '' + scheduled.getFullYear() + pad(scheduled.getMonth() + 1) + pad(scheduled.getDate()) + 'T' + pad(scheduled.getHours()) + pad(scheduled.getMinutes()) + pad(scheduled.getSeconds()); })()"; + + return this._push("scheduleScript", q(name) + ", " + timestampStr + ", " + script.toJson()); + }; + + // __setUserId(value)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Sets the Purple Robot user id string. + // + // Example + // + // pr.setUserId("Bobbie"); + PR.prototype.setUserId = function(value) { + return this._push("setUserId", q(value)); + }; + + // __showApplicationLaunchNotification(options)__ + PR.prototype.showApplicationLaunchNotification = function(options) { + throw new Error("PurpleRobot.prototype.showApplicationLaunchNotification not implemented yet"); + }; + + // __showNativeDialog(options)__ + // + // `@param {Object} options` Parameterized options for the dialog, including: + // `{string} title` the dialog title, `{string} message` the body text, + // `{string} buttonLabelA` the first button label, `{Object} scriptA` a + // PurpleRobot instance to be run when button A is pressed, `{string} + // buttonLabelB` the second button label, `{Object} scriptB` a PurpleRobot + // instance to be run when button B is pressed, `{string} tag (optional)` an + // id to be associated with the dialog, `{number} priority` an importance + // associated with the dialog that informs stacking where higher means more + // important. + // `@returns {Object}` A new PurpleRobot instance. + // + // Opens an Android dialog with two buttons, *A* and *B*, and associates + // scripts to be run when each is pressed. + // + // Example + // + // pr.showNativeDialog({ + // title: "My Dialog", + // message: "What say you?", + // buttonLabelA: "cheers", + // scriptA: pr.emitToast("cheers!"), + // buttonLabelB: "boo", + // scriptB: pr.emitToast("boo!"), + // tag: "my-dialog", + // priority: 3 + // }); + PR.prototype.showNativeDialog = function(options) { + var tag = options.tag || null; + var priority = options.priority || 0; + + return this._push("showNativeDialog", [q(options.title), + q(options.message), q(options.buttonLabelA), + q(options.buttonLabelB), options.scriptA.toJson(), + options.scriptB.toJson(), JSON.stringify(tag), priority].join(", ")); + }; + + // __showScriptNotification(options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds a notification to the the tray and atttaches a script to be run when + // it is pressed. + // + // Example + // + // pr.showScriptNotification({ + // title: "My app", + // message: "Press here", + // isPersistent: true, + // isSticky: false, + // script: pr.emitToast("You pressed it") + // }); + PR.prototype.showScriptNotification = function(options) { + options = options || {}; + + return this._push("showScriptNotification", [q(options.title), + q(options.message), options.isPersistent, options.isSticky, + options.script.toJson()].join(", ")); + }; + + // __updateConfig(options)__ + // + // `@param {Object} options` The options to configure. Included: + // `config_data_server_uri` + // `config_enable_data_server` + // `config_feature_weather_underground_enabled` + // `config_http_liberal_ssl` + // `config_last_weather_underground_check` + // `config_probe_running_software_enabled` + // `config_probe_running_software_frequency` + // `config_probes_enabled` + // `config_restrict_data_wifi` + // `@returns {Object}` A new PurpleRobot instance. + // + // Example + // + // pr.updateConfig({ + // config_enable_data_server: true, + // config_restrict_data_wifi: false + // }); + PR.prototype.updateConfig = function(options) { + return this._push("updateConfig", [JSON.stringify(options)].join(", ")); + }; + + // __updateTrigger(options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds or updates a Purple Robot trigger to be run at a time and with a + // recurrence rule. + // + // Example + // + // The following would emit a toast daily at the same time: + // + // pr.updateTrigger({ + // script: pr.emitToast("butter"), + // startAt: "20140505T020304", + // endAt: "20140505T020404" + // }); + PR.prototype.updateTrigger = function(options) { + options = options || {}; + + var timestamp = (new Date()).getTime(); + var triggerId = options.triggerId || ("TRIGGER-" + timestamp); + + function formatDate (date){ + function formatYear(date){ + return date.getFullYear(); + } + + function formatMonth(date){ + return ("0" + parseInt(1+date.getMonth())).slice(-2); + } + + function formatDays(date){ + return ("0" + parseInt(date.getDate())).slice(-2); + } + + function formatHours(date){ + return ("0" + date.getHours()).slice(-2); + } + + function formatMinutes(date){ + return ("0" + date.getMinutes()).slice(-2); + } + + function formatSeconds (date){ + return ("0" + date.getSeconds()).slice(-2); + } + + return formatYear(date) + formatMonth(date) + formatDays(date) + "T" + + formatHours(date) + formatMinutes(date) + formatSeconds(date); + + } + + var triggerJson = JSON.stringify({ + type: options.type || "datetime", + name: triggerId, + identifier: triggerId, + action: options.script.toString(), + datetime_start: formatDate(options.startAt), + datetime_end: formatDate(options.endAt), + datetime_repeat: options.repeatRule || "FREQ=DAILY;INTERVAL=1", + datetime_random: (options.random === true) || false, + fire_on_boot: true && (options.fire_on_boot !== false) + }); + + return this._push("updateTrigger", q(triggerId) + ", " + triggerJson); + }; + + // __updateWidget(parameters)__ + PR.prototype.updateWidget = function(parameters) { + throw new Error("PurpleRobot.prototype.updateWidget not implemented yet"); + }; + + // __version()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the current version string for Purple Robot. + // + // Example + // + // pr.version(); + PR.prototype.version = function() { + return this._push("version"); + }; + + // __vibrate(pattern)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Vibrates the phone with a preset pattern. + // + // Examples + // + // pr.vibrate("buzz"); + // pr.vibrate("blip"); + // pr.vibrate("sos"); + PR.prototype.vibrate = function(pattern) { + pattern = pattern || "buzz"; + + return this._push("vibrate", q(pattern)); + }; + + // __widgets()__ + PR.prototype.widgets = function() { + throw new Error("PurpleRobot.prototype.widgets not implemented yet"); + }; + + // ## More complex examples + // + // Example of nesting + // + // var playTone = pr.playDefaultTone(); + // var toast = pr.emitToast("sorry"); + // var dialog1 = pr.showNativeDialog( + // "dialog 1", "are you happy?", "Yes", "No", playTone, toast + // ); + // pr.scheduleScript("dialog 1", 10, "minutes", dialog1) + // .execute(); + // + // Example of chaining + // + // pr.playDefaultTone().emitToast("hey there").execute(); + + root.PurpleRobot = PurpleRobot; +}.call(this)); diff --git a/platforms/android/assets/www/lib/PurpleRobotClient/purple-robot.min.js b/platforms/android/assets/www/lib/PurpleRobotClient/purple-robot.min.js new file mode 100644 index 00000000..e8cd1496 --- /dev/null +++ b/platforms/android/assets/www/lib/PurpleRobotClient/purple-robot.min.js @@ -0,0 +1,15 @@ +(function(){function b(a){a=a||{};this.className="PurpleRobot";this._serverUrl=a.serverUrl||"http://localhost:12345/json/submit";this._script=a.script||""}function e(a,b,c){this.methodName=a;this.argument=b;this.expectedArgument=c;this.message=' received an unexpected argument "';this.toString=function(){return["PurpleRobot.",this.methodName,this.message,this.argument,'" expected: ',this.expectedArgument].join("")}}function c(a){return"'"+a+"'"}var f=window;b.apiVersion="1.5.10.0";b.setEnvironment= +function(a){if("production"!==a&&"debug"!==a&&"web"!==a)throw new e("setEnvironment",a,'["production", "debug", "web"]');this.env=a;return this};b.prototype._push=function(a,c){var d=["PurpleRobot.",a,"(",c,");"].join("");return new b({serverUrl:this._serverUrl,script:[this._script,d].join(" ").trim()})};b.prototype._stringify=function(a){return null!==a&&"object"===typeof a&&a.className===this.className?a.toStringExpression():JSON.stringify(a)};b.prototype.toString=function(){return this._script}; +b.prototype.toStringExpression=function(){return"(function() { return "+this._script+" })()"};b.prototype.toJson=function(){return JSON.stringify(this.toString())};b.prototype.execute=function(a){var c=JSON.stringify({command:"execute_script",script:this.toString()});if("web"!==b.env){var d=new XMLHttpRequest;d.onreadystatechange=function(){a&&d.readyState===XMLHttpRequest.DONE&&(null===d.response?a.fail&&a.fail():a.done&&a.done(JSON.parse(d.response).payload))};d.open("POST",this._serverUrl,!0); +d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.send("json="+c)}else console.log('PurpleRobot POSTing to "'+this._serverUrl+'": '+c)};b.prototype.save=function(){localStorage.prQueue=localStorage.prQueue||"";localStorage.prQueue+=this.toString();return this};b.prototype.restore=function(){localStorage.prQueue=localStorage.prQueue||"";this._script=localStorage.prQueue;return this};b.prototype.destroy=function(){delete localStorage.prQueue;return this};b.prototype.isEqual=function(a, +c){var d=this._stringify(a)+" == "+this._stringify(c);return new b({serverUrl:this._serverUrl,script:[this._script,d].join(" ").trim()})};b.prototype.ifThenElse=function(a,c,d){return new b({serverUrl:this._serverUrl,script:[this._script,"if ("+a.toString()+") { "+c.toString()+" } else { "+d.toString()+" }"].join(" ").trim()})};b.prototype.doNothing=function(){return new b({serverUrl:this._serverUrl,script:this._script})};b.prototype.addNamespace=function(a){return this._push("addNamespace",""+c(a))}; +b.prototype.broadcastIntent=function(a,b){return this._push("broadcastIntent",[c(a),JSON.stringify(b||null)].join(", "))};b.prototype.cancelScriptNotification=function(){return this._push("cancelScriptNotification")};b.prototype.clearNativeDialogs=function(a){return a?this._push("clearNativeDialogs",c(a)):this._push("clearNativeDialogs")};b.prototype.clearTriggers=function(){return this._push("clearTriggers")};b.prototype.dateFromTimestamp=function(a){return this._push("dateFromTimestamp",a)};b.prototype.deleteTrigger= +function(a){return this._push("deleteTrigger",c(a))};b.prototype.disableTrigger=function(a){return this._push("disableTrigger",c(a))};b.prototype.emitReading=function(a,b){return this._push("emitReading",c(a)+", "+JSON.stringify(b))};b.prototype.emitToast=function(a,b){b="boolean"===typeof b?b:!0;return this._push("emitToast",c(a)+", "+b)};b.prototype.enableTrigger=function(a){return this._push("enableTrigger",c(a))};b.prototype.fetchConfig=function(){return this._push("fetchConfig")};b.prototype.fetchEncryptedString= +function(a,b){return"undefined"===typeof b?this._push("fetchEncryptedString",c(a)):this._push("fetchEncryptedString",c(b)+", "+c(a))};b.prototype.fetchNamespace=function(a){return this._push("fetchNamespace",""+c(a))};b.prototype.fetchNamespaces=function(){return this._push("fetchNamespaces")};b.prototype.fetchTrigger=function(a){return this._push("fetchTrigger",""+c(a))};b.prototype.fetchTriggerIds=function(){return this._push("fetchTriggerIds")};b.prototype.fetchUserId=function(){return this._push("fetchUserId")}; +b.prototype.fetchWidget=function(a){throw Error("PurpleRobot.prototype.fetchWidget not implemented yet");};b.prototype.fireTrigger=function(a){return this._push("fireTrigger",c(a))};b.prototype.formatDate=function(a){throw Error("PurpleRobot.prototype.formatDate not implemented yet");};b.prototype.launchApplication=function(a){return this._push("launchApplication",c(a))};b.prototype.launchInternalUrl=function(a){return this._push("launchInternalUrl",""+c(a))};b.prototype.launchUrl=function(a){return this._push("launchUrl", +c(a))};b.prototype.loadLibrary=function(a){throw Error("PurpleRobot.prototype.loadLibrary not implemented yet");};b.prototype.log=function(a,b){return this._push("log",c(a)+", "+JSON.stringify(b))};b.prototype.models=function(){throw Error("PurpleRobot.prototype.models not implemented yet");};b.prototype.now=function(){return this._push("now")};b.prototype.packageForApplicationName=function(a){return this._push("packageForApplicationName",""+c(a))};b.prototype.parseDate=function(a){throw Error("PurpleRobot.prototype.parseDate not implemented yet"); +};b.prototype.persistEncryptedString=function(a,b,d){return"undefined"===typeof d?this._push("persistEncryptedString",c(a)+", "+c(b)):this._push("persistEncryptedString",c(d)+", "+c(a)+", "+c(b))};b.prototype.playDefaultTone=function(){return this._push("playDefaultTone")};b.prototype.playTone=function(a){return this._push("playTone",c(a))};b.prototype.predictions=function(){throw Error("PurpleRobot.prototype.predictions not implemented yet");};b.prototype.readings=function(){throw Error("PurpleRobot.prototype.readings not implemented yet"); +};b.prototype.readUrl=function(a){return this._push("readUrl",c(a))};b.prototype.resetTrigger=function(a){return this._push("resetTrigger",c(a))};b.prototype.runScript=function(a){return this._push("runScript",a.toJson())};b.prototype.scheduleScript=function(a,b,d){b="(function() { var now = new Date(); var scheduled = new Date(now.getTime() + "+b+" * 60000); var pad = function(n) { return n < 10 ? '0' + n : n; }; return '' + scheduled.getFullYear() + pad(scheduled.getMonth() + 1) + pad(scheduled.getDate()) + 'T' + pad(scheduled.getHours()) + pad(scheduled.getMinutes()) + pad(scheduled.getSeconds()); })()"; +return this._push("scheduleScript",c(a)+", "+b+", "+d.toJson())};b.prototype.setUserId=function(a){return this._push("setUserId",c(a))};b.prototype.showApplicationLaunchNotification=function(a){throw Error("PurpleRobot.prototype.showApplicationLaunchNotification not implemented yet");};b.prototype.showNativeDialog=function(a){var b=a.tag||null,d=a.priority||0;return this._push("showNativeDialog",[c(a.title),c(a.message),c(a.buttonLabelA),c(a.buttonLabelB),a.scriptA.toJson(),a.scriptB.toJson(),JSON.stringify(b), +d].join(", "))};b.prototype.showScriptNotification=function(a){a=a||{};return this._push("showScriptNotification",[c(a.title),c(a.message),a.isPersistent,a.isSticky,a.script.toJson()].join(", "))};b.prototype.updateConfig=function(a){return this._push("updateConfig",""+JSON.stringify(a))};b.prototype.updateTrigger=function(a){a=a||{};var b=(new Date).getTime(),b=a.triggerId||"TRIGGER-"+b;a=JSON.stringify({type:a.type||"datetime",name:b,identifier:b,action:a.script.toString(),datetime_start:a.startAt, +datetime_end:a.endAt,datetime_repeat:a.repeatRule||"FREQ=DAILY;INTERVAL=1"});return this._push("updateTrigger",c(b)+", "+a)};b.prototype.updateWidget=function(a){throw Error("PurpleRobot.prototype.updateWidget not implemented yet");};b.prototype.version=function(){return this._push("version")};b.prototype.vibrate=function(a){return this._push("vibrate",c(a||"buzz"))};b.prototype.widgets=function(){throw Error("PurpleRobot.prototype.widgets not implemented yet");};f.PurpleRobot=b}).call(this); diff --git a/platforms/android/assets/www/lib/angular-animate/.bower.json b/platforms/android/assets/www/lib/angular-animate/.bower.json new file mode 100644 index 00000000..19570b38 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-animate/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-animate", + "version": "1.2.16", + "main": "./angular-animate.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-animate", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "4eccd8ec8356a33bf3a98958d7a73b71290d3985" + }, + "_source": "git://github.com/angular/bower-angular-animate.git", + "_target": "1.2.16", + "_originalSource": "angular-animate" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/angular-animate/README.md b/platforms/android/assets/www/lib/angular-animate/README.md new file mode 100644 index 00000000..de4c61b8 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-animate/README.md @@ -0,0 +1,54 @@ +# bower-angular-animate + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-animate +``` + +Add a ` +``` + +And add `ngAnimate` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngAnimate']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-animate/angular-animate.js b/platforms/android/assets/www/lib/angular-animate/angular-animate.js new file mode 100644 index 00000000..9a0af80f --- /dev/null +++ b/platforms/android/assets/www/lib/angular-animate/angular-animate.js @@ -0,0 +1,1616 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/* jshint maxlen: false */ + +/** + * @ngdoc module + * @name ngAnimate + * @description + * + * # ngAnimate + * + * The `ngAnimate` module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives. + * + * + *
+ * + * # Usage + * + * To see animations in action, all that is required is to define the appropriate CSS classes + * or to register a JavaScript animation via the myModule.animation() function. The directives that support animation automatically are: + * `ngRepeat`, `ngInclude`, `ngIf`, `ngSwitch`, `ngShow`, `ngHide`, `ngView` and `ngClass`. Custom directives can take advantage of animation + * by using the `$animate` service. + * + * Below is a more detailed breakdown of the supported animation events provided by pre-existing ng directives: + * + * | Directive | Supported Animations | + * |---------------------------------------------------------- |----------------------------------------------------| + * | {@link ng.directive:ngRepeat#usage_animations ngRepeat} | enter, leave and move | + * | {@link ngRoute.directive:ngView#usage_animations ngView} | enter and leave | + * | {@link ng.directive:ngInclude#usage_animations ngInclude} | enter and leave | + * | {@link ng.directive:ngSwitch#usage_animations ngSwitch} | enter and leave | + * | {@link ng.directive:ngIf#usage_animations ngIf} | enter and leave | + * | {@link ng.directive:ngClass#usage_animations ngClass} | add and remove | + * | {@link ng.directive:ngShow#usage_animations ngShow & ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#usage_animations form} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link ng.directive:ngModel#usage_animations ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * + * You can find out more information about animations upon visiting each directive page. + * + * Below is an example of how to apply animations to a directive that supports animation hooks: + * + * ```html + * + * + * + * + * ``` + * + * Keep in mind that if an animation is running, any child elements cannot be animated until the parent element's + * animation has completed. + * + *

CSS-defined Animations

+ * The animate service will automatically apply two CSS classes to the animated element and these two CSS classes + * are designed to contain the start and end CSS styling. Both CSS transitions and keyframe animations are supported + * and can be used to play along with this naming structure. + * + * The following code below demonstrates how to perform animations using **CSS transitions** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * The following code below demonstrates how to perform animations using **CSS animations** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * Both CSS3 animations and transitions can be used together and the animate service will figure out the correct duration and delay timing. + * + * Upon DOM mutation, the event class is added first (something like `ng-enter`), then the browser prepares itself to add + * the active class (in this case `ng-enter-active`) which then triggers the animation. The animation module will automatically + * detect the CSS code to determine when the animation ends. Once the animation is over then both CSS classes will be + * removed from the DOM. If a browser does not support CSS transitions or CSS animations then the animation will start and end + * immediately resulting in a DOM element that is at its final state. This final state is when the DOM element + * has no CSS transition/animation classes applied to it. + * + *

CSS Staggering Animations

+ * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module, as of 1.2.0, supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * -webkit-transition: 1s linear all; + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * -webkit-transition-delay: 0.1s; + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then these two values + * must be set to 0 to avoid an accidental CSS inheritance */ + * -webkit-transition-duration: 0s; + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if more than 10ms has passed after the last animation has been fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * $timeout(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * }, 100, false); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + *

JavaScript-defined Animations

+ * In the event that you do not want to use CSS3 transitions or CSS3 animations or if you wish to offer animations on browsers that do not + * yet support CSS transitions/animations, then you can make use of JavaScript animations defined inside of your AngularJS module. + * + * ```js + * //!annotate="YourApp" Your AngularJS Module|Replace this or ngModule with the module that you used to define your application. + * var ngModule = angular.module('YourApp', ['ngAnimate']); + * ngModule.animation('.my-crazy-animation', function() { + * return { + * enter: function(element, done) { + * //run the animation here and call done when the animation is complete + * return function(cancelled) { + * //this (optional) function will be called when the animation + * //completes or when the animation is cancelled (the cancelled + * //flag will be set to true if cancelled). + * }; + * }, + * leave: function(element, done) { }, + * move: function(element, done) { }, + * + * //animation that can be triggered before the class is added + * beforeAddClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is added + * addClass: function(element, className, done) { }, + * + * //animation that can be triggered before the class is removed + * beforeRemoveClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is removed + * removeClass: function(element, className, done) { } + * }; + * }); + * ``` + * + * JavaScript-defined animations are created with a CSS-like class selector and a collection of events which are set to run + * a javascript callback function. When an animation is triggered, $animate will look for a matching animation which fits + * the element's CSS class attribute value and then run the matching animation event function (if found). + * In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function will + * be executed. It should be also noted that only simple, single class selectors are allowed (compound class selectors are not supported). + * + * Within a JavaScript animation, an object containing various event callback animation functions is expected to be returned. + * As explained above, these callbacks are triggered based on the animation event. Therefore if an enter animation is run, + * and the JavaScript animation is found, then the enter callback will handle that animation (in addition to the CSS keyframe animation + * or transition code that is defined via a stylesheet). + * + */ + +angular.module('ngAnimate', ['ng']) + + /** + * @ngdoc provider + * @name $animateProvider + * @description + * + * The `$animateProvider` allows developers to register JavaScript animation event handlers directly inside of a module. + * When an animation is triggered, the $animate service will query the $animate service to find any animations that match + * the provided name value. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + + //this private service is only used within CSS-enabled animations + //IE8 + IE9 do not support rAF natively, but that is fine since they + //also don't support transitions and keyframes which means that the code + //below will never be used by the two browsers. + .factory('$$animateReflow', ['$$rAF', '$document', function($$rAF, $document) { + var bod = $document[0].body; + return function(fn) { + //the returned function acts as the cancellation function + return $$rAF(function() { + //the line below will force the browser to perform a repaint + //so that all the animated elements within the animation frame + //will be properly updated and drawn on screen. This is + //required to perform multi-class CSS based animations with + //Firefox. DO NOT REMOVE THIS LINE. + var a = bod.offsetWidth + 1; + fn(); + }); + }; + }]) + + .config(['$provide', '$animateProvider', function($provide, $animateProvider) { + var noop = angular.noop; + var forEach = angular.forEach; + var selectors = $animateProvider.$$selectors; + + var ELEMENT_NODE = 1; + var NG_ANIMATE_STATE = '$$ngAnimateState'; + var NG_ANIMATE_CLASS_NAME = 'ng-animate'; + var rootAnimateState = {running: true}; + + function extractElementNode(element) { + for(var i = 0; i < element.length; i++) { + var elm = element[i]; + if(elm.nodeType == ELEMENT_NODE) { + return elm; + } + } + } + + function stripCommentsFromElement(element) { + return angular.element(extractElementNode(element)); + } + + function isMatchingElement(elm1, elm2) { + return extractElementNode(elm1) == extractElementNode(elm2); + } + + $provide.decorator('$animate', ['$delegate', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', + function($delegate, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document) { + + var globalAnimationCounter = 0; + $rootElement.data(NG_ANIMATE_STATE, rootAnimateState); + + // disable animations during bootstrap, but once we bootstrapped, wait again + // for another digest until enabling animations. The reason why we digest twice + // is because all structural animations (enter, leave and move) all perform a + // post digest operation before animating. If we only wait for a single digest + // to pass then the structural animation would render its animation on page load. + // (which is what we're trying to avoid when the application first boots up.) + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + rootAnimateState.running = false; + }); + }); + + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + function lookup(name) { + if (name) { + var matches = [], + flagMap = {}, + classes = name.substr(1).split('.'); + + //the empty string value is the default animation + //operation which performs CSS transition and keyframe + //animations sniffing. This is always included for each + //element animation procedure if the browser supports + //transitions and/or keyframe animations. The default + //animation is added to the top of the list to prevent + //any previous animations from affecting the element styling + //prior to the element being animated. + if ($sniffer.transitions || $sniffer.animations) { + matches.push($injector.get(selectors[''])); + } + + for(var i=0; i < classes.length; i++) { + var klass = classes[i], + selectorFactoryName = selectors[klass]; + if(selectorFactoryName && !flagMap[klass]) { + matches.push($injector.get(selectorFactoryName)); + flagMap[klass] = true; + } + } + return matches; + } + } + + function animationRunner(element, animationEvent, className) { + //transcluded directives may sometimes fire an animation using only comment nodes + //best to catch this early on to prevent any animation operations from occurring + var node = element[0]; + if(!node) { + return; + } + + var isSetClassOperation = animationEvent == 'setClass'; + var isClassBased = isSetClassOperation || + animationEvent == 'addClass' || + animationEvent == 'removeClass'; + + var classNameAdd, classNameRemove; + if(angular.isArray(className)) { + classNameAdd = className[0]; + classNameRemove = className[1]; + className = classNameAdd + ' ' + classNameRemove; + } + + var currentClassName = element.attr('class'); + var classes = currentClassName + ' ' + className; + if(!isAnimatableClassName(classes)) { + return; + } + + var beforeComplete = noop, + beforeCancel = [], + before = [], + afterComplete = noop, + afterCancel = [], + after = []; + + var animationLookup = (' ' + classes).replace(/\s+/g,'.'); + forEach(lookup(animationLookup), function(animationFactory) { + var created = registerAnimation(animationFactory, animationEvent); + if(!created && isSetClassOperation) { + registerAnimation(animationFactory, 'addClass'); + registerAnimation(animationFactory, 'removeClass'); + } + }); + + function registerAnimation(animationFactory, event) { + var afterFn = animationFactory[event]; + var beforeFn = animationFactory['before' + event.charAt(0).toUpperCase() + event.substr(1)]; + if(afterFn || beforeFn) { + if(event == 'leave') { + beforeFn = afterFn; + //when set as null then animation knows to skip this phase + afterFn = null; + } + after.push({ + event : event, fn : afterFn + }); + before.push({ + event : event, fn : beforeFn + }); + return true; + } + } + + function run(fns, cancellations, allCompleteFn) { + var animations = []; + forEach(fns, function(animation) { + animation.fn && animations.push(animation); + }); + + var count = 0; + function afterAnimationComplete(index) { + if(cancellations) { + (cancellations[index] || noop)(); + if(++count < animations.length) return; + cancellations = null; + } + allCompleteFn(); + } + + //The code below adds directly to the array in order to work with + //both sync and async animations. Sync animations are when the done() + //operation is called right away. DO NOT REFACTOR! + forEach(animations, function(animation, index) { + var progress = function() { + afterAnimationComplete(index); + }; + switch(animation.event) { + case 'setClass': + cancellations.push(animation.fn(element, classNameAdd, classNameRemove, progress)); + break; + case 'addClass': + cancellations.push(animation.fn(element, classNameAdd || className, progress)); + break; + case 'removeClass': + cancellations.push(animation.fn(element, classNameRemove || className, progress)); + break; + default: + cancellations.push(animation.fn(element, progress)); + break; + } + }); + + if(cancellations && cancellations.length === 0) { + allCompleteFn(); + } + } + + return { + node : node, + event : animationEvent, + className : className, + isClassBased : isClassBased, + isSetClassOperation : isSetClassOperation, + before : function(allCompleteFn) { + beforeComplete = allCompleteFn; + run(before, beforeCancel, function() { + beforeComplete = noop; + allCompleteFn(); + }); + }, + after : function(allCompleteFn) { + afterComplete = allCompleteFn; + run(after, afterCancel, function() { + afterComplete = noop; + allCompleteFn(); + }); + }, + cancel : function() { + if(beforeCancel) { + forEach(beforeCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + beforeComplete(true); + } + if(afterCancel) { + forEach(afterCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + afterComplete(true); + } + } + }; + } + + /** + * @ngdoc service + * @name $animate + * @function + * + * @description + * The `$animate` service provides animation detection support while performing DOM operations (enter, leave and move) as well as during addClass and removeClass operations. + * When any of these operations are run, the $animate service + * will examine any JavaScript-defined animations (which are defined by using the $animateProvider provider object) + * as well as any CSS-defined animations against the CSS classes present on the element once the DOM operation is run. + * + * The `$animate` service is used behind the scenes with pre-existing directives and animation with these directives + * will work out of the box without any extra configuration. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + return { + /** + * @ngdoc method + * @name $animate#enter + * @function + * + * @description + * Appends the element to the parentElement element that resides in the document and then runs the enter animation. Once + * the animation is started, the following CSS classes will be present on the element for the duration of the animation: + * + * Below is a breakdown of each step that occurs during enter animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.enter(...) is called | class="my-animation" | + * | 2. element is inserted into the parentElement element or beside the afterElement element | class="my-animation" | + * | 3. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 4. the .ng-enter class is added to the element | class="my-animation ng-animate ng-enter" | + * | 5. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-enter" | + * | 6. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-enter" | + * | 7. the .ng-enter-active and .ng-animate-active classes are added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-enter ng-enter-active" | + * | 8. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-enter ng-enter-active" | + * | 9. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * @param {DOMElement} element the element that will be the focus of the enter animation + * @param {DOMElement} parentElement the parent element of the element that will be the focus of the enter animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the enter animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + enter : function(element, parentElement, afterElement, doneCallback) { + this.enabled(false, element); + $delegate.enter(element, parentElement, afterElement); + $rootScope.$$postDigest(function() { + element = stripCommentsFromElement(element); + performAnimation('enter', 'ng-enter', element, parentElement, afterElement, noop, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#leave + * @function + * + * @description + * Runs the leave animation operation and, upon completion, removes the element from the DOM. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during leave animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.leave(...) is called | class="my-animation" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 3. the .ng-leave class is added to the element | class="my-animation ng-animate ng-leave" | + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-leave" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-leave" | + * | 6. the .ng-leave-active and .ng-animate-active classes is added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-leave ng-leave-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-leave ng-leave-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 9. The element is removed from the DOM | ... | + * | 10. The doneCallback() callback is fired (if provided) | ... | + * + * @param {DOMElement} element the element that will be the focus of the leave animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + leave : function(element, doneCallback) { + cancelChildAnimations(element); + this.enabled(false, element); + $rootScope.$$postDigest(function() { + performAnimation('leave', 'ng-leave', stripCommentsFromElement(element), null, null, function() { + $delegate.leave(element); + }, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#move + * @function + * + * @description + * Fires the move DOM operation. Just before the animation starts, the animate service will either append it into the parentElement container or + * add the element directly after the afterElement element if present. Then the move animation will be run. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during move animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.move(...) is called | class="my-animation" | + * | 2. element is moved into the parentElement element or beside the afterElement element | class="my-animation" | + * | 3. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 4. the .ng-move class is added to the element | class="my-animation ng-animate ng-move" | + * | 5. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-move" | + * | 6. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-move" | + * | 7. the .ng-move-active and .ng-animate-active classes is added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-move ng-move-active" | + * | 8. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-move ng-move-active" | + * | 9. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * @param {DOMElement} element the element that will be the focus of the move animation + * @param {DOMElement} parentElement the parentElement element of the element that will be the focus of the move animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the move animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + move : function(element, parentElement, afterElement, doneCallback) { + cancelChildAnimations(element); + this.enabled(false, element); + $delegate.move(element, parentElement, afterElement); + $rootScope.$$postDigest(function() { + element = stripCommentsFromElement(element); + performAnimation('move', 'ng-move', element, parentElement, afterElement, noop, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#addClass + * + * @description + * Triggers a custom animation event based off the className variable and then attaches the className value to the element as a CSS class. + * Unlike the other animation methods, the animate service will suffix the className value with {@type -add} in order to provide + * the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if no CSS transitions + * or keyframes are defined on the -add or base CSS class). + * + * Below is a breakdown of each step that occurs during addClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |------------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.addClass(element, 'super') is called | class="my-animation" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 3. the .super-add class are added to the element | class="my-animation ng-animate super-add" | + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate super-add" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate super-add" | + * | 6. the .super, .super-add-active and .ng-animate-active classes are added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active super super-add super-add-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation super super-add super-add-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation super" | + * | 9. The super class is kept on the element | class="my-animation super" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation super" | + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be added to the element and then animated + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + addClass : function(element, className, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('addClass', className, element, null, null, function() { + $delegate.addClass(element, className); + }, doneCallback); + }, + + /** + * @ngdoc method + * @name $animate#removeClass + * + * @description + * Triggers a custom animation event based off the className variable and then removes the CSS class provided by the className value + * from the element. Unlike the other animation methods, the animate service will suffix the className value with {@type -remove} in + * order to provide the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if + * no CSS transitions or keyframes are defined on the -remove or base CSS classes). + * + * Below is a breakdown of each step that occurs during removeClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |-----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.removeClass(element, 'super') is called | class="my-animation super" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation super ng-animate" | + * | 3. the .super-remove class are added to the element | class="my-animation super ng-animate super-remove"| + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation super ng-animate super-remove" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation super ng-animate super-remove" | + * | 6. the .super-remove-active and .ng-animate-active classes are added and .super is removed (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active super-remove super-remove-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active super-remove super-remove-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 9. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be animated and then removed from the element + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + removeClass : function(element, className, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('removeClass', className, element, null, null, function() { + $delegate.removeClass(element, className); + }, doneCallback); + }, + + /** + * + * @ngdoc function + * @name $animate#setClass + * @function + * @description Adds and/or removes the given CSS classes to and from the element. + * Once complete, the done() callback will be fired (if provided). + * @param {DOMElement} element the element which will it's CSS classes changed + * removed from it + * @param {string} add the CSS classes which will be added to the element + * @param {string} remove the CSS class which will be removed from the element + * @param {Function=} done the callback function (if provided) that will be fired after the + * CSS classes have been set on the element + */ + setClass : function(element, add, remove, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('setClass', [add, remove], element, null, null, function() { + $delegate.setClass(element, add, remove); + }, doneCallback); + }, + + /** + * @ngdoc method + * @name $animate#enabled + * @function + * + * @param {boolean=} value If provided then set the animation on or off. + * @param {DOMElement=} element If provided then the element will be used to represent the enable/disable operation + * @return {boolean} Current animation state. + * + * @description + * Globally enables/disables animations. + * + */ + enabled : function(value, element) { + switch(arguments.length) { + case 2: + if(value) { + cleanup(element); + } else { + var data = element.data(NG_ANIMATE_STATE) || {}; + data.disabled = true; + element.data(NG_ANIMATE_STATE, data); + } + break; + + case 1: + rootAnimateState.disabled = !value; + break; + + default: + value = !rootAnimateState.disabled; + break; + } + return !!value; + } + }; + + /* + all animations call this shared animation triggering function internally. + The animationEvent variable refers to the JavaScript animation event that will be triggered + and the className value is the name of the animation that will be applied within the + CSS code. Element, parentElement and afterElement are provided DOM elements for the animation + and the onComplete callback will be fired once the animation is fully complete. + */ + function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, doneCallback) { + + var runner = animationRunner(element, animationEvent, className); + if(!runner) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return; + } + + className = runner.className; + var elementEvents = angular.element._data(runner.node); + elementEvents = elementEvents && elementEvents.events; + + if (!parentElement) { + parentElement = afterElement ? afterElement.parent() : element.parent(); + } + + var ngAnimateState = element.data(NG_ANIMATE_STATE) || {}; + var runningAnimations = ngAnimateState.active || {}; + var totalActiveAnimations = ngAnimateState.totalActive || 0; + var lastAnimation = ngAnimateState.last; + + //only allow animations if the currently running animation is not structural + //or if there is no animation running at all + var skipAnimations = runner.isClassBased ? + ngAnimateState.disabled || (lastAnimation && !lastAnimation.isClassBased) : + false; + + //skip the animation if animations are disabled, a parent is already being animated, + //the element is not currently attached to the document body or then completely close + //the animation if any matching animations are not found at all. + //NOTE: IE8 + IE9 should close properly (run closeAnimation()) in case an animation was found. + if (skipAnimations || animationsDisabled(element, parentElement)) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return; + } + + var skipAnimation = false; + if(totalActiveAnimations > 0) { + var animationsToCancel = []; + if(!runner.isClassBased) { + if(animationEvent == 'leave' && runningAnimations['ng-leave']) { + skipAnimation = true; + } else { + //cancel all animations when a structural animation takes place + for(var klass in runningAnimations) { + animationsToCancel.push(runningAnimations[klass]); + cleanup(element, klass); + } + runningAnimations = {}; + totalActiveAnimations = 0; + } + } else if(lastAnimation.event == 'setClass') { + animationsToCancel.push(lastAnimation); + cleanup(element, className); + } + else if(runningAnimations[className]) { + var current = runningAnimations[className]; + if(current.event == animationEvent) { + skipAnimation = true; + } else { + animationsToCancel.push(current); + cleanup(element, className); + } + } + + if(animationsToCancel.length > 0) { + forEach(animationsToCancel, function(operation) { + operation.cancel(); + }); + } + } + + if(runner.isClassBased && !runner.isSetClassOperation && !skipAnimation) { + skipAnimation = (animationEvent == 'addClass') == element.hasClass(className); //opposite of XOR + } + + if(skipAnimation) { + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + fireDoneCallbackAsync(); + return; + } + + if(animationEvent == 'leave') { + //there's no need to ever remove the listener since the element + //will be removed (destroyed) after the leave animation ends or + //is cancelled midway + element.one('$destroy', function(e) { + var element = angular.element(this); + var state = element.data(NG_ANIMATE_STATE); + if(state) { + var activeLeaveAnimation = state.active['ng-leave']; + if(activeLeaveAnimation) { + activeLeaveAnimation.cancel(); + cleanup(element, 'ng-leave'); + } + } + }); + } + + //the ng-animate class does nothing, but it's here to allow for + //parent animations to find and cancel child animations when needed + element.addClass(NG_ANIMATE_CLASS_NAME); + + var localAnimationCount = globalAnimationCounter++; + totalActiveAnimations++; + runningAnimations[className] = runner; + + element.data(NG_ANIMATE_STATE, { + last : runner, + active : runningAnimations, + index : localAnimationCount, + totalActive : totalActiveAnimations + }); + + //first we run the before animations and when all of those are complete + //then we perform the DOM operation and run the next set of animations + fireBeforeCallbackAsync(); + runner.before(function(cancelled) { + var data = element.data(NG_ANIMATE_STATE); + cancelled = cancelled || + !data || !data.active[className] || + (runner.isClassBased && data.active[className].event != animationEvent); + + fireDOMOperation(); + if(cancelled === true) { + closeAnimation(); + } else { + fireAfterCallbackAsync(); + runner.after(closeAnimation); + } + }); + + function fireDOMCallback(animationPhase) { + var eventName = '$animate:' + animationPhase; + if(elementEvents && elementEvents[eventName] && elementEvents[eventName].length > 0) { + $$asyncCallback(function() { + element.triggerHandler(eventName, { + event : animationEvent, + className : className + }); + }); + } + } + + function fireBeforeCallbackAsync() { + fireDOMCallback('before'); + } + + function fireAfterCallbackAsync() { + fireDOMCallback('after'); + } + + function fireDoneCallbackAsync() { + fireDOMCallback('close'); + if(doneCallback) { + $$asyncCallback(function() { + doneCallback(); + }); + } + } + + //it is less complicated to use a flag than managing and canceling + //timeouts containing multiple callbacks. + function fireDOMOperation() { + if(!fireDOMOperation.hasBeenRun) { + fireDOMOperation.hasBeenRun = true; + domOperation(); + } + } + + function closeAnimation() { + if(!closeAnimation.hasBeenRun) { + closeAnimation.hasBeenRun = true; + var data = element.data(NG_ANIMATE_STATE); + if(data) { + /* only structural animations wait for reflow before removing an + animation, but class-based animations don't. An example of this + failing would be when a parent HTML tag has a ng-class attribute + causing ALL directives below to skip animations during the digest */ + if(runner && runner.isClassBased) { + cleanup(element, className); + } else { + $$asyncCallback(function() { + var data = element.data(NG_ANIMATE_STATE) || {}; + if(localAnimationCount == data.index) { + cleanup(element, className, animationEvent); + } + }); + element.data(NG_ANIMATE_STATE, data); + } + } + fireDoneCallbackAsync(); + } + } + } + + function cancelChildAnimations(element) { + var node = extractElementNode(element); + if (node) { + var nodes = angular.isFunction(node.getElementsByClassName) ? + node.getElementsByClassName(NG_ANIMATE_CLASS_NAME) : + node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME); + forEach(nodes, function(element) { + element = angular.element(element); + var data = element.data(NG_ANIMATE_STATE); + if(data && data.active) { + forEach(data.active, function(runner) { + runner.cancel(); + }); + } + }); + } + } + + function cleanup(element, className) { + if(isMatchingElement(element, $rootElement)) { + if(!rootAnimateState.disabled) { + rootAnimateState.running = false; + rootAnimateState.structural = false; + } + } else if(className) { + var data = element.data(NG_ANIMATE_STATE) || {}; + + var removeAnimations = className === true; + if(!removeAnimations && data.active && data.active[className]) { + data.totalActive--; + delete data.active[className]; + } + + if(removeAnimations || !data.totalActive) { + element.removeClass(NG_ANIMATE_CLASS_NAME); + element.removeData(NG_ANIMATE_STATE); + } + } + } + + function animationsDisabled(element, parentElement) { + if (rootAnimateState.disabled) return true; + + if(isMatchingElement(element, $rootElement)) { + return rootAnimateState.disabled || rootAnimateState.running; + } + + do { + //the element did not reach the root element which means that it + //is not apart of the DOM. Therefore there is no reason to do + //any animations on it + if(parentElement.length === 0) break; + + var isRoot = isMatchingElement(parentElement, $rootElement); + var state = isRoot ? rootAnimateState : parentElement.data(NG_ANIMATE_STATE); + var result = state && (!!state.disabled || state.running || state.totalActive > 0); + if(isRoot || result) { + return result; + } + + if(isRoot) return true; + } + while(parentElement = parentElement.parent()); + + return true; + } + }]); + + $animateProvider.register('', ['$window', '$sniffer', '$timeout', '$$animateReflow', + function($window, $sniffer, $timeout, $$animateReflow) { + // Detect proper transitionend/animationend event names. + var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + + // If unprefixed events are not supported but webkit-prefixed are, use the latter. + // Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. + // Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` + // but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. + // Register both events in case `window.onanimationend` is not supported because of that, + // do the same for `transitionend` as Safari is likely to exhibit similar behavior. + // Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit + // therefore there is no reason to test anymore for other vendor prefixes: http://caniuse.com/#search=transition + if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; + } else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; + } + + if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; + } else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; + } + + var DURATION_KEY = 'Duration'; + var PROPERTY_KEY = 'Property'; + var DELAY_KEY = 'Delay'; + var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; + var NG_ANIMATE_PARENT_KEY = '$$ngAnimateKey'; + var NG_ANIMATE_CSS_DATA_KEY = '$$ngAnimateCSS3Data'; + var NG_ANIMATE_BLOCK_CLASS_NAME = 'ng-animate-block-transitions'; + var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; + var CLOSING_TIME_BUFFER = 1.5; + var ONE_SECOND = 1000; + + var lookupCache = {}; + var parentCounter = 0; + var animationReflowQueue = []; + var cancelAnimationReflow; + function afterReflow(element, callback) { + if(cancelAnimationReflow) { + cancelAnimationReflow(); + } + animationReflowQueue.push(callback); + cancelAnimationReflow = $$animateReflow(function() { + forEach(animationReflowQueue, function(fn) { + fn(); + }); + + animationReflowQueue = []; + cancelAnimationReflow = null; + lookupCache = {}; + }); + } + + var closingTimer = null; + var closingTimestamp = 0; + var animationElementQueue = []; + function animationCloseHandler(element, totalTime) { + var node = extractElementNode(element); + element = angular.element(node); + + //this item will be garbage collected by the closing + //animation timeout + animationElementQueue.push(element); + + //but it may not need to cancel out the existing timeout + //if the timestamp is less than the previous one + var futureTimestamp = Date.now() + totalTime; + if(futureTimestamp <= closingTimestamp) { + return; + } + + $timeout.cancel(closingTimer); + + closingTimestamp = futureTimestamp; + closingTimer = $timeout(function() { + closeAllAnimations(animationElementQueue); + animationElementQueue = []; + }, totalTime, false); + } + + function closeAllAnimations(elements) { + forEach(elements, function(element) { + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(elementData) { + (elementData.closeAnimationFn || noop)(); + } + }); + } + + function getElementAnimationDetails(element, cacheKey) { + var data = cacheKey ? lookupCache[cacheKey] : null; + if(!data) { + var transitionDuration = 0; + var transitionDelay = 0; + var animationDuration = 0; + var animationDelay = 0; + var transitionDelayStyle; + var animationDelayStyle; + var transitionDurationStyle; + var transitionPropertyStyle; + + //we want all the styles defined before and after + forEach(element, function(element) { + if (element.nodeType == ELEMENT_NODE) { + var elementStyles = $window.getComputedStyle(element) || {}; + + transitionDurationStyle = elementStyles[TRANSITION_PROP + DURATION_KEY]; + + transitionDuration = Math.max(parseMaxTime(transitionDurationStyle), transitionDuration); + + transitionPropertyStyle = elementStyles[TRANSITION_PROP + PROPERTY_KEY]; + + transitionDelayStyle = elementStyles[TRANSITION_PROP + DELAY_KEY]; + + transitionDelay = Math.max(parseMaxTime(transitionDelayStyle), transitionDelay); + + animationDelayStyle = elementStyles[ANIMATION_PROP + DELAY_KEY]; + + animationDelay = Math.max(parseMaxTime(animationDelayStyle), animationDelay); + + var aDuration = parseMaxTime(elementStyles[ANIMATION_PROP + DURATION_KEY]); + + if(aDuration > 0) { + aDuration *= parseInt(elementStyles[ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY], 10) || 1; + } + + animationDuration = Math.max(aDuration, animationDuration); + } + }); + data = { + total : 0, + transitionPropertyStyle: transitionPropertyStyle, + transitionDurationStyle: transitionDurationStyle, + transitionDelayStyle: transitionDelayStyle, + transitionDelay: transitionDelay, + transitionDuration: transitionDuration, + animationDelayStyle: animationDelayStyle, + animationDelay: animationDelay, + animationDuration: animationDuration + }; + if(cacheKey) { + lookupCache[cacheKey] = data; + } + } + return data; + } + + function parseMaxTime(str) { + var maxValue = 0; + var values = angular.isString(str) ? + str.split(/\s*,\s*/) : + []; + forEach(values, function(value) { + maxValue = Math.max(parseFloat(value) || 0, maxValue); + }); + return maxValue; + } + + function getCacheKey(element) { + var parentElement = element.parent(); + var parentID = parentElement.data(NG_ANIMATE_PARENT_KEY); + if(!parentID) { + parentElement.data(NG_ANIMATE_PARENT_KEY, ++parentCounter); + parentID = parentCounter; + } + return parentID + '-' + extractElementNode(element).getAttribute('class'); + } + + function animateSetup(animationEvent, element, className, calculationDecorator) { + var cacheKey = getCacheKey(element); + var eventCacheKey = cacheKey + ' ' + className; + var itemIndex = lookupCache[eventCacheKey] ? ++lookupCache[eventCacheKey].total : 0; + + var stagger = {}; + if(itemIndex > 0) { + var staggerClassName = className + '-stagger'; + var staggerCacheKey = cacheKey + ' ' + staggerClassName; + var applyClasses = !lookupCache[staggerCacheKey]; + + applyClasses && element.addClass(staggerClassName); + + stagger = getElementAnimationDetails(element, staggerCacheKey); + + applyClasses && element.removeClass(staggerClassName); + } + + /* the animation itself may need to add/remove special CSS classes + * before calculating the anmation styles */ + calculationDecorator = calculationDecorator || + function(fn) { return fn(); }; + + element.addClass(className); + + var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {}; + + var timings = calculationDecorator(function() { + return getElementAnimationDetails(element, eventCacheKey); + }); + + var transitionDuration = timings.transitionDuration; + var animationDuration = timings.animationDuration; + if(transitionDuration === 0 && animationDuration === 0) { + element.removeClass(className); + return false; + } + + element.data(NG_ANIMATE_CSS_DATA_KEY, { + running : formerData.running || 0, + itemIndex : itemIndex, + stagger : stagger, + timings : timings, + closeAnimationFn : noop + }); + + //temporarily disable the transition so that the enter styles + //don't animate twice (this is here to avoid a bug in Chrome/FF). + var isCurrentlyAnimating = formerData.running > 0 || animationEvent == 'setClass'; + if(transitionDuration > 0) { + blockTransitions(element, className, isCurrentlyAnimating); + } + + //staggering keyframe animations work by adjusting the `animation-delay` CSS property + //on the given element, however, the delay value can only calculated after the reflow + //since by that time $animate knows how many elements are being animated. Therefore, + //until the reflow occurs the element needs to be blocked (where the keyframe animation + //is set to `none 0s`). This blocking mechanism should only be set for when a stagger + //animation is detected and when the element item index is greater than 0. + if(animationDuration > 0 && stagger.animationDelay > 0 && stagger.animationDuration === 0) { + blockKeyframeAnimations(element); + } + + return true; + } + + function isStructuralAnimation(className) { + return className == 'ng-enter' || className == 'ng-move' || className == 'ng-leave'; + } + + function blockTransitions(element, className, isAnimating) { + if(isStructuralAnimation(className) || !isAnimating) { + extractElementNode(element).style[TRANSITION_PROP + PROPERTY_KEY] = 'none'; + } else { + element.addClass(NG_ANIMATE_BLOCK_CLASS_NAME); + } + } + + function blockKeyframeAnimations(element) { + extractElementNode(element).style[ANIMATION_PROP] = 'none 0s'; + } + + function unblockTransitions(element, className) { + var prop = TRANSITION_PROP + PROPERTY_KEY; + var node = extractElementNode(element); + if(node.style[prop] && node.style[prop].length > 0) { + node.style[prop] = ''; + } + element.removeClass(NG_ANIMATE_BLOCK_CLASS_NAME); + } + + function unblockKeyframeAnimations(element) { + var prop = ANIMATION_PROP; + var node = extractElementNode(element); + if(node.style[prop] && node.style[prop].length > 0) { + node.style[prop] = ''; + } + } + + function animateRun(animationEvent, element, className, activeAnimationComplete) { + var node = extractElementNode(element); + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(node.getAttribute('class').indexOf(className) == -1 || !elementData) { + activeAnimationComplete(); + return; + } + + var activeClassName = ''; + forEach(className.split(' '), function(klass, i) { + activeClassName += (i > 0 ? ' ' : '') + klass + '-active'; + }); + + var stagger = elementData.stagger; + var timings = elementData.timings; + var itemIndex = elementData.itemIndex; + var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration); + var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay); + var maxDelayTime = maxDelay * ONE_SECOND; + + var startTime = Date.now(); + var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT; + + var style = '', appliedStyles = []; + if(timings.transitionDuration > 0) { + var propertyStyle = timings.transitionPropertyStyle; + if(propertyStyle.indexOf('all') == -1) { + style += CSS_PREFIX + 'transition-property: ' + propertyStyle + ';'; + style += CSS_PREFIX + 'transition-duration: ' + timings.transitionDurationStyle + ';'; + appliedStyles.push(CSS_PREFIX + 'transition-property'); + appliedStyles.push(CSS_PREFIX + 'transition-duration'); + } + } + + if(itemIndex > 0) { + if(stagger.transitionDelay > 0 && stagger.transitionDuration === 0) { + var delayStyle = timings.transitionDelayStyle; + style += CSS_PREFIX + 'transition-delay: ' + + prepareStaggerDelay(delayStyle, stagger.transitionDelay, itemIndex) + '; '; + appliedStyles.push(CSS_PREFIX + 'transition-delay'); + } + + if(stagger.animationDelay > 0 && stagger.animationDuration === 0) { + style += CSS_PREFIX + 'animation-delay: ' + + prepareStaggerDelay(timings.animationDelayStyle, stagger.animationDelay, itemIndex) + '; '; + appliedStyles.push(CSS_PREFIX + 'animation-delay'); + } + } + + if(appliedStyles.length > 0) { + //the element being animated may sometimes contain comment nodes in + //the jqLite object, so we're safe to use a single variable to house + //the styles since there is always only one element being animated + var oldStyle = node.getAttribute('style') || ''; + node.setAttribute('style', oldStyle + ' ' + style); + } + + element.on(css3AnimationEvents, onAnimationProgress); + element.addClass(activeClassName); + elementData.closeAnimationFn = function() { + onEnd(); + activeAnimationComplete(); + }; + + var staggerTime = itemIndex * (Math.max(stagger.animationDelay, stagger.transitionDelay) || 0); + var animationTime = (maxDelay + maxDuration) * CLOSING_TIME_BUFFER; + var totalTime = (staggerTime + animationTime) * ONE_SECOND; + + elementData.running++; + animationCloseHandler(element, totalTime); + return onEnd; + + // This will automatically be called by $animate so + // there is no need to attach this internally to the + // timeout done method. + function onEnd(cancelled) { + element.off(css3AnimationEvents, onAnimationProgress); + element.removeClass(activeClassName); + animateClose(element, className); + var node = extractElementNode(element); + for (var i in appliedStyles) { + node.style.removeProperty(appliedStyles[i]); + } + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if(Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + activeAnimationComplete(); + } + } + } + + function prepareStaggerDelay(delayStyle, staggerDelay, index) { + var style = ''; + forEach(delayStyle.split(','), function(val, i) { + style += (i > 0 ? ',' : '') + + (index * staggerDelay + parseInt(val, 10)) + 's'; + }); + return style; + } + + function animateBefore(animationEvent, element, className, calculationDecorator) { + if(animateSetup(animationEvent, element, className, calculationDecorator)) { + return function(cancelled) { + cancelled && animateClose(element, className); + }; + } + } + + function animateAfter(animationEvent, element, className, afterAnimationComplete) { + if(element.data(NG_ANIMATE_CSS_DATA_KEY)) { + return animateRun(animationEvent, element, className, afterAnimationComplete); + } else { + animateClose(element, className); + afterAnimationComplete(); + } + } + + function animate(animationEvent, element, className, animationComplete) { + //If the animateSetup function doesn't bother returning a + //cancellation function then it means that there is no animation + //to perform at all + var preReflowCancellation = animateBefore(animationEvent, element, className); + if(!preReflowCancellation) { + animationComplete(); + return; + } + + //There are two cancellation functions: one is before the first + //reflow animation and the second is during the active state + //animation. The first function will take care of removing the + //data from the element which will not make the 2nd animation + //happen in the first place + var cancel = preReflowCancellation; + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + //once the reflow is complete then we point cancel to + //the new cancellation function which will remove all of the + //animation properties from the active animation + cancel = animateAfter(animationEvent, element, className, animationComplete); + }); + + return function(cancelled) { + (cancel || noop)(cancelled); + }; + } + + function animateClose(element, className) { + element.removeClass(className); + var data = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(data) { + if(data.running) { + data.running--; + } + if(!data.running || data.running === 0) { + element.removeData(NG_ANIMATE_CSS_DATA_KEY); + } + } + } + + return { + enter : function(element, animationCompleted) { + return animate('enter', element, 'ng-enter', animationCompleted); + }, + + leave : function(element, animationCompleted) { + return animate('leave', element, 'ng-leave', animationCompleted); + }, + + move : function(element, animationCompleted) { + return animate('move', element, 'ng-move', animationCompleted); + }, + + beforeSetClass : function(element, add, remove, animationCompleted) { + var className = suffixClasses(remove, '-remove') + ' ' + + suffixClasses(add, '-add'); + var cancellationMethod = animateBefore('setClass', element, className, function(fn) { + /* when classes are removed from an element then the transition style + * that is applied is the transition defined on the element without the + * CSS class being there. This is how CSS3 functions outside of ngAnimate. + * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */ + var klass = element.attr('class'); + element.removeClass(remove); + element.addClass(add); + var timings = fn(); + element.attr('class', klass); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + beforeAddClass : function(element, className, animationCompleted) { + var cancellationMethod = animateBefore('addClass', element, suffixClasses(className, '-add'), function(fn) { + + /* when a CSS class is added to an element then the transition style that + * is applied is the transition defined on the element when the CSS class + * is added at the time of the animation. This is how CSS3 functions + * outside of ngAnimate. */ + element.addClass(className); + var timings = fn(); + element.removeClass(className); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + setClass : function(element, add, remove, animationCompleted) { + remove = suffixClasses(remove, '-remove'); + add = suffixClasses(add, '-add'); + var className = remove + ' ' + add; + return animateAfter('setClass', element, className, animationCompleted); + }, + + addClass : function(element, className, animationCompleted) { + return animateAfter('addClass', element, suffixClasses(className, '-add'), animationCompleted); + }, + + beforeRemoveClass : function(element, className, animationCompleted) { + var cancellationMethod = animateBefore('removeClass', element, suffixClasses(className, '-remove'), function(fn) { + /* when classes are removed from an element then the transition style + * that is applied is the transition defined on the element without the + * CSS class being there. This is how CSS3 functions outside of ngAnimate. + * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */ + var klass = element.attr('class'); + element.removeClass(className); + var timings = fn(); + element.attr('class', klass); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + removeClass : function(element, className, animationCompleted) { + return animateAfter('removeClass', element, suffixClasses(className, '-remove'), animationCompleted); + } + }; + + function suffixClasses(classes, suffix) { + var className = ''; + classes = angular.isArray(classes) ? classes : classes.split(/\s+/); + forEach(classes, function(klass, i) { + if(klass && klass.length > 0) { + className += (i > 0 ? ' ' : '') + klass + suffix; + } + }); + return className; + } + }]); + }]); + + +})(window, window.angular); diff --git a/platforms/android/assets/www/lib/angular-animate/angular-animate.min.js b/platforms/android/assets/www/lib/angular-animate/angular-animate.min.js new file mode 100644 index 00000000..55971e54 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-animate/angular-animate.min.js @@ -0,0 +1,27 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(s,g,P){'use strict';g.module("ngAnimate",["ng"]).factory("$$animateReflow",["$$rAF","$document",function(g,s){return function(e){return g(function(){e()})}}]).config(["$provide","$animateProvider",function(ga,G){function e(e){for(var p=0;p=x&&b>=v&&f()}var l=e(b);a=b.data(n);if(-1!=l.getAttribute("class").indexOf(c)&&a){var r="";p(c.split(" "),function(a,b){r+=(0` to your `index.html`: + +```html + +``` + +And add `ngCookies` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngCookies']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngCookies). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-cookies/angular-cookies.js b/platforms/android/assets/www/lib/angular-cookies/angular-cookies.js new file mode 100644 index 00000000..f43d44dc --- /dev/null +++ b/platforms/android/assets/www/lib/angular-cookies/angular-cookies.js @@ -0,0 +1,196 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngCookies + * @description + * + * # ngCookies + * + * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies. + * + * + *
+ * + * See {@link ngCookies.$cookies `$cookies`} and + * {@link ngCookies.$cookieStore `$cookieStore`} for usage. + */ + + +angular.module('ngCookies', ['ng']). + /** + * @ngdoc service + * @name $cookies + * + * @description + * Provides read/write access to browser's cookies. + * + * Only a simple Object is exposed and by adding or removing properties to/from this object, new + * cookies are created/deleted at the end of current $eval. + * The object's properties can only be strings. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + + + + + + */ + factory('$cookies', ['$rootScope', '$browser', function ($rootScope, $browser) { + var cookies = {}, + lastCookies = {}, + lastBrowserCookies, + runEval = false, + copy = angular.copy, + isUndefined = angular.isUndefined; + + //creates a poller fn that copies all cookies from the $browser to service & inits the service + $browser.addPollFn(function() { + var currentCookies = $browser.cookies(); + if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl + lastBrowserCookies = currentCookies; + copy(currentCookies, lastCookies); + copy(currentCookies, cookies); + if (runEval) $rootScope.$apply(); + } + })(); + + runEval = true; + + //at the end of each eval, push cookies + //TODO: this should happen before the "delayed" watches fire, because if some cookies are not + // strings or browser refuses to store some cookies, we update the model in the push fn. + $rootScope.$watch(push); + + return cookies; + + + /** + * Pushes all the cookies from the service to the browser and verifies if all cookies were + * stored. + */ + function push() { + var name, + value, + browserCookies, + updated; + + //delete any cookies deleted in $cookies + for (name in lastCookies) { + if (isUndefined(cookies[name])) { + $browser.cookies(name, undefined); + } + } + + //update all cookies updated in $cookies + for(name in cookies) { + value = cookies[name]; + if (!angular.isString(value)) { + value = '' + value; + cookies[name] = value; + } + if (value !== lastCookies[name]) { + $browser.cookies(name, value); + updated = true; + } + } + + //verify what was actually stored + if (updated){ + updated = false; + browserCookies = $browser.cookies(); + + for (name in cookies) { + if (cookies[name] !== browserCookies[name]) { + //delete or reset all cookies that the browser dropped from $cookies + if (isUndefined(browserCookies[name])) { + delete cookies[name]; + } else { + cookies[name] = browserCookies[name]; + } + updated = true; + } + } + } + } + }]). + + + /** + * @ngdoc service + * @name $cookieStore + * @requires $cookies + * + * @description + * Provides a key-value (string-object) storage, that is backed by session cookies. + * Objects put or retrieved from this storage are automatically serialized or + * deserialized by angular's toJson/fromJson. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + */ + factory('$cookieStore', ['$cookies', function($cookies) { + + return { + /** + * @ngdoc method + * @name $cookieStore#get + * + * @description + * Returns the value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {Object} Deserialized cookie value. + */ + get: function(key) { + var value = $cookies[key]; + return value ? angular.fromJson(value) : value; + }, + + /** + * @ngdoc method + * @name $cookieStore#put + * + * @description + * Sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {Object} value Value to be stored. + */ + put: function(key, value) { + $cookies[key] = angular.toJson(value); + }, + + /** + * @ngdoc method + * @name $cookieStore#remove + * + * @description + * Remove given cookie + * + * @param {string} key Id of the key-value pair to delete. + */ + remove: function(key) { + delete $cookies[key]; + } + }; + + }]); + + +})(window, window.angular); diff --git a/platforms/android/assets/www/lib/angular-cookies/angular-cookies.min.js b/platforms/android/assets/www/lib/angular-cookies/angular-cookies.min.js new file mode 100644 index 00000000..4d4527f3 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-cookies/angular-cookies.min.js @@ -0,0 +1,8 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(e,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&e.$apply())})();k=!0;e.$watch(function(){var a,d,e;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)d=c[a],f.isString(d)||(d=""+d,c[a]=d),d!==g[a]&&(b.cookies(a,d),e=!0);if(e)for(a in d=b.cookies(),c)c[a]!==d[a]&&(m(d[a])?delete c[a]:c[a]=d[a])});return c}]).factory("$cookieStore", +["$cookies",function(e){return{get:function(b){return(b=e[b])?f.fromJson(b):b},put:function(b,c){e[b]=f.toJson(c)},remove:function(b){delete e[b]}}}])})(window,window.angular); +//# sourceMappingURL=angular-cookies.min.js.map diff --git a/platforms/android/assets/www/lib/angular-cookies/angular-cookies.min.js.map b/platforms/android/assets/www/lib/angular-cookies/angular-cookies.min.js.map new file mode 100644 index 00000000..1d3c5d32 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-cookies/angular-cookies.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-cookies.min.js", +"lineCount":7, +"mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAmBtCD,CAAAE,OAAA,CAAe,WAAf,CAA4B,CAAC,IAAD,CAA5B,CAAAC,QAAA,CA4BW,UA5BX,CA4BuB,CAAC,YAAD,CAAe,UAAf,CAA2B,QAAS,CAACC,CAAD,CAAaC,CAAb,CAAuB,CAAA,IACxEC,EAAU,EAD8D,CAExEC,EAAc,EAF0D,CAGxEC,CAHwE,CAIxEC,EAAU,CAAA,CAJ8D,CAKxEC,EAAOV,CAAAU,KALiE,CAMxEC,EAAcX,CAAAW,YAGlBN,EAAAO,UAAA,CAAmB,QAAQ,EAAG,CAC5B,IAAIC,EAAiBR,CAAAC,QAAA,EACjBE,EAAJ,EAA0BK,CAA1B,GACEL,CAGA,CAHqBK,CAGrB,CAFAH,CAAA,CAAKG,CAAL,CAAqBN,CAArB,CAEA,CADAG,CAAA,CAAKG,CAAL,CAAqBP,CAArB,CACA,CAAIG,CAAJ,EAAaL,CAAAU,OAAA,EAJf,CAF4B,CAA9B,CAAA,EAUAL,EAAA,CAAU,CAAA,CAKVL,EAAAW,OAAA,CASAC,QAAa,EAAG,CAAA,IACVC,CADU,CAEVC,CAFU,CAIVC,CAGJ,KAAKF,CAAL,GAAaV,EAAb,CACMI,CAAA,CAAYL,CAAA,CAAQW,CAAR,CAAZ,CAAJ,EACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBhB,CAAvB,CAKJ,KAAIgB,CAAJ,GAAYX,EAAZ,CACEY,CAKA,CALQZ,CAAA,CAAQW,CAAR,CAKR,CAJKjB,CAAAoB,SAAA,CAAiBF,CAAjB,CAIL,GAHEA,CACA,CADQ,EACR,CADaA,CACb,CAAAZ,CAAA,CAAQW,CAAR,CAAA,CAAgBC,CAElB,EAAIA,CAAJ,GAAcX,CAAA,CAAYU,CAAZ,CAAd,GACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBC,CAAvB,CACA,CAAAC,CAAA,CAAU,CAAA,CAFZ,CAOF,IAAIA,CAAJ,CAIE,IAAKF,CAAL,GAFAI,EAEaf,CAFID,CAAAC,QAAA,EAEJA,CAAAA,CAAb,CACMA,CAAA,CAAQW,CAAR,CAAJ,GAAsBI,CAAA,CAAeJ,CAAf,CAAtB,GAEMN,CAAA,CAAYU,CAAA,CAAeJ,CAAf,CAAZ,CAAJ,CACE,OAAOX,CAAA,CAAQW,CAAR,CADT,CAGEX,CAAA,CAAQW,CAAR,CAHF,CAGkBI,CAAA,CAAeJ,CAAf,CALpB,CAhCU,CAThB,CAEA,OAAOX,EA1BqE,CAA3D,CA5BvB,CAAAH,QAAA,CA0HW,cA1HX;AA0H2B,CAAC,UAAD,CAAa,QAAQ,CAACmB,CAAD,CAAW,CAErD,MAAO,KAWAC,QAAQ,CAACC,CAAD,CAAM,CAEjB,MAAO,CADHN,CACG,CADKI,CAAA,CAASE,CAAT,CACL,EAAQxB,CAAAyB,SAAA,CAAiBP,CAAjB,CAAR,CAAkCA,CAFxB,CAXd,KA0BAQ,QAAQ,CAACF,CAAD,CAAMN,CAAN,CAAa,CACxBI,CAAA,CAASE,CAAT,CAAA,CAAgBxB,CAAA2B,OAAA,CAAeT,CAAf,CADQ,CA1BrB,QAuCGU,QAAQ,CAACJ,CAAD,CAAM,CACpB,OAAOF,CAAA,CAASE,CAAT,CADa,CAvCjB,CAF8C,CAAhC,CA1H3B,CAnBsC,CAArC,CAAA,CA8LEzB,MA9LF,CA8LUA,MAAAC,QA9LV;", +"sources":["angular-cookies.js"], +"names":["window","angular","undefined","module","factory","$rootScope","$browser","cookies","lastCookies","lastBrowserCookies","runEval","copy","isUndefined","addPollFn","currentCookies","$apply","$watch","push","name","value","updated","isString","browserCookies","$cookies","get","key","fromJson","put","toJson","remove"] +} diff --git a/platforms/android/assets/www/lib/angular-cookies/bower.json b/platforms/android/assets/www/lib/angular-cookies/bower.json new file mode 100644 index 00000000..cf5f05a0 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-cookies/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-cookies", + "version": "1.2.16", + "main": "./angular-cookies.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/platforms/android/assets/www/lib/angular-mocks/.bower.json b/platforms/android/assets/www/lib/angular-mocks/.bower.json new file mode 100644 index 00000000..ce38275c --- /dev/null +++ b/platforms/android/assets/www/lib/angular-mocks/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-mocks", + "version": "1.2.16", + "main": "./angular-mocks.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-mocks", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "e429a011d88c402430329449500f352751d1a137" + }, + "_source": "git://github.com/angular/bower-angular-mocks.git", + "_target": "1.2.16", + "_originalSource": "angular-mocks" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/angular-mocks/README.md b/platforms/android/assets/www/lib/angular-mocks/README.md new file mode 100644 index 00000000..3448d284 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-mocks/README.md @@ -0,0 +1,42 @@ +# bower-angular-mocks + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngMock). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-mocks +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/guide/dev_guide.unit-testing). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-mocks/angular-mocks.js b/platforms/android/assets/www/lib/angular-mocks/angular-mocks.js new file mode 100644 index 00000000..da804b4a --- /dev/null +++ b/platforms/android/assets/www/lib/angular-mocks/angular-mocks.js @@ -0,0 +1,2163 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) { + +'use strict'; + +/** + * @ngdoc object + * @name angular.mock + * @description + * + * Namespace from 'angular-mocks.js' which contains testing related code. + */ +angular.mock = {}; + +/** + * ! This is a private undocumented service ! + * + * @name $browser + * + * @description + * This service is a mock implementation of {@link ng.$browser}. It provides fake + * implementation for commonly used browser apis that are hard to test, e.g. setTimeout, xhr, + * cookies, etc... + * + * The api of this service is the same as that of the real {@link ng.$browser $browser}, except + * that there are several helper methods available which can be used in tests. + */ +angular.mock.$BrowserProvider = function() { + this.$get = function() { + return new angular.mock.$Browser(); + }; +}; + +angular.mock.$Browser = function() { + var self = this; + + this.isMock = true; + self.$$url = "http://server/"; + self.$$lastUrl = self.$$url; // used by url polling fn + self.pollFns = []; + + // TODO(vojta): remove this temporary api + self.$$completeOutstandingRequest = angular.noop; + self.$$incOutstandingRequestCount = angular.noop; + + + // register url polling fn + + self.onUrlChange = function(listener) { + self.pollFns.push( + function() { + if (self.$$lastUrl != self.$$url) { + self.$$lastUrl = self.$$url; + listener(self.$$url); + } + } + ); + + return listener; + }; + + self.cookieHash = {}; + self.lastCookieHash = {}; + self.deferredFns = []; + self.deferredNextId = 0; + + self.defer = function(fn, delay) { + delay = delay || 0; + self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: self.deferredNextId}); + self.deferredFns.sort(function(a,b){ return a.time - b.time;}); + return self.deferredNextId++; + }; + + + /** + * @name $browser#defer.now + * + * @description + * Current milliseconds mock time. + */ + self.defer.now = 0; + + + self.defer.cancel = function(deferId) { + var fnIndex; + + angular.forEach(self.deferredFns, function(fn, index) { + if (fn.id === deferId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + self.deferredFns.splice(fnIndex, 1); + return true; + } + + return false; + }; + + + /** + * @name $browser#defer.flush + * + * @description + * Flushes all pending requests and executes the defer callbacks. + * + * @param {number=} number of milliseconds to flush. See {@link #defer.now} + */ + self.defer.flush = function(delay) { + if (angular.isDefined(delay)) { + self.defer.now += delay; + } else { + if (self.deferredFns.length) { + self.defer.now = self.deferredFns[self.deferredFns.length-1].time; + } else { + throw new Error('No deferred tasks to be flushed'); + } + } + + while (self.deferredFns.length && self.deferredFns[0].time <= self.defer.now) { + self.deferredFns.shift().fn(); + } + }; + + self.$$baseHref = ''; + self.baseHref = function() { + return this.$$baseHref; + }; +}; +angular.mock.$Browser.prototype = { + +/** + * @name $browser#poll + * + * @description + * run all fns in pollFns + */ + poll: function poll() { + angular.forEach(this.pollFns, function(pollFn){ + pollFn(); + }); + }, + + addPollFn: function(pollFn) { + this.pollFns.push(pollFn); + return pollFn; + }, + + url: function(url, replace) { + if (url) { + this.$$url = url; + return this; + } + + return this.$$url; + }, + + cookies: function(name, value) { + if (name) { + if (angular.isUndefined(value)) { + delete this.cookieHash[name]; + } else { + if (angular.isString(value) && //strings only + value.length <= 4096) { //strict cookie storage limits + this.cookieHash[name] = value; + } + } + } else { + if (!angular.equals(this.cookieHash, this.lastCookieHash)) { + this.lastCookieHash = angular.copy(this.cookieHash); + this.cookieHash = angular.copy(this.cookieHash); + } + return this.cookieHash; + } + }, + + notifyWhenNoOutstandingRequests: function(fn) { + fn(); + } +}; + + +/** + * @ngdoc provider + * @name $exceptionHandlerProvider + * + * @description + * Configures the mock implementation of {@link ng.$exceptionHandler} to rethrow or to log errors + * passed into the `$exceptionHandler`. + */ + +/** + * @ngdoc service + * @name $exceptionHandler + * + * @description + * Mock implementation of {@link ng.$exceptionHandler} that rethrows or logs errors passed + * into it. See {@link ngMock.$exceptionHandlerProvider $exceptionHandlerProvider} for configuration + * information. + * + * + * ```js + * describe('$exceptionHandlerProvider', function() { + * + * it('should capture log messages and exceptions', function() { + * + * module(function($exceptionHandlerProvider) { + * $exceptionHandlerProvider.mode('log'); + * }); + * + * inject(function($log, $exceptionHandler, $timeout) { + * $timeout(function() { $log.log(1); }); + * $timeout(function() { $log.log(2); throw 'banana peel'; }); + * $timeout(function() { $log.log(3); }); + * expect($exceptionHandler.errors).toEqual([]); + * expect($log.assertEmpty()); + * $timeout.flush(); + * expect($exceptionHandler.errors).toEqual(['banana peel']); + * expect($log.log.logs).toEqual([[1], [2], [3]]); + * }); + * }); + * }); + * ``` + */ + +angular.mock.$ExceptionHandlerProvider = function() { + var handler; + + /** + * @ngdoc method + * @name $exceptionHandlerProvider#mode + * + * @description + * Sets the logging mode. + * + * @param {string} mode Mode of operation, defaults to `rethrow`. + * + * - `rethrow`: If any errors are passed into the handler in tests, it typically + * means that there is a bug in the application or test, so this mock will + * make these tests fail. + * - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log` + * mode stores an array of errors in `$exceptionHandler.errors`, to allow later + * assertion of them. See {@link ngMock.$log#assertEmpty assertEmpty()} and + * {@link ngMock.$log#reset reset()} + */ + this.mode = function(mode) { + switch(mode) { + case 'rethrow': + handler = function(e) { + throw e; + }; + break; + case 'log': + var errors = []; + + handler = function(e) { + if (arguments.length == 1) { + errors.push(e); + } else { + errors.push([].slice.call(arguments, 0)); + } + }; + + handler.errors = errors; + break; + default: + throw new Error("Unknown mode '" + mode + "', only 'log'/'rethrow' modes are allowed!"); + } + }; + + this.$get = function() { + return handler; + }; + + this.mode('rethrow'); +}; + + +/** + * @ngdoc service + * @name $log + * + * @description + * Mock implementation of {@link ng.$log} that gathers all logged messages in arrays + * (one array per logging level). These arrays are exposed as `logs` property of each of the + * level-specific log function, e.g. for level `error` the array is exposed as `$log.error.logs`. + * + */ +angular.mock.$LogProvider = function() { + var debug = true; + + function concat(array1, array2, index) { + return array1.concat(Array.prototype.slice.call(array2, index)); + } + + this.debugEnabled = function(flag) { + if (angular.isDefined(flag)) { + debug = flag; + return this; + } else { + return debug; + } + }; + + this.$get = function () { + var $log = { + log: function() { $log.log.logs.push(concat([], arguments, 0)); }, + warn: function() { $log.warn.logs.push(concat([], arguments, 0)); }, + info: function() { $log.info.logs.push(concat([], arguments, 0)); }, + error: function() { $log.error.logs.push(concat([], arguments, 0)); }, + debug: function() { + if (debug) { + $log.debug.logs.push(concat([], arguments, 0)); + } + } + }; + + /** + * @ngdoc method + * @name $log#reset + * + * @description + * Reset all of the logging arrays to empty. + */ + $log.reset = function () { + /** + * @ngdoc property + * @name $log#log.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#log}. + * + * @example + * ```js + * $log.log('Some Log'); + * var first = $log.log.logs.unshift(); + * ``` + */ + $log.log.logs = []; + /** + * @ngdoc property + * @name $log#info.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#info}. + * + * @example + * ```js + * $log.info('Some Info'); + * var first = $log.info.logs.unshift(); + * ``` + */ + $log.info.logs = []; + /** + * @ngdoc property + * @name $log#warn.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#warn}. + * + * @example + * ```js + * $log.warn('Some Warning'); + * var first = $log.warn.logs.unshift(); + * ``` + */ + $log.warn.logs = []; + /** + * @ngdoc property + * @name $log#error.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#error}. + * + * @example + * ```js + * $log.error('Some Error'); + * var first = $log.error.logs.unshift(); + * ``` + */ + $log.error.logs = []; + /** + * @ngdoc property + * @name $log#debug.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#debug}. + * + * @example + * ```js + * $log.debug('Some Error'); + * var first = $log.debug.logs.unshift(); + * ``` + */ + $log.debug.logs = []; + }; + + /** + * @ngdoc method + * @name $log#assertEmpty + * + * @description + * Assert that the all of the logging methods have no logged messages. If messages present, an + * exception is thrown. + */ + $log.assertEmpty = function() { + var errors = []; + angular.forEach(['error', 'warn', 'info', 'log', 'debug'], function(logLevel) { + angular.forEach($log[logLevel].logs, function(log) { + angular.forEach(log, function (logItem) { + errors.push('MOCK $log (' + logLevel + '): ' + String(logItem) + '\n' + + (logItem.stack || '')); + }); + }); + }); + if (errors.length) { + errors.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or "+ + "an expected log message was not checked and removed:"); + errors.push(''); + throw new Error(errors.join('\n---------\n')); + } + }; + + $log.reset(); + return $log; + }; +}; + + +/** + * @ngdoc service + * @name $interval + * + * @description + * Mock implementation of the $interval service. + * + * Use {@link ngMock.$interval#flush `$interval.flush(millis)`} to + * move forward by `millis` milliseconds and trigger any functions scheduled to run in that + * time. + * + * @param {function()} fn A function that should be called repeatedly. + * @param {number} delay Number of milliseconds between each function call. + * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat + * indefinitely. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @returns {promise} A promise which will be notified on each iteration. + */ +angular.mock.$IntervalProvider = function() { + this.$get = ['$rootScope', '$q', + function($rootScope, $q) { + var repeatFns = [], + nextRepeatId = 0, + now = 0; + + var $interval = function(fn, delay, count, invokeApply) { + var deferred = $q.defer(), + promise = deferred.promise, + iteration = 0, + skipApply = (angular.isDefined(invokeApply) && !invokeApply); + + count = (angular.isDefined(count)) ? count : 0, + promise.then(null, null, fn); + + promise.$$intervalId = nextRepeatId; + + function tick() { + deferred.notify(iteration++); + + if (count > 0 && iteration >= count) { + var fnIndex; + deferred.resolve(iteration); + + angular.forEach(repeatFns, function(fn, index) { + if (fn.id === promise.$$intervalId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + repeatFns.splice(fnIndex, 1); + } + } + + if (!skipApply) $rootScope.$apply(); + } + + repeatFns.push({ + nextTime:(now + delay), + delay: delay, + fn: tick, + id: nextRepeatId, + deferred: deferred + }); + repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + + nextRepeatId++; + return promise; + }; + /** + * @ngdoc method + * @name $interval#cancel + * + * @description + * Cancels a task associated with the `promise`. + * + * @param {promise} promise A promise from calling the `$interval` function. + * @returns {boolean} Returns `true` if the task was successfully cancelled. + */ + $interval.cancel = function(promise) { + if(!promise) return false; + var fnIndex; + + angular.forEach(repeatFns, function(fn, index) { + if (fn.id === promise.$$intervalId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + repeatFns[fnIndex].deferred.reject('canceled'); + repeatFns.splice(fnIndex, 1); + return true; + } + + return false; + }; + + /** + * @ngdoc method + * @name $interval#flush + * @description + * + * Runs interval tasks scheduled to be run in the next `millis` milliseconds. + * + * @param {number=} millis maximum timeout amount to flush up until. + * + * @return {number} The amount of time moved forward. + */ + $interval.flush = function(millis) { + now += millis; + while (repeatFns.length && repeatFns[0].nextTime <= now) { + var task = repeatFns[0]; + task.fn(); + task.nextTime += task.delay; + repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + } + return millis; + }; + + return $interval; + }]; +}; + + +/* jshint -W101 */ +/* The R_ISO8061_STR regex is never going to fit into the 100 char limit! + * This directive should go inside the anonymous function but a bug in JSHint means that it would + * not be enacted early enough to prevent the warning. + */ +var R_ISO8061_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/; + +function jsonStringToDate(string) { + var match; + if (match = string.match(R_ISO8061_STR)) { + var date = new Date(0), + tzHour = 0, + tzMin = 0; + if (match[9]) { + tzHour = int(match[9] + match[10]); + tzMin = int(match[9] + match[11]); + } + date.setUTCFullYear(int(match[1]), int(match[2]) - 1, int(match[3])); + date.setUTCHours(int(match[4]||0) - tzHour, + int(match[5]||0) - tzMin, + int(match[6]||0), + int(match[7]||0)); + return date; + } + return string; +} + +function int(str) { + return parseInt(str, 10); +} + +function padNumber(num, digits, trim) { + var neg = ''; + if (num < 0) { + neg = '-'; + num = -num; + } + num = '' + num; + while(num.length < digits) num = '0' + num; + if (trim) + num = num.substr(num.length - digits); + return neg + num; +} + + +/** + * @ngdoc type + * @name angular.mock.TzDate + * @description + * + * *NOTE*: this is not an injectable instance, just a globally available mock class of `Date`. + * + * Mock of the Date type which has its timezone specified via constructor arg. + * + * The main purpose is to create Date-like instances with timezone fixed to the specified timezone + * offset, so that we can test code that depends on local timezone settings without dependency on + * the time zone settings of the machine where the code is running. + * + * @param {number} offset Offset of the *desired* timezone in hours (fractions will be honored) + * @param {(number|string)} timestamp Timestamp representing the desired time in *UTC* + * + * @example + * !!!! WARNING !!!!! + * This is not a complete Date object so only methods that were implemented can be called safely. + * To make matters worse, TzDate instances inherit stuff from Date via a prototype. + * + * We do our best to intercept calls to "unimplemented" methods, but since the list of methods is + * incomplete we might be missing some non-standard methods. This can result in errors like: + * "Date.prototype.foo called on incompatible Object". + * + * ```js + * var newYearInBratislava = new TzDate(-1, '2009-12-31T23:00:00Z'); + * newYearInBratislava.getTimezoneOffset() => -60; + * newYearInBratislava.getFullYear() => 2010; + * newYearInBratislava.getMonth() => 0; + * newYearInBratislava.getDate() => 1; + * newYearInBratislava.getHours() => 0; + * newYearInBratislava.getMinutes() => 0; + * newYearInBratislava.getSeconds() => 0; + * ``` + * + */ +angular.mock.TzDate = function (offset, timestamp) { + var self = new Date(0); + if (angular.isString(timestamp)) { + var tsStr = timestamp; + + self.origDate = jsonStringToDate(timestamp); + + timestamp = self.origDate.getTime(); + if (isNaN(timestamp)) + throw { + name: "Illegal Argument", + message: "Arg '" + tsStr + "' passed into TzDate constructor is not a valid date string" + }; + } else { + self.origDate = new Date(timestamp); + } + + var localOffset = new Date(timestamp).getTimezoneOffset(); + self.offsetDiff = localOffset*60*1000 - offset*1000*60*60; + self.date = new Date(timestamp + self.offsetDiff); + + self.getTime = function() { + return self.date.getTime() - self.offsetDiff; + }; + + self.toLocaleDateString = function() { + return self.date.toLocaleDateString(); + }; + + self.getFullYear = function() { + return self.date.getFullYear(); + }; + + self.getMonth = function() { + return self.date.getMonth(); + }; + + self.getDate = function() { + return self.date.getDate(); + }; + + self.getHours = function() { + return self.date.getHours(); + }; + + self.getMinutes = function() { + return self.date.getMinutes(); + }; + + self.getSeconds = function() { + return self.date.getSeconds(); + }; + + self.getMilliseconds = function() { + return self.date.getMilliseconds(); + }; + + self.getTimezoneOffset = function() { + return offset * 60; + }; + + self.getUTCFullYear = function() { + return self.origDate.getUTCFullYear(); + }; + + self.getUTCMonth = function() { + return self.origDate.getUTCMonth(); + }; + + self.getUTCDate = function() { + return self.origDate.getUTCDate(); + }; + + self.getUTCHours = function() { + return self.origDate.getUTCHours(); + }; + + self.getUTCMinutes = function() { + return self.origDate.getUTCMinutes(); + }; + + self.getUTCSeconds = function() { + return self.origDate.getUTCSeconds(); + }; + + self.getUTCMilliseconds = function() { + return self.origDate.getUTCMilliseconds(); + }; + + self.getDay = function() { + return self.date.getDay(); + }; + + // provide this method only on browsers that already have it + if (self.toISOString) { + self.toISOString = function() { + return padNumber(self.origDate.getUTCFullYear(), 4) + '-' + + padNumber(self.origDate.getUTCMonth() + 1, 2) + '-' + + padNumber(self.origDate.getUTCDate(), 2) + 'T' + + padNumber(self.origDate.getUTCHours(), 2) + ':' + + padNumber(self.origDate.getUTCMinutes(), 2) + ':' + + padNumber(self.origDate.getUTCSeconds(), 2) + '.' + + padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z'; + }; + } + + //hide all methods not implemented in this mock that the Date prototype exposes + var unimplementedMethods = ['getUTCDay', + 'getYear', 'setDate', 'setFullYear', 'setHours', 'setMilliseconds', + 'setMinutes', 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear', + 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', + 'setYear', 'toDateString', 'toGMTString', 'toJSON', 'toLocaleFormat', 'toLocaleString', + 'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf']; + + angular.forEach(unimplementedMethods, function(methodName) { + self[methodName] = function() { + throw new Error("Method '" + methodName + "' is not implemented in the TzDate mock"); + }; + }); + + return self; +}; + +//make "tzDateInstance instanceof Date" return true +angular.mock.TzDate.prototype = Date.prototype; +/* jshint +W101 */ + +angular.mock.animate = angular.module('ngAnimateMock', ['ng']) + + .config(['$provide', function($provide) { + + var reflowQueue = []; + $provide.value('$$animateReflow', function(fn) { + var index = reflowQueue.length; + reflowQueue.push(fn); + return function cancel() { + reflowQueue.splice(index, 1); + }; + }); + + $provide.decorator('$animate', function($delegate, $$asyncCallback) { + var animate = { + queue : [], + enabled : $delegate.enabled, + triggerCallbacks : function() { + $$asyncCallback.flush(); + }, + triggerReflow : function() { + angular.forEach(reflowQueue, function(fn) { + fn(); + }); + reflowQueue = []; + } + }; + + angular.forEach( + ['enter','leave','move','addClass','removeClass','setClass'], function(method) { + animate[method] = function() { + animate.queue.push({ + event : method, + element : arguments[0], + args : arguments + }); + $delegate[method].apply($delegate, arguments); + }; + }); + + return animate; + }); + + }]); + + +/** + * @ngdoc function + * @name angular.mock.dump + * @description + * + * *NOTE*: this is not an injectable instance, just a globally available function. + * + * Method for serializing common angular objects (scope, elements, etc..) into strings, useful for + * debugging. + * + * This method is also available on window, where it can be used to display objects on debug + * console. + * + * @param {*} object - any object to turn into string. + * @return {string} a serialized string of the argument + */ +angular.mock.dump = function(object) { + return serialize(object); + + function serialize(object) { + var out; + + if (angular.isElement(object)) { + object = angular.element(object); + out = angular.element('
'); + angular.forEach(object, function(element) { + out.append(angular.element(element).clone()); + }); + out = out.html(); + } else if (angular.isArray(object)) { + out = []; + angular.forEach(object, function(o) { + out.push(serialize(o)); + }); + out = '[ ' + out.join(', ') + ' ]'; + } else if (angular.isObject(object)) { + if (angular.isFunction(object.$eval) && angular.isFunction(object.$apply)) { + out = serializeScope(object); + } else if (object instanceof Error) { + out = object.stack || ('' + object.name + ': ' + object.message); + } else { + // TODO(i): this prevents methods being logged, + // we should have a better way to serialize objects + out = angular.toJson(object, true); + } + } else { + out = String(object); + } + + return out; + } + + function serializeScope(scope, offset) { + offset = offset || ' '; + var log = [offset + 'Scope(' + scope.$id + '): {']; + for ( var key in scope ) { + if (Object.prototype.hasOwnProperty.call(scope, key) && !key.match(/^(\$|this)/)) { + log.push(' ' + key + ': ' + angular.toJson(scope[key])); + } + } + var child = scope.$$childHead; + while(child) { + log.push(serializeScope(child, offset + ' ')); + child = child.$$nextSibling; + } + log.push('}'); + return log.join('\n' + offset); + } +}; + +/** + * @ngdoc service + * @name $httpBackend + * @description + * Fake HTTP backend implementation suitable for unit testing applications that use the + * {@link ng.$http $http service}. + * + * *Note*: For fake HTTP backend implementation suitable for end-to-end testing or backend-less + * development please see {@link ngMockE2E.$httpBackend e2e $httpBackend mock}. + * + * During unit testing, we want our unit tests to run quickly and have no external dependencies so + * we don’t want to send [XHR](https://developer.mozilla.org/en/xmlhttprequest) or + * [JSONP](http://en.wikipedia.org/wiki/JSONP) requests to a real server. All we really need is + * to verify whether a certain request has been sent or not, or alternatively just let the + * application make requests, respond with pre-trained responses and assert that the end result is + * what we expect it to be. + * + * This mock implementation can be used to respond with static or dynamic responses via the + * `expect` and `when` apis and their shortcuts (`expectGET`, `whenPOST`, etc). + * + * When an Angular application needs some data from a server, it calls the $http service, which + * sends the request to a real server using $httpBackend service. With dependency injection, it is + * easy to inject $httpBackend mock (which has the same API as $httpBackend) and use it to verify + * the requests and respond with some testing data without sending a request to real server. + * + * There are two ways to specify what test data should be returned as http responses by the mock + * backend when the code under test makes http requests: + * + * - `$httpBackend.expect` - specifies a request expectation + * - `$httpBackend.when` - specifies a backend definition + * + * + * # Request Expectations vs Backend Definitions + * + * Request expectations provide a way to make assertions about requests made by the application and + * to define responses for those requests. The test will fail if the expected requests are not made + * or they are made in the wrong order. + * + * Backend definitions allow you to define a fake backend for your application which doesn't assert + * if a particular request was made or not, it just returns a trained response if a request is made. + * The test will pass whether or not the request gets made during testing. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Request expectationsBackend definitions
Syntax.expect(...).respond(...).when(...).respond(...)
Typical usagestrict unit testsloose (black-box) unit testing
Fulfills multiple requestsNOYES
Order of requests mattersYESNO
Request requiredYESNO
Response requiredoptional (see below)YES
+ * + * In cases where both backend definitions and request expectations are specified during unit + * testing, the request expectations are evaluated first. + * + * If a request expectation has no response specified, the algorithm will search your backend + * definitions for an appropriate response. + * + * If a request didn't match any expectation or if the expectation doesn't have the response + * defined, the backend definitions are evaluated in sequential order to see if any of them match + * the request. The response from the first matched definition is returned. + * + * + * # Flushing HTTP requests + * + * The $httpBackend used in production always responds to requests asynchronously. If we preserved + * this behavior in unit testing, we'd have to create async unit tests, which are hard to write, + * to follow and to maintain. But neither can the testing mock respond synchronously; that would + * change the execution of the code under test. For this reason, the mock $httpBackend has a + * `flush()` method, which allows the test to explicitly flush pending requests. This preserves + * the async api of the backend, while allowing the test to execute synchronously. + * + * + * # Unit testing with mock $httpBackend + * The following code shows how to setup and use the mock backend when unit testing a controller. + * First we create the controller under test: + * + ```js + // The controller code + function MyController($scope, $http) { + var authToken; + + $http.get('/auth.py').success(function(data, status, headers) { + authToken = headers('A-Token'); + $scope.user = data; + }); + + $scope.saveMessage = function(message) { + var headers = { 'Authorization': authToken }; + $scope.status = 'Saving...'; + + $http.post('/add-msg.py', message, { headers: headers } ).success(function(response) { + $scope.status = ''; + }).error(function() { + $scope.status = 'ERROR!'; + }); + }; + } + ``` + * + * Now we setup the mock backend and create the test specs: + * + ```js + // testing controller + describe('MyController', function() { + var $httpBackend, $rootScope, createController; + + beforeEach(inject(function($injector) { + // Set up the mock http service responses + $httpBackend = $injector.get('$httpBackend'); + // backend definition common for all tests + $httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'}); + + // Get hold of a scope (i.e. the root scope) + $rootScope = $injector.get('$rootScope'); + // The $controller service is used to create instances of controllers + var $controller = $injector.get('$controller'); + + createController = function() { + return $controller('MyController', {'$scope' : $rootScope }); + }; + })); + + + afterEach(function() { + $httpBackend.verifyNoOutstandingExpectation(); + $httpBackend.verifyNoOutstandingRequest(); + }); + + + it('should fetch authentication token', function() { + $httpBackend.expectGET('/auth.py'); + var controller = createController(); + $httpBackend.flush(); + }); + + + it('should send msg to server', function() { + var controller = createController(); + $httpBackend.flush(); + + // now you don’t care about the authentication, but + // the controller will still send the request and + // $httpBackend will respond without you having to + // specify the expectation and response for this request + + $httpBackend.expectPOST('/add-msg.py', 'message content').respond(201, ''); + $rootScope.saveMessage('message content'); + expect($rootScope.status).toBe('Saving...'); + $httpBackend.flush(); + expect($rootScope.status).toBe(''); + }); + + + it('should send auth header', function() { + var controller = createController(); + $httpBackend.flush(); + + $httpBackend.expectPOST('/add-msg.py', undefined, function(headers) { + // check if the header was send, if it wasn't the expectation won't + // match the request and the test will fail + return headers['Authorization'] == 'xxx'; + }).respond(201, ''); + + $rootScope.saveMessage('whatever'); + $httpBackend.flush(); + }); + }); + ``` + */ +angular.mock.$HttpBackendProvider = function() { + this.$get = ['$rootScope', createHttpBackendMock]; +}; + +/** + * General factory function for $httpBackend mock. + * Returns instance for unit testing (when no arguments specified): + * - passing through is disabled + * - auto flushing is disabled + * + * Returns instance for e2e testing (when `$delegate` and `$browser` specified): + * - passing through (delegating request to real backend) is enabled + * - auto flushing is enabled + * + * @param {Object=} $delegate Real $httpBackend instance (allow passing through if specified) + * @param {Object=} $browser Auto-flushing enabled if specified + * @return {Object} Instance of $httpBackend mock + */ +function createHttpBackendMock($rootScope, $delegate, $browser) { + var definitions = [], + expectations = [], + responses = [], + responsesPush = angular.bind(responses, responses.push), + copy = angular.copy; + + function createResponse(status, data, headers, statusText) { + if (angular.isFunction(status)) return status; + + return function() { + return angular.isNumber(status) + ? [status, data, headers, statusText] + : [200, status, data]; + }; + } + + // TODO(vojta): change params to: method, url, data, headers, callback + function $httpBackend(method, url, data, callback, headers, timeout, withCredentials) { + var xhr = new MockXhr(), + expectation = expectations[0], + wasExpected = false; + + function prettyPrint(data) { + return (angular.isString(data) || angular.isFunction(data) || data instanceof RegExp) + ? data + : angular.toJson(data); + } + + function wrapResponse(wrapped) { + if (!$browser && timeout && timeout.then) timeout.then(handleTimeout); + + return handleResponse; + + function handleResponse() { + var response = wrapped.response(method, url, data, headers); + xhr.$$respHeaders = response[2]; + callback(copy(response[0]), copy(response[1]), xhr.getAllResponseHeaders(), + copy(response[3] || '')); + } + + function handleTimeout() { + for (var i = 0, ii = responses.length; i < ii; i++) { + if (responses[i] === handleResponse) { + responses.splice(i, 1); + callback(-1, undefined, ''); + break; + } + } + } + } + + if (expectation && expectation.match(method, url)) { + if (!expectation.matchData(data)) + throw new Error('Expected ' + expectation + ' with different data\n' + + 'EXPECTED: ' + prettyPrint(expectation.data) + '\nGOT: ' + data); + + if (!expectation.matchHeaders(headers)) + throw new Error('Expected ' + expectation + ' with different headers\n' + + 'EXPECTED: ' + prettyPrint(expectation.headers) + '\nGOT: ' + + prettyPrint(headers)); + + expectations.shift(); + + if (expectation.response) { + responses.push(wrapResponse(expectation)); + return; + } + wasExpected = true; + } + + var i = -1, definition; + while ((definition = definitions[++i])) { + if (definition.match(method, url, data, headers || {})) { + if (definition.response) { + // if $browser specified, we do auto flush all requests + ($browser ? $browser.defer : responsesPush)(wrapResponse(definition)); + } else if (definition.passThrough) { + $delegate(method, url, data, callback, headers, timeout, withCredentials); + } else throw new Error('No response defined !'); + return; + } + } + throw wasExpected ? + new Error('No response defined !') : + new Error('Unexpected request: ' + method + ' ' + url + '\n' + + (expectation ? 'Expected ' + expectation : 'No more request expected')); + } + + /** + * @ngdoc method + * @name $httpBackend#when + * @description + * Creates a new backend definition. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current definition. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can + * return an array containing response status (number), response data (string), response + * headers (Object), and the text for the status (string). + */ + $httpBackend.when = function(method, url, data, headers) { + var definition = new MockHttpExpectation(method, url, data, headers), + chain = { + respond: function(status, data, headers, statusText) { + definition.response = createResponse(status, data, headers, statusText); + } + }; + + if ($browser) { + chain.passThrough = function() { + definition.passThrough = true; + }; + } + + definitions.push(definition); + return chain; + }; + + /** + * @ngdoc method + * @name $httpBackend#whenGET + * @description + * Creates a new backend definition for GET requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenHEAD + * @description + * Creates a new backend definition for HEAD requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenDELETE + * @description + * Creates a new backend definition for DELETE requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenPOST + * @description + * Creates a new backend definition for POST requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenPUT + * @description + * Creates a new backend definition for PUT requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenJSONP + * @description + * Creates a new backend definition for JSONP requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + createShortMethods('when'); + + + /** + * @ngdoc method + * @name $httpBackend#expect + * @description + * Creates a new request expectation. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current expectation. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can + * return an array containing response status (number), response data (string), response + * headers (Object), and the text for the status (string). + */ + $httpBackend.expect = function(method, url, data, headers) { + var expectation = new MockHttpExpectation(method, url, data, headers); + expectations.push(expectation); + return { + respond: function (status, data, headers, statusText) { + expectation.response = createResponse(status, data, headers, statusText); + } + }; + }; + + + /** + * @ngdoc method + * @name $httpBackend#expectGET + * @description + * Creates a new request expectation for GET requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. See #expect for more info. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectHEAD + * @description + * Creates a new request expectation for HEAD requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectDELETE + * @description + * Creates a new request expectation for DELETE requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPOST + * @description + * Creates a new request expectation for POST requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPUT + * @description + * Creates a new request expectation for PUT requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPATCH + * @description + * Creates a new request expectation for PATCH requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectJSONP + * @description + * Creates a new request expectation for JSONP requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + createShortMethods('expect'); + + + /** + * @ngdoc method + * @name $httpBackend#flush + * @description + * Flushes all pending requests using the trained responses. + * + * @param {number=} count Number of responses to flush (in the order they arrived). If undefined, + * all pending requests will be flushed. If there are no pending requests when the flush method + * is called an exception is thrown (as this typically a sign of programming error). + */ + $httpBackend.flush = function(count) { + $rootScope.$digest(); + if (!responses.length) throw new Error('No pending request to flush !'); + + if (angular.isDefined(count)) { + while (count--) { + if (!responses.length) throw new Error('No more pending request to flush !'); + responses.shift()(); + } + } else { + while (responses.length) { + responses.shift()(); + } + } + $httpBackend.verifyNoOutstandingExpectation(); + }; + + + /** + * @ngdoc method + * @name $httpBackend#verifyNoOutstandingExpectation + * @description + * Verifies that all of the requests defined via the `expect` api were made. If any of the + * requests were not made, verifyNoOutstandingExpectation throws an exception. + * + * Typically, you would call this method following each test case that asserts requests using an + * "afterEach" clause. + * + * ```js + * afterEach($httpBackend.verifyNoOutstandingExpectation); + * ``` + */ + $httpBackend.verifyNoOutstandingExpectation = function() { + $rootScope.$digest(); + if (expectations.length) { + throw new Error('Unsatisfied requests: ' + expectations.join(', ')); + } + }; + + + /** + * @ngdoc method + * @name $httpBackend#verifyNoOutstandingRequest + * @description + * Verifies that there are no outstanding requests that need to be flushed. + * + * Typically, you would call this method following each test case that asserts requests using an + * "afterEach" clause. + * + * ```js + * afterEach($httpBackend.verifyNoOutstandingRequest); + * ``` + */ + $httpBackend.verifyNoOutstandingRequest = function() { + if (responses.length) { + throw new Error('Unflushed requests: ' + responses.length); + } + }; + + + /** + * @ngdoc method + * @name $httpBackend#resetExpectations + * @description + * Resets all request expectations, but preserves all backend definitions. Typically, you would + * call resetExpectations during a multiple-phase test when you want to reuse the same instance of + * $httpBackend mock. + */ + $httpBackend.resetExpectations = function() { + expectations.length = 0; + responses.length = 0; + }; + + return $httpBackend; + + + function createShortMethods(prefix) { + angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) { + $httpBackend[prefix + method] = function(url, headers) { + return $httpBackend[prefix](method, url, undefined, headers); + }; + }); + + angular.forEach(['PUT', 'POST', 'PATCH'], function(method) { + $httpBackend[prefix + method] = function(url, data, headers) { + return $httpBackend[prefix](method, url, data, headers); + }; + }); + } +} + +function MockHttpExpectation(method, url, data, headers) { + + this.data = data; + this.headers = headers; + + this.match = function(m, u, d, h) { + if (method != m) return false; + if (!this.matchUrl(u)) return false; + if (angular.isDefined(d) && !this.matchData(d)) return false; + if (angular.isDefined(h) && !this.matchHeaders(h)) return false; + return true; + }; + + this.matchUrl = function(u) { + if (!url) return true; + if (angular.isFunction(url.test)) return url.test(u); + return url == u; + }; + + this.matchHeaders = function(h) { + if (angular.isUndefined(headers)) return true; + if (angular.isFunction(headers)) return headers(h); + return angular.equals(headers, h); + }; + + this.matchData = function(d) { + if (angular.isUndefined(data)) return true; + if (data && angular.isFunction(data.test)) return data.test(d); + if (data && angular.isFunction(data)) return data(d); + if (data && !angular.isString(data)) return angular.equals(data, angular.fromJson(d)); + return data == d; + }; + + this.toString = function() { + return method + ' ' + url; + }; +} + +function createMockXhr() { + return new MockXhr(); +} + +function MockXhr() { + + // hack for testing $http, $httpBackend + MockXhr.$$lastInstance = this; + + this.open = function(method, url, async) { + this.$$method = method; + this.$$url = url; + this.$$async = async; + this.$$reqHeaders = {}; + this.$$respHeaders = {}; + }; + + this.send = function(data) { + this.$$data = data; + }; + + this.setRequestHeader = function(key, value) { + this.$$reqHeaders[key] = value; + }; + + this.getResponseHeader = function(name) { + // the lookup must be case insensitive, + // that's why we try two quick lookups first and full scan last + var header = this.$$respHeaders[name]; + if (header) return header; + + name = angular.lowercase(name); + header = this.$$respHeaders[name]; + if (header) return header; + + header = undefined; + angular.forEach(this.$$respHeaders, function(headerVal, headerName) { + if (!header && angular.lowercase(headerName) == name) header = headerVal; + }); + return header; + }; + + this.getAllResponseHeaders = function() { + var lines = []; + + angular.forEach(this.$$respHeaders, function(value, key) { + lines.push(key + ': ' + value); + }); + return lines.join('\n'); + }; + + this.abort = angular.noop; +} + + +/** + * @ngdoc service + * @name $timeout + * @description + * + * This service is just a simple decorator for {@link ng.$timeout $timeout} service + * that adds a "flush" and "verifyNoPendingTasks" methods. + */ + +angular.mock.$TimeoutDecorator = function($delegate, $browser) { + + /** + * @ngdoc method + * @name $timeout#flush + * @description + * + * Flushes the queue of pending tasks. + * + * @param {number=} delay maximum timeout amount to flush up until + */ + $delegate.flush = function(delay) { + $browser.defer.flush(delay); + }; + + /** + * @ngdoc method + * @name $timeout#verifyNoPendingTasks + * @description + * + * Verifies that there are no pending tasks that need to be flushed. + */ + $delegate.verifyNoPendingTasks = function() { + if ($browser.deferredFns.length) { + throw new Error('Deferred tasks to flush (' + $browser.deferredFns.length + '): ' + + formatPendingTasksAsString($browser.deferredFns)); + } + }; + + function formatPendingTasksAsString(tasks) { + var result = []; + angular.forEach(tasks, function(task) { + result.push('{id: ' + task.id + ', ' + 'time: ' + task.time + '}'); + }); + + return result.join(', '); + } + + return $delegate; +}; + +angular.mock.$RAFDecorator = function($delegate) { + var queue = []; + var rafFn = function(fn) { + var index = queue.length; + queue.push(fn); + return function() { + queue.splice(index, 1); + }; + }; + + rafFn.supported = $delegate.supported; + + rafFn.flush = function() { + if(queue.length === 0) { + throw new Error('No rAF callbacks present'); + } + + var length = queue.length; + for(var i=0;i'); + }; +}; + +/** + * @ngdoc module + * @name ngMock + * @description + * + * # ngMock + * + * The `ngMock` module providers support to inject and mock Angular services into unit tests. + * In addition, ngMock also extends various core ng services such that they can be + * inspected and controlled in a synchronous manner within test code. + * + * + *
+ * + */ +angular.module('ngMock', ['ng']).provider({ + $browser: angular.mock.$BrowserProvider, + $exceptionHandler: angular.mock.$ExceptionHandlerProvider, + $log: angular.mock.$LogProvider, + $interval: angular.mock.$IntervalProvider, + $httpBackend: angular.mock.$HttpBackendProvider, + $rootElement: angular.mock.$RootElementProvider +}).config(['$provide', function($provide) { + $provide.decorator('$timeout', angular.mock.$TimeoutDecorator); + $provide.decorator('$$rAF', angular.mock.$RAFDecorator); + $provide.decorator('$$asyncCallback', angular.mock.$AsyncCallbackDecorator); +}]); + +/** + * @ngdoc module + * @name ngMockE2E + * @module ngMockE2E + * @description + * + * The `ngMockE2E` is an angular module which contains mocks suitable for end-to-end testing. + * Currently there is only one mock present in this module - + * the {@link ngMockE2E.$httpBackend e2e $httpBackend} mock. + */ +angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { + $provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator); +}]); + +/** + * @ngdoc service + * @name $httpBackend + * @module ngMockE2E + * @description + * Fake HTTP backend implementation suitable for end-to-end testing or backend-less development of + * applications that use the {@link ng.$http $http service}. + * + * *Note*: For fake http backend implementation suitable for unit testing please see + * {@link ngMock.$httpBackend unit-testing $httpBackend mock}. + * + * This implementation can be used to respond with static or dynamic responses via the `when` api + * and its shortcuts (`whenGET`, `whenPOST`, etc) and optionally pass through requests to the + * real $httpBackend for specific requests (e.g. to interact with certain remote apis or to fetch + * templates from a webserver). + * + * As opposed to unit-testing, in an end-to-end testing scenario or in scenario when an application + * is being developed with the real backend api replaced with a mock, it is often desirable for + * certain category of requests to bypass the mock and issue a real http request (e.g. to fetch + * templates or static files from the webserver). To configure the backend with this behavior + * use the `passThrough` request handler of `when` instead of `respond`. + * + * Additionally, we don't want to manually have to flush mocked out requests like we do during unit + * testing. For this reason the e2e $httpBackend automatically flushes mocked out requests + * automatically, closely simulating the behavior of the XMLHttpRequest object. + * + * To setup the application to run with this http backend, you have to create a module that depends + * on the `ngMockE2E` and your application modules and defines the fake backend: + * + * ```js + * myAppDev = angular.module('myAppDev', ['myApp', 'ngMockE2E']); + * myAppDev.run(function($httpBackend) { + * phones = [{name: 'phone1'}, {name: 'phone2'}]; + * + * // returns the current list of phones + * $httpBackend.whenGET('/phones').respond(phones); + * + * // adds a new phone to the phones array + * $httpBackend.whenPOST('/phones').respond(function(method, url, data) { + * phones.push(angular.fromJson(data)); + * }); + * $httpBackend.whenGET(/^\/templates\//).passThrough(); + * //... + * }); + * ``` + * + * Afterwards, bootstrap your app with this new module. + */ + +/** + * @ngdoc method + * @name $httpBackend#when + * @module ngMockE2E + * @description + * Creates a new backend definition. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current definition. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can return + * an array containing response status (number), response data (string), response headers + * (Object), and the text for the status (string). + * - passThrough – `{function()}` – Any request matching a backend definition with + * `passThrough` handler will be passed through to the real backend (an XHR request will be made + * to the server.) + */ + +/** + * @ngdoc method + * @name $httpBackend#whenGET + * @module ngMockE2E + * @description + * Creates a new backend definition for GET requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenHEAD + * @module ngMockE2E + * @description + * Creates a new backend definition for HEAD requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenDELETE + * @module ngMockE2E + * @description + * Creates a new backend definition for DELETE requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPOST + * @module ngMockE2E + * @description + * Creates a new backend definition for POST requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPUT + * @module ngMockE2E + * @description + * Creates a new backend definition for PUT requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPATCH + * @module ngMockE2E + * @description + * Creates a new backend definition for PATCH requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenJSONP + * @module ngMockE2E + * @description + * Creates a new backend definition for JSONP requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ +angular.mock.e2e = {}; +angular.mock.e2e.$httpBackendDecorator = + ['$rootScope', '$delegate', '$browser', createHttpBackendMock]; + + +angular.mock.clearDataCache = function() { + var key, + cache = angular.element.cache; + + for(key in cache) { + if (Object.prototype.hasOwnProperty.call(cache,key)) { + var handle = cache[key].handle; + + handle && angular.element(handle.elem).off(); + delete cache[key]; + } + } +}; + + +if(window.jasmine || window.mocha) { + + var currentSpec = null, + isSpecRunning = function() { + return !!currentSpec; + }; + + + beforeEach(function() { + currentSpec = this; + }); + + afterEach(function() { + var injector = currentSpec.$injector; + + currentSpec.$injector = null; + currentSpec.$modules = null; + currentSpec = null; + + if (injector) { + injector.get('$rootElement').off(); + injector.get('$browser').pollFns.length = 0; + } + + angular.mock.clearDataCache(); + + // clean up jquery's fragment cache + angular.forEach(angular.element.fragments, function(val, key) { + delete angular.element.fragments[key]; + }); + + MockXhr.$$lastInstance = null; + + angular.forEach(angular.callbacks, function(val, key) { + delete angular.callbacks[key]; + }); + angular.callbacks.counter = 0; + }); + + /** + * @ngdoc function + * @name angular.mock.module + * @description + * + * *NOTE*: This function is also published on window for easy access.
+ * + * This function registers a module configuration code. It collects the configuration information + * which will be used when the injector is created by {@link angular.mock.inject inject}. + * + * See {@link angular.mock.inject inject} for usage example + * + * @param {...(string|Function|Object)} fns any number of modules which are represented as string + * aliases or as anonymous module initialization functions. The modules are used to + * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded. If an + * object literal is passed they will be register as values in the module, the key being + * the module name and the value being what is returned. + */ + window.module = angular.mock.module = function() { + var moduleFns = Array.prototype.slice.call(arguments, 0); + return isSpecRunning() ? workFn() : workFn; + ///////////////////// + function workFn() { + if (currentSpec.$injector) { + throw new Error('Injector already created, can not register a module!'); + } else { + var modules = currentSpec.$modules || (currentSpec.$modules = []); + angular.forEach(moduleFns, function(module) { + if (angular.isObject(module) && !angular.isArray(module)) { + modules.push(function($provide) { + angular.forEach(module, function(value, key) { + $provide.value(key, value); + }); + }); + } else { + modules.push(module); + } + }); + } + } + }; + + /** + * @ngdoc function + * @name angular.mock.inject + * @description + * + * *NOTE*: This function is also published on window for easy access.
+ * + * The inject function wraps a function into an injectable function. The inject() creates new + * instance of {@link auto.$injector $injector} per test, which is then used for + * resolving references. + * + * + * ## Resolving References (Underscore Wrapping) + * Often, we would like to inject a reference once, in a `beforeEach()` block and reuse this + * in multiple `it()` clauses. To be able to do this we must assign the reference to a variable + * that is declared in the scope of the `describe()` block. Since we would, most likely, want + * the variable to have the same name of the reference we have a problem, since the parameter + * to the `inject()` function would hide the outer variable. + * + * To help with this, the injected parameters can, optionally, be enclosed with underscores. + * These are ignored by the injector when the reference name is resolved. + * + * For example, the parameter `_myService_` would be resolved as the reference `myService`. + * Since it is available in the function body as _myService_, we can then assign it to a variable + * defined in an outer scope. + * + * ``` + * // Defined out reference variable outside + * var myService; + * + * // Wrap the parameter in underscores + * beforeEach( inject( function(_myService_){ + * myService = _myService_; + * })); + * + * // Use myService in a series of tests. + * it('makes use of myService', function() { + * myService.doStuff(); + * }); + * + * ``` + * + * See also {@link angular.mock.module angular.mock.module} + * + * ## Example + * Example of what a typical jasmine tests looks like with the inject method. + * ```js + * + * angular.module('myApplicationModule', []) + * .value('mode', 'app') + * .value('version', 'v1.0.1'); + * + * + * describe('MyApp', function() { + * + * // You need to load modules that you want to test, + * // it loads only the "ng" module by default. + * beforeEach(module('myApplicationModule')); + * + * + * // inject() is used to inject arguments of all given functions + * it('should provide a version', inject(function(mode, version) { + * expect(version).toEqual('v1.0.1'); + * expect(mode).toEqual('app'); + * })); + * + * + * // The inject and module method can also be used inside of the it or beforeEach + * it('should override a version and test the new version is injected', function() { + * // module() takes functions or strings (module aliases) + * module(function($provide) { + * $provide.value('version', 'overridden'); // override version here + * }); + * + * inject(function(version) { + * expect(version).toEqual('overridden'); + * }); + * }); + * }); + * + * ``` + * + * @param {...Function} fns any number of functions which will be injected using the injector. + */ + + + + var ErrorAddingDeclarationLocationStack = function(e, errorForStack) { + this.message = e.message; + this.name = e.name; + if (e.line) this.line = e.line; + if (e.sourceId) this.sourceId = e.sourceId; + if (e.stack && errorForStack) + this.stack = e.stack + '\n' + errorForStack.stack; + if (e.stackArray) this.stackArray = e.stackArray; + }; + ErrorAddingDeclarationLocationStack.prototype.toString = Error.prototype.toString; + + window.inject = angular.mock.inject = function() { + var blockFns = Array.prototype.slice.call(arguments, 0); + var errorForStack = new Error('Declaration Location'); + return isSpecRunning() ? workFn.call(currentSpec) : workFn; + ///////////////////// + function workFn() { + var modules = currentSpec.$modules || []; + + modules.unshift('ngMock'); + modules.unshift('ng'); + var injector = currentSpec.$injector; + if (!injector) { + injector = currentSpec.$injector = angular.injector(modules); + } + for(var i = 0, ii = blockFns.length; i < ii; i++) { + try { + /* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */ + injector.invoke(blockFns[i] || angular.noop, this); + /* jshint +W040 */ + } catch (e) { + if (e.stack && errorForStack) { + throw new ErrorAddingDeclarationLocationStack(e, errorForStack); + } + throw e; + } finally { + errorForStack = null; + } + } + } + }; +} + + +})(window, window.angular); diff --git a/platforms/android/assets/www/lib/angular-mocks/bower.json b/platforms/android/assets/www/lib/angular-mocks/bower.json new file mode 100644 index 00000000..09d2e7cf --- /dev/null +++ b/platforms/android/assets/www/lib/angular-mocks/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-mocks", + "version": "1.2.16", + "main": "./angular-mocks.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/platforms/android/assets/www/lib/angular-moment/angular-moment.js b/platforms/android/assets/www/lib/angular-moment/angular-moment.js new file mode 100644 index 00000000..47157f7e --- /dev/null +++ b/platforms/android/assets/www/lib/angular-moment/angular-moment.js @@ -0,0 +1,727 @@ + +/* angular-moment.js / v1.0.0-beta.3 / (c) 2013, 2014, 2015 Uri Shaked / MIT Licence */ + +'format amd'; +/* global define */ + +(function () { + 'use strict'; + + function isUndefinedOrNull(val) { + return angular.isUndefined(val) || val === null; + } + + function requireMoment() { + try { + return require('moment'); // Using nw.js or browserify? + } catch (e) { + throw new Error('Please install moment via npm. Please reference to: https://github.com/urish/angular-moment'); // Add wiki/troubleshooting section? + } + } + + function angularMoment(angular, moment) { + + if(typeof moment === 'undefined') { + if(typeof require === 'function') { + moment = requireMoment(); + }else{ + throw new Error('Moment cannot be found by angular-moment! Please reference to: https://github.com/urish/angular-moment'); // Add wiki/troubleshooting section? + } + } + + /** + * @ngdoc overview + * @name angularMoment + * + * @description + * angularMoment module provides moment.js functionality for angular.js apps. + */ + return angular.module('angularMoment', []) + + /** + * @ngdoc object + * @name angularMoment.config:angularMomentConfig + * + * @description + * Common configuration of the angularMoment module + */ + .constant('angularMomentConfig', { + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#preprocess + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {function} A preprocessor function that will be applied on all incoming dates + * + * @description + * Defines a preprocessor function to apply on all input dates (e.g. the input of `am-time-ago`, + * `amCalendar`, etc.). The function must return a `moment` object. + * + * @example + * // Causes angular-moment to always treat the input values as unix timestamps + * angularMomentConfig.preprocess = function(value) { + * return moment.unix(value); + * } + */ + preprocess: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#timezone + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {string} The default timezone + * + * @description + * The default timezone (e.g. 'Europe/London'). Empty string by default (does not apply + * any timezone shift). + * + * NOTE: This option requires moment-timezone >= 0.3.0. + */ + timezone: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#format + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {string} The pre-conversion format of the date + * + * @description + * Specify the format of the input date. Essentially it's a + * default and saves you from specifying a format in every + * element. Overridden by element attr. Null by default. + */ + format: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#statefulFilters + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {boolean} Whether angular-moment filters should be stateless (or not) + * + * @description + * Specifies whether the filters included with angular-moment are stateful. + * Stateful filters will automatically re-evaluate whenever you change the timezone + * or locale settings, but may negatively impact performance. true by default. + */ + statefulFilters: true + }) + + /** + * @ngdoc object + * @name angularMoment.object:moment + * + * @description + * moment global (as provided by the moment.js library) + */ + .constant('moment', moment) + + /** + * @ngdoc object + * @name angularMoment.config:amTimeAgoConfig + * @module angularMoment + * + * @description + * configuration specific to the amTimeAgo directive + */ + .constant('amTimeAgoConfig', { + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#withoutSuffix + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {boolean} Whether to include a suffix in am-time-ago directive + * + * @description + * Defaults to false. + */ + withoutSuffix: false, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#serverTime + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {number} Server time in milliseconds since the epoch + * + * @description + * If set, time ago will be calculated relative to the given value. + * If null, local time will be used. Defaults to null. + */ + serverTime: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#titleFormat + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {string} The format of the date to be displayed in the title of the element. If null, + * the directive set the title of the element. + * + * @description + * The format of the date used for the title of the element. null by default. + */ + titleFormat: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#fullDateThreshold + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {number} The minimum number of days for showing a full date instead of relative time + * + * @description + * The threshold for displaying a full date. The default is null, which means the date will always + * be relative, and full date will never be displayed. + */ + fullDateThreshold: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#fullDateFormat + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {string} The format to use when displaying a full date. + * + * @description + * Specify the format of the date when displayed as full date. null by default. + */ + fullDateFormat: null + }) + + /** + * @ngdoc directive + * @name angularMoment.directive:amTimeAgo + * @module angularMoment + * + * @restrict A + */ + .directive('amTimeAgo', ['$window', 'moment', 'amMoment', 'amTimeAgoConfig', function ($window, moment, amMoment, amTimeAgoConfig) { + + return function (scope, element, attr) { + var activeTimeout = null; + var currentValue; + var withoutSuffix = amTimeAgoConfig.withoutSuffix; + var titleFormat = amTimeAgoConfig.titleFormat; + var fullDateThreshold = amTimeAgoConfig.fullDateThreshold; + var fullDateFormat = amTimeAgoConfig.fullDateFormat; + var localDate = new Date().getTime(); + var modelName = attr.amTimeAgo; + var currentFrom; + var isTimeElement = ('TIME' === element[0].nodeName.toUpperCase()); + var setTitleTime = !element.attr('title'); + + function getNow() { + var now; + if (currentFrom) { + now = currentFrom; + } else if (amTimeAgoConfig.serverTime) { + var localNow = new Date().getTime(); + var nowMillis = localNow - localDate + amTimeAgoConfig.serverTime; + now = moment(nowMillis); + } + else { + now = moment(); + } + return now; + } + + function cancelTimer() { + if (activeTimeout) { + $window.clearTimeout(activeTimeout); + activeTimeout = null; + } + } + + function updateTime(momentInstance) { + var daysAgo = getNow().diff(momentInstance, 'day'); + var showFullDate = fullDateThreshold && daysAgo >= fullDateThreshold; + + if (showFullDate) { + element.text(momentInstance.format(fullDateFormat)); + } else { + element.text(momentInstance.from(getNow(), withoutSuffix)); + } + + if (titleFormat && setTitleTime) { + element.attr('title', momentInstance.local().format(titleFormat)); + } + + if (!showFullDate) { + var howOld = Math.abs(getNow().diff(momentInstance, 'minute')); + var secondsUntilUpdate = 3600; + if (howOld < 1) { + secondsUntilUpdate = 1; + } else if (howOld < 60) { + secondsUntilUpdate = 30; + } else if (howOld < 180) { + secondsUntilUpdate = 300; + } + + activeTimeout = $window.setTimeout(function () { + updateTime(momentInstance); + }, secondsUntilUpdate * 1000); + } + } + + function updateDateTimeAttr(value) { + if (isTimeElement) { + element.attr('datetime', value); + } + } + + function updateMoment() { + cancelTimer(); + if (currentValue) { + var momentValue = amMoment.preprocessDate(currentValue); + updateTime(momentValue); + updateDateTimeAttr(momentValue.toISOString()); + } + } + + scope.$watch(modelName, function (value) { + if (isUndefinedOrNull(value) || (value === '')) { + cancelTimer(); + if (currentValue) { + element.text(''); + updateDateTimeAttr(''); + currentValue = null; + } + return; + } + + currentValue = value; + updateMoment(); + }); + + if (angular.isDefined(attr.amFrom)) { + scope.$watch(attr.amFrom, function (value) { + if (isUndefinedOrNull(value) || (value === '')) { + currentFrom = null; + } else { + currentFrom = moment(value); + } + updateMoment(); + }); + } + + if (angular.isDefined(attr.amWithoutSuffix)) { + scope.$watch(attr.amWithoutSuffix, function (value) { + if (typeof value === 'boolean') { + withoutSuffix = value; + updateMoment(); + } else { + withoutSuffix = amTimeAgoConfig.withoutSuffix; + } + }); + } + + attr.$observe('amFullDateThreshold', function (newValue) { + fullDateThreshold = newValue; + updateMoment(); + }); + + attr.$observe('amFullDateFormat', function (newValue) { + fullDateFormat = newValue; + updateMoment(); + }); + + scope.$on('$destroy', function () { + cancelTimer(); + }); + + scope.$on('amMoment:localeChanged', function () { + updateMoment(); + }); + }; + }]) + + /** + * @ngdoc service + * @name angularMoment.service.amMoment + * @module angularMoment + */ + .service('amMoment', ['moment', '$rootScope', '$log', 'angularMomentConfig', function (moment, $rootScope, $log, angularMomentConfig) { + var defaultTimezone = null; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#changeLocale + * @methodOf angularMoment.service.amMoment + * + * @description + * Changes the locale for moment.js and updates all the am-time-ago directive instances + * with the new locale. Also broadcasts an `amMoment:localeChanged` event on $rootScope. + * + * @param {string} locale Locale code (e.g. en, es, ru, pt-br, etc.) + * @param {object} customization object of locale strings to override + */ + this.changeLocale = function (locale, customization) { + var result = moment.locale(locale, customization); + if (angular.isDefined(locale)) { + $rootScope.$broadcast('amMoment:localeChanged'); + + } + return result; + }; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#changeTimezone + * @methodOf angularMoment.service.amMoment + * + * @description + * Changes the default timezone for amCalendar, amDateFormat and amTimeAgo. Also broadcasts an + * `amMoment:timezoneChanged` event on $rootScope. + * + * Note: this method works only if moment-timezone > 0.3.0 is loaded + * + * @param {string} timezone Timezone name (e.g. UTC) + */ + this.changeTimezone = function (timezone) { + if (moment.tz && moment.tz.setDefault) { + moment.tz.setDefault(timezone); + $rootScope.$broadcast('amMoment:timezoneChanged'); + } else { + $log.warn('angular-moment: changeTimezone() works only with moment-timezone.js v0.3.0 or greater.'); + } + angularMomentConfig.timezone = timezone; + defaultTimezone = timezone; + }; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#preprocessDate + * @methodOf angularMoment.service.amMoment + * + * @description + * Preprocess a given value and convert it into a Moment instance appropriate for use in the + * am-time-ago directive and the filters. The behavior of this function can be overriden by + * setting `angularMomentConfig.preprocess`. + * + * @param {*} value The value to be preprocessed + * @return {Moment} A `moment` object + */ + this.preprocessDate = function (value) { + // Configure the default timezone if needed + if (defaultTimezone !== angularMomentConfig.timezone) { + this.changeTimezone(angularMomentConfig.timezone); + } + + if (angularMomentConfig.preprocess) { + return angularMomentConfig.preprocess(value); + } + + if (!isNaN(parseFloat(value)) && isFinite(value)) { + // Milliseconds since the epoch + return moment(parseInt(value, 10)); + } + + // else just returns the value as-is. + return moment(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amParse + * @module angularMoment + */ + .filter('amParse', ['moment', function (moment) { + return function (value, format) { + return moment(value, format); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amFromUnix + * @module angularMoment + */ + .filter('amFromUnix', ['moment', function (moment) { + return function (value) { + return moment.unix(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amUtc + * @module angularMoment + */ + .filter('amUtc', ['moment', function (moment) { + return function (value) { + return moment.utc(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amUtcOffset + * @module angularMoment + * + * @description + * Adds a UTC offset to the given timezone object. The offset can be a number of minutes, or a string such as + * '+0300', '-0300' or 'Z'. + */ + .filter('amUtcOffset', ['amMoment', function (amMoment) { + function amUtcOffset(value, offset) { + return amMoment.preprocessDate(value).utcOffset(offset); + } + + return amUtcOffset; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amLocal + * @module angularMoment + */ + .filter('amLocal', ['moment', function (moment) { + return function (value) { + return moment.isMoment(value) ? value.local() : null; + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amTimezone + * @module angularMoment + * + * @description + * Apply a timezone onto a given moment object, e.g. 'America/Phoenix'). + * + * You need to include moment-timezone.js for timezone support. + */ + .filter('amTimezone', ['amMoment', 'angularMomentConfig', '$log', function (amMoment, angularMomentConfig, $log) { + function amTimezone(value, timezone) { + var aMoment = amMoment.preprocessDate(value); + + if (!timezone) { + return aMoment; + } + + if (aMoment.tz) { + return aMoment.tz(timezone); + } else { + $log.warn('angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js ?'); + return aMoment; + } + } + + return amTimezone; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amCalendar + * @module angularMoment + */ + .filter('amCalendar', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amCalendarFilter(value) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + return date.isValid() ? date.calendar() : ''; + } + + // Since AngularJS 1.3, filters have to explicitly define being stateful + // (this is no longer the default). + amCalendarFilter.$stateful = angularMomentConfig.statefulFilters; + + return amCalendarFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDifference + * @module angularMoment + */ + .filter('amDifference', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amDifferenceFilter(value, otherValue, unit, usePrecision) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + var date2 = !isUndefinedOrNull(otherValue) ? amMoment.preprocessDate(otherValue) : moment(); + + if (!date.isValid() || !date2.isValid()) { + return ''; + } + + return date.diff(date2, unit, usePrecision); + } + + amDifferenceFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDifferenceFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDateFormat + * @module angularMoment + * @function + */ + .filter('amDateFormat', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amDateFormatFilter(value, format) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + if (!date.isValid()) { + return ''; + } + + return date.format(format); + } + + amDateFormatFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDateFormatFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDurationFormat + * @module angularMoment + * @function + */ + .filter('amDurationFormat', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amDurationFormatFilter(value, format, suffix) { + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment.duration(value, format).humanize(suffix); + } + + amDurationFormatFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDurationFormatFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amTimeAgo + * @module angularMoment + * @function + */ + .filter('amTimeAgo', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amTimeAgoFilter(value, suffix, from) { + var date, dateFrom; + + if (isUndefinedOrNull(value)) { + return ''; + } + + value = amMoment.preprocessDate(value); + date = moment(value); + if (!date.isValid()) { + return ''; + } + + dateFrom = moment(from); + if (!isUndefinedOrNull(from) && dateFrom.isValid()) { + return date.from(dateFrom, suffix); + } + + return date.fromNow(suffix); + } + + amTimeAgoFilter.$stateful = angularMomentConfig.statefulFilters; + + return amTimeAgoFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amSubtract + * @module angularMoment + * @function + */ + .filter('amSubtract', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amSubtractFilter(value, amount, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).subtract(parseInt(amount, 10), type); + } + + amSubtractFilter.$stateful = angularMomentConfig.statefulFilters; + + return amSubtractFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amAdd + * @module angularMoment + * @function + */ + .filter('amAdd', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amAddFilter(value, amount, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).add(parseInt(amount, 10), type); + } + + amAddFilter.$stateful = angularMomentConfig.statefulFilters; + + return amAddFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amStartOf + * @module angularMoment + * @function + */ + .filter('amStartOf', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amStartOfFilter(value, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).startOf(type); + } + + amStartOfFilter.$stateful = angularMomentConfig.statefulFilters; + + return amStartOfFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amEndOf + * @module angularMoment + * @function + */ + .filter('amEndOf', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amEndOfFilter(value, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).endOf(type); + } + + amEndOfFilter.$stateful = angularMomentConfig.statefulFilters; + + return amEndOfFilter; + }]); + } + + if (typeof define === 'function' && define.amd) { + define(['angular', 'moment'], angularMoment); + } else if (typeof module !== 'undefined' && module && module.exports) { + angularMoment(require('angular'), require('moment')); + module.exports = 'angularMoment'; + } else { + angularMoment(angular, (typeof global !== 'undefined' ? global : window).moment); + } +})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/angular-resource/.bower.json b/platforms/android/assets/www/lib/angular-resource/.bower.json new file mode 100644 index 00000000..a7e0b984 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-resource/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-resource", + "version": "1.2.16", + "main": "./angular-resource.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-resource", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "06a1d9f570fd47b767b019881d523a3f3416ca93" + }, + "_source": "git://github.com/angular/bower-angular-resource.git", + "_target": "1.2.16", + "_originalSource": "angular-resource" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/angular-resource/README.md b/platforms/android/assets/www/lib/angular-resource/README.md new file mode 100644 index 00000000..c8ac8146 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-resource/README.md @@ -0,0 +1,54 @@ +# bower-angular-resource + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngResource). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-resource +``` + +Add a ` +``` + +And add `ngResource` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngResource']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngResource). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-resource/angular-resource.js b/platforms/android/assets/www/lib/angular-resource/angular-resource.js new file mode 100644 index 00000000..7014984c --- /dev/null +++ b/platforms/android/assets/www/lib/angular-resource/angular-resource.js @@ -0,0 +1,610 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $resourceMinErr = angular.$$minErr('$resource'); + +// Helper functions and regex to lookup a dotted path on an object +// stopping at undefined/null. The path must be composed of ASCII +// identifiers (just like $parse) +var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/; + +function isValidDottedPath(path) { + return (path != null && path !== '' && path !== 'hasOwnProperty' && + MEMBER_NAME_REGEX.test('.' + path)); +} + +function lookupDottedPath(obj, path) { + if (!isValidDottedPath(path)) { + throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path); + } + var keys = path.split('.'); + for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) { + var key = keys[i]; + obj = (obj !== null) ? obj[key] : undefined; + } + return obj; +} + +/** + * Create a shallow copy of an object and clear other fields from the destination + */ +function shallowClearAndCopy(src, dst) { + dst = dst || {}; + + angular.forEach(dst, function(value, key){ + delete dst[key]; + }); + + for (var key in src) { + if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) { + dst[key] = src[key]; + } + } + + return dst; +} + +/** + * @ngdoc module + * @name ngResource + * @description + * + * # ngResource + * + * The `ngResource` module provides interaction support with RESTful services + * via the $resource service. + * + * + *
+ * + * See {@link ngResource.$resource `$resource`} for usage. + */ + +/** + * @ngdoc service + * @name $resource + * @requires $http + * + * @description + * A factory which creates a resource object that lets you interact with + * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. + * + * The returned resource object has action methods which provide high-level behaviors without + * the need to interact with the low level {@link ng.$http $http} service. + * + * Requires the {@link ngResource `ngResource`} module to be installed. + * + * @param {string} url A parametrized URL template with parameters prefixed by `:` as in + * `/user/:username`. If you are using a URL with a port number (e.g. + * `http://example.com:8080/api`), it will be respected. + * + * If you are using a url with a suffix, just add the suffix, like this: + * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` + * or even `$resource('http://example.com/resource/:resource_id.:format')` + * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you + * can escape it with `/\.`. + * + * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in + * `actions` methods. If any of the parameter value is a function, it will be executed every time + * when a param value needs to be obtained for a request (unless the param was overridden). + * + * Each key value in the parameter object is first bound to url template if present and then any + * excess keys are appended to the url search query after the `?`. + * + * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in + * URL `/path/greet?salutation=Hello`. + * + * If the parameter value is prefixed with `@` then the value of that parameter is extracted from + * the data object (useful for non-GET operations). + * + * @param {Object.=} actions Hash with declaration of custom action that should extend + * the default set of resource actions. The declaration should be created in the format of {@link + * ng.$http#usage_parameters $http.config}: + * + * {action1: {method:?, params:?, isArray:?, headers:?, ...}, + * action2: {method:?, params:?, isArray:?, headers:?, ...}, + * ...} + * + * Where: + * + * - **`action`** – {string} – The name of action. This name becomes the name of the method on + * your resource object. + * - **`method`** – {string} – HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, + * `DELETE`, and `JSONP`. + * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of + * the parameter value is a function, it will be executed every time when a param value needs to + * be obtained for a request (unless the param was overridden). + * - **`url`** – {string} – action specific `url` override. The url templating is supported just + * like for the resource-level urls. + * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, + * see `returns` section. + * - **`transformRequest`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * - **`transformResponse`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body and headers and returns its transformed (typically deserialized) version. + * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that + * should abort the request when resolved. + * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See + * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5) + * for more information. + * - **`responseType`** - `{string}` - see + * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - + * `response` and `responseError`. Both `response` and `responseError` interceptors get called + * with `http response` object. See {@link ng.$http $http interceptors}. + * + * @returns {Object} A resource "class" object with methods for the default set of resource actions + * optionally extended with custom `actions`. The default set contains these actions: + * ```js + * { 'get': {method:'GET'}, + * 'save': {method:'POST'}, + * 'query': {method:'GET', isArray:true}, + * 'remove': {method:'DELETE'}, + * 'delete': {method:'DELETE'} }; + * ``` + * + * Calling these methods invoke an {@link ng.$http} with the specified http method, + * destination and parameters. When the data is returned from the server then the object is an + * instance of the resource class. The actions `save`, `remove` and `delete` are available on it + * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, + * read, update, delete) on server-side data like this: + * ```js + * var User = $resource('/user/:userId', {userId:'@id'}); + * var user = User.get({userId:123}, function() { + * user.abc = true; + * user.$save(); + * }); + * ``` + * + * It is important to realize that invoking a $resource object method immediately returns an + * empty reference (object or array depending on `isArray`). Once the data is returned from the + * server the existing reference is populated with the actual data. This is a useful trick since + * usually the resource is assigned to a model which is then rendered by the view. Having an empty + * object results in no rendering, once the data arrives from the server then the object is + * populated with the data and the view automatically re-renders itself showing the new data. This + * means that in most cases one never has to write a callback function for the action methods. + * + * The action methods on the class object or instance object can be invoked with the following + * parameters: + * + * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` + * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` + * - non-GET instance actions: `instance.$action([parameters], [success], [error])` + * + * Success callback is called with (value, responseHeaders) arguments. Error callback is called + * with (httpResponse) argument. + * + * Class actions return empty instance (with additional properties below). + * Instance actions return promise of the action. + * + * The Resource instances and collection have these additional properties: + * + * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this + * instance or collection. + * + * On success, the promise is resolved with the same resource instance or collection object, + * updated with data from server. This makes it easy to use in + * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view + * rendering until the resource(s) are loaded. + * + * On failure, the promise is resolved with the {@link ng.$http http response} object, without + * the `resource` property. + * + * If an interceptor object was provided, the promise will instead be resolved with the value + * returned by the interceptor. + * + * - `$resolved`: `true` after first server interaction is completed (either with success or + * rejection), `false` before that. Knowing if the Resource has been resolved is useful in + * data-binding. + * + * @example + * + * # Credit card resource + * + * ```js + // Define CreditCard class + var CreditCard = $resource('/user/:userId/card/:cardId', + {userId:123, cardId:'@id'}, { + charge: {method:'POST', params:{charge:true}} + }); + + // We can retrieve a collection from the server + var cards = CreditCard.query(function() { + // GET: /user/123/card + // server returns: [ {id:456, number:'1234', name:'Smith'} ]; + + var card = cards[0]; + // each item is an instance of CreditCard + expect(card instanceof CreditCard).toEqual(true); + card.name = "J. Smith"; + // non GET methods are mapped onto the instances + card.$save(); + // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} + // server returns: {id:456, number:'1234', name: 'J. Smith'}; + + // our custom method is mapped as well. + card.$charge({amount:9.99}); + // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} + }); + + // we can create an instance as well + var newCard = new CreditCard({number:'0123'}); + newCard.name = "Mike Smith"; + newCard.$save(); + // POST: /user/123/card {number:'0123', name:'Mike Smith'} + // server returns: {id:789, number:'0123', name: 'Mike Smith'}; + expect(newCard.id).toEqual(789); + * ``` + * + * The object returned from this function execution is a resource "class" which has "static" method + * for each action in the definition. + * + * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and + * `headers`. + * When the data is returned from the server then the object is an instance of the resource type and + * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD + * operations (create, read, update, delete) on server-side data. + + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(user) { + user.abc = true; + user.$save(); + }); + ``` + * + * It's worth noting that the success callback for `get`, `query` and other methods gets passed + * in the response that came from the server as well as $http header getter function, so one + * could rewrite the above example and get access to http headers as: + * + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(u, getResponseHeaders){ + u.abc = true; + u.$save(function(u, putResponseHeaders) { + //u => saved user object + //putResponseHeaders => $http header getter + }); + }); + ``` + * + * You can also access the raw `$http` promise via the `$promise` property on the object returned + * + ``` + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}) + .$promise.then(function(user) { + $scope.user = user; + }); + ``` + + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + * ```js + * var app = angular.module('app', ['ngResource', 'ngRoute']); + * + * // Some APIs expect a PUT request in the format URL/object/ID + * // Here we are creating an 'update' method + * app.factory('Notes', ['$resource', function($resource) { + * return $resource('/notes/:id', null, + * { + * 'update': { method:'PUT' } + * }); + * }]); + * + * // In our controller we get the ID from the URL using ngRoute and $routeParams + * // We pass in $routeParams and our Notes factory along with $scope + * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', + function($scope, $routeParams, Notes) { + * // First get a note object from the factory + * var note = Notes.get({ id:$routeParams.id }); + * $id = note.id; + * + * // Now call update passing in the ID first then the object you are updating + * Notes.update({ id:$id }, note); + * + * // This will PUT /notes/ID with the note object in the request payload + * }]); + * ``` + */ +angular.module('ngResource', ['ng']). + factory('$resource', ['$http', '$q', function($http, $q) { + + var DEFAULT_ACTIONS = { + 'get': {method:'GET'}, + 'save': {method:'POST'}, + 'query': {method:'GET', isArray:true}, + 'remove': {method:'DELETE'}, + 'delete': {method:'DELETE'} + }; + var noop = angular.noop, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + isFunction = angular.isFunction; + + /** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path + * segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); + } + + + /** + * This method is intended for encoding *key* or *value* parts of query component. We need a + * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't + * have to be encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); + } + + function Route(template, defaults) { + this.template = template; + this.defaults = defaults || {}; + this.urlParams = {}; + } + + Route.prototype = { + setUrlParams: function(config, params, actionUrl) { + var self = this, + url = actionUrl || self.template, + val, + encodedVal; + + var urlParams = self.urlParams = {}; + forEach(url.split(/\W/), function(param){ + if (param === 'hasOwnProperty') { + throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); + } + if (!(new RegExp("^\\d+$").test(param)) && param && + (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + urlParams[param] = true; + } + }); + url = url.replace(/\\:/g, ':'); + + params = params || {}; + forEach(self.urlParams, function(_, urlParam){ + val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; + if (angular.isDefined(val) && val !== null) { + encodedVal = encodeUriSegment(val); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { + return encodedVal + p1; + }); + } else { + url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, + leadingSlashes, tail) { + if (tail.charAt(0) == '/') { + return tail; + } else { + return leadingSlashes + tail; + } + }); + } + }); + + // strip trailing slashes and set the url + url = url.replace(/\/+$/, '') || '/'; + // then replace collapse `/.` if found in the last URL path segment before the query + // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` + url = url.replace(/\/\.(?=\w+($|\?))/, '.'); + // replace escaped `/\.` with `/.` + config.url = url.replace(/\/\\\./, '/.'); + + + // set params - delegate param encoding to $http + forEach(params, function(value, key){ + if (!self.urlParams[key]) { + config.params = config.params || {}; + config.params[key] = value; + } + }); + } + }; + + + function resourceFactory(url, paramDefaults, actions) { + var route = new Route(url); + + actions = extend({}, DEFAULT_ACTIONS, actions); + + function extractParams(data, actionParams){ + var ids = {}; + actionParams = extend({}, paramDefaults, actionParams); + forEach(actionParams, function(value, key){ + if (isFunction(value)) { value = value(); } + ids[key] = value && value.charAt && value.charAt(0) == '@' ? + lookupDottedPath(data, value.substr(1)) : value; + }); + return ids; + } + + function defaultResponseInterceptor(response) { + return response.resource; + } + + function Resource(value){ + shallowClearAndCopy(value || {}, this); + } + + forEach(actions, function(action, name) { + var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); + + Resource[name] = function(a1, a2, a3, a4) { + var params = {}, data, success, error; + + /* jshint -W086 */ /* (purposefully fall through case statements) */ + switch(arguments.length) { + case 4: + error = a4; + success = a3; + //fallthrough + case 3: + case 2: + if (isFunction(a2)) { + if (isFunction(a1)) { + success = a1; + error = a2; + break; + } + + success = a2; + error = a3; + //fallthrough + } else { + params = a1; + data = a2; + success = a3; + break; + } + case 1: + if (isFunction(a1)) success = a1; + else if (hasBody) data = a1; + else params = a1; + break; + case 0: break; + default: + throw $resourceMinErr('badargs', + "Expected up to 4 arguments [params, data, success, error], got {0} arguments", + arguments.length); + } + /* jshint +W086 */ /* (purposefully fall through case statements) */ + + var isInstanceCall = this instanceof Resource; + var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); + var httpConfig = {}; + var responseInterceptor = action.interceptor && action.interceptor.response || + defaultResponseInterceptor; + var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || + undefined; + + forEach(action, function(value, key) { + if (key != 'params' && key != 'isArray' && key != 'interceptor') { + httpConfig[key] = copy(value); + } + }); + + if (hasBody) httpConfig.data = data; + route.setUrlParams(httpConfig, + extend({}, extractParams(data, action.params || {}), params), + action.url); + + var promise = $http(httpConfig).then(function(response) { + var data = response.data, + promise = value.$promise; + + if (data) { + // Need to convert action.isArray to boolean in case it is undefined + // jshint -W018 + if (angular.isArray(data) !== (!!action.isArray)) { + throw $resourceMinErr('badcfg', 'Error in resource configuration. Expected ' + + 'response to contain an {0} but got an {1}', + action.isArray?'array':'object', angular.isArray(data)?'array':'object'); + } + // jshint +W018 + if (action.isArray) { + value.length = 0; + forEach(data, function(item) { + value.push(new Resource(item)); + }); + } else { + shallowClearAndCopy(data, value); + value.$promise = promise; + } + } + + value.$resolved = true; + + response.resource = value; + + return response; + }, function(response) { + value.$resolved = true; + + (error||noop)(response); + + return $q.reject(response); + }); + + promise = promise.then( + function(response) { + var value = responseInterceptor(response); + (success||noop)(value, response.headers); + return value; + }, + responseErrorInterceptor); + + if (!isInstanceCall) { + // we are creating instance / collection + // - set the initial promise + // - return the instance / collection + value.$promise = promise; + value.$resolved = false; + + return value; + } + + // instance call + return promise; + }; + + + Resource.prototype['$' + name] = function(params, success, error) { + if (isFunction(params)) { + error = success; success = params; params = {}; + } + var result = Resource[name].call(this, params, this, success, error); + return result.$promise || result; + }; + }); + + Resource.bind = function(additionalParamDefaults){ + return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); + }; + + return Resource; + } + + return resourceFactory; + }]); + + +})(window, window.angular); diff --git a/platforms/android/assets/www/lib/angular-resource/angular-resource.min.js b/platforms/android/assets/www/lib/angular-resource/angular-resource.min.js new file mode 100644 index 00000000..eac389ed --- /dev/null +++ b/platforms/android/assets/www/lib/angular-resource/angular-resource.min.js @@ -0,0 +1,13 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&& +b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f` to your `index.html`: + +```html + +``` + +And add `ngRoute` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngRoute']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngRoute). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-route/angular-route.js b/platforms/android/assets/www/lib/angular-route/angular-route.js new file mode 100644 index 00000000..f7ebda8b --- /dev/null +++ b/platforms/android/assets/www/lib/angular-route/angular-route.js @@ -0,0 +1,927 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngRoute + * @description + * + * # ngRoute + * + * The `ngRoute` module provides routing and deeplinking services and directives for angular apps. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * + *
+ */ + /* global -ngRouteModule */ +var ngRouteModule = angular.module('ngRoute', ['ng']). + provider('$route', $RouteProvider); + +/** + * @ngdoc provider + * @name $routeProvider + * @function + * + * @description + * + * Used for configuring routes. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * ## Dependencies + * Requires the {@link ngRoute `ngRoute`} module to be installed. + */ +function $RouteProvider(){ + function inherit(parent, extra) { + return angular.extend(new (angular.extend(function() {}, {prototype:parent}))(), extra); + } + + var routes = {}; + + /** + * @ngdoc method + * @name $routeProvider#when + * + * @param {string} path Route path (matched against `$location.path`). If `$location.path` + * contains redundant trailing slash or is missing one, the route will still match and the + * `$location.path` will be updated to add or drop the trailing slash to exactly match the + * route definition. + * + * * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up + * to the next slash are matched and stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain named groups starting with a colon and ending with a star: + * e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain optional named groups with a question mark: e.g.`:name?`. + * + * For example, routes like `/color/:color/largecode/:largecode*\/edit` will match + * `/color/brown/largecode/code/with/slashes/edit` and extract: + * + * * `color: brown` + * * `largecode: code/with/slashes`. + * + * + * @param {Object} route Mapping information to be assigned to `$route.current` on route + * match. + * + * Object properties: + * + * - `controller` – `{(string|function()=}` – Controller fn that should be associated with + * newly created scope or the name of a {@link angular.Module#controller registered + * controller} if passed as a string. + * - `controllerAs` – `{string=}` – A controller alias name. If present the controller will be + * published to scope under the `controllerAs` name. + * - `template` – `{string=|function()=}` – html template as a string or a function that + * returns an html template as a string which should be used by {@link + * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives. + * This property takes precedence over `templateUrl`. + * + * If `template` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html + * template that should be used by {@link ngRoute.directive:ngView ngView}. + * + * If `templateUrl` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `resolve` - `{Object.=}` - An optional map of dependencies which should + * be injected into the controller. If any of these dependencies are promises, the router + * will wait for them all to be resolved or one to be rejected before the controller is + * instantiated. + * If all the promises are resolved successfully, the values of the resolved promises are + * injected and {@link ngRoute.$route#$routeChangeSuccess $routeChangeSuccess} event is + * fired. If any of the promises are rejected the + * {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired. The map object + * is: + * + * - `key` – `{string}`: a name of a dependency to be injected into the controller. + * - `factory` - `{string|function}`: If `string` then it is an alias for a service. + * Otherwise if function, then it is {@link auto.$injector#invoke injected} + * and the return value is treated as the dependency. If the result is a promise, it is + * resolved before its value is injected into the controller. Be aware that + * `ngRoute.$routeParams` will still refer to the previous route within these resolve + * functions. Use `$route.current.params` to access the new route parameters, instead. + * + * - `redirectTo` – {(string|function())=} – value to update + * {@link ng.$location $location} path with and trigger route redirection. + * + * If `redirectTo` is a function, it will be called with the following parameters: + * + * - `{Object.}` - route parameters extracted from the current + * `$location.path()` by applying the current route templateUrl. + * - `{string}` - current `$location.path()` + * - `{Object}` - current `$location.search()` + * + * The custom `redirectTo` function is expected to return a string which will be used + * to update `$location.path()` and `$location.search()`. + * + * - `[reloadOnSearch=true]` - {boolean=} - reload route when only `$location.search()` + * or `$location.hash()` changes. + * + * If the option is set to `false` and url in the browser changes, then + * `$routeUpdate` event is broadcasted on the root scope. + * + * - `[caseInsensitiveMatch=false]` - {boolean=} - match routes without being case sensitive + * + * If the option is set to `true`, then the particular route can be matched without being + * case sensitive + * + * @returns {Object} self + * + * @description + * Adds a new route definition to the `$route` service. + */ + this.when = function(path, route) { + routes[path] = angular.extend( + {reloadOnSearch: true}, + route, + path && pathRegExp(path, route) + ); + + // create redirection for trailing slashes + if (path) { + var redirectPath = (path[path.length-1] == '/') + ? path.substr(0, path.length-1) + : path +'/'; + + routes[redirectPath] = angular.extend( + {redirectTo: path}, + pathRegExp(redirectPath, route) + ); + } + + return this; + }; + + /** + * @param path {string} path + * @param opts {Object} options + * @return {?Object} + * + * @description + * Normalizes the given path, returning a regular expression + * and the original path. + * + * Inspired by pathRexp in visionmedia/express/lib/utils.js. + */ + function pathRegExp(path, opts) { + var insensitive = opts.caseInsensitiveMatch, + ret = { + originalPath: path, + regexp: path + }, + keys = ret.keys = []; + + path = path + .replace(/([().])/g, '\\$1') + .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option){ + var optional = option === '?' ? option : null; + var star = option === '*' ? option : null; + keys.push({ name: key, optional: !!optional }); + slash = slash || ''; + return '' + + (optional ? '' : slash) + + '(?:' + + (optional ? slash : '') + + (star && '(.+?)' || '([^/]+)') + + (optional || '') + + ')' + + (optional || ''); + }) + .replace(/([\/$\*])/g, '\\$1'); + + ret.regexp = new RegExp('^' + path + '$', insensitive ? 'i' : ''); + return ret; + } + + /** + * @ngdoc method + * @name $routeProvider#otherwise + * + * @description + * Sets route definition that will be used on route change when no other route definition + * is matched. + * + * @param {Object} params Mapping information to be assigned to `$route.current`. + * @returns {Object} self + */ + this.otherwise = function(params) { + this.when(null, params); + return this; + }; + + + this.$get = ['$rootScope', + '$location', + '$routeParams', + '$q', + '$injector', + '$http', + '$templateCache', + '$sce', + function($rootScope, $location, $routeParams, $q, $injector, $http, $templateCache, $sce) { + + /** + * @ngdoc service + * @name $route + * @requires $location + * @requires $routeParams + * + * @property {Object} current Reference to the current route definition. + * The route definition contains: + * + * - `controller`: The controller constructor as define in route definition. + * - `locals`: A map of locals which is used by {@link ng.$controller $controller} service for + * controller instantiation. The `locals` contain + * the resolved values of the `resolve` map. Additionally the `locals` also contain: + * + * - `$scope` - The current route scope. + * - `$template` - The current route template HTML. + * + * @property {Object} routes Object with all route configuration Objects as its properties. + * + * @description + * `$route` is used for deep-linking URLs to controllers and views (HTML partials). + * It watches `$location.url()` and tries to map the path to an existing route definition. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * You can define routes through {@link ngRoute.$routeProvider $routeProvider}'s API. + * + * The `$route` service is typically used in conjunction with the + * {@link ngRoute.directive:ngView `ngView`} directive and the + * {@link ngRoute.$routeParams `$routeParams`} service. + * + * @example + * This example shows how changing the URL hash causes the `$route` to match a route against the + * URL, and the `ngView` pulls in the partial. + * + * Note that this example is using {@link ng.directive:script inlined templates} + * to get it working on jsfiddle as well. + * + * + * + *
+ * Choose: + * Moby | + * Moby: Ch1 | + * Gatsby | + * Gatsby: Ch4 | + * Scarlet Letter
+ * + *
+ * + *
+ * + *
$location.path() = {{$location.path()}}
+ *
$route.current.templateUrl = {{$route.current.templateUrl}}
+ *
$route.current.params = {{$route.current.params}}
+ *
$route.current.scope.name = {{$route.current.scope.name}}
+ *
$routeParams = {{$routeParams}}
+ *
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ * Chapter Id: {{params.chapterId}} + *
+ * + * + * angular.module('ngRouteExample', ['ngRoute']) + * + * .controller('MainController', function($scope, $route, $routeParams, $location) { + * $scope.$route = $route; + * $scope.$location = $location; + * $scope.$routeParams = $routeParams; + * }) + * + * .controller('BookController', function($scope, $routeParams) { + * $scope.name = "BookController"; + * $scope.params = $routeParams; + * }) + * + * .controller('ChapterController', function($scope, $routeParams) { + * $scope.name = "ChapterController"; + * $scope.params = $routeParams; + * }) + * + * .config(function($routeProvider, $locationProvider) { + * $routeProvider + * .when('/Book/:bookId', { + * templateUrl: 'book.html', + * controller: 'BookController', + * resolve: { + * // I will cause a 1 second delay + * delay: function($q, $timeout) { + * var delay = $q.defer(); + * $timeout(delay.resolve, 1000); + * return delay.promise; + * } + * } + * }) + * .when('/Book/:bookId/ch/:chapterId', { + * templateUrl: 'chapter.html', + * controller: 'ChapterController' + * }); + * + * // configure html5 to get links working on jsfiddle + * $locationProvider.html5Mode(true); + * }); + * + * + * + * + * it('should load and compile correct template', function() { + * element(by.linkText('Moby: Ch1')).click(); + * var content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: ChapterController/); + * expect(content).toMatch(/Book Id\: Moby/); + * expect(content).toMatch(/Chapter Id\: 1/); + * + * element(by.partialLinkText('Scarlet')).click(); + * + * content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: BookController/); + * expect(content).toMatch(/Book Id\: Scarlet/); + * }); + * + *
+ */ + + /** + * @ngdoc event + * @name $route#$routeChangeStart + * @eventType broadcast on root scope + * @description + * Broadcasted before a route change. At this point the route services starts + * resolving all of the dependencies needed for the route change to occur. + * Typically this involves fetching the view template as well as any dependencies + * defined in `resolve` route property. Once all of the dependencies are resolved + * `$routeChangeSuccess` is fired. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} next Future route information. + * @param {Route} current Current route information. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeSuccess + * @eventType broadcast on root scope + * @description + * Broadcasted after a route dependencies are resolved. + * {@link ngRoute.directive:ngView ngView} listens for the directive + * to instantiate the controller and render the view. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} current Current route information. + * @param {Route|Undefined} previous Previous route information, or undefined if current is + * first route entered. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeError + * @eventType broadcast on root scope + * @description + * Broadcasted if any of the resolve promises are rejected. + * + * @param {Object} angularEvent Synthetic event object + * @param {Route} current Current route information. + * @param {Route} previous Previous route information. + * @param {Route} rejection Rejection of the promise. Usually the error of the failed promise. + */ + + /** + * @ngdoc event + * @name $route#$routeUpdate + * @eventType broadcast on root scope + * @description + * + * The `reloadOnSearch` property has been set to false, and we are reusing the same + * instance of the Controller. + */ + + var forceReload = false, + $route = { + routes: routes, + + /** + * @ngdoc method + * @name $route#reload + * + * @description + * Causes `$route` service to reload the current route even if + * {@link ng.$location $location} hasn't changed. + * + * As a result of that, {@link ngRoute.directive:ngView ngView} + * creates new scope, reinstantiates the controller. + */ + reload: function() { + forceReload = true; + $rootScope.$evalAsync(updateRoute); + } + }; + + $rootScope.$on('$locationChangeSuccess', updateRoute); + + return $route; + + ///////////////////////////////////////////////////// + + /** + * @param on {string} current url + * @param route {Object} route regexp to match the url against + * @return {?Object} + * + * @description + * Check if the route matches the current url. + * + * Inspired by match in + * visionmedia/express/lib/router/router.js. + */ + function switchRouteMatcher(on, route) { + var keys = route.keys, + params = {}; + + if (!route.regexp) return null; + + var m = route.regexp.exec(on); + if (!m) return null; + + for (var i = 1, len = m.length; i < len; ++i) { + var key = keys[i - 1]; + + var val = 'string' == typeof m[i] + ? decodeURIComponent(m[i]) + : m[i]; + + if (key && val) { + params[key.name] = val; + } + } + return params; + } + + function updateRoute() { + var next = parseRoute(), + last = $route.current; + + if (next && last && next.$$route === last.$$route + && angular.equals(next.pathParams, last.pathParams) + && !next.reloadOnSearch && !forceReload) { + last.params = next.params; + angular.copy(last.params, $routeParams); + $rootScope.$broadcast('$routeUpdate', last); + } else if (next || last) { + forceReload = false; + $rootScope.$broadcast('$routeChangeStart', next, last); + $route.current = next; + if (next) { + if (next.redirectTo) { + if (angular.isString(next.redirectTo)) { + $location.path(interpolate(next.redirectTo, next.params)).search(next.params) + .replace(); + } else { + $location.url(next.redirectTo(next.pathParams, $location.path(), $location.search())) + .replace(); + } + } + } + + $q.when(next). + then(function() { + if (next) { + var locals = angular.extend({}, next.resolve), + template, templateUrl; + + angular.forEach(locals, function(value, key) { + locals[key] = angular.isString(value) ? + $injector.get(value) : $injector.invoke(value); + }); + + if (angular.isDefined(template = next.template)) { + if (angular.isFunction(template)) { + template = template(next.params); + } + } else if (angular.isDefined(templateUrl = next.templateUrl)) { + if (angular.isFunction(templateUrl)) { + templateUrl = templateUrl(next.params); + } + templateUrl = $sce.getTrustedResourceUrl(templateUrl); + if (angular.isDefined(templateUrl)) { + next.loadedTemplateUrl = templateUrl; + template = $http.get(templateUrl, {cache: $templateCache}). + then(function(response) { return response.data; }); + } + } + if (angular.isDefined(template)) { + locals['$template'] = template; + } + return $q.all(locals); + } + }). + // after route change + then(function(locals) { + if (next == $route.current) { + if (next) { + next.locals = locals; + angular.copy(next.params, $routeParams); + } + $rootScope.$broadcast('$routeChangeSuccess', next, last); + } + }, function(error) { + if (next == $route.current) { + $rootScope.$broadcast('$routeChangeError', next, last, error); + } + }); + } + } + + + /** + * @returns {Object} the current active route, by matching it against the URL + */ + function parseRoute() { + // Match a route + var params, match; + angular.forEach(routes, function(route, path) { + if (!match && (params = switchRouteMatcher($location.path(), route))) { + match = inherit(route, { + params: angular.extend({}, $location.search(), params), + pathParams: params}); + match.$$route = route; + } + }); + // No route matched; fallback to "otherwise" route + return match || routes[null] && inherit(routes[null], {params: {}, pathParams:{}}); + } + + /** + * @returns {string} interpolation of the redirect path with the parameters + */ + function interpolate(string, params) { + var result = []; + angular.forEach((string||'').split(':'), function(segment, i) { + if (i === 0) { + result.push(segment); + } else { + var segmentMatch = segment.match(/(\w+)(.*)/); + var key = segmentMatch[1]; + result.push(params[key]); + result.push(segmentMatch[2] || ''); + delete params[key]; + } + }); + return result.join(''); + } + }]; +} + +ngRouteModule.provider('$routeParams', $RouteParamsProvider); + + +/** + * @ngdoc service + * @name $routeParams + * @requires $route + * + * @description + * The `$routeParams` service allows you to retrieve the current set of route parameters. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * The route parameters are a combination of {@link ng.$location `$location`}'s + * {@link ng.$location#search `search()`} and {@link ng.$location#path `path()`}. + * The `path` parameters are extracted when the {@link ngRoute.$route `$route`} path is matched. + * + * In case of parameter name collision, `path` params take precedence over `search` params. + * + * The service guarantees that the identity of the `$routeParams` object will remain unchanged + * (but its properties will likely change) even when a route change occurs. + * + * Note that the `$routeParams` are only updated *after* a route change completes successfully. + * This means that you cannot rely on `$routeParams` being correct in route resolve functions. + * Instead you can use `$route.current.params` to access the new route's parameters. + * + * @example + * ```js + * // Given: + * // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby + * // Route: /Chapter/:chapterId/Section/:sectionId + * // + * // Then + * $routeParams ==> {chapterId:1, sectionId:2, search:'moby'} + * ``` + */ +function $RouteParamsProvider() { + this.$get = function() { return {}; }; +} + +ngRouteModule.directive('ngView', ngViewFactory); +ngRouteModule.directive('ngView', ngViewFillContentFactory); + + +/** + * @ngdoc directive + * @name ngView + * @restrict ECA + * + * @description + * # Overview + * `ngView` is a directive that complements the {@link ngRoute.$route $route} service by + * including the rendered template of the current route into the main layout (`index.html`) file. + * Every time the current route changes, the included view changes with it according to the + * configuration of the `$route` service. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * @animations + * enter - animation is used to bring new content into the browser. + * leave - animation is used to animate existing content away. + * + * The enter and leave animation occur concurrently. + * + * @scope + * @priority 400 + * @param {string=} onload Expression to evaluate whenever the view updates. + * + * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll + * $anchorScroll} to scroll the viewport after the view is updated. + * + * - If the attribute is not set, disable scrolling. + * - If the attribute is set without value, enable scrolling. + * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated + * as an expression yields a truthy value. + * @example + + +
+ Choose: + Moby | + Moby: Ch1 | + Gatsby | + Gatsby: Ch4 | + Scarlet Letter
+ +
+
+
+
+ +
$location.path() = {{main.$location.path()}}
+
$route.current.templateUrl = {{main.$route.current.templateUrl}}
+
$route.current.params = {{main.$route.current.params}}
+
$route.current.scope.name = {{main.$route.current.scope.name}}
+
$routeParams = {{main.$routeParams}}
+
+
+ + +
+ controller: {{book.name}}
+ Book Id: {{book.params.bookId}}
+
+
+ + +
+ controller: {{chapter.name}}
+ Book Id: {{chapter.params.bookId}}
+ Chapter Id: {{chapter.params.chapterId}} +
+
+ + + .view-animate-container { + position:relative; + height:100px!important; + position:relative; + background:white; + border:1px solid black; + height:40px; + overflow:hidden; + } + + .view-animate { + padding:10px; + } + + .view-animate.ng-enter, .view-animate.ng-leave { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + + display:block; + width:100%; + border-left:1px solid black; + + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + padding:10px; + } + + .view-animate.ng-enter { + left:100%; + } + .view-animate.ng-enter.ng-enter-active { + left:0; + } + .view-animate.ng-leave.ng-leave-active { + left:-100%; + } + + + + angular.module('ngViewExample', ['ngRoute', 'ngAnimate']) + .config(['$routeProvider', '$locationProvider', + function($routeProvider, $locationProvider) { + $routeProvider + .when('/Book/:bookId', { + templateUrl: 'book.html', + controller: 'BookCtrl', + controllerAs: 'book' + }) + .when('/Book/:bookId/ch/:chapterId', { + templateUrl: 'chapter.html', + controller: 'ChapterCtrl', + controllerAs: 'chapter' + }); + + // configure html5 to get links working on jsfiddle + $locationProvider.html5Mode(true); + }]) + .controller('MainCtrl', ['$route', '$routeParams', '$location', + function($route, $routeParams, $location) { + this.$route = $route; + this.$location = $location; + this.$routeParams = $routeParams; + }]) + .controller('BookCtrl', ['$routeParams', function($routeParams) { + this.name = "BookCtrl"; + this.params = $routeParams; + }]) + .controller('ChapterCtrl', ['$routeParams', function($routeParams) { + this.name = "ChapterCtrl"; + this.params = $routeParams; + }]); + + + + + it('should load and compile correct template', function() { + element(by.linkText('Moby: Ch1')).click(); + var content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: ChapterCtrl/); + expect(content).toMatch(/Book Id\: Moby/); + expect(content).toMatch(/Chapter Id\: 1/); + + element(by.partialLinkText('Scarlet')).click(); + + content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: BookCtrl/); + expect(content).toMatch(/Book Id\: Scarlet/); + }); + +
+ */ + + +/** + * @ngdoc event + * @name ngView#$viewContentLoaded + * @eventType emit on the current ngView scope + * @description + * Emitted every time the ngView content is reloaded. + */ +ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate']; +function ngViewFactory( $route, $anchorScroll, $animate) { + return { + restrict: 'ECA', + terminal: true, + priority: 400, + transclude: 'element', + link: function(scope, $element, attr, ctrl, $transclude) { + var currentScope, + currentElement, + previousElement, + autoScrollExp = attr.autoscroll, + onloadExp = attr.onload || ''; + + scope.$on('$routeChangeSuccess', update); + update(); + + function cleanupLastView() { + if(previousElement) { + previousElement.remove(); + previousElement = null; + } + if(currentScope) { + currentScope.$destroy(); + currentScope = null; + } + if(currentElement) { + $animate.leave(currentElement, function() { + previousElement = null; + }); + previousElement = currentElement; + currentElement = null; + } + } + + function update() { + var locals = $route.current && $route.current.locals, + template = locals && locals.$template; + + if (angular.isDefined(template)) { + var newScope = scope.$new(); + var current = $route.current; + + // Note: This will also link all children of ng-view that were contained in the original + // html. If that content contains controllers, ... they could pollute/change the scope. + // However, using ng-view on an element with additional content does not make sense... + // Note: We can't remove them in the cloneAttchFn of $transclude as that + // function is called before linking the content, which would apply child + // directives to non existing elements. + var clone = $transclude(newScope, function(clone) { + $animate.enter(clone, null, currentElement || $element, function onNgViewEnter () { + if (angular.isDefined(autoScrollExp) + && (!autoScrollExp || scope.$eval(autoScrollExp))) { + $anchorScroll(); + } + }); + cleanupLastView(); + }); + + currentElement = clone; + currentScope = current.scope = newScope; + currentScope.$emit('$viewContentLoaded'); + currentScope.$eval(onloadExp); + } else { + cleanupLastView(); + } + } + } + }; +} + +// This directive is called during the $transclude call of the first `ngView` directive. +// It will replace and compile the content of the element with the loaded template. +// We need this directive so that the element content is already filled when +// the link function of another directive on the same element as ngView +// is called. +ngViewFillContentFactory.$inject = ['$compile', '$controller', '$route']; +function ngViewFillContentFactory($compile, $controller, $route) { + return { + restrict: 'ECA', + priority: -400, + link: function(scope, $element) { + var current = $route.current, + locals = current.locals; + + $element.html(locals.$template); + + var link = $compile($element.contents()); + + if (current.controller) { + locals.$scope = scope; + var controller = $controller(current.controller, locals); + if (current.controllerAs) { + scope[current.controllerAs] = controller; + } + $element.data('$ngControllerController', controller); + $element.children().data('$ngControllerController', controller); + } + + link(scope); + } + }; +} + + +})(window, window.angular); diff --git a/platforms/android/assets/www/lib/angular-route/angular-route.min.js b/platforms/android/assets/www/lib/angular-route/angular-route.min.js new file mode 100644 index 00000000..aef1fd60 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-route/angular-route.min.js @@ -0,0 +1,14 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(n,e,A){'use strict';function x(s,g,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,w){function y(){p&&(p.remove(),p=null);h&&(h.$destroy(),h=null);l&&(k.leave(l,function(){p=null}),p=l,l=null)}function v(){var b=s.current&&s.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),d=s.current;l=w(b,function(d){k.enter(d,null,l||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||g()});y()});h=d.scope=b;h.$emit("$viewContentLoaded");h.$eval(u)}else y()} +var h,l,p,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",v);v()}}}function z(e,g,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var w=e(c.contents());b.controller&&(f.$scope=a,f=g(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));w(a)}}}n=e.module("ngRoute",["ng"]).provider("$route",function(){function s(a,c){return e.extend(new (e.extend(function(){}, +{prototype:a})),c)}function g(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},k=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;k.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var k={};this.when=function(a,c){k[a]=e.extend({reloadOnSearch:!0},c,a&&g(a,c));if(a){var b= +"/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";k[b]=e.extend({redirectTo:a},g(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,g,n,v,h){function l(){var d=p(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!u)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)u=!1,a.$broadcast("$routeChangeStart", +d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(t(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?g.get(d):g.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=h.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl= +b,c=n.get(b,{cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function p(){var a,b;e.forEach(k,function(f,k){var q;if(q=!b){var g=c.path();q=f.keys;var l={};if(f.regexp)if(g=f.regexp.exec(g)){for(var h=1,p=g.length;h` to your `index.html`: + +```html + +``` + +And add `ngSanitize` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngSanitize']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngSanitize). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.js b/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.js new file mode 100644 index 00000000..b670812d --- /dev/null +++ b/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.js @@ -0,0 +1,624 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $sanitizeMinErr = angular.$$minErr('$sanitize'); + +/** + * @ngdoc module + * @name ngSanitize + * @description + * + * # ngSanitize + * + * The `ngSanitize` module provides functionality to sanitize HTML. + * + * + *
+ * + * See {@link ngSanitize.$sanitize `$sanitize`} for usage. + */ + +/* + * HTML Parser By Misko Hevery (misko@hevery.com) + * based on: HTML Parser By John Resig (ejohn.org) + * Original code by Erik Arvidsson, Mozilla Public License + * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js + * + * // Use like so: + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + */ + + +/** + * @ngdoc service + * @name $sanitize + * @function + * + * @description + * The input is sanitized by parsing the html into tokens. All safe tokens (from a whitelist) are + * then serialized back to properly escaped html string. This means that no unsafe input can make + * it into the returned string, however, since our parser is more strict than a typical browser + * parser, it's possible that some obscure input, which would be recognized as valid HTML by a + * browser, won't make it through the sanitizer. + * The whitelist is configured using the functions `aHrefSanitizationWhitelist` and + * `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider `$compileProvider`}. + * + * @param {string} html Html input. + * @returns {string} Sanitized html. + * + * @example + + + +
+ Snippet: + + + + + + + + + + + + + + + + + + + + + + + + + +
DirectiveHowSourceRendered
ng-bind-htmlAutomatically uses $sanitize
<div ng-bind-html="snippet">
</div>
ng-bind-htmlBypass $sanitize by explicitly trusting the dangerous value +
<div ng-bind-html="deliberatelyTrustDangerousSnippet()">
+</div>
+
ng-bindAutomatically escapes
<div ng-bind="snippet">
</div>
+
+
+ + it('should sanitize the html snippet by default', function() { + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('

an html\nclick here\nsnippet

'); + }); + + it('should inline raw snippet if bound to a trusted value', function() { + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()). + toBe("

an html\n" + + "click here\n" + + "snippet

"); + }); + + it('should escape snippet without any filter', function() { + expect(element(by.css('#bind-default div')).getInnerHtml()). + toBe("<p style=\"color:blue\">an html\n" + + "<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" + + "snippet</p>"); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new text'); + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('new text'); + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()).toBe( + 'new text'); + expect(element(by.css('#bind-default div')).getInnerHtml()).toBe( + "new <b onclick=\"alert(1)\">text</b>"); + }); +
+
+ */ +function $SanitizeProvider() { + this.$get = ['$$sanitizeUri', function($$sanitizeUri) { + return function(html) { + var buf = []; + htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) { + return !/^unsafe/.test($$sanitizeUri(uri, isImage)); + })); + return buf.join(''); + }; + }]; +} + +function sanitizeText(chars) { + var buf = []; + var writer = htmlSanitizeWriter(buf, angular.noop); + writer.chars(chars); + return buf.join(''); +} + + +// Regular Expressions for parsing tags and attributes +var START_TAG_REGEXP = + /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/, + END_TAG_REGEXP = /^<\s*\/\s*([\w:-]+)[^>]*>/, + ATTR_REGEXP = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g, + BEGIN_TAG_REGEXP = /^/g, + DOCTYPE_REGEXP = /]*?)>/i, + CDATA_REGEXP = //g, + // Match everything outside of normal chars and " (quote character) + NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g; + + +// Good source of info about elements and attributes +// http://dev.w3.org/html5/spec/Overview.html#semantics +// http://simon.html5.org/html-elements + +// Safe Void Elements - HTML5 +// http://dev.w3.org/html5/spec/Overview.html#void-elements +var voidElements = makeMap("area,br,col,hr,img,wbr"); + +// Elements that you can, intentionally, leave open (and which close themselves) +// http://dev.w3.org/html5/spec/Overview.html#optional-tags +var optionalEndTagBlockElements = makeMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), + optionalEndTagInlineElements = makeMap("rp,rt"), + optionalEndTagElements = angular.extend({}, + optionalEndTagInlineElements, + optionalEndTagBlockElements); + +// Safe Block Elements - HTML5 +var blockElements = angular.extend({}, optionalEndTagBlockElements, makeMap("address,article," + + "aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5," + + "h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")); + +// Inline Elements - HTML5 +var inlineElements = angular.extend({}, optionalEndTagInlineElements, makeMap("a,abbr,acronym,b," + + "bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," + + "samp,small,span,strike,strong,sub,sup,time,tt,u,var")); + + +// Special Elements (can contain anything) +var specialElements = makeMap("script,style"); + +var validElements = angular.extend({}, + voidElements, + blockElements, + inlineElements, + optionalEndTagElements); + +//Attributes that have href and hence need to be sanitized +var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap"); +var validAttrs = angular.extend({}, uriAttrs, makeMap( + 'abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,'+ + 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,'+ + 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,'+ + 'scope,scrolling,shape,size,span,start,summary,target,title,type,'+ + 'valign,value,vspace,width')); + +function makeMap(str) { + var obj = {}, items = str.split(','), i; + for (i = 0; i < items.length; i++) obj[items[i]] = true; + return obj; +} + + +/** + * @example + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + * @param {string} html string + * @param {object} handler + */ +function htmlParser( html, handler ) { + var index, chars, match, stack = [], last = html; + stack.last = function() { return stack[ stack.length - 1 ]; }; + + while ( html ) { + chars = true; + + // Make sure we're not in a script or style element + if ( !stack.last() || !specialElements[ stack.last() ] ) { + + // Comment + if ( html.indexOf("", index) === index) { + if (handler.comment) handler.comment( html.substring( 4, index ) ); + html = html.substring( index + 3 ); + chars = false; + } + // DOCTYPE + } else if ( DOCTYPE_REGEXP.test(html) ) { + match = html.match( DOCTYPE_REGEXP ); + + if ( match ) { + html = html.replace( match[0], ''); + chars = false; + } + // end tag + } else if ( BEGING_END_TAGE_REGEXP.test(html) ) { + match = html.match( END_TAG_REGEXP ); + + if ( match ) { + html = html.substring( match[0].length ); + match[0].replace( END_TAG_REGEXP, parseEndTag ); + chars = false; + } + + // start tag + } else if ( BEGIN_TAG_REGEXP.test(html) ) { + match = html.match( START_TAG_REGEXP ); + + if ( match ) { + html = html.substring( match[0].length ); + match[0].replace( START_TAG_REGEXP, parseStartTag ); + chars = false; + } + } + + if ( chars ) { + index = html.indexOf("<"); + + var text = index < 0 ? html : html.substring( 0, index ); + html = index < 0 ? "" : html.substring( index ); + + if (handler.chars) handler.chars( decodeEntities(text) ); + } + + } else { + html = html.replace(new RegExp("(.*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'), + function(all, text){ + text = text.replace(COMMENT_REGEXP, "$1").replace(CDATA_REGEXP, "$1"); + + if (handler.chars) handler.chars( decodeEntities(text) ); + + return ""; + }); + + parseEndTag( "", stack.last() ); + } + + if ( html == last ) { + throw $sanitizeMinErr('badparse', "The sanitizer was unable to parse the following block " + + "of html: {0}", html); + } + last = html; + } + + // Clean up any remaining tags + parseEndTag(); + + function parseStartTag( tag, tagName, rest, unary ) { + tagName = angular.lowercase(tagName); + if ( blockElements[ tagName ] ) { + while ( stack.last() && inlineElements[ stack.last() ] ) { + parseEndTag( "", stack.last() ); + } + } + + if ( optionalEndTagElements[ tagName ] && stack.last() == tagName ) { + parseEndTag( "", tagName ); + } + + unary = voidElements[ tagName ] || !!unary; + + if ( !unary ) + stack.push( tagName ); + + var attrs = {}; + + rest.replace(ATTR_REGEXP, + function(match, name, doubleQuotedValue, singleQuotedValue, unquotedValue) { + var value = doubleQuotedValue + || singleQuotedValue + || unquotedValue + || ''; + + attrs[name] = decodeEntities(value); + }); + if (handler.start) handler.start( tagName, attrs, unary ); + } + + function parseEndTag( tag, tagName ) { + var pos = 0, i; + tagName = angular.lowercase(tagName); + if ( tagName ) + // Find the closest opened tag of the same type + for ( pos = stack.length - 1; pos >= 0; pos-- ) + if ( stack[ pos ] == tagName ) + break; + + if ( pos >= 0 ) { + // Close all the open elements, up the stack + for ( i = stack.length - 1; i >= pos; i-- ) + if (handler.end) handler.end( stack[ i ] ); + + // Remove the open elements from the stack + stack.length = pos; + } + } +} + +var hiddenPre=document.createElement("pre"); +var spaceRe = /^(\s*)([\s\S]*?)(\s*)$/; +/** + * decodes all entities into regular string + * @param value + * @returns {string} A string with decoded entities. + */ +function decodeEntities(value) { + if (!value) { return ''; } + + // Note: IE8 does not preserve spaces at the start/end of innerHTML + // so we must capture them and reattach them afterward + var parts = spaceRe.exec(value); + var spaceBefore = parts[1]; + var spaceAfter = parts[3]; + var content = parts[2]; + if (content) { + hiddenPre.innerHTML=content.replace(//g, '>'); +} + +/** + * create an HTML/XML writer which writes to buffer + * @param {Array} buf use buf.jain('') to get out sanitized html string + * @returns {object} in the form of { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * } + */ +function htmlSanitizeWriter(buf, uriValidator){ + var ignore = false; + var out = angular.bind(buf, buf.push); + return { + start: function(tag, attrs, unary){ + tag = angular.lowercase(tag); + if (!ignore && specialElements[tag]) { + ignore = tag; + } + if (!ignore && validElements[tag] === true) { + out('<'); + out(tag); + angular.forEach(attrs, function(value, key){ + var lkey=angular.lowercase(key); + var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background'); + if (validAttrs[lkey] === true && + (uriAttrs[lkey] !== true || uriValidator(value, isImage))) { + out(' '); + out(key); + out('="'); + out(encodeEntities(value)); + out('"'); + } + }); + out(unary ? '/>' : '>'); + } + }, + end: function(tag){ + tag = angular.lowercase(tag); + if (!ignore && validElements[tag] === true) { + out(''); + } + if (tag == ignore) { + ignore = false; + } + }, + chars: function(chars){ + if (!ignore) { + out(encodeEntities(chars)); + } + } + }; +} + + +// define ngSanitize module and register $sanitize service +angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider); + +/* global sanitizeText: false */ + +/** + * @ngdoc filter + * @name linky + * @function + * + * @description + * Finds links in text input and turns them into html links. Supports http/https/ftp/mailto and + * plain email address links. + * + * Requires the {@link ngSanitize `ngSanitize`} module to be installed. + * + * @param {string} text Input text. + * @param {string} target Window (_blank|_self|_parent|_top) or named frame to open links in. + * @returns {string} Html-linkified text. + * + * @usage + + * + * @example + + + +
+ Snippet: + + + + + + + + + + + + + + + + + + + + + +
FilterSourceRendered
linky filter +
<div ng-bind-html="snippet | linky">
</div>
+
+
+
linky target +
<div ng-bind-html="snippetWithTarget | linky:'_blank'">
</div>
+
+
+
no filter
<div ng-bind="snippet">
</div>
+ + + it('should linkify the snippet with urls', function() { + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(4); + }); + + it('should not linkify snippet without the linky filter', function() { + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#escaped-html a')).count()).toEqual(0); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new http://link.'); + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('new http://link.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(1); + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()) + .toBe('new http://link.'); + }); + + it('should work with the target property', function() { + expect(element(by.id('linky-target')). + element(by.binding("snippetWithTarget | linky:'_blank'")).getText()). + toBe('http://angularjs.org/'); + expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank'); + }); + + + */ +angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { + var LINKY_URL_REGEXP = + /((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>]/, + MAILTO_REGEXP = /^mailto:/; + + return function(text, target) { + if (!text) return text; + var match; + var raw = text; + var html = []; + var url; + var i; + while ((match = raw.match(LINKY_URL_REGEXP))) { + // We can not end in these as they are sometimes found at the end of the sentence + url = match[0]; + // if we did not match ftp/http/mailto then assume mailto + if (match[2] == match[3]) url = 'mailto:' + url; + i = match.index; + addText(raw.substr(0, i)); + addLink(url, match[0].replace(MAILTO_REGEXP, '')); + raw = raw.substring(i + match[0].length); + } + addText(raw); + return $sanitize(html.join('')); + + function addText(text) { + if (!text) { + return; + } + html.push(sanitizeText(text)); + } + + function addLink(url, text) { + html.push(''); + addText(text); + html.push(''); + } + }; +}]); + + +})(window, window.angular); diff --git a/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.min.js b/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.min.js new file mode 100644 index 00000000..08964713 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.min.js @@ -0,0 +1,14 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,h,q){'use strict';function E(a){var e=[];s(e,h.noop).chars(a);return e.join("")}function k(a){var e={};a=a.split(",");var d;for(d=0;d=c;d--)e.end&&e.end(f[d]);f.length=c}}var b,g,f=[],l=a;for(f.last=function(){return f[f.length-1]};a;){g=!0;if(f.last()&&x[f.last()])a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(b,a){a=a.replace(H,"$1").replace(I,"$1");e.chars&&e.chars(r(a));return""}),c("",f.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e",b)===b&&(e.comment&&e.comment(a.substring(4,b)),a=a.substring(b+3),g=!1);else if(y.test(a)){if(b=a.match(y))a= +a.replace(b[0],""),g=!1}else if(J.test(a)){if(b=a.match(z))a=a.substring(b[0].length),b[0].replace(z,c),g=!1}else K.test(a)&&(b=a.match(A))&&(a=a.substring(b[0].length),b[0].replace(A,d),g=!1);g&&(b=a.indexOf("<"),g=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),e.chars&&e.chars(r(g)))}if(a==l)throw L("badparse",a);l=a}c()}function r(a){if(!a)return"";var e=M.exec(a);a=e[1];var d=e[3];if(e=e[2])n.innerHTML=e.replace(//g,">")}function s(a,e){var d=!1,c=h.bind(a,a.push);return{start:function(a,g,f){a=h.lowercase(a);!d&&x[a]&&(d=a);d||!0!==C[a]||(c("<"),c(a),h.forEach(g,function(d,f){var g=h.lowercase(f),k="img"===a&&"src"===g||"background"===g;!0!==O[g]||!0===D[g]&&!e(d,k)||(c(" "),c(f),c('="'),c(B(d)),c('"'))}),c(f?"/>":">"))},end:function(a){a=h.lowercase(a);d||!0!==C[a]||(c(""));a==d&&(d=!1)},chars:function(a){d|| +c(B(a))}}}var L=h.$$minErr("$sanitize"),A=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,z=/^<\s*\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,K=/^]*?)>/i,I=/]/,d=/^mailto:/;return function(c,b){function g(a){a&&m.push(E(a))}function f(a,c){m.push("');g(c);m.push("")}if(!c)return c;for(var l,k=c,m=[],n,p;l=k.match(e);)n=l[0],l[2]==l[3]&&(n="mailto:"+n),p=l.index,g(k.substr(0,p)),f(n,l[0].replace(d,"")),k=k.substring(p+l[0].length);g(k);return a(m.join(""))}}])})(window,window.angular); +//# sourceMappingURL=angular-sanitize.min.js.map diff --git a/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.min.js.map b/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.min.js.map new file mode 100644 index 00000000..dbf6b259 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-sanitize/angular-sanitize.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-sanitize.min.js", +"lineCount":13, +"mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAiJtCC,QAASA,EAAY,CAACC,CAAD,CAAQ,CAC3B,IAAIC,EAAM,EACGC,EAAAC,CAAmBF,CAAnBE,CAAwBN,CAAAO,KAAxBD,CACbH,MAAA,CAAaA,CAAb,CACA,OAAOC,EAAAI,KAAA,CAAS,EAAT,CAJoB,CAmE7BC,QAASA,EAAO,CAACC,CAAD,CAAM,CAAA,IAChBC,EAAM,EAAIC,EAAAA,CAAQF,CAAAG,MAAA,CAAU,GAAV,CAAtB,KAAsCC,CACtC,KAAKA,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgBF,CAAAG,OAAhB,CAA8BD,CAAA,EAA9B,CAAmCH,CAAA,CAAIC,CAAA,CAAME,CAAN,CAAJ,CAAA,CAAgB,CAAA,CACnD,OAAOH,EAHa,CAmBtBK,QAASA,EAAU,CAAEC,CAAF,CAAQC,CAAR,CAAkB,CAiFnCC,QAASA,EAAa,CAAEC,CAAF,CAAOC,CAAP,CAAgBC,CAAhB,CAAsBC,CAAtB,CAA8B,CAClDF,CAAA,CAAUrB,CAAAwB,UAAA,CAAkBH,CAAlB,CACV,IAAKI,CAAA,CAAeJ,CAAf,CAAL,CACE,IAAA,CAAQK,CAAAC,KAAA,EAAR,EAAwBC,CAAA,CAAgBF,CAAAC,KAAA,EAAhB,CAAxB,CAAA,CACEE,CAAA,CAAa,EAAb,CAAiBH,CAAAC,KAAA,EAAjB,CAICG,EAAA,CAAwBT,CAAxB,CAAL,EAA0CK,CAAAC,KAAA,EAA1C,EAA0DN,CAA1D,EACEQ,CAAA,CAAa,EAAb,CAAiBR,CAAjB,CAKF,EAFAE,CAEA,CAFQQ,CAAA,CAAcV,CAAd,CAER,EAFmC,CAAC,CAACE,CAErC,GACEG,CAAAM,KAAA,CAAYX,CAAZ,CAEF,KAAIY,EAAQ,EAEZX,EAAAY,QAAA,CAAaC,CAAb,CACE,QAAQ,CAACC,CAAD,CAAQC,CAAR,CAAcC,CAAd,CAAiCC,CAAjC,CAAoDC,CAApD,CAAmE,CAMzEP,CAAA,CAAMI,CAAN,CAAA,CAAcI,CAAA,CALFH,CAKE,EAJTC,CAIS,EAHTC,CAGS,EAFT,EAES,CAN2D,CAD7E,CASItB,EAAAwB,MAAJ,EAAmBxB,CAAAwB,MAAA,CAAerB,CAAf,CAAwBY,CAAxB,CAA+BV,CAA/B,CA5B+B,CA+BpDM,QAASA,EAAW,CAAET,CAAF,CAAOC,CAAP,CAAiB,CAAA,IAC/BsB,EAAM,CADyB,CACtB7B,CAEb,IADAO,CACA,CADUrB,CAAAwB,UAAA,CAAkBH,CAAlB,CACV,CAEE,IAAMsB,CAAN,CAAYjB,CAAAX,OAAZ,CAA2B,CAA3B,CAAqC,CAArC,EAA8B4B,CAA9B,EACOjB,CAAA,CAAOiB,CAAP,CADP,EACuBtB,CADvB,CAAwCsB,CAAA,EAAxC;AAIF,GAAY,CAAZ,EAAKA,CAAL,CAAgB,CAEd,IAAM7B,CAAN,CAAUY,CAAAX,OAAV,CAAyB,CAAzB,CAA4BD,CAA5B,EAAiC6B,CAAjC,CAAsC7B,CAAA,EAAtC,CACMI,CAAA0B,IAAJ,EAAiB1B,CAAA0B,IAAA,CAAalB,CAAA,CAAOZ,CAAP,CAAb,CAGnBY,EAAAX,OAAA,CAAe4B,CAND,CATmB,CAhHF,IAC/BE,CAD+B,CACxB1C,CADwB,CACVuB,EAAQ,EADE,CACEC,EAAOV,CAG5C,KAFAS,CAAAC,KAEA,CAFamB,QAAQ,EAAG,CAAE,MAAOpB,EAAA,CAAOA,CAAAX,OAAP,CAAsB,CAAtB,CAAT,CAExB,CAAQE,CAAR,CAAA,CAAe,CACbd,CAAA,CAAQ,CAAA,CAGR,IAAMuB,CAAAC,KAAA,EAAN,EAAuBoB,CAAA,CAAiBrB,CAAAC,KAAA,EAAjB,CAAvB,CAmDEV,CASA,CATOA,CAAAiB,QAAA,CAAiBc,MAAJ,CAAW,kBAAX,CAAgCtB,CAAAC,KAAA,EAAhC,CAA+C,QAA/C,CAAyD,GAAzD,CAAb,CACL,QAAQ,CAACsB,CAAD,CAAMC,CAAN,CAAW,CACjBA,CAAA,CAAOA,CAAAhB,QAAA,CAAaiB,CAAb,CAA6B,IAA7B,CAAAjB,QAAA,CAA2CkB,CAA3C,CAAyD,IAAzD,CAEHlC,EAAAf,MAAJ,EAAmBe,CAAAf,MAAA,CAAesC,CAAA,CAAeS,CAAf,CAAf,CAEnB,OAAO,EALU,CADd,CASP,CAAArB,CAAA,CAAa,EAAb,CAAiBH,CAAAC,KAAA,EAAjB,CA5DF,KAAyD,CAGvD,GAA8B,CAA9B,GAAKV,CAAAoC,QAAA,CAAa,SAAb,CAAL,CAEER,CAEA,CAFQ5B,CAAAoC,QAAA,CAAa,IAAb,CAAmB,CAAnB,CAER,CAAc,CAAd,EAAKR,CAAL,EAAmB5B,CAAAqC,YAAA,CAAiB,QAAjB,CAAwBT,CAAxB,CAAnB,GAAsDA,CAAtD,GACM3B,CAAAqC,QAEJ,EAFqBrC,CAAAqC,QAAA,CAAiBtC,CAAAuC,UAAA,CAAgB,CAAhB,CAAmBX,CAAnB,CAAjB,CAErB,CADA5B,CACA,CADOA,CAAAuC,UAAA,CAAgBX,CAAhB,CAAwB,CAAxB,CACP,CAAA1C,CAAA,CAAQ,CAAA,CAHV,CAJF,KAUO,IAAKsD,CAAAC,KAAA,CAAoBzC,CAApB,CAAL,CAGL,IAFAmB,CAEA,CAFQnB,CAAAmB,MAAA,CAAYqB,CAAZ,CAER,CACExC,CACA;AADOA,CAAAiB,QAAA,CAAcE,CAAA,CAAM,CAAN,CAAd,CAAwB,EAAxB,CACP,CAAAjC,CAAA,CAAQ,CAAA,CAFV,CAHK,IAQA,IAAKwD,CAAAD,KAAA,CAA4BzC,CAA5B,CAAL,CAGL,IAFAmB,CAEA,CAFQnB,CAAAmB,MAAA,CAAYwB,CAAZ,CAER,CACE3C,CAEA,CAFOA,CAAAuC,UAAA,CAAgBpB,CAAA,CAAM,CAAN,CAAArB,OAAhB,CAEP,CADAqB,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAkB0B,CAAlB,CAAkC/B,CAAlC,CACA,CAAA1B,CAAA,CAAQ,CAAA,CAHV,CAHK,IAUK0D,EAAAH,KAAA,CAAsBzC,CAAtB,CAAL,GACLmB,CADK,CACGnB,CAAAmB,MAAA,CAAY0B,CAAZ,CADH,IAIH7C,CAEA,CAFOA,CAAAuC,UAAA,CAAgBpB,CAAA,CAAM,CAAN,CAAArB,OAAhB,CAEP,CADAqB,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAkB4B,CAAlB,CAAoC3C,CAApC,CACA,CAAAhB,CAAA,CAAQ,CAAA,CANL,CAUFA,EAAL,GACE0C,CAKA,CALQ5B,CAAAoC,QAAA,CAAa,GAAb,CAKR,CAHIH,CAGJ,CAHmB,CAAR,CAAAL,CAAA,CAAY5B,CAAZ,CAAmBA,CAAAuC,UAAA,CAAgB,CAAhB,CAAmBX,CAAnB,CAG9B,CAFA5B,CAEA,CAFe,CAAR,CAAA4B,CAAA,CAAY,EAAZ,CAAiB5B,CAAAuC,UAAA,CAAgBX,CAAhB,CAExB,CAAI3B,CAAAf,MAAJ,EAAmBe,CAAAf,MAAA,CAAesC,CAAA,CAAeS,CAAf,CAAf,CANrB,CAzCuD,CA+DzD,GAAKjC,CAAL,EAAaU,CAAb,CACE,KAAMoC,EAAA,CAAgB,UAAhB,CAC4C9C,CAD5C,CAAN,CAGFU,CAAA,CAAOV,CAvEM,CA2EfY,CAAA,EA/EmC,CA2IrCY,QAASA,EAAc,CAACuB,CAAD,CAAQ,CAC7B,GAAI,CAACA,CAAL,CAAc,MAAO,EAIrB,KAAIC,EAAQC,CAAAC,KAAA,CAAaH,CAAb,CACRI,EAAAA,CAAcH,CAAA,CAAM,CAAN,CAClB,KAAII,EAAaJ,CAAA,CAAM,CAAN,CAEjB,IADIK,CACJ,CADcL,CAAA,CAAM,CAAN,CACd,CACEM,CAAAC,UAKA,CALoBF,CAAApC,QAAA,CAAgB,IAAhB,CAAqB,MAArB,CAKpB,CAAAoC,CAAA,CAAU,aAAA,EAAiBC,EAAjB,CACRA,CAAAE,YADQ,CACgBF,CAAAG,UAE5B,OAAON,EAAP,CAAqBE,CAArB,CAA+BD,CAlBF,CA4B/BM,QAASA,EAAc,CAACX,CAAD,CAAQ,CAC7B,MAAOA,EAAA9B,QAAA,CACG,IADH;AACS,OADT,CAAAA,QAAA,CAEG0C,CAFH,CAE4B,QAAQ,CAACZ,CAAD,CAAO,CAC9C,MAAO,IAAP,CAAcA,CAAAa,WAAA,CAAiB,CAAjB,CAAd,CAAoC,GADU,CAF3C,CAAA3C,QAAA,CAKG,IALH,CAKS,MALT,CAAAA,QAAA,CAMG,IANH,CAMS,MANT,CADsB,CAoB/B7B,QAASA,EAAkB,CAACD,CAAD,CAAM0E,CAAN,CAAmB,CAC5C,IAAIC,EAAS,CAAA,CAAb,CACIC,EAAMhF,CAAAiF,KAAA,CAAa7E,CAAb,CAAkBA,CAAA4B,KAAlB,CACV,OAAO,OACEU,QAAQ,CAACtB,CAAD,CAAMa,CAAN,CAAaV,CAAb,CAAmB,CAChCH,CAAA,CAAMpB,CAAAwB,UAAA,CAAkBJ,CAAlB,CACD2D,EAAAA,CAAL,EAAehC,CAAA,CAAgB3B,CAAhB,CAAf,GACE2D,CADF,CACW3D,CADX,CAGK2D,EAAL,EAAsC,CAAA,CAAtC,GAAeG,CAAA,CAAc9D,CAAd,CAAf,GACE4D,CAAA,CAAI,GAAJ,CAcA,CAbAA,CAAA,CAAI5D,CAAJ,CAaA,CAZApB,CAAAmF,QAAA,CAAgBlD,CAAhB,CAAuB,QAAQ,CAAC+B,CAAD,CAAQoB,CAAR,CAAY,CACzC,IAAIC,EAAKrF,CAAAwB,UAAA,CAAkB4D,CAAlB,CAAT,CACIE,EAAmB,KAAnBA,GAAWlE,CAAXkE,EAAqC,KAArCA,GAA4BD,CAA5BC,EAAyD,YAAzDA,GAAgDD,CAC3B,EAAA,CAAzB,GAAIE,CAAA,CAAWF,CAAX,CAAJ,EACsB,CAAA,CADtB,GACGG,CAAA,CAASH,CAAT,CADH,EAC8B,CAAAP,CAAA,CAAad,CAAb,CAAoBsB,CAApB,CAD9B,GAEEN,CAAA,CAAI,GAAJ,CAIA,CAHAA,CAAA,CAAII,CAAJ,CAGA,CAFAJ,CAAA,CAAI,IAAJ,CAEA,CADAA,CAAA,CAAIL,CAAA,CAAeX,CAAf,CAAJ,CACA,CAAAgB,CAAA,CAAI,GAAJ,CANF,CAHyC,CAA3C,CAYA,CAAAA,CAAA,CAAIzD,CAAA,CAAQ,IAAR,CAAe,GAAnB,CAfF,CALgC,CAD7B,KAwBAqB,QAAQ,CAACxB,CAAD,CAAK,CACdA,CAAA,CAAMpB,CAAAwB,UAAA,CAAkBJ,CAAlB,CACD2D,EAAL,EAAsC,CAAA,CAAtC,GAAeG,CAAA,CAAc9D,CAAd,CAAf,GACE4D,CAAA,CAAI,IAAJ,CAEA,CADAA,CAAA,CAAI5D,CAAJ,CACA,CAAA4D,CAAA,CAAI,GAAJ,CAHF,CAKI5D,EAAJ,EAAW2D,CAAX,GACEA,CADF,CACW,CAAA,CADX,CAPc,CAxBb,OAmCE5E,QAAQ,CAACA,CAAD,CAAO,CACb4E,CAAL;AACEC,CAAA,CAAIL,CAAA,CAAexE,CAAf,CAAJ,CAFgB,CAnCjB,CAHqC,CAha9C,IAAI4D,EAAkB/D,CAAAyF,SAAA,CAAiB,WAAjB,CAAtB,CAwJI3B,EACG,4FAzJP,CA0JEF,EAAiB,2BA1JnB,CA2JEzB,EAAc,yEA3JhB,CA4JE0B,EAAmB,IA5JrB,CA6JEF,EAAyB,SA7J3B,CA8JER,EAAiB,qBA9JnB,CA+JEM,EAAiB,qBA/JnB,CAgKEL,EAAe,yBAhKjB,CAkKEwB,EAA0B,gBAlK5B,CA2KI7C,EAAetB,CAAA,CAAQ,wBAAR,CAIfiF,EAAAA,CAA8BjF,CAAA,CAAQ,gDAAR,CAC9BkF,EAAAA,CAA+BlF,CAAA,CAAQ,OAAR,CADnC,KAEIqB,EAAyB9B,CAAA4F,OAAA,CAAe,EAAf,CACeD,CADf,CAEeD,CAFf,CAF7B,CAOIjE,EAAgBzB,CAAA4F,OAAA,CAAe,EAAf,CAAmBF,CAAnB,CAAgDjF,CAAA,CAAQ,4KAAR,CAAhD,CAPpB;AAYImB,EAAiB5B,CAAA4F,OAAA,CAAe,EAAf,CAAmBD,CAAnB,CAAiDlF,CAAA,CAAQ,2JAAR,CAAjD,CAZrB,CAkBIsC,EAAkBtC,CAAA,CAAQ,cAAR,CAlBtB,CAoBIyE,EAAgBlF,CAAA4F,OAAA,CAAe,EAAf,CACe7D,CADf,CAEeN,CAFf,CAGeG,CAHf,CAIeE,CAJf,CApBpB,CA2BI0D,EAAW/E,CAAA,CAAQ,0CAAR,CA3Bf,CA4BI8E,EAAavF,CAAA4F,OAAA,CAAe,EAAf,CAAmBJ,CAAnB,CAA6B/E,CAAA,CAC1C,ySAD0C,CAA7B,CA5BjB;AA0LI8D,EAAUsB,QAAAC,cAAA,CAAuB,KAAvB,CA1Ld,CA2LI5B,EAAU,wBAsGdlE,EAAA+F,OAAA,CAAe,YAAf,CAA6B,EAA7B,CAAAC,SAAA,CAA0C,WAA1C,CA7UAC,QAA0B,EAAG,CAC3B,IAAAC,KAAA,CAAY,CAAC,eAAD,CAAkB,QAAQ,CAACC,CAAD,CAAgB,CACpD,MAAO,SAAQ,CAAClF,CAAD,CAAO,CACpB,IAAIb,EAAM,EACVY,EAAA,CAAWC,CAAX,CAAiBZ,CAAA,CAAmBD,CAAnB,CAAwB,QAAQ,CAACgG,CAAD,CAAMd,CAAN,CAAe,CAC9D,MAAO,CAAC,SAAA5B,KAAA,CAAeyC,CAAA,CAAcC,CAAd,CAAmBd,CAAnB,CAAf,CADsD,CAA/C,CAAjB,CAGA,OAAOlF,EAAAI,KAAA,CAAS,EAAT,CALa,CAD8B,CAA1C,CADe,CA6U7B,CAuGAR,EAAA+F,OAAA,CAAe,YAAf,CAAAM,OAAA,CAAoC,OAApC,CAA6C,CAAC,WAAD,CAAc,QAAQ,CAACC,CAAD,CAAY,CAAA,IACzEC,EACE,mEAFuE,CAGzEC,EAAgB,UAEpB,OAAO,SAAQ,CAACtD,CAAD,CAAOuD,CAAP,CAAe,CAoB5BC,QAASA,EAAO,CAACxD,CAAD,CAAO,CAChBA,CAAL,EAGAjC,CAAAe,KAAA,CAAU9B,CAAA,CAAagD,CAAb,CAAV,CAJqB,CAOvByD,QAASA,EAAO,CAACC,CAAD,CAAM1D,CAAN,CAAY,CAC1BjC,CAAAe,KAAA,CAAU,KAAV,CACIhC,EAAA6G,UAAA,CAAkBJ,CAAlB,CAAJ;CACExF,CAAAe,KAAA,CAAU,UAAV,CAEA,CADAf,CAAAe,KAAA,CAAUyE,CAAV,CACA,CAAAxF,CAAAe,KAAA,CAAU,IAAV,CAHF,CAKAf,EAAAe,KAAA,CAAU,QAAV,CACAf,EAAAe,KAAA,CAAU4E,CAAV,CACA3F,EAAAe,KAAA,CAAU,IAAV,CACA0E,EAAA,CAAQxD,CAAR,CACAjC,EAAAe,KAAA,CAAU,MAAV,CAX0B,CA1B5B,GAAI,CAACkB,CAAL,CAAW,MAAOA,EAMlB,KALA,IAAId,CAAJ,CACI0E,EAAM5D,CADV,CAEIjC,EAAO,EAFX,CAGI2F,CAHJ,CAII9F,CACJ,CAAQsB,CAAR,CAAgB0E,CAAA1E,MAAA,CAAUmE,CAAV,CAAhB,CAAA,CAEEK,CAMA,CANMxE,CAAA,CAAM,CAAN,CAMN,CAJIA,CAAA,CAAM,CAAN,CAIJ,EAJgBA,CAAA,CAAM,CAAN,CAIhB,GAJ0BwE,CAI1B,CAJgC,SAIhC,CAJ4CA,CAI5C,EAHA9F,CAGA,CAHIsB,CAAAS,MAGJ,CAFA6D,CAAA,CAAQI,CAAAC,OAAA,CAAW,CAAX,CAAcjG,CAAd,CAAR,CAEA,CADA6F,CAAA,CAAQC,CAAR,CAAaxE,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAiBsE,CAAjB,CAAgC,EAAhC,CAAb,CACA,CAAAM,CAAA,CAAMA,CAAAtD,UAAA,CAAc1C,CAAd,CAAkBsB,CAAA,CAAM,CAAN,CAAArB,OAAlB,CAER2F,EAAA,CAAQI,CAAR,CACA,OAAOR,EAAA,CAAUrF,CAAAT,KAAA,CAAU,EAAV,CAAV,CAlBqB,CAL+C,CAAlC,CAA7C,CAzjBsC,CAArC,CAAA,CA0mBET,MA1mBF,CA0mBUA,MAAAC,QA1mBV;", +"sources":["angular-sanitize.js"], +"names":["window","angular","undefined","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","makeMap","str","obj","items","split","i","length","htmlParser","html","handler","parseStartTag","tag","tagName","rest","unary","lowercase","blockElements","stack","last","inlineElements","parseEndTag","optionalEndTagElements","voidElements","push","attrs","replace","ATTR_REGEXP","match","name","doubleQuotedValue","singleQuotedValue","unquotedValue","decodeEntities","start","pos","end","index","stack.last","specialElements","RegExp","all","text","COMMENT_REGEXP","CDATA_REGEXP","indexOf","lastIndexOf","comment","substring","DOCTYPE_REGEXP","test","BEGING_END_TAGE_REGEXP","END_TAG_REGEXP","BEGIN_TAG_REGEXP","START_TAG_REGEXP","$sanitizeMinErr","value","parts","spaceRe","exec","spaceBefore","spaceAfter","content","hiddenPre","innerHTML","textContent","innerText","encodeEntities","NON_ALPHANUMERIC_REGEXP","charCodeAt","uriValidator","ignore","out","bind","validElements","forEach","key","lkey","isImage","validAttrs","uriAttrs","$$minErr","optionalEndTagBlockElements","optionalEndTagInlineElements","extend","document","createElement","module","provider","$SanitizeProvider","$get","$$sanitizeUri","uri","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","target","addText","addLink","url","isDefined","raw","substr"] +} diff --git a/platforms/android/assets/www/lib/angular-sanitize/bower.json b/platforms/android/assets/www/lib/angular-sanitize/bower.json new file mode 100644 index 00000000..1160f22f --- /dev/null +++ b/platforms/android/assets/www/lib/angular-sanitize/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-sanitize", + "version": "1.2.16", + "main": "./angular-sanitize.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/platforms/android/assets/www/lib/angular-scenario/.bower.json b/platforms/android/assets/www/lib/angular-scenario/.bower.json new file mode 100644 index 00000000..f33be682 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-scenario/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-scenario", + "version": "1.2.16", + "main": "./angular-scenario.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-scenario", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "387bd67cc4863655aed0f889956cdeb4acdb03ae" + }, + "_source": "git://github.com/angular/bower-angular-scenario.git", + "_target": "1.2.16", + "_originalSource": "angular-scenario" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/angular-scenario/README.md b/platforms/android/assets/www/lib/angular-scenario/README.md new file mode 100644 index 00000000..7f80a8c5 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-scenario/README.md @@ -0,0 +1,42 @@ +# bower-angular-scenario + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngScenario). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-scenario +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/android/assets/www/lib/angular-scenario/angular-scenario.js b/platforms/android/assets/www/lib/angular-scenario/angular-scenario.js new file mode 100644 index 00000000..81491c59 --- /dev/null +++ b/platforms/android/assets/www/lib/angular-scenario/angular-scenario.js @@ -0,0 +1,33464 @@ +/*! + * jQuery JavaScript Library v1.10.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03T13:48Z + */ +(function( window, undefined ) {'use strict'; + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +// + +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<10 + // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + location = window.location, + document = window.document, + docElem = document.documentElement, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.10.2", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( jQuery.support.ownLast ) { + for ( key in obj ) { + return core_hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations. + // Note: this method belongs to the css module but it's needed here for the support module. + // If support gets modularized, this method should be moved back to the css module. + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +/*! + * Sizzle CSS Selector Engine v1.10.2 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03 + */ +(function( window, undefined ) { + +var i, + support, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rsibling = new RegExp( whitespace + "*[+~]" ), + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent.attachEvent && parent !== parent.top ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + div.innerHTML = "
"; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Support: Opera 10-12/IE8 + // ^= $= *= and empty values + // Should not select anything + // Support: Windows 8 Native Apps + // The type attribute is restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "t", "" ); + + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val === undefined ? + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null : + val; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; + } + }); +} + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function( support ) { + + var all, a, input, select, fragment, opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
a"; + + // Finish early in limited (non-browser) environments + all = div.getElementsByTagName("*") || []; + a = div.getElementsByTagName("a")[ 0 ]; + if ( !a || !a.style || !all.length ) { + return support; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName("tbody").length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName("link").length; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; + + // Will be defined later + support.inlineBlockNeedsLayout = false; + support.shrinkWrapBlocks = false; + support.pixelPosition = false; + support.deleteExpando = true; + support.noCloneEvent = true; + support.reliableMarginRight = true; + support.boxSizingReliable = true; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: IE<9 + // Iteration over object's inherited properties before its own. + for ( i in jQuery( support ) ) { + break; + } + support.ownLast = i !== "0"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior. + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + support.boxSizing = div.offsetWidth === 4; + }); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})({}); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "applet": true, + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + data = null, + i = 0, + elem = this[0]; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n\f]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // Use proper attribute retrieval(#6932, #12072) + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { + optionSet = true; + } + } + + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; + + jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var fn = jQuery.expr.attrHandle[ name ], + ret = isXML ? + undefined : + /* jshint eqeqeq: false */ + (jQuery.expr.attrHandle[ name ] = undefined) != + getter( elem, name, isXML ) ? + + name.toLowerCase() : + null; + jQuery.expr.attrHandle[ name ] = fn; + return ret; + } : + function( elem, name, isXML ) { + return isXML ? + undefined : + elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + }; +}); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = + // Some attributes are constructed with empty-string values when not defined + function( elem, name, isXML ) { + var ret; + return isXML ? + undefined : + (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + }; + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ret.specified ? + ret.value : + undefined; + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !jQuery.support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + cur = ret.push( cur ); + break; + } + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( isSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map( this, function( elem ) { + return [ elem.nextSibling, elem.parentNode ]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + var next = args[ i++ ], + parent = args[ i++ ]; + + if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + // Allow new content to include elements from the context set + }, true ); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback, allowIntersection ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback, allowIntersection ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery._evalUrl( node.src ); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + }, + + _evalUrl: function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } +}); +jQuery.fn.extend({ + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("');return a.join("")})}},fileButton:function(b,c,d){if(!(arguments.length<3)){a.call(this,c);var e=this;if(c.validate)this.validate=c.validate;var g=CKEDITOR.tools.extend({}, +c),i=g.onClick;g.className=(g.className?g.className+" ":"")+"cke_dialog_ui_button";g.onClick=function(a){var d=c["for"];if(!i||i.call(this,a)!==false){b.getContentElement(d[0],d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(c["for"][0],c["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,g,d)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(d,e,g){if(!(arguments.length<3)){var i=[], +n=e.html;n.charAt(0)!="<"&&(n=""+n+"");var l=e.focus;if(l){var o=this.focus;this.focus=function(){(typeof l=="function"?l:o).call(this);this.fire("focus")};if(e.isFocusable)this.isFocusable=this.isFocusable;this.keyboardFocusable=true}CKEDITOR.ui.dialog.uiElement.call(this,d,e,i,"span",null,null,"");i=i.join("").match(a);n=n.match(b)||["","",""];if(c.test(n[1])){n[1]=n[1].slice(0,-1);n[2]="/"+n[2]}g.push([n[1]," ",i[1]||"",n[2]].join(""))}}}(),fieldset:function(a,b,c,d,e){var g=e.label; +this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,e,d,"fieldset",null,null,function(){var a=[];g&&a.push(""+g+"");for(var b=0;b0;)a.remove(0);return this},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(a,b){this.getInputElement().$.checked=a;!b&&this.fire("change",{value:a})},getValue:function(){return this.getInputElement().$.checked}, +accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(a,b){if(!CKEDITOR.env.ie||CKEDITOR.env.version>8)return c.onChange.apply(this,arguments);a.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;b.propertyName=="checked"&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",b);return null}},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, +{setValue:function(a,b){for(var c=this._.children,d,e=0;e0?new CKEDITOR.dom.element(a.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,d=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog, +c[1].toLowerCase(),a[e]);return this},reset:function(){function a(){c.$.open();var f="";d.size&&(f=d.size-(CKEDITOR.env.ie?7:0));var r=b.frameId+"_input";c.$.write(['','
+ ``` + +- `tabReplace` and `useBR` that were used in different places are also unified + into the global options object and are to be set using `configure(options)`. + This function is documented in our [API docs][]. Also note that these + parameters are gone from `highlightBlock` and `fixMarkup` which are now also + rely on `configure`. + +- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which + was used to register languages with the library in favor of two new methods: + `registerLanguage` and `getLanguage`. Both are documented in our [API docs][]. + +- Result returned from `highlight` and `highlightAuto` no longer contains two + separate attributes contributing to relevance score, `relevance` and + `keyword_count`. They are now unified in `relevance`. + +Another technically compatible change that nonetheless might need attention: + +- The structure of the NPM package was refactored, so if you had installed it + locally, you'll have to update your paths. The usual `require('highlight.js')` + works as before. This is contributed by [Dmitry Smolin][]. + +New features: + +- Languages now can be recognized by multiple names like "js" for JavaScript or + "html" for, well, HTML (which earlier insisted on calling it "xml"). These + aliases can be specified in the class attribute of the code container in your + HTML as well as in various API calls. For now there are only a few very common + aliases but we'll expand it in the future. All of them are listed in the + [class reference][]. + +- Language detection can now be restricted to a subset of languages relevant in + a given context — a web page or even a single highlighting call. This is + especially useful for node.js build that includes all the known languages. + Another example is a StackOverflow-style site where users specify languages + as tags rather than in the markdown-formatted code snippets. This is + documented in the [API reference][] (see methods `highlightAuto` and + `configure`). + +- Language definition syntax streamlined with [variants][] and + [beginKeywords][]. + +New languages and styles: + +- *Oxygene* by [Carlo Kok][] +- *Mathematica* by [Daniel Kvasnička][] +- *Autohotkey* by [Seongwon Lee][] +- *Atelier* family of styles in 10 variants by [Bram de Haan][] +- *Paraíso* styles by [Jan T. Sott][] + +Miscelleanous improvements: + +- Highlighting `=>` prompts in Clojure. +- [Jeremy Hull][] fixed a lot of styles for consistency. +- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html]. +- Objective C and C# now properly highlight titles in method definition. +- Big overhaul of relevance counting for a number of languages. Please do report + bugs about mis-detection of non-trivial code snippets! + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html +[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html +[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion +[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d +[php-html]: https://twitter.com/highlightjs/status/408890903017689088 + +[Carlo Kok]: https://github.com/carlokok +[Bram de Haan]: https://github.com/atelierbram +[Daniel Kvasnička]: https://github.com/dkvasnicka +[Dmitry Smolin]: https://github.com/dimsmol +[Jeremy Hull]: https://github.com/sourrust +[Seongwon Lee]: https://github.com/dlimpid +[Jan T. Sott]: https://github.com/idleberg + + +## Version 7.5 + +A catch-up release dealing with some of the accumulated contributions. This one +is probably will be the last before the 8.0 which will be slightly backwards +incompatible regarding some advanced use-cases. + +One outstanding change in this version is the addition of 6 languages to the +[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and +Makefile. It now weighs about 6K more but we're going to keep it under 30K. + +New languages: + +- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud] +- [LiveCode Server][lcs] by [Ralf Bitter][revig] +- Scilab by [Sylvestre Ledru][sylvestre] +- basic support for Makefile by [Ivan Sagalaev][isagalaev] + +Improvements: + +- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}` + regexps. +- Clojure now allows a function call in the beginning of s-expressions + `(($filter "myCount") (arr 1 2 3 4 5))`. +- Haskell's got new keywords and now recognizes more things like pragmas, + preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep] + for the implementation and to [Jeremy Hull][sourrust] for guiding it. +- Miscelleanous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#. + +[mehdid]: https://github.com/mehdid +[nbraud]: https://github.com/nbraud +[revig]: https://github.com/revig +[lcs]: http://livecode.com/developers/guides/server/ +[sylvestre]: https://github.com/sylvestre +[isagalaev]: https://github.com/isagalaev +[treep]: https://github.com/treep +[sourrust]: https://github.com/sourrust +[d]: http://highlightjs.org/download/ + + +## New core developers + +The latest long period of almost complete inactivity in the project coincided +with growing interest to it led to a decision that now seems completely obvious: +we need more core developers. + +So without further ado let me welcome to the core team two long-time +contributors: [Jeremy Hull][] and [Oleg +Efimov][]. + +Hope now we'll be able to work through stuff faster! + +P.S. The historical commit is [here][1] for the record. + +[Jeremy Hull]: https://github.com/sourrust +[Oleg Efimov]: https://github.com/sannis +[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f + + +## Version 7.4 + +This long overdue version is a snapshot of the current source tree with all the +changes that happened during the past year. Sorry for taking so long! + +Along with the changes in code highlight.js has finally got its new home at +, moving from its craddle on Software Maniacs which it +outgrew a long time ago. Be sure to report any bugs about the site to +. + +On to what's new… + +New languages: + +- Handlebars templates by [Robin Ward][] +- Oracle Rules Language by [Jason Jacobson][] +- F# by [Joans Follesø][] +- AsciiDoc and Haml by [Dan Allen][] +- Lasso by [Eric Knibbe][] +- SCSS by [Kurt Emch][] +- VB.NET by [Poren Chiang][] +- Mizar by [Kelley van Evert][] + +[Robin Ward]: https://github.com/eviltrout +[Jason Jacobson]: https://github.com/jayce7 +[Joans Follesø]: https://github.com/follesoe +[Dan Allen]: https://github.com/mojavelinux +[Eric Knibbe]: https://github.com/EricFromCanada +[Kurt Emch]: https://github.com/kemch +[Poren Chiang]: https://github.com/rschiang +[Kelley van Evert]: https://github.com/kelleyvanevert + +New style themes: + +- Monokai Sublime by [noformnocontent][] +- Railscasts by [Damien White][] +- Obsidian by [Alexander Marenin][] +- Docco by [Simon Madine][] +- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything) +- Foundation by [Dan Allen][] + +[noformnocontent]: http://nn.mit-license.org/ +[Damien White]: https://github.com/visoft +[Alexander Marenin]: https://github.com/ioncreature +[Simon Madine]: https://github.com/thingsinjars +[Ivan Sagalaev]: https://github.com/isagalaev + +Other notable changes: + +- Corrected many corner cases in CSS. +- Dropped Python 2 version of the build tool. +- Implemented building for the AMD format. +- Updated Rust keywords (thanks to [Dmitry Medvinsky][]). +- Literal regexes can now be used in language definitions. +- CoffeeScript highlighting is now significantly more robust and rich due to + input from [Cédric Néhémie][]. + +[Dmitry Medvinsky]: https://github.com/dmedvinsky +[Cédric Néhémie]: https://github.com/abe33 + + +## Version 7.3 + +- Since this version highlight.js no longer works in IE version 8 and older. + It's made it possible to reduce the library size and dramatically improve code + readability and made it easier to maintain. Time to go forward! + +- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and + Brainfuck (by [Evgeny Stepanischev][bolk]). + +- Improvements to existing languages: + + - interpreter prompt in Python (`>>>` and `...`) + - @-properties and classes in CoffeeScript + - E4X in JavaScript (by [Oleg Efimov][oe]) + - new keywords in Perl (by [Kirk Kimmel][kk]) + - big Ruby syntax update (by [Vasily Polovnyov][vast]) + - small fixes in Bash + +- Also Oleg Efimov did a great job of moving all the docs for language and style + developers and contributors from the old wiki under the source code in the + "docs" directory. Now these docs are nicely presented at + . + +[ng]: https://github.com/nathan11g +[dd]: https://github.com/drdrang +[bolk]: https://github.com/bolknote +[oe]: https://github.com/Sannis +[kk]: https://github.com/kimmel +[vast]: https://github.com/vast + + +## Version 7.2 + +A regular bug-fix release without any significant new features. Enjoy! + + +## Version 7.1 + +A Summer crop: + +- [Marc Fornos][mf] made the definition for Clojure along with the matching + style Rainbow (which, of course, works for other languages too). +- CoffeeScript support continues to improve getting support for regular + expressions. +- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the + [project by Chris Kempson][tm0]. +- Thanks to [Casey Duncun][cd] the library can now be built in the popular + [AMD format][amd]. +- And last but not least, we've got a fair number of correctness and consistency + fixes, including a pretty significant refactoring of Ruby. + +[mf]: https://github.com/mfornos +[tm]: http://jmblog.github.com/color-themes-for-highlightjs/ +[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme +[cd]: https://github.com/caseman +[amd]: http://requirejs.org/docs/whyamd.html + + +## Version 7.0 + +The reason for the new major version update is a global change of keyword syntax +which resulted in the library getting smaller once again. For example, the +hosted build is 2K less than at the previous version while supporting two new +languages. + +Notable changes: + +- The library now works not only in a browser but also with [node.js][]. It is + installable with `npm install highlight.js`. [API][] docs are available on our + wiki. + +- The new unique feature (apparently) among syntax highlighters is highlighting + *HTTP* headers and an arbitrary language in the request body. The most useful + languages here are *XML* and *JSON* both of which highlight.js does support. + Here's [the detailed post][p] about the feature. + +- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an + emulation of*XCode* IDE by [Angel Olloqui][ao]. + +- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc] + and *GLSL* by [Sergey Tikhomirov][st]. + +- *Nginx* syntax has become a million times smaller and more universal thanks to + remaking it in a more generic manner that doesn't require listing all the + directives in the known universe. + +- Function titles are now highlighted in *PHP*. + +- *Haskell* and *VHDL* were significantly reworked to be more rich and correct + by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik]. + +And last but not least, many bugs have been fixed around correctness and +language detection. + +Overall highlight.js currently supports 51 languages and 20 style themes. + +[node.js]: http://nodejs.org/ +[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api +[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/ +[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +[ao]: https://github.com/angelolloqui +[ar]: https://github.com/raleksandar +[jc]: https://github.com/jcheng5 +[st]: https://github.com/tikhomirov +[sr]: https://github.com/sourrust +[ik]: https://github.com/ikalnitsky + + +## Version 6.2 + +A lot of things happened in highlight.js since the last version! We've got nine +new contributors, the discussion group came alive, and the main branch on GitHub +now counts more than 350 followers. Here are most significant results coming +from all this activity: + +- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and + experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av], + [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis + Bardadym][db] and [John Crepezzi][jc]. + +- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of + another well-known highlighter Google Code Prettify by [Aahan Krish][ak]. + +- A vast number of [correctness fixes and code refactorings][log], mostly made + by [Oleg Efimov][oe] and [Evgeny Stepanischev][es]. + +[av]: https://github.com/vlasovskikh +[am]: https://github.com/myadzel +[dn]: https://github.com/dnagir +[oe]: https://github.com/Sannis +[db]: https://github.com/btd +[jc]: https://github.com/seejohnrun +[lm]: http://grigio.org/ +[ak]: https://github.com/geekpanth3r +[es]: https://github.com/bolknote +[log]: https://github.com/isagalaev/highlight.js/commits/ + + +## Version 6.1 — Solarized + +[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][] +style theme famous for being based on the intricate color theory to achieve +correct contrast and color perception. It is now available for highlight.js in +both variants — light and dark. + +This version also adds a new original style Arta. Its author pumbur maintains a +[heavily modified fork of highlight.js][pb] on GitHub. + +[jh]: https://github.com/sourrust +[solarized]: http://ethanschoonover.com/solarized +[pb]: https://github.com/pumbur/highlight.js + + +## Version 6.0 + +New major version of the highlighter has been built on a significantly +refactored syntax. Due to this it's even smaller than the previous one while +supporting more languages! + +New languages are: + +- Haskell by [Jeremy Hull][sourrust] +- Erlang in two varieties — module and REPL — made collectively by [Nikolay + Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov] +- Objective C by [Valerii Hiora][vhbit] +- Vala by [Antono Vasiljev][antono] +- Go by [Stephan Kountso][steplg] + +[sourrust]: https://github.com/sourrust +[desh]: http://desh.su/ +[arhibot]: https://github.com/arhibot +[ignatov]: https://github.com/ignatov +[vhbit]: https://github.com/vhbit +[antono]: https://github.com/antono +[steplg]: https://github.com/steplg + +Also this version is marginally faster and fixes a number of small long-standing +bugs. + +Developer overview of the new language syntax is available in a [blog post about +recent beta release][beta]. + +[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/ + +P.S. New version is not yet available on a Yandex' CDN, so for now you have to +download [your own copy][d]. + +[d]: /soft/highlight/en/download/ + + +## Version 5.14 + +Fixed bugs in HTML/XML detection and relevance introduced in previous +refactoring. + +Also test.html now shows the second best result of language detection by +relevance. + + +## Version 5.13 + +Past weekend began with a couple of simple additions for existing languages but +ended up in a big code refactoring bringing along nice improvements for language +developers. + +### For users + +- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard. +- Description of HTML has got new tags from [HTML 5][]. +- CSS-styles have been unified to use consistent padding and also have lost + pop-outs with names of detected languages. +- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake и VHDL. + +This makes total number of languages supported by highlight.js to reach 35. + +Bug fixes: + +- Custom classes on `
` tags are not being overridden anymore
+- More correct highlighting of code blocks inside non-`
` containers:
+  highlighter now doesn't insist on replacing them with its own container and
+  just replaces the contents.
+- Small fixes in browser compatibility and heuristics.
+
+[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
+[html 5]: http://en.wikipedia.org/wiki/HTML5
+[ik]: http://kalnitsky.org.ua/
+
+### For developers
+
+The most significant change is the ability to include language submodes right
+under `contains` instead of defining explicit named submodes in the main array:
+
+    contains: [
+      'string',
+      'number',
+      {begin: '\\n', end: hljs.IMMEDIATE_RE}
+    ]
+
+This is useful for auxiliary modes needed only in one place to define parsing.
+Note that such modes often don't have `className` and hence won't generate a
+separate `` in the resulting markup. This is similar in effect to
+`noMarkup: true`. All existing languages have been refactored accordingly.
+
+Test file test.html has at last become a real test. Now it not only puts the
+detected language name under the code snippet but also tests if it matches the
+expected one. Test summary is displayed right above all language snippets.
+
+
+## CDN
+
+Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
+[Link up][l]!
+
+[yandex]: http://yandex.com/
+[l]: http://softwaremaniacs.org/soft/highlight/en/download/
+
+
+## Version 5.10 — "Paris".
+
+Though I'm on a vacation in Paris, I decided to release a new version with a
+couple of small fixes:
+
+- Tomas Vitvar discovered that TAB replacement doesn't always work when used
+  with custom markup in code
+- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
+
+
+## Version 5.9
+
+A long-awaited version is finally released.
+
+New languages:
+
+- Andrew Fedorov made a definition for Lua
+- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
+  Nginx config
+- [Vladimir Moskva][vm] made a definition for TeX
+
+[pl]: http://kung-fu-tzu.ru/
+[vm]: http://fulc.ru/
+
+Fixes for existing languages:
+
+- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
+  [YARD][] inline documentation
+- the definition of SQL has become more solid and now it shouldn't be overly
+  greedy when it comes to language detection
+
+[ls]: http://gnuu.org/
+[yard]: http://yardoc.org/
+
+The highlighter has become more usable as a library allowing to do highlighting
+from initialization code of JS frameworks and in ajax methods (see.
+readme.eng.txt).
+
+Also this version drops support for the [WordPress][wp] plugin. Everyone is
+welcome to [pick up its maintenance][p] if needed.
+
+[wp]: http://wordpress.org/
+[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
+
+
+## Version 5.8
+
+- Jan Berkel has contributed a definition for Scala. +1 to hotness!
+- All CSS-styles are rewritten to work only inside `
` tags to avoid
+  conflicts with host site styles.
+
+
+## Version 5.7.
+
+Fixed escaping of quotes in VBScript strings.
+
+
+## Version 5.5
+
+This version brings a small change: now .ini-files allow digits, underscores and
+square brackets in key names.
+
+
+## Version 5.4
+
+Fixed small but upsetting bug in the packer which caused incorrect highlighting
+of explicitly specified languages. Thanks to Andrew Fedorov for precise
+diagnostics!
+
+
+## Version 5.3
+
+The version to fulfil old promises.
+
+The most significant change is that highlight.js now preserves custom user
+markup in code along with its own highlighting markup. This means that now it's
+possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
+[initial proposal][1] and for making a proof-of-concept patch.
+
+Also in this version:
+
+- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
+  support for CSS @-rules and Ruby symbols.
+- Yura Zaripov has sent two styles: Brown Paper and School Book.
+- Oleg Volchkov has sent a definition for [Parser 3][p3].
+
+[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
+[p3]: http://www.parser.ru/
+[vp]: http://vasily.polovnyov.ru/
+[vd]: http://dolzhenko.blogspot.com/
+
+
+## Version 5.2
+
+- at last it's possible to replace indentation TABs with something sensible (e.g. 2 or 4 spaces)
+- new keywords and built-ins for 1C by Sergey Baranov
+- a couple of small fixes to Apache highlighting
+
+
+## Version 5.1
+
+This is one of those nice version consisting entirely of new and shiny
+contributions!
+
+- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
+- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
+  original visual style for it is now available for all highlight.js languages
+  under the name "Magula".
+- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
+  languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
+  the matter.
+
+[vooon]: http://vehq.ru/about/
+[rukeba]: http://rukeba.com/
+[drake]: http://drakeguan.org/
+[ke]: http://k-evdokimenko.moikrug.ru/
+
+
+## Version 5.0
+
+The main change in the new major version of highlight.js is a mechanism for
+packing several languages along with the library itself into a single compressed
+file. Now sites using several languages will load considerably faster because
+the library won't dynamically include additional files while loading.
+
+Also this version fixes a long-standing bug with Javascript highlighting that
+couldn't distinguish between regular expressions and division operations.
+
+And as usually there were a couple of minor correctness fixes.
+
+Great thanks to all contributors! Keep using highlight.js.
+
+
+## Version 4.3
+
+This version comes with two contributions from [Jason Diamond][jd]:
+
+- language definition for C# (yes! it was a long-missed thing!)
+- Visual Studio-like highlighting style
+
+Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
+
+[jd]: http://jason.diamond.name/weblog/
+
+
+## Version 4.2
+
+The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
+somewhat experimental meaning that for highlighting "keywords" it doesn't use
+any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
+in parentheses wherever it makes sense. I'd like to ask people programming in
+Lisp to confirm if it's a good idea and send feedback to [the forum][f].
+
+Other changes:
+
+- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
+- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
+  test.html
+- comments now allowed inside Ruby function definition
+- [MEL][] language from [Shuen-Huei Guan][drake]
+- whitespace now allowed between `
` and ``
+- better auto-detection of C++ and PHP
+- HTML allows embedded VBScript (`<% .. %>`)
+
+[f]: http://softwaremaniacs.org/forum/highlightjs/
+[voldmar]: http://voldmar.ya.ru/
+[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
+[drake]: http://drakeguan.org/
+
+
+## Version 4.1
+
+Languages:
+
+- Bash from Vah
+- DOS bat-files from Alexander Makarov (Sam)
+- Diff files from Vasily Polovnyov
+- Ini files from myself though initial idea was from Sam
+
+Styles:
+
+- Zenburn from Vladimir Epifanov, this is an imitation of a
+  [well-known theme for Vim][zenburn].
+- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
+  just one color in only three gradations :-)
+
+In other news. [One small bug][bug] was fixed, built-in keywords were added for
+Python and C++ which improved auto-detection for the latter (it was shame that
+[my wife's blog][alenacpp] had issues with it from time to time). And lastly
+thanks go to Sam for getting rid of my stylistic comments in code that were
+getting in the way of [JSMin][].
+
+[zenburn]: http://en.wikipedia.org/wiki/Zenburn
+[alenacpp]: http://alenacpp.blogspot.com/
+[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
+[jsmin]: http://code.google.com/p/jsmin-php/
+
+
+## Version 4.0
+
+New major version is a result of vast refactoring and of many contributions.
+
+Visible new features:
+
+- Highlighting of embedded languages. Currently is implemented highlighting of
+  Javascript and CSS inside HTML.
+- Bundled 5 ready-made style themes!
+
+Invisible new features:
+
+- Highlight.js no longer pollutes global namespace. Only one object and one
+  function for backward compatibility.
+- Performance is further increased by about 15%.
+
+Changing of a major version number caused by a new format of language definition
+files. If you use some third-party language files they should be updated.
+
+
+## Version 3.5
+
+A very nice version in my opinion fixing a number of small bugs and slightly
+increased speed in a couple of corner cases. Thanks to everybody who reports
+bugs in he [forum][f] and by email!
+
+There is also a new language — XML. A custom XML formerly was detected as HTML
+and didn't highlight custom tags. In this version I tried to make custom XML to
+be detected and highlighted by its own rules. Which by the way include such
+things as CDATA sections and processing instructions (``).
+
+[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
+
+
+## Version 3.3
+
+[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
+File export.html contains a little program that shows and allows to copy and
+paste an HTML code generated by the highlighter for any code snippet. This can
+be useful in situations when one can't use the script itself on a site.
+
+
+[xonix]: http://xonixx.blogspot.com/
+
+
+## Version 3.2 consists completely of contributions:
+
+- Vladimir Gubarkov has described SmallTalk
+- Yuri Ivanov has described 1C
+- Peter Leonov has packaged the highlighter as a Firefox extension
+- Vladimir Ermakov has compiled a mod for phpBB
+
+Many thanks to you all!
+
+
+## Version 3.1
+
+Three new languages are available: Django templates, SQL and Axapta. The latter
+two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
+SQL definition but I'd never started it be it from the ground up :-)
+
+The engine itself has got a long awaited feature of grouping keywords
+("keyword", "built-in function", "literal"). No more hacks!
+
+[1]: http://roudakov.ru/
+
+
+## Version 3.0
+
+It is major mainly because now highlight.js has grown large and has become
+modular. Now when you pass it a list of languages to highlight it will
+dynamically load into a browser only those languages.
+
+Also:
+
+- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
+  RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
+  languages!
+- Heuristics for C++ and HTML got better.
+- I've implemented (at last) a correct handling of backslash escapes in C-like
+  languages.
+
+There is also a small backwards incompatible change in the new version. The
+function initHighlighting that was used to initialize highlighting instead of
+initHighlightingOnLoad a long time ago no longer works. If you by chance still
+use it — replace it with the new one.
+
+[RibKit]: http://ribkit.sourceforge.net/
+
+
+## Version 2.9
+
+Highlight.js is a parser, not just a couple of regular expressions. That said
+I'm glad to announce that in the new version 2.9 has support for:
+
+- in-string substitutions for Ruby -- `#{...}`
+- strings from from numeric symbol codes (like #XX) for Delphi
+
+
+## Version 2.8
+
+A maintenance release with more tuned heuristics. Fully backwards compatible.
+
+
+## Version 2.7
+
+- Nikita Ledyaev presents highlighting for VBScript, yay!
+- A couple of bugs with escaping in strings were fixed thanks to Mickle
+- Ongoing tuning of heuristics
+
+Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
+
+
+## Version 2.4
+
+- Peter Leonov provides another improved highlighting for Perl
+- Javascript gets a new kind of keywords — "literals". These are the words
+  "true", "false" and "null"
+
+Also highlight.js homepage now lists sites that use the library. Feel free to
+add your site by [dropping me a message][mail] until I find the time to build a
+submit form.
+
+[mail]: mailto:Maniac@SoftwareManiacs.Org
+
+
+## Version 2.3
+
+This version fixes IE breakage in previous version. My apologies to all who have
+already downloaded that one!
+
+
+## Version 2.2
+
+- added highlighting for Javascript
+- at last fixed parsing of Delphi's escaped apostrophes in strings
+- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
+  Perl
+
+
+## Version 2.0
+
+- Ruby support by [Anton Kovalyov][ak]
+- speed increased by orders of magnitude due to new way of parsing
+- this same way allows now correct highlighting of keywords in some tricky
+  places (like keyword "End" at the end of Delphi classes)
+
+[ak]: http://anton.kovalyov.net/
+
+
+## Version 1.0
+
+Version 1.0 of javascript syntax highlighter is released!
+
+It's the first version available with English description. Feel free to post
+your comments and question to [highlight.js forum][forum]. And don't be afraid
+if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
+
+[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
new file mode 100644
index 00000000..422deb73
--- /dev/null
+++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of highlight.js nor the names of its contributors 
+      may be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
new file mode 100644
index 00000000..be85f6ad
--- /dev/null
+++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
@@ -0,0 +1,171 @@
+# Highlight.js
+
+Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах,
+форумах и вообще на любых веб-страницах. Пользоваться им очень просто,
+потому что работает он автоматически: сам находит блоки кода, сам
+определяет язык, сам подсвечивает.
+
+Автоопределением языка можно управлять, когда оно не справляется само (см.
+дальше "Эвристика").
+
+
+## Простое использование
+
+Подключите библиотеку и стиль на страницу и повесть вызов подсветки на
+загрузку страницы:
+
+```html
+
+
+
+```
+
+Весь код на странице, обрамлённый в теги `
 .. 
` +будет автоматически подсвечен. Если вы используете другие теги или хотите +подсвечивать блоки кода динамически, читайте "Инициализацию вручную" ниже. + +- Вы можете скачать собственную версию "highlight.pack.js" или сослаться + на захостенный файл, как описано на странице загрузки: + + +- Стилевые темы можно найти в загруженном архиве или также использовать + захостенные. Чтобы сделать собственный стиль для своего сайта, вам + будет полезен [CSS classes reference][cr], который тоже есть в архиве. + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html + + +## node.js + +Highlight.js можно использовать в node.js. Библиотеку со всеми возможными языками можно +установить с NPM: + + npm install highlight.js + +Также её можно собрать из исходников с только теми языками, которые нужны: + + python3 tools/build.py -tnode lang1 lang2 .. + +Использование библиотеки: + +```javascript +var hljs = require('highlight.js'); + +// Если вы знаете язык +hljs.highlight(lang, code).value; + +// Автоопределение языка +hljs.highlightAuto(code).value; +``` + + +## AMD + +Highlight.js можно использовать с загрузчиком AMD-модулей. Для этого его +нужно собрать из исходников следующей командой: + +```bash +$ python3 tools/build.py -tamd lang1 lang2 .. +``` + +Она создаст файл `build/highlight.pack.js`, который является загружаемым +AMD-модулем и содержит все выбранные при сборке языки. Используется он так: + +```javascript +require(["highlight.js/build/highlight.pack"], function(hljs){ + + // Если вы знаете язык + hljs.highlight(lang, code).value; + + // Автоопределение языка + hljs.highlightAuto(code).value; +}); +``` + + +## Замена TABов + +Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на +фиксированное количество пробелов или на отдельный ``, чтобы задать ему +какой-нибудь специальный стиль: + +```html + +``` + + +## Инициализация вручную + +Если вы используете другие теги для блоков кода, вы можете инициализировать их +явно с помощью функции `highlightBlock(code)`. Она принимает DOM-элемент с +текстом расцвечиваемого кода и опционально - строчку для замены символов TAB. + +Например с использованием jQuery код инициализации может выглядеть так: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); +}); +``` + +`highlightBlock` можно также использовать, чтобы подсветить блоки кода, +добавленные на страницу динамически. Только убедитесь, что вы не делаете этого +повторно для уже раскрашенных блоков. + +Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не +`
`), включите опцию `useBR`:
+
+```javascript
+hljs.configure({useBR: true});
+$('div.code').each(function(i, e) {hljs.highlightBlock(e)});
+```
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу ``:
+
+```html
+
...
+``` + +Можно использовать рекомендованные в HTML5 названия классов: +"language-html", "language-php". Также можно назначать классы на элемент +`
`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+```html
+
...
+``` + + +## Экспорт + +В файле export.html находится небольшая программка, которая показывает и дает +скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода. +Это может понадобится например на сайте, на котором нельзя подключить сам скрипт +highlight.js. + + +## Координаты + +- Версия: 8.0 +- URL: http://highlightjs.org/ + +Лицензионное соглашение читайте в файле LICENSE. +Список авторов и соавторов читайте в файле AUTHORS.ru.txt diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js new file mode 100644 index 00000000..627f79e2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js @@ -0,0 +1 @@ +var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBLCLM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,i:/[:"<>]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{k:d,l:c,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css new file mode 100644 index 00000000..c2a55bbe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css @@ -0,0 +1,160 @@ +/* +Date: 17.V.2011 +Author: pumbur +*/ + +.hljs +{ + display: block; padding: 0.5em; + background: #222; +} + +.profile .hljs-header *, +.ini .hljs-title, +.nginx .hljs-title +{ + color: #fff; +} + +.hljs-comment, +.hljs-javadoc, +.hljs-preprocessor, +.hljs-preprocessor .hljs-title, +.hljs-pragma, +.hljs-shebang, +.profile .hljs-summary, +.diff, +.hljs-pi, +.hljs-doctype, +.hljs-tag, +.hljs-template_comment, +.css .hljs-rules, +.tex .hljs-special +{ + color: #444; +} + +.hljs-string, +.hljs-symbol, +.diff .hljs-change, +.hljs-regexp, +.xml .hljs-attribute, +.smalltalk .hljs-char, +.xml .hljs-value, +.ini .hljs-value, +.clojure .hljs-attribute, +.coffeescript .hljs-attribute +{ + color: #ffcc33; +} + +.hljs-number, +.hljs-addition +{ + color: #00cc66; +} + +.hljs-built_in, +.hljs-literal, +.vhdl .hljs-typename, +.go .hljs-constant, +.go .hljs-typename, +.ini .hljs-keyword, +.lua .hljs-title, +.perl .hljs-variable, +.php .hljs-variable, +.mel .hljs-variable, +.django .hljs-variable, +.css .funtion, +.smalltalk .method, +.hljs-hexcolor, +.hljs-important, +.hljs-flow, +.hljs-inheritance, +.parser3 .hljs-variable +{ + color: #32AAEE; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.css .hljs-tag, +.css .hljs-class, +.css .hljs-id, +.css .hljs-pseudo, +.css .hljs-attr_selector, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-winutils, +.tex .hljs-command, +.hljs-request, +.hljs-status +{ + color: #6644aa; +} + +.hljs-title, +.ruby .hljs-constant, +.vala .hljs-constant, +.hljs-parent, +.hljs-deletion, +.hljs-template_tag, +.css .hljs-keyword, +.objectivec .hljs-class .hljs-id, +.smalltalk .hljs-class, +.lisp .hljs-keyword, +.apache .hljs-tag, +.nginx .hljs-variable, +.hljs-envvar, +.bash .hljs-variable, +.go .hljs-built_in, +.vbscript .hljs-built_in, +.lua .hljs-built_in, +.rsl .hljs-built_in, +.tail, +.avrasm .hljs-label, +.tex .hljs-formula, +.tex .hljs-formula * +{ + color: #bb1166; +} + +.hljs-yardoctag, +.hljs-phpdoc, +.profile .hljs-header, +.ini .hljs-title, +.apache .hljs-tag, +.parser3 .hljs-title +{ + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata +{ + opacity: 0.6; +} + +.hljs, +.javascript, +.css, +.xml, +.hljs-subst, +.diff .hljs-chunk, +.css .hljs-value, +.css .hljs-attribute, +.lisp .hljs-string, +.lisp .hljs-number, +.tail .hljs-params, +.hljs-container, +.haskell *, +.erlang *, +.erlang_repl * +{ + color: #aaa; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css new file mode 100644 index 00000000..89c5fe2f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css @@ -0,0 +1,50 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-filter .hljs-argument, +.hljs-addition, +.hljs-change, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #888; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-shebang, +.hljs-doctype, +.hljs-pi, +.hljs-javadoc, +.hljs-deletion, +.apache .hljs-sqbracket { + color: #CCC; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.ini .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.http .hljs-title, +.nginx .hljs-title, +.css .hljs-tag, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css new file mode 100644 index 00000000..4cfc77ca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Dark Comment */ +.hljs-comment, +.hljs-title { + color: #999580; +} + +/* Atelier Dune Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Dark Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Dark Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #292824; + color: #a6a28c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css new file mode 100644 index 00000000..3501bf82 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Light Comment */ +.hljs-comment, +.hljs-title { + color: #7d7a68; +} + +/* Atelier Dune Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Light Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #fefbec; + color: #6e6b5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css new file mode 100644 index 00000000..9c26b7be --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9c9491; +} + +/* Atelier Forest Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Dark Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #2c2421; + color: #a8a19f; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css new file mode 100644 index 00000000..3de3dadb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Light Comment */ +.hljs-comment, +.hljs-title { + color: #766e6b; +} + +/* Atelier Forest Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Light Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #f1efee; + color: #68615e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css new file mode 100644 index 00000000..df1446c1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9e8f9e; +} + +/* Atelier Heath Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Dark Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #292329; + color: #ab9bab; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css new file mode 100644 index 00000000..a737a082 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Light Comment */ +.hljs-comment, +.hljs-title { + color: #776977; +} + +/* Atelier Heath Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Light Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #f7f3f7; + color: #695d69; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css new file mode 100644 index 00000000..43c5b4ea --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #7195a8; +} + +/* Atelier Lakeside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Dark Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #1f292e; + color: #7ea2b4; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css new file mode 100644 index 00000000..5a782694 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Light Comment */ +.hljs-comment, +.hljs-title { + color: #5a7b8c; +} + +/* Atelier Lakeside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Light Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #ebf8ff; + color: #516d7b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css new file mode 100644 index 00000000..3bea9b36 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #809980; +} + +/* Atelier Seaside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Dark Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #242924; + color: #8ca68c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css new file mode 100644 index 00000000..e86c44d6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Light Comment */ +.hljs-comment, +.hljs-title { + color: #687d68; +} + +/* Atelier Seaside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Light Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #f0fff0; + color: #5e6e5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css new file mode 100644 index 00000000..0838fb8f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css @@ -0,0 +1,105 @@ +/* + +Brown Paper style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 0.5em; + background:#b7a68e url(./brown_papersq.png); +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-request, +.hljs-status { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #363C69; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-number { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #802022; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.8; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png new file mode 100644 index 00000000..3813903d Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css new file mode 100644 index 00000000..b9426c37 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css @@ -0,0 +1,105 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #444; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: white; +} + +.hljs, +.hljs-subst { + color: #DDD; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.ini .hljs-title, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.coffeescript .hljs-attribute { + color: #D88; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #777; +} + +.hljs-keyword, +.hljs-literal, +.hljs-title, +.css .hljs-id, +.hljs-phpdoc, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css new file mode 100644 index 00000000..ae9af353 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css @@ -0,0 +1,153 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #F0F0F0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88F +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css new file mode 100644 index 00000000..5026d6cf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css @@ -0,0 +1,132 @@ +/* +Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #f8f8ff +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #408080; + font-style: italic +} + +.hljs-keyword, +.assignment, +.hljs-literal, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + color: #954121; +} + +.hljs-number, +.hljs-hexcolor { + color: #40a070 +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #219161; +} + +.hljs-title, +.hljs-id { + color: #19469D; +} +.hljs-params { + color: #00F; +} + +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-label, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.instancevar, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #B68 +} + +.hljs-class { + color: #458; + font-weight: bold +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-keyword, +.ruby .hljs-symbol .keymethods, +.lisp .hljs-keyword, +.tex .hljs-special, +.input_number { + color: #990073 +} + +.builtin, +.constructor, +.hljs-built_in, +.lisp .hljs-title { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} + +.tex .hljs-formula { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css new file mode 100644 index 00000000..be505362 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css @@ -0,0 +1,113 @@ +/* + +FAR Style (c) MajestiC + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000080; +} + +.hljs, +.hljs-subst { + color: #0FF; +} + +.hljs-string, +.ruby .hljs-string, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.css .hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.clojure .hljs-title, +.coffeescript .hljs-attribute { + color: #FF0; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.hljs-winutils, +.hljs-flow, +.hljs-change, +.hljs-envvar, +.bash .hljs-variable, +.tex .hljs-special, +.clojure .hljs-built_in { + color: #FFF; +} + +.hljs-comment, +.hljs-phpdoc, +.hljs-javadoc, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-deletion, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.clojure .hljs-attribute { + color: #0F0; +} + +.python .hljs-decorator, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.xml .hljs-pi, +.diff .hljs-header, +.hljs-chunk, +.hljs-shebang, +.nginx .hljs-built_in, +.hljs-prompt { + color: #008080; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css new file mode 100644 index 00000000..0710a10f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css @@ -0,0 +1,133 @@ +/* +Description: Foundation 4 docs style for highlight.js +Author: Dan Allen +Website: http://foundation.zurb.com/docs/ +Version: 1.0 +Date: 2013-04-02 +*/ + +.hljs { + display: block; padding: 0.5em; + background: #eee; +} + +.hljs-header, +.hljs-decorator, +.hljs-annotation { + color: #000077; +} + +.hljs-horizontal_rule, +.hljs-link_url, +.hljs-emphasis, +.hljs-attribute { + color: #070; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-link_label, +.hljs-strong, +.hljs-value, +.hljs-string, +.scss .hljs-value .hljs-string { + color: #d14; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-blockquote, +.hljs-comment { + color: #998; + font-style: italic; +} + +.asciidoc .hljs-title, +.hljs-function .hljs-title { + color: #900; +} + +.hljs-class { + color: #458; +} + +.hljs-id, +.hljs-pseudo, +.hljs-constant, +.hljs-hexcolor { + color: teal; +} + +.hljs-variable { + color: #336699; +} + +.hljs-bullet, +.hljs-javadoc { + color: #997700; +} + +.hljs-pi, +.hljs-doctype { + color: #3344bb; +} + +.hljs-code, +.hljs-number { + color: #099; +} + +.hljs-important { + color: #f00; +} + +.smartquote, +.hljs-label { + color: #970; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #579; +} + +.hljs-reserved, +.hljs-keyword, +.scss .hljs-value { + color: #000; +} + +.hljs-regexp { + background-color: #fff0ff; + color: #880088; +} + +.hljs-symbol { + color: #990073; +} + +.hljs-symbol .hljs-string { + color: #a60; +} + +.hljs-tag { + color: #007700; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #088; +} + +.hljs-at_rule .hljs-preprocessor { + color: #808; +} + +.scss .hljs-tag, +.scss .hljs-attribute { + color: #339; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css new file mode 100644 index 00000000..5517086b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css @@ -0,0 +1,125 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #333; + background: #f8f8f8 +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14 +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #009926 +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073 +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css new file mode 100644 index 00000000..5cc49b68 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css @@ -0,0 +1,147 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #800; +} + +.hljs-keyword, +.method, +.hljs-list .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp, +.coffeescript .hljs-attribute { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-literal, +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-attribute { + color: #066; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.hljs-variable, +.clojure .hljs-title { + color: #606; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #444; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css new file mode 100644 index 00000000..3e810c5f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css @@ -0,0 +1,122 @@ +/* + +Intellij Idea-like styling (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.diff .hljs-header { + color: #808080; + font-style: italic; +} + +.hljs-annotation, +.hljs-decorator, +.hljs-preprocessor, +.hljs-pragma, +.hljs-doctype, +.hljs-pi, +.hljs-chunk, +.hljs-shebang, +.apache .hljs-cbracket, +.hljs-prompt, +.http .hljs-title { + color: #808000; +} + +.hljs-tag, +.hljs-pi { + background: #efefef; +} + +.hljs-tag .hljs-title, +.hljs-id, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-literal, +.hljs-keyword, +.hljs-hexcolor, +.css .hljs-function, +.ini .hljs-title, +.css .hljs-class, +.hljs-list .hljs-title, +.clojure .hljs-title, +.nginx .hljs-title, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-rules .hljs-keyword, +.hljs-number, +.hljs-date, +.hljs-regexp, +.tex .hljs-special { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp { + font-weight: normal; +} + +.hljs-string, +.hljs-value, +.hljs-filter .hljs-argument, +.css .hljs-function .hljs-params, +.apache .hljs-tag { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-char, +.tex .hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-phpdoc, +.hljs-yardoctag, +.hljs-javadoctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-envvar, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.diff .hljs-change { + background: #bccff9; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css new file mode 100644 index 00000000..66f7c193 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css @@ -0,0 +1,105 @@ +/* + IR_Black style (c) Vasily Mikhailitchenko +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-shebang, +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #7c7c7c; +} + +.hljs-keyword, +.hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #96CBFE; +} + +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title, +.nginx .hljs-title { + color: #FFFFB6; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.coffeescript .hljs-attribute { + color: #A8FF60; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-decorator, +.tex .hljs-special, +.haskell .hljs-type, +.hljs-constant, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.nginx .hljs-built_in { + color: #FFFFB6; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.hljs-variable, +.vbscript, +.hljs-literal { + color: #C6C5FE; +} + +.css .hljs-tag { + color: #96CBFE; +} + +.css .hljs-rules .hljs-property, +.css .hljs-id { + color: #FFFFB6; +} + +.css .hljs-class { + color: #FFF; +} + +.hljs-hexcolor { + color: #C6C5FE; +} + +.hljs-number { + color:#FF73FD; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css new file mode 100644 index 00000000..bc69a377 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css @@ -0,0 +1,122 @@ +/* +Description: Magula style for highligh.js +Author: Ruslan Keba +Website: http://rukeba.com/ +Version: 1.0 +Date: 2009-01-03 +Music: Aphex Twin / Xtal +*/ + +.hljs { + display: block; padding: 0.5em; + background-color: #f4f4f4; +} + +.hljs, +.hljs-subst, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-cbracket, +.coffeescript .hljs-attribute { + color: #050; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk { + color: #777; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.hljs-change, +.tex .hljs-special { + color: #800; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.hljs-prompt, +.clojure .hljs-attribute { + color: #00e; +} + +.hljs-keyword, +.hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.xml .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: navy; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +/* --- */ +.apache .hljs-tag { + font-weight: bold; + color: blue; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css new file mode 100644 index 00000000..bfe2495b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css @@ -0,0 +1,62 @@ +/* + Five-color theme from a single blue hue. +*/ +.hljs { + display: block; padding: 0.5em; + background: #EAEEF3; color: #00193A; +} + +.hljs-keyword, +.hljs-title, +.hljs-important, +.hljs-request, +.hljs-header, +.hljs-javadoctag { + font-weight: bold; +} + +.hljs-comment, +.hljs-chunk, +.hljs-template_comment { + color: #738191; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-built_in, +.hljs-literal, +.hljs-filename, +.hljs-value, +.hljs-addition, +.hljs-tag, +.hljs-argument, +.hljs-link_label, +.hljs-blockquote, +.hljs-header { + color: #0048AB; +} + +.hljs-decorator, +.hljs-prompt, +.hljs-yardoctag, +.hljs-subst, +.hljs-symbol, +.hljs-doctype, +.hljs-regexp, +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-attribute, +.hljs-attr_selector, +.hljs-javadoc, +.hljs-xmlDocTag, +.hljs-deletion, +.hljs-shebang, +.hljs-string .hljs-variable, +.hljs-link_url, +.hljs-bullet, +.hljs-sqbracket, +.hljs-phony { + color: #4C81C9; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css new file mode 100644 index 00000000..34cd4f9e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css @@ -0,0 +1,127 @@ +/* +Monokai style - ported by Luigi Maselli - http://grigio.org +*/ + +.hljs { + display: block; padding: 0.5em; + background: #272822; +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-keyword, +.hljs-literal, +.hljs-strong, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: #F92672; +} + +.hljs { + color: #DDD; +} + +.hljs .hljs-constant, +.asciidoc .hljs-code { + color: #66D9EF; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-link_label, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-value, +.hljs-regexp { + color: #BF79DB; +} + +.hljs-link_url, +.hljs-tag .hljs-value, +.hljs-string, +.hljs-bullet, +.hljs-subst, +.hljs-title, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #A6E22E; +} + +.hljs-comment, +.java .hljs-annotation, +.smartquote, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715E; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css new file mode 100644 index 00000000..2d216333 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css @@ -0,0 +1,149 @@ +/* + +Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #23241f; +} + +.hljs, +.hljs-tag, +.css .hljs-rules, +.css .hljs-value, +.css .hljs-function +.hljs-preprocessor, +.hljs-pragma { + color: #f8f8f2; +} + +.hljs-strongemphasis, +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-blockquote, +.hljs-horizontal_rule, +.hljs-number, +.hljs-regexp, +.alias .hljs-keyword, +.hljs-literal, +.hljs-hexcolor { + color: #ae81ff; +} + +.hljs-tag .hljs-value, +.hljs-code, +.hljs-title, +.css .hljs-class, +.hljs-class .hljs-title:last-child { + color: #a6e22e; +} + +.hljs-link_url { + font-size: 80%; +} + +.hljs-strong, +.hljs-strongemphasis { + font-weight: bold; +} + +.hljs-emphasis, +.hljs-strongemphasis, +.hljs-class .hljs-title:last-child { + font-style: italic; +} + +.hljs-keyword, +.hljs-function, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-header, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-tag .hljs-title, +.hljs-value, +.alias .hljs-keyword:first-child, +.css .hljs-tag, +.css .unit, +.css .hljs-important { + color: #F92672; +} + +.hljs-function .hljs-keyword, +.hljs-class .hljs-keyword:first-child, +.hljs-constant, +.css .hljs-attribute { + color: #66d9ef; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #f8f8f2; +} + +.hljs-string, +.css .hljs-id, +.hljs-subst, +.haskell .hljs-type, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.hljs-link_label, +.hljs-link_url { + color: #e6db74; +} + +.hljs-comment, +.hljs-javadoc, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715e; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata, +.xml .php, +.php .xml { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css new file mode 100644 index 00000000..68259fc8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css @@ -0,0 +1,154 @@ +/** + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +.hljs { + display: block; padding: 0.5em; + background: #282B2E; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.css .hljs-id, +.tex .hljs-special { + color: #93C763; +} + +.hljs-number { + color: #FFCD22; +} + +.hljs { + color: #E0E2E4; +} + +.css .hljs-tag, +.css .hljs-pseudo { + color: #D0D2B5; +} + +.hljs-attribute, +.hljs .hljs-constant { + color: #668BB0; +} + +.xml .hljs-attribute { + color: #B3B689; +} + +.xml .hljs-tag .hljs-value { + color: #E8E2B7; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-class, +.hljs-hexcolor { + color: #93C763; +} + +.hljs-regexp { + color: #D39745; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #A082BD; +} + +.hljs-doctype { + color: #557182; +} + +.hljs-link_url, +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #8CBBAD; +} + +.hljs-string { + color: #EC7600; +} + +.hljs-comment, +.java .hljs-annotation, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #818E96; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-at_rule .hljs-keyword, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css new file mode 100644 index 00000000..55d02f1d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css @@ -0,0 +1,93 @@ +/* + Paraíso (dark) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #8d8687; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #2f1e2e; + color: #a39e9b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css new file mode 100644 index 00000000..d29ee1b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css @@ -0,0 +1,93 @@ +/* + Paraíso (light) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #776e71; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #e7e9db; + color: #4f424c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css new file mode 100644 index 00000000..86307929 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css @@ -0,0 +1,106 @@ +/* + +Pojoaque Style by Jason Tate +http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +Based on Solarized Style from http://ethanschoonover.com/solarized + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #DCCF8F; + background: url(./pojoaque.jpg) repeat scroll left top #181914; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; + font-style: italic; +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.method, +.hljs-addition, +.css .hljs-tag, +.clojure .hljs-title, +.nginx .hljs-title { + color: #B64926; +} + +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #468966; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-identifier, +.hljs-id { + color: #FFB03B; +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type { + color: #b58900; +} + +.css .hljs-attribute { + color: #b89859; +} + +.css .hljs-number, +.css .hljs-hexcolor { + color: #DCCF8F; +} + +.css .hljs-class { + color: #d3a60c; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #cb4b16; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg new file mode 100644 index 00000000..9c07d4ab Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css new file mode 100644 index 00000000..83d0cde5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css @@ -0,0 +1,182 @@ +/* + +Railscasts-like style (c) Visoft, Inc. (Damien White) + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #232323; + color: #E6E1DC; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-shebang { + color: #BC9458; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.method, +.hljs-list .hljs-title { + color: #C26230; +} + +.hljs-string, +.hljs-number, +.hljs-regexp, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.markdown .hljs-link_label { + color: #A5C261; +} + +.hljs-subst { + color: #519F50; +} + +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-tag .hljs-title, +.hljs-doctype, +.hljs-sub .hljs-identifier, +.hljs-pi, +.input_number { + color: #E8BF6A; +} + +.hljs-identifier { + color: #D0D0FF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: none; +} + +.hljs-constant { + color: #DA4939; +} + + +.hljs-symbol, +.hljs-built_in, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-identifier, +.markdown .hljs-link_url, +.hljs-attribute { + color: #6D9CBE; +} + +.markdown .hljs-link_url { + text-decoration: underline; +} + + + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #D0D0FF; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #8996A8 !important; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #A5C261; +} + +.hljs-title, +.hljs-decorator, +.css .hljs-function { + color: #FFC66D; +} + +.diff .hljs-header, +.hljs-chunk { + background-color: #2F33AB; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; + display: inline-block; + width: 100%; +} + +.hljs-addition { + background-color: #144212; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css new file mode 100644 index 00000000..08142466 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css @@ -0,0 +1,112 @@ +/* + +Style with support for rainbow parens + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #474949; color: #D1D9E1; +} + + +.hljs-body, +.hljs-collection { + color: #D1D9E1; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #969896; + font-style: italic; +} + +.hljs-keyword, +.clojure .hljs-attribute, +.hljs-winutils, +.javascript .hljs-title, +.hljs-addition, +.css .hljs-tag { + color: #cc99cc; +} + +.hljs-number { color: #f99157; } + +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #8abeb7; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.hljs-identifier +{ + color: #b5bd68; +} + +.hljs-class .hljs-keyword +{ + color: #f2777a; +} + +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-label, +.hljs-id, +.lisp .hljs-title, +.clojure .hljs-title .hljs-built_in { + color: #ffcc66; +} + +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword, +.clojure .hljs-title .hljs-built_in { + font-weight: bold; +} + +.hljs-attribute, +.clojure .hljs-title { + color: #81a2be; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #f99157; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css new file mode 100644 index 00000000..a36e8362 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css @@ -0,0 +1,113 @@ +/* + +School Book style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 15px 0.5em 0.5em 30px; + font-size: 11px !important; + line-height:16px !important; +} + +pre{ + background:#f6f6ae url(./school_book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #3E5915; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket { + color: #E60415; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png new file mode 100644 index 00000000..956e9790 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css new file mode 100644 index 00000000..970d5f81 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #002b36; + color: #839496; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css new file mode 100644 index 00000000..8e1f4365 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #93a1a1; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css new file mode 100644 index 00000000..8816520c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css @@ -0,0 +1,160 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #E28964; +} + +.hljs-function .hljs-keyword, +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title { + color: #99CF50; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #65B042; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.hljs-shebang, +.hljs-prompt { + color: #89BDFF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: underline; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number { + color: #3387CC; +} + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #3E87E3; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #8996A8; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #DD7B3B; +} + +.css .hljs-function { + color: #DAD085; +} + +.diff .hljs-header, +.hljs-chunk, +.tex .hljs-formula { + background-color: #0E2231; + color: #F8F8F8; + font-style: italic; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; +} + +.hljs-addition { + background-color: #253B22; + color: #F8F8F8; +} + +.hljs-deletion { + background-color: #420E09; + color: #F8F8F8; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css new file mode 100644 index 00000000..e63ab3de --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Blue Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #7285b7; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ff9da4; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #ffc58f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffeead; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #d1f1a9; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #99ffff; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #bbdaff; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ebbbff; +} + +.hljs { + display: block; + background: #002451; + color: white; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css new file mode 100644 index 00000000..3bbf367d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Bright Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d54e53; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #e78c45; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #e7c547; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b9ca4a; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #70c0b1; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #7aa6da; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #c397d8; +} + +.hljs { + display: block; + background: black; + color: #eaeaea; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css new file mode 100644 index 00000000..b8de0dbf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Eighties Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #999999; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f2777a; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99157; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffcc66; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #99cc99; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #66cccc; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6699cc; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #cc99cc; +} + +.hljs { + display: block; + background: #2d2d2d; + color: #cccccc; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css new file mode 100644 index 00000000..54ceb585 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css new file mode 100644 index 00000000..a81a2e85 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css @@ -0,0 +1,90 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #8e908c; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #c82829; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f5871f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #eab700; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #718c00; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #3e999f; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #4271ae; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #8959a8; +} + +.hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css new file mode 100644 index 00000000..5ebf4541 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css @@ -0,0 +1,89 @@ +/* + +Visual Studio-like style based on original C# coloring by Jason Diamond + +*/ +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.apache .hljs-cbracket { + color: #008000; +} + +.hljs-keyword, +.hljs-id, +.hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.xml .hljs-tag, +.xml .hljs-tag .hljs-value { + color: #00f; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.apache .hljs-tag, +.hljs-date, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #a31515; +} + +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.hljs-preprocessor, +.hljs-pragma, +.userType, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-special, +.hljs-prompt { + color: #2b91af; +} + +.hljs-phpdoc, +.hljs-javadoc, +.hljs-xmlDocTag { + color: #808080; +} + +.vhdl .hljs-typename { font-weight: bold; } +.vhdl .hljs-string { color: #666666; } +.vhdl .hljs-literal { color: #a31515; } +.vhdl .hljs-attribute { color: #00B0E8; } + +.xml .hljs-attribute { color: #f00; } diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css new file mode 100644 index 00000000..8d54da72 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css @@ -0,0 +1,158 @@ +/* + +XCode style (c) Angel Garcia + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #fff; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #006a00; +} + +.hljs-keyword, +.hljs-literal, +.nginx .hljs-title { + color: #aa0d91; +} +.method, +.hljs-list .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string { + color: #c41a16; +} +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-title, +.clojure .hljs-built_in, +.hljs-function .hljs-title, +.coffeescript .hljs-attribute { + color: #1c00cf; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.clojure .hljs-attribute { + color: #5c2699; +} + +.hljs-variable { + color: #3f6e74; +} +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #643820; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} + +.method .hljs-id { + color: #000; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css new file mode 100644 index 00000000..3e6a6871 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css @@ -0,0 +1,116 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #3F3F3F; + color: #DCDCDC; +} + +.hljs-keyword, +.hljs-tag, +.css .hljs-class, +.css .hljs-id, +.lisp .hljs-title, +.nginx .hljs-title, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #E3CEAB; +} + +.django .hljs-template_tag, +.django .hljs-variable, +.django .hljs-filter .hljs-argument { + color: #DCDCDC; +} + +.hljs-number, +.hljs-date { + color: #8CD0D3; +} + +.dos .hljs-envvar, +.dos .hljs-stream, +.hljs-variable, +.apache .hljs-sqbracket { + color: #EFDCBC; +} + +.dos .hljs-flow, +.diff .hljs-change, +.python .exception, +.python .hljs-built_in, +.hljs-literal, +.tex .hljs-special { + color: #EFEFAF; +} + +.diff .hljs-chunk, +.hljs-subst { + color: #8F8F8F; +} + +.dos .hljs-keyword, +.python .hljs-decorator, +.hljs-title, +.haskell .hljs-type, +.diff .hljs-header, +.ruby .hljs-class .hljs-parent, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.hljs-prompt { + color: #efef8f; +} + +.dos .hljs-winutils, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-string { + color: #DCA3A3; +} + +.diff .hljs-deletion, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.sql .hljs-aggregate, +.hljs-javadoc, +.smalltalk .hljs-class, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.css .hljs-rules .hljs-value, +.hljs-attr_selector, +.hljs-pseudo, +.apache .hljs-cbracket, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #CC9393; +} + +.hljs-shebang, +.diff .hljs-addition, +.hljs-comment, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype { + color: #7F9F7F; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/plugin.js new file mode 100644 index 00000000..7301255b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/codesnippet/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){CKEDITOR.tools.extend(this,a);this.queue=[];this.init?this.init(CKEDITOR.tools.bind(function(){for(var a;a=this.queue.pop();)a.call(this);this.ready=!0},this)):this.ready=!0}function l(a){var b=a.config.codeSnippet_codeClass,c=/\r?\n/g,h=new CKEDITOR.dom.element("textarea");a.widgets.add("codeSnippet",{allowedContent:"pre; code(language-*)",requiredContent:"pre",styleableElements:"pre",template:'
',dialog:"codeSnippet",pathName:a.lang.codesnippet.pathName, +mask:!0,parts:{pre:"pre",code:"code"},highlight:function(){var e=this,f=this.data,b=function(a){e.parts.code.setHtml(k?a:a.replace(c,"
"))};b(CKEDITOR.tools.htmlEncode(f.code));a._.codesnippet.highlighter.highlight(f.code,f.lang,function(e){a.fire("lockSnapshot");b(e);a.fire("unlockSnapshot")})},data:function(){var a=this.data,b=this.oldData;a.code&&this.parts.code.setHtml(CKEDITOR.tools.htmlEncode(a.code));b&&a.lang!=b.lang&&this.parts.code.removeClass("language-"+b.lang);a.lang&&(this.parts.code.addClass("language-"+ +a.lang),this.highlight());this.oldData=CKEDITOR.tools.copy(a)},upcast:function(e,f){if("pre"==e.name){for(var c=[],d=e.children,i,j=d.length-1;0<=j;j--)i=d[j],(i.type!=CKEDITOR.NODE_TEXT||!i.value.match(m))&&c.push(i);var g;if(!(1!=c.length||"code"!=(g=c[0]).name))if(!(1!=g.children.length||g.children[0].type!=CKEDITOR.NODE_TEXT)){if(c=a._.codesnippet.langsRegex.exec(g.attributes["class"]))f.lang=c[1];h.setHtml(g.getHtml());f.code=h.getValue();g.addClass(b);return e}}},downcast:function(a){var c= +a.getFirst("code");c.children.length=0;c.removeClass(b);c.add(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.code)));return a}});var m=/^[\s\n\r]*$/}var k=!CKEDITOR.env.ie||8
',f.auto,'
');for(d=0;d");var e=i[d].split("/"),l=e[0],n=e[1]||l;e[1]||(l="#"+l.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));e=c.lang.colorbutton.colors[n]||n;h.push('')}k&&h.push('");h.push("
',f.more,"
");return h.join("")}function p(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var j=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(o("TextColor","fore",f.textColorTitle,10),o("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF"; +CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}}; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js new file mode 100644 index 00000000..d91dcc65 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("colordialog",function(t){function n(){f.getById(o).removeStyle("background-color");p.getContentElement("picker","selectedColor").setValue("");j&&j.removeAttribute("aria-selected");j=null}function u(a){var a=a.data.getTarget(),b;if("td"==a.getName()&&(b=a.getChild(0).getHtml()))j=a,j.setAttribute("aria-selected",!0),p.getContentElement("picker","selectedColor").setValue(b)}function y(a){for(var a=a.replace(/^#/,""),b=0,c=[];2>=b;b++)c[b]=parseInt(a.substr(2*b,2),16);return"#"+ +(165<=0.2126*c[0]+0.7152*c[1]+0.0722*c[2]?"000":"fff")}function v(a){!a.name&&(a=new CKEDITOR.event(a));var b=!/mouse/.test(a.name),c=a.data.getTarget(),e;if("td"==c.getName()&&(e=c.getChild(0).getHtml()))q(a),b?g=c:w=c,b&&(c.setStyle("border-color",y(e)),c.setStyle("border-style","dotted")),f.getById(k).setStyle("background-color",e),f.getById(l).setHtml(e)}function q(a){if(a=!/mouse/.test(a.name)&&g){var b=a.getChild(0).getHtml();a.setStyle("border-color",b);a.setStyle("border-style","solid")}!g&& +!w&&(f.getById(k).removeStyle("background-color"),f.getById(l).setHtml(" "))}function z(a){var b=a.data,c=b.getTarget(),e=b.getKeystroke(),d="rtl"==t.lang.dir;switch(e){case 38:if(a=c.getParent().getPrevious())a=a.getChild([c.getIndex()]),a.focus();b.preventDefault();break;case 40:if(a=c.getParent().getNext())(a=a.getChild([c.getIndex()]))&&1==a.type&&a.focus();b.preventDefault();break;case 32:case 13:u(a);b.preventDefault();break;case d?37:39:if(a=c.getNext())1==a.type&&(a.focus(),b.preventDefault(!0)); +else if(a=c.getParent().getNext())if((a=a.getChild([0]))&&1==a.type)a.focus(),b.preventDefault(!0);break;case d?39:37:if(a=c.getPrevious())a.focus(),b.preventDefault(!0);else if(a=c.getParent().getPrevious())a=a.getLast(),a.focus(),b.preventDefault(!0)}}var r=CKEDITOR.dom.element,f=CKEDITOR.document,h=t.lang.colordialog,p,x={type:"html",html:" "},j,g,w,m=function(a){return CKEDITOR.tools.getNextId()+"_"+a},k=m("hicolor"),l=m("hicolortext"),o=m("selhicolor"),i;(function(){function a(a,d){for(var s= +a;sg;g++)b(e.$,"#"+c[f]+c[g]+c[s])}}function b(a,c){var b=new r(a.insertCell(-1));b.setAttribute("class","ColorCell");b.setAttribute("tabIndex",-1);b.setAttribute("role","gridcell");b.on("keydown",z);b.on("click",u);b.on("focus",v);b.on("blur",q);b.setStyle("background-color",c);b.setStyle("border","1px solid "+c);b.setStyle("width","14px");b.setStyle("height","14px");var d=m("color_table_cell"); +b.setAttribute("aria-labelledby",d);b.append(CKEDITOR.dom.element.createFromHtml(''+c+"",CKEDITOR.document))}i=CKEDITOR.dom.element.createFromHtml('
'+h.options+'
');i.on("mouseover",v);i.on("mouseout",q);var c="00 33 66 99 cc ff".split(" ");a(0,0);a(3,0);a(0, +3);a(3,3);var e=new r(i.$.insertRow(-1));e.setAttribute("role","row");for(var d=0;6>d;d++)b(e.$,"#"+c[d]+c[d]+c[d]);for(d=0;12>d;d++)b(e.$,"#000000")})();return{title:h.title,minWidth:360,minHeight:220,onLoad:function(){p=this},onHide:function(){n();var a=g.getChild(0).getHtml();g.setStyle("border-color",a);g.setStyle("border-style","solid");f.getById(k).removeStyle("background-color");f.getById(l).setHtml(" ");g=null},contents:[{id:"picker",label:h.title,accessKey:"I",elements:[{type:"hbox", +padding:0,widths:["70%","10%","30%"],children:[{type:"html",html:"
",onLoad:function(){CKEDITOR.document.getById(this.domId).append(i)},focus:function(){(g||this.getElement().getElementsByTag("td").getItem(0)).focus()}},x,{type:"vbox",padding:0,widths:["70%","5%","25%"],children:[{type:"html",html:""+h.highlight+'\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t
 
'+h.selected+ +'\t\t\t\t\t\t\t\t\t\t\t\t
'},{type:"text",label:h.selected,labelStyle:"display:none",id:"selectedColor",style:"width: 76px;margin-top:4px",onChange:function(){try{f.getById(o).setStyle("background-color",this.getValue())}catch(a){n()}}},x,{type:"button",id:"clear",label:h.clear,onClick:n}]}]}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/af.js new file mode 100644 index 00000000..9a6d5746 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","af",{clear:"Herstel",highlight:"Aktief",options:"Kleuropsies",selected:"Geselekteer",title:"Kies kleur"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ar.js new file mode 100644 index 00000000..3b4a4977 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ar",{clear:"مسح",highlight:"تحديد",options:"اختيارات الألوان",selected:"اللون المختار",title:"اختر اللون"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bg.js new file mode 100644 index 00000000..f57a3a9c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bg",{clear:"Изчистване",highlight:"Осветяване",options:"Цветови опции",selected:"Изберете цвят",title:"Изберете цвят"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bn.js new file mode 100644 index 00000000..1cd50972 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bs.js new file mode 100644 index 00000000..e8ea577b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bs",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ca.js new file mode 100644 index 00000000..9e76e9e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ca",{clear:"Neteja",highlight:"Destacat",options:"Opcions del color",selected:"Color Seleccionat",title:"Seleccioni el color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/cs.js new file mode 100644 index 00000000..4de1f1fc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cs",{clear:"Vyčistit",highlight:"Zvýraznit",options:"Nastavení barvy",selected:"Vybráno",title:"Výběr barvy"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/cy.js new file mode 100644 index 00000000..6536226b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cy",{clear:"Clirio",highlight:"Uwcholeuo",options:"Opsiynau Lliw",selected:"Lliw a Ddewiswyd",title:"Dewis lliw"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/da.js new file mode 100644 index 00000000..df1c5c85 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","da",{clear:"Nulstil",highlight:"Markér",options:"Farvemuligheder",selected:"Valgt farve",title:"Vælg farve"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/de.js new file mode 100644 index 00000000..7ccd5b6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","de",{clear:"Entfernen",highlight:"Hervorheben",options:"Farbeoptionen",selected:"Ausgewählte Farbe",title:"Farbe wählen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/el.js new file mode 100644 index 00000000..1447a1c4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","el",{clear:"Εκκαθάριση",highlight:"Σήμανση",options:"Επιλογές Χρωμάτων",selected:"Επιλεγμένο Χρώμα",title:"Επιλογή χρώματος"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-au.js new file mode 100644 index 00000000..cdde12b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-au",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js new file mode 100644 index 00000000..535acfca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-ca",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js new file mode 100644 index 00000000..1ec95ff2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-gb",{clear:"Clear",highlight:"Highlight",options:"Colour Options",selected:"Selected Colour",title:"Select colour"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en.js new file mode 100644 index 00000000..21a79bc0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/eo.js new file mode 100644 index 00000000..aaa8cf96 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eo",{clear:"Forigi",highlight:"Detaloj",options:"Opcioj pri koloroj",selected:"Selektita koloro",title:"Selekti koloron"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/es.js new file mode 100644 index 00000000..ae4688f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","es",{clear:"Borrar",highlight:"Muestra",options:"Opciones de colores",selected:"Elegido",title:"Elegir color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/et.js new file mode 100644 index 00000000..4a51ac6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","et",{clear:"Eemalda",highlight:"Näidis",options:"Värvi valikud",selected:"Valitud värv",title:"Värvi valimine"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/eu.js new file mode 100644 index 00000000..09a91290 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eu",{clear:"Garbitu",highlight:"Nabarmendu",options:"Kolore Aukerak",selected:"Hautatutako Kolorea",title:"Kolorea Hautatu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fa.js new file mode 100644 index 00000000..8b0de9df --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fa",{clear:"پاک کردن",highlight:"متمایز",options:"گزینه​های رنگ",selected:"رنگ انتخاب شده",title:"انتخاب رنگ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fi.js new file mode 100644 index 00000000..8a9a1fe3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fi",{clear:"Poista",highlight:"Korostus",options:"Värin ominaisuudet",selected:"Valittu",title:"Valitse väri"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fo.js new file mode 100644 index 00000000..575a9d47 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fo",{clear:"Strika",highlight:"Framheva",options:"Litmøguleikar",selected:"Valdur litur",title:"Vel lit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js new file mode 100644 index 00000000..d321a839 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr-ca",{clear:"Effacer",highlight:"Surligner",options:"Options de couleur",selected:"Couleur sélectionnée",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fr.js new file mode 100644 index 00000000..b99e1b92 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr",{clear:"Effacer",highlight:"Détails",options:"Option des couleurs",selected:"Couleur choisie",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/gl.js new file mode 100644 index 00000000..13fcd5fb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gl",{clear:"Limpar",highlight:"Resaltar",options:"Opcións de cor",selected:"Cor seleccionado",title:"Seleccione unha cor"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/gu.js new file mode 100644 index 00000000..658cb5a3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gu",{clear:"સાફ કરવું",highlight:"હાઈઈટ",options:"રંગના વિકલ્પ",selected:"પસંદ કરેલો રંગ",title:"રંગ પસંદ કરો"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/he.js new file mode 100644 index 00000000..c5700716 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","he",{clear:"ניקוי",highlight:"סימון",options:"אפשרויות צבע",selected:"בחירה",title:"בחירת צבע"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hi.js new file mode 100644 index 00000000..d14f1a84 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hi",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hr.js new file mode 100644 index 00000000..5a99c466 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hr",{clear:"Očisti",highlight:"Istaknuto",options:"Opcije boje",selected:"Odabrana boja",title:"Odaberi boju"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hu.js new file mode 100644 index 00000000..f905e8f0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hu",{clear:"Ürítés",highlight:"Nagyítás",options:"Szín opciók",selected:"Kiválasztott",title:"Válasszon színt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/is.js new file mode 100644 index 00000000..35044395 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","is",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/it.js new file mode 100644 index 00000000..cb5ca860 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","it",{clear:"cancella",highlight:"Evidenzia",options:"Opzioni colore",selected:"Seleziona il colore",title:"Selezionare il colore"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ja.js new file mode 100644 index 00000000..01f28518 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ja",{clear:"クリア",highlight:"ハイライト",options:"カラーオプション",selected:"選択された色",title:"色選択"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ka.js new file mode 100644 index 00000000..d11c4849 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ka",{clear:"გასუფთავება",highlight:"ჩვენება",options:"ფერის პარამეტრები",selected:"არჩეული ფერი",title:"ფერის შეცვლა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/km.js new file mode 100644 index 00000000..9be3d0f0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","km",{clear:"សម្អាត",highlight:"បន្លិច​ពណ៌",options:"ជម្រើស​ពណ៌",selected:"ពណ៌​ដែល​បាន​រើស",title:"រើស​ពណ៌"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ko.js new file mode 100644 index 00000000..25715bf3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ko",{clear:"제거",highlight:"하이라이트",options:"색상 옵션",selected:"색상 선택됨",title:"색상 선택"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ku.js new file mode 100644 index 00000000..5b590758 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ku",{clear:"پاکیکەوە",highlight:"نیشانکردن",options:"هەڵبژاردەی ڕەنگەکان",selected:"ڕەنگی هەڵبژێردراو",title:"هەڵبژاردنی ڕەنگ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/lt.js new file mode 100644 index 00000000..4e3f2506 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lt",{clear:"Išvalyti",highlight:"Paryškinti",options:"Spalvos nustatymai",selected:"Pasirinkta spalva",title:"Pasirinkite spalvą"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/lv.js new file mode 100644 index 00000000..0e4c7b8b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lv",{clear:"Notīrīt",highlight:"Paraugs",options:"Krāsas uzstādījumi",selected:"Izvēlētā krāsa",title:"Izvēlies krāsu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/mk.js new file mode 100644 index 00000000..870e2325 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mk",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/mn.js new file mode 100644 index 00000000..0547d82c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ms.js new file mode 100644 index 00000000..65c6e817 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ms",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/nb.js new file mode 100644 index 00000000..dab73fd5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nb",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/nl.js new file mode 100644 index 00000000..c2ed1223 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nl",{clear:"Wissen",highlight:"Actief",options:"Kleuropties",selected:"Geselecteerde kleur",title:"Selecteer kleur"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/no.js new file mode 100644 index 00000000..7a853026 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","no",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pl.js new file mode 100644 index 00000000..3be00f6e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pl",{clear:"Wyczyść",highlight:"Zaznacz",options:"Opcje koloru",selected:"Wybrany",title:"Wybierz kolor"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js new file mode 100644 index 00000000..90c14fd7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt-br",{clear:"Limpar",highlight:"Grifar",options:"Opções de Cor",selected:"Cor Selecionada",title:"Selecione uma Cor"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pt.js new file mode 100644 index 00000000..ac11b30d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt",{clear:"Limpar",highlight:"Realçar",options:"Opções da Cor",selected:"Cor Selecionada",title:"Selecionar Cor"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ro.js new file mode 100644 index 00000000..85d83ffb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ro",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ru.js new file mode 100644 index 00000000..7fe16d27 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ru",{clear:"Очистить",highlight:"Под курсором",options:"Настройки цвета",selected:"Выбранный цвет",title:"Выберите цвет"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/si.js new file mode 100644 index 00000000..54bb6924 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","si",{clear:"පැහැදිලි",highlight:"මතුකර පෙන්වන්න",options:"වර්ණ විකල්ප",selected:"තෙරු වර්ණ",title:"වර්ණ තෝරන්න"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sk.js new file mode 100644 index 00000000..be5f13a3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sk",{clear:"Vyčistiť",highlight:"Zvýrazniť",options:"Možnosti farby",selected:"Vybraná farba",title:"Vyberte farbu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sl.js new file mode 100644 index 00000000..610c269a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sl",{clear:"Počisti",highlight:"Poudarjeno",options:"Barvne Možnosti",selected:"Izbrano",title:"Izberi barvo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sq.js new file mode 100644 index 00000000..f739ac4d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sq",{clear:"Pastro",highlight:"Thekso",options:"Përzgjedhjet e Ngjyrave",selected:"Ngjyra e Përzgjedhur",title:"Përzgjidh një ngjyrë"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js new file mode 100644 index 00000000..cd518c98 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr-latn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sr.js new file mode 100644 index 00000000..227ed2ea --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sv.js new file mode 100644 index 00000000..d527156a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sv",{clear:"Rensa",highlight:"Markera",options:"Färgalternativ",selected:"Vald färg",title:"Välj färg"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/th.js new file mode 100644 index 00000000..8f352d9d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","th",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/tr.js new file mode 100644 index 00000000..c416c061 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tr",{clear:"Temizle",highlight:"İşaretle",options:"Renk Seçenekleri",selected:"Seçilmiş",title:"Renk seç"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/tt.js new file mode 100644 index 00000000..df9d32ae --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tt",{clear:"Бушату",highlight:"Билгеләү",options:"Төс көйләүләре",selected:"Сайланган төсләр",title:"Төс сайлау"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ug.js new file mode 100644 index 00000000..f89a948c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ug",{clear:"تازىلا",highlight:"يورۇت",options:"رەڭ تاللانمىسى",selected:"رەڭ تاللاڭ",title:"رەڭ تاللاڭ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/uk.js new file mode 100644 index 00000000..c59d1de8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","uk",{clear:"Очистити",highlight:"Колір, на який вказує курсор",options:"Опції кольорів",selected:"Обраний колір",title:"Обрати колір"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/vi.js new file mode 100644 index 00000000..dae8623e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","vi",{clear:"Xóa bỏ",highlight:"Màu chọn",options:"Tùy chọn màu",selected:"Màu đã chọn",title:"Chọn màu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js new file mode 100644 index 00000000..25e3b000 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh-cn",{clear:"清除",highlight:"高亮",options:"颜色选项",selected:"选择颜色",title:"选择颜色"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/zh.js new file mode 100644 index 00000000..57868b94 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh",{clear:"清除",highlight:"高亮",options:"色彩選項",selected:"選取的色彩",title:"選取色彩"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/plugin.js new file mode 100644 index 00000000..9f393004 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/colordialog/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.colordialog={requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var c=new CKEDITOR.dialogCommand("colordialog");c.editorFocus=!1;b.addCommand("colordialog",c);CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(c,f){var d=function(a){this.removeListener("ok", +d);this.removeListener("cancel",d);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;c.call(f,a)},e=function(a){a.on("ok",d);a.on("cancel",d)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)e(b._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){e(this);b.onLoad=a;"function"==typeof a&& +a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt new file mode 100644 index 00000000..8e09cb23 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 5 Missing: 0 +cs.js Found: 5 Missing: 0 +cy.js Found: 5 Missing: 0 +da.js Found: 5 Missing: 0 +de.js Found: 5 Missing: 0 +el.js Found: 5 Missing: 0 +eo.js Found: 5 Missing: 0 +et.js Found: 5 Missing: 0 +fa.js Found: 5 Missing: 0 +fi.js Found: 5 Missing: 0 +fr.js Found: 5 Missing: 0 +gu.js Found: 5 Missing: 0 +he.js Found: 5 Missing: 0 +hr.js Found: 5 Missing: 0 +it.js Found: 5 Missing: 0 +nb.js Found: 5 Missing: 0 +nl.js Found: 5 Missing: 0 +no.js Found: 5 Missing: 0 +pl.js Found: 5 Missing: 0 +tr.js Found: 5 Missing: 0 +ug.js Found: 5 Missing: 0 +uk.js Found: 5 Missing: 0 +vi.js Found: 5 Missing: 0 +zh-cn.js Found: 5 Missing: 0 diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ar.js new file mode 100644 index 00000000..c781fcfc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ar",{title:"معلومات العنصر",dialogName:"إسم نافذة الحوار",tabName:"إسم التبويب",elementId:"إسم العنصر",elementType:"نوع العنصر"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/bg.js new file mode 100644 index 00000000..6432b5d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","bg",{title:"Информация за елемента",dialogName:"Име на диалоговия прозорец",tabName:"Име на таб",elementId:"ID на елемента",elementType:"Тип на елемента"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ca.js new file mode 100644 index 00000000..7505a8d8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ca",{title:"Informació de l'element",dialogName:"Nom de la finestra de quadre de diàleg",tabName:"Nom de la pestanya",elementId:"ID de l'element",elementType:"Tipus d'element"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/cs.js new file mode 100644 index 00000000..5a2573fe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cs",{title:"Informace o prvku",dialogName:"Název dialogového okna",tabName:"Název karty",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/cy.js new file mode 100644 index 00000000..ffd1c8ac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cy",{title:"Gwybodaeth am yr Elfen",dialogName:"Enw ffenestr y deialog",tabName:"Enw'r tab",elementId:"ID yr Elfen",elementType:"Math yr elfen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/da.js new file mode 100644 index 00000000..5bac0651 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","da",{title:"Information på elementet",dialogName:"Dialogboks",tabName:"Tab beskrivelse",elementId:"ID på element",elementType:"Type af element"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/de.js new file mode 100644 index 00000000..6b350ca3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","de",{title:"Elementinformation",dialogName:"Dialogfenstername",tabName:"Reitername",elementId:"Element ID",elementType:"Elementtyp"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/el.js new file mode 100644 index 00000000..3b53133d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","el",{title:"Πληροφορίες Στοιχείου",dialogName:"Όνομα παραθύρου διαλόγου",tabName:"Όνομα καρτέλας",elementId:"Αναγνωριστικό Στοιχείου",elementType:"Τύπος στοιχείου"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/en-gb.js new file mode 100644 index 00000000..bdadf923 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en-gb",{title:"Element Information",dialogName:"Dialogue window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/en.js new file mode 100644 index 00000000..e3022855 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en",{title:"Element Information",dialogName:"Dialog window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/eo.js new file mode 100644 index 00000000..bc67c556 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eo",{title:"Informo pri la elemento",dialogName:"Nomo de la dialogfenestro",tabName:"Langetnomo",elementId:"ID de la elemento",elementType:"Tipo de la elemento"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/es.js new file mode 100644 index 00000000..681809ed --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","es",{title:"Información del Elemento",dialogName:"Nombre de la ventana de diálogo",tabName:"Nombre de la pestaña",elementId:"ID del Elemento",elementType:"Tipo del elemento"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/et.js new file mode 100644 index 00000000..548e5865 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","et",{title:"Elemendi andmed",dialogName:"Dialoogiakna nimi",tabName:"Saki nimi",elementId:"Elemendi ID",elementType:"Elemendi liik"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/eu.js new file mode 100644 index 00000000..ec05883a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eu",{title:"Elementuaren Informazioa",dialogName:"Elkarrizketa leihoaren izena",tabName:"Fitxaren izena",elementId:"Elementuaren ID-a",elementType:"Elementu mota"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fa.js new file mode 100644 index 00000000..d89f8fe3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fa",{title:"اطلاعات عنصر",dialogName:"نام پنجره محاوره‌ای",tabName:"نام برگه",elementId:"ID عنصر",elementType:"نوع عنصر"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fi.js new file mode 100644 index 00000000..0eef32cc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fi",{title:"Elementin tiedot",dialogName:"Dialogi-ikkunan nimi",tabName:"Välilehden nimi",elementId:"Elementin ID",elementType:"Elementin tyyppi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js new file mode 100644 index 00000000..074bd4f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr-ca",{title:"Information de l'élément",dialogName:"Nom de la fenêtre",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fr.js new file mode 100644 index 00000000..b0686908 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr",{title:"Information sur l'élément",dialogName:"Nom de la fenêtre de dialogue",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/gl.js new file mode 100644 index 00000000..11e1c2a6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gl",{title:"Información do elemento",dialogName:"Nome da xanela de diálogo",tabName:"Nome da lapela",elementId:"ID do elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/gu.js new file mode 100644 index 00000000..e7ef6677 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/gu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gu",{title:"પ્રાથમિક માહિતી",dialogName:"વિન્ડોનું નામ",tabName:"ટેબનું નામ",elementId:"પ્રાથમિક આઈડી",elementType:"પ્રાથમિક પ્રકાર"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/he.js new file mode 100644 index 00000000..aaf968ad --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","he",{title:"מידע על האלמנט",dialogName:"שם הדיאלוג",tabName:"שם הטאב",elementId:"ID של האלמנט",elementType:"סוג האלמנט"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/hr.js new file mode 100644 index 00000000..0ec29f36 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hr",{title:"Informacije elementa",dialogName:"Naziv prozora za dijalog",tabName:"Naziva jahača",elementId:"ID elementa",elementType:"Vrsta elementa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/hu.js new file mode 100644 index 00000000..2f3c5653 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hu",{title:"Elem információ",dialogName:"Párbeszédablak neve",tabName:"Fül neve",elementId:"Elem ID",elementType:"Elem típusa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/id.js new file mode 100644 index 00000000..e988b2f4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","id",{title:"Informasi Elemen",dialogName:"Nama jendela dialog",tabName:"Nama tab",elementId:"ID Elemen",elementType:"Tipe elemen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/it.js new file mode 100644 index 00000000..79a18eab --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","it",{title:"Informazioni elemento",dialogName:"Nome finestra di dialogo",tabName:"Nome Tab",elementId:"ID Elemento",elementType:"Tipo elemento"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ja.js new file mode 100644 index 00000000..6e7bc0fd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ja",{title:"エレメント情報",dialogName:"ダイアログウィンドウ名",tabName:"タブ名",elementId:"エレメントID",elementType:"要素タイプ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/km.js new file mode 100644 index 00000000..d9de2802 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","km",{title:"ព័ត៌មាន​នៃ​ធាតុ",dialogName:"ឈ្មោះ​ប្រអប់​វីនដូ",tabName:"ឈ្មោះ​ផ្ទាំង",elementId:"អត្តលេខ​ធាតុ",elementType:"ប្រភេទ​ធាតុ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ko.js new file mode 100644 index 00000000..a41c6a8e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ko",{title:"구성 요소 정보",dialogName:"다이얼로그 윈도우 이름",tabName:"탭 이름",elementId:"요소 ID",elementType:"요소 형식"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ku.js new file mode 100644 index 00000000..12372f43 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ku",{title:"زانیاری توخم",dialogName:"ناوی پەنجەرەی دیالۆگ",tabName:"ناوی بازدەر تاب",elementId:"ناسنامەی توخم",elementType:"جۆری توخم"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/lt.js new file mode 100644 index 00000000..8ed88b6f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/lt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lt",{title:"Elemento informacija",dialogName:"Dialogo lango pavadinimas",tabName:"Auselės pavadinimas",elementId:"Elemento ID",elementType:"Elemento tipas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/lv.js new file mode 100644 index 00000000..95a2d235 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lv",{title:"Elementa informācija",dialogName:"Dialoga loga nosaukums",tabName:"Cilnes nosaukums",elementId:"Elementa ID",elementType:"Elementa tips"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/nb.js new file mode 100644 index 00000000..0a8bd3d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nb",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/nl.js new file mode 100644 index 00000000..587fedfb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nl",{title:"Elementinformatie",dialogName:"Naam dialoogvenster",tabName:"Tabnaam",elementId:"Element ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/no.js new file mode 100644 index 00000000..7461a121 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","no",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pl.js new file mode 100644 index 00000000..1ef3d228 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pl",{title:"Informacja o elemencie",dialogName:"Nazwa okna dialogowego",tabName:"Nazwa zakładki",elementId:"ID elementu",elementType:"Typ elementu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pt-br.js new file mode 100644 index 00000000..f75850fc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt-br",{title:"Informação do Elemento",dialogName:"Nome da janela de diálogo",tabName:"Nome da aba",elementId:"ID do Elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pt.js new file mode 100644 index 00000000..a9c96a8c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt",{title:"Informação do Elemento",dialogName:"Nome da janela do diálogo",tabName:"Nome do Separador",elementId:"Id. do Elemento",elementType:"Tipo de Elemento"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ru.js new file mode 100644 index 00000000..36c4b1de --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ru",{title:"Информация об элементе",dialogName:"Имя окна диалога",tabName:"Имя вкладки",elementId:"ID элемента",elementType:"Тип элемента"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/si.js new file mode 100644 index 00000000..a1fb3707 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","si",{title:"මුලද්‍රව්‍ය ",dialogName:"දෙබස් කවුළුවේ නම",tabName:"තීරුවේ නම",elementId:"මුලද්‍රව්‍ය කේතය",elementType:"මුලද්‍රව්‍ය වර්ගය"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sk.js new file mode 100644 index 00000000..e80a613d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sk",{title:"Informácie o prvku",dialogName:"Názov okna dialógu",tabName:"Názov záložky",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sl.js new file mode 100644 index 00000000..6f1df087 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sl",{title:"Podatki elementa",dialogName:"Ime pogovornega okna",tabName:"Ime zavihka",elementId:"ID elementa",elementType:"Tip elementa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sq.js new file mode 100644 index 00000000..bb173c47 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sq",{title:"Të dhënat e elementit",dialogName:"Emri i dritares së dialogut",tabName:"Emri i fletës",elementId:"ID e elementit",elementType:"Lloji i elementit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sv.js new file mode 100644 index 00000000..1c73e5e9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sv",{title:"Elementinformation",dialogName:"Dialogrutans namn",tabName:"Fliknamn",elementId:"Elementet-ID",elementType:"Elementet-typ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/tr.js new file mode 100644 index 00000000..293d3ced --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tr",{title:"Eleman Bilgisi",dialogName:"İletişim pencere ismi",tabName:"Sekme adı",elementId:"Eleman ID",elementType:"Eleman türü"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/tt.js new file mode 100644 index 00000000..e3f94b34 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tt",{title:"Элемент тасвирламасы",dialogName:"Диалог тәрәзәсе исеме",tabName:"Өстәмә бит исеме",elementId:"Элемент идентификаторы",elementType:"Элемент төре"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ug.js new file mode 100644 index 00000000..b5c98762 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ug",{title:"ئېلېمېنت ئۇچۇرى",dialogName:"سۆزلەشكۈ كۆزنەك ئاتى",tabName:"Tab ئاتى",elementId:"ئېلېمېنت كىملىكى",elementType:"ئېلېمېنت تىپى"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/uk.js new file mode 100644 index 00000000..3974ef87 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","uk",{title:"Відомості про Елемент",dialogName:"Заголовок діалогового вікна",tabName:"Назва вкладки",elementId:"Ідентифікатор Елемента",elementType:"Тип Елемента"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/vi.js new file mode 100644 index 00000000..08076e51 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","vi",{title:"Thông tin thành ph",dialogName:"Tên hộp tho",tabName:"Tên th",elementId:"Mã thành ph",elementType:"Loại thành ph"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js new file mode 100644 index 00000000..ae1b8e0b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh-cn",{title:"元素信息",dialogName:"对话框窗口名称",tabName:"选项卡名称",elementId:"元素 ID",elementType:"元素类型"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/zh.js new file mode 100644 index 00000000..613e9edf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh",{title:"元件資訊",dialogName:"對話視窗名稱",tabName:"標籤名稱",elementId:"元件 ID",elementType:"元件類型"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/devtools/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/plugin.js new file mode 100644 index 00000000..be0a2de6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/devtools/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("devtools",{lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,gu,he,hr,hu,id,it,ja,km,ko,ku,lt,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",init:function(i){i._.showDialogDefinitionTooltips=1},onLoad:function(){CKEDITOR.document.appendStyleText(CKEDITOR.config.devtools_styles||"#cke_tooltip { padding: 5px; border: 2px solid #333; background: #ffffff }#cke_tooltip h2 { font-size: 1.1em; border-bottom: 1px solid; margin: 0; padding: 1px; }#cke_tooltip ul { padding: 0pt; list-style-type: none; }")}}); +(function(){function i(a,c,b,f){var a=a.lang.devtools,j=''+(b?b.type:"content")+"",c="

"+a.title+"

  • "+a.dialogName+" : "+c.getName()+"
  • "+a.tabName+" : "+f+"
  • ";b&&(c+="
  • "+a.elementId+" : "+b.id+"
  • ");c+="
  • "+a.elementType+" : "+j+"
  • ";return c+"
"}function k(d, +c,b,f,j,g){var e=c.getDocumentPosition(),h={"z-index":CKEDITOR.dialog._.currentZIndex+10,top:e.y+c.getSize("height")+"px"};a.setHtml(d(b,f,j,g));a.show();"rtl"==b.lang.dir?(d=CKEDITOR.document.getWindow().getViewPaneSize(),h.right=d.width-e.x-c.getSize("width")+"px"):h.left=e.x+"px";a.setStyles(h)}var a;CKEDITOR.on("reset",function(){a&&a.remove();a=null});CKEDITOR.on("dialogDefinition",function(d){var c=d.editor;if(c._.showDialogDefinitionTooltips){a||(a=CKEDITOR.dom.element.createFromHtml('
', +CKEDITOR.document),a.hide(),a.on("mouseover",function(){this.show()}),a.on("mouseout",function(){this.hide()}),a.appendTo(CKEDITOR.document.getBody()));var b=d.data.definition.dialog,f=c.config.devtools_textCallback||i;b.on("load",function(){for(var d=b.parts.tabs.getChildren(),g,e=0,h=d.count();e
');a.ui.space("contents").append(b);b=a.editable(b);b.detach=CKEDITOR.tools.override(b.detach,function(a){return function(){a.apply(this,arguments);this.remove()}});a.setData(a.getData(1),c);a.fire("contentDom")})}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js new file mode 100644 index 00000000..28d043f5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js @@ -0,0 +1,25 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("docProps",function(g){function p(a,d){var e=function(){b(this);d(this,this._.parentDialog)},b=function(a){a.removeListener("ok",e);a.removeListener("cancel",b)},f=function(a){a.on("ok",e);a.on("cancel",b)};g.execCommand(a);if(g._.storedDialogs.colordialog)f(g._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(b){if(b.data.name==a){var d=b.data.definition;b.removeListener();d.onLoad=CKEDITOR.tools.override(d.onLoad,function(a){return function(){f(this);d.onLoad= +a;"function"==typeof a&&a.call(this)}})}})}function l(){var a=this.getDialog().getContentElement("general",this.id+"Other");a&&("other"==this.getValue()?(a.getInputElement().removeAttribute("readOnly"),a.focus(),a.getElement().removeClass("cke_disabled")):(a.getInputElement().setAttribute("readOnly",!0),a.getElement().addClass("cke_disabled")))}function i(a,d,e){return function(b,f,c){f=k;b="undefined"!=typeof e?e:this.getValue();!b&&a in f?f[a].remove():b&&a in f?f[a].setAttribute("content",b):b&& +(f=new CKEDITOR.dom.element("meta",g.document),f.setAttribute(d?"http-equiv":"name",a),f.setAttribute("content",b),c.append(f))}}function j(a,d){return function(){var e=k,e=a in e?e[a].getAttribute("content")||"":"";if(d)return e;this.setValue(e);return null}}function m(a){return function(d,e,b,f){f.removeAttribute("margin"+a);d=this.getValue();""!==d?f.setStyle("margin-"+a,CKEDITOR.tools.cssLength(d)):f.removeStyle("margin-"+a)}}function n(a,d,e){a.removeStyle(d);a.getComputedStyle(d)!=e&&a.setStyle(d, +e)}var c=g.lang.docprops,h=g.lang.common,k={},o=function(a,d,e){return{type:"hbox",padding:0,widths:["60%","40%"],children:[CKEDITOR.tools.extend({type:"text",id:a,label:c[d]},e||{},1),{type:"button",id:a+"Choose",label:c.chooseColor,className:"colorChooser",onClick:function(){var b=this;p("colordialog",function(d){var e=b.getDialog();e.getContentElement(e._.currentTabId,a).setValue(d.getContentElement("picker","selectedColor").getValue())})}}]}},q="javascript:void((function(){"+encodeURIComponent("document.open();"+ +(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+'document.write( \''+c.previewHtml+"' );document.close();")+"})())";return{title:c.title,minHeight:330,minWidth:500,onShow:function(){for(var a=g.document,d=a.getElementsByTag("html").getItem(0),e=a.getHead(),b=a.getBody(),f={},c=a.getElementsByTag("meta"),h=c.count(),i=0;i'],["XHTML 1.0 Transitional",''],["XHTML 1.0 Strict",''],["XHTML 1.0 Frameset",''], +["HTML 5",""],["HTML 4.01 Transitional",''],["HTML 4.01 Strict",''],["HTML 4.01 Frameset",''],["HTML 3.2",''],["HTML 2.0",''],[c.other, +"other"]],onChange:l,setup:function(){if(g.docType&&(this.setValue(g.docType),!this.getValue())){this.setValue("other");var a=this.getDialog().getContentElement("general","docTypeOther");a&&a.setValue(g.docType)}l.call(this)},commit:function(a,d,c,b,f){f||(a=this.getValue(),d=this.getDialog().getContentElement("general","docTypeOther"),g.docType="other"==a?d?d.getValue():"":a)}},{type:"text",id:"docTypeOther",label:c.docTypeOther}]},{type:"checkbox",id:"xhtmlDec",label:c.xhtmlDec,setup:function(){this.setValue(!!g.xmlDeclaration)}, +commit:function(a,d,c,b,f){f||(this.getValue()?(g.xmlDeclaration='',d.setAttribute("xmlns","http://www.w3.org/1999/xhtml")):(g.xmlDeclaration="",d.removeAttribute("xmlns")))}}]},{id:"design",label:c.design,elements:[{type:"hbox",widths:["60%","40%"],children:[{type:"vbox",children:[o("txtColor","txtColor",{setup:function(a,d,c,b){this.setValue(b.getComputedStyle("color"))},commit:function(a,d,c,b,f){if(this.isChanged()|| +f)b.removeAttribute("text"),(a=this.getValue())?b.setStyle("color",a):b.removeStyle("color")}}),o("bgColor","bgColor",{setup:function(a,d,c,b){a=b.getComputedStyle("background-color")||"";this.setValue("transparent"==a?"":a)},commit:function(a,d,c,b,f){if(this.isChanged()||f)b.removeAttribute("bgcolor"),(a=this.getValue())?b.setStyle("background-color",a):n(b,"background-color","transparent")}}),{type:"hbox",widths:["60%","40%"],padding:1,children:[{type:"text",id:"bgImage",label:c.bgImage,setup:function(a, +d,c,b){a=b.getComputedStyle("background-image")||"";a="none"==a?"":a.replace(/url\(\s*(["']?)\s*([^\)]*)\s*\1\s*\)/i,function(a,b,d){return d});this.setValue(a)},commit:function(a,d,c,b){b.removeAttribute("background");(a=this.getValue())?b.setStyle("background-image","url("+a+")"):n(b,"background-image","none")}},{type:"button",id:"bgImageChoose",label:h.browseServer,style:"display:inline-block;margin-top:10px;",hidden:!0,filebrowser:"design:bgImage"}]},{type:"checkbox",id:"bgFixed",label:c.bgFixed, +setup:function(a,d,c,b){this.setValue("fixed"==b.getComputedStyle("background-attachment"))},commit:function(a,d,c,b){this.getValue()?b.setStyle("background-attachment","fixed"):n(b,"background-attachment","scroll")}}]},{type:"vbox",children:[{type:"html",id:"marginTitle",html:'
'+c.margin+"
"},{type:"text",id:"marginTop",label:c.marginTop,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-top")||b.getAttribute("margintop")||"")},commit:m("top")},{type:"hbox",children:[{type:"text",id:"marginLeft",label:c.marginLeft,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,d,c,b){this.setValue(b.getStyle("margin-left")||b.getAttribute("marginleft")||"")},commit:m("left")},{type:"text",id:"marginRight",label:c.marginRight,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-right")||b.getAttribute("marginright")||"")},commit:m("right")}]},{type:"text",id:"marginBottom",label:c.marginBottom,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,c,e,b){this.setValue(b.getStyle("margin-bottom")||b.getAttribute("marginbottom")||"")},commit:m("bottom")}]}]}]},{id:"meta",label:c.meta,elements:[{type:"textarea",id:"metaKeywords",label:c.metaKeywords,setup:j("keywords"), +commit:i("keywords")},{type:"textarea",id:"metaDescription",label:c.metaDescription,setup:j("description"),commit:i("description")},{type:"text",id:"metaAuthor",label:c.metaAuthor,setup:j("author"),commit:i("author")},{type:"text",id:"metaCopyright",label:c.metaCopyright,setup:j("copyright"),commit:i("copyright")}]},{id:"preview",label:h.preview,elements:[{type:"html",id:"previewHtml",html:'', +onLoad:function(){this.getDialog().on("selectPage",function(a){if("preview"==a.data.page){var c=this;setTimeout(function(){var a=CKEDITOR.document.getById("cke_docProps_preview_iframe").getFrameDocument(),b=a.getElementsByTag("html").getItem(0),f=a.getHead(),g=a.getBody();c.commitContent(a,b,f,g,1)},50)}});CKEDITOR.document.getById("cke_docProps_preview_iframe").getAscendant("table").setStyle("height","100%")}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png new file mode 100644 index 00000000..ed286a25 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/docprops.png b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/docprops.png new file mode 100644 index 00000000..8bfdcb91 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/docprops.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png new file mode 100644 index 00000000..4a966da0 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png new file mode 100644 index 00000000..a66c8697 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/af.js new file mode 100644 index 00000000..dbda4d7b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","af",{bgColor:"Agtergrond kleur",bgFixed:"Vasgeklemde Agtergrond",bgImage:"Agtergrond Beeld URL",charset:"Karakterstel Kodeering",charsetASCII:"ASCII",charsetCE:"Sentraal Europa",charsetCR:"Cyrillic",charsetCT:"Chinees Traditioneel (Big5)",charsetGR:"Grieks",charsetJP:"Japanees",charsetKR:"Koreans",charsetOther:"Ander Karakterstel Kodeering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Kies",design:"Design",docTitle:"Bladsy Opskrif", +docType:"Dokument Opskrif Soort",docTypeOther:"Ander Dokument Opskrif Soort",label:"Dokument Eienskappe",margin:"Bladsy Rante",marginBottom:"Onder",marginLeft:"Links",marginRight:"Regs",marginTop:"Bo",meta:"Meta Data",metaAuthor:"Skrywer",metaCopyright:"Kopiereg",metaDescription:"Dokument Beskrywing",metaKeywords:"Dokument Index Sleutelwoorde(comma verdeelt)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Dokument Eienskappe", +txtColor:"Tekskleur",xhtmlDec:"Voeg XHTML verklaring by"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ar.js new file mode 100644 index 00000000..bd26b491 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ar",{bgColor:"لون الخلفية",bgFixed:"جعلها علامة مائية",bgImage:"رابط الصورة الخلفية",charset:"ترميز الحروف",charsetASCII:"ASCII",charsetCE:"أوروبا الوسطى",charsetCR:"السيريلية",charsetCT:"الصينية التقليدية (Big5)",charsetGR:"اليونانية",charsetJP:"اليابانية",charsetKR:"الكورية",charsetOther:"ترميز آخر",charsetTR:"التركية",charsetUN:"Unicode (UTF-8)",charsetWE:"أوروبا الغربية",chooseColor:"اختر",design:"تصميم",docTitle:"عنوان الصفحة",docType:"ترويسة نوع الصفحة", +docTypeOther:"ترويسة نوع صفحة أخرى",label:"خصائص الصفحة",margin:"هوامش الصفحة",marginBottom:"سفلي",marginLeft:"أيسر",marginRight:"أيمن",marginTop:"علوي",meta:"المعرّفات الرأسية",metaAuthor:"الكاتب",metaCopyright:"المالك",metaDescription:"وصف الصفحة",metaKeywords:"الكلمات الأساسية (مفصولة بفواصل)َ",other:"<أخرى>",previewHtml:'

هذه مجرد كتابة بسيطةمن أجل التمثيل. CKEditor.

',title:"خصائص الصفحة",txtColor:"لون النص",xhtmlDec:"تضمين إعلانات لغة XHTMLَ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bg.js new file mode 100644 index 00000000..5faba47d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bg",{bgColor:"Фон",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Кодова таблица",charsetASCII:"ASCII",charsetCE:"Централна европейска",charsetCR:"Cyrillic",charsetCT:"Китайски традиционен",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Друга кодова таблица",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Изберете",design:"Дизайн",docTitle:"Заглавие на страницата", +docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Настройки на документа",margin:"Page Margins",marginBottom:"Долу",marginLeft:"Ляво",marginRight:"Дясно",marginTop:"Горе",meta:"Мета етикети",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Други...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Настройки на документа",txtColor:"Цвят на шрифт",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bn.js new file mode 100644 index 00000000..838cbc8f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bn",{bgColor:"ব্যাকগ্রাউন্ড রং",bgFixed:"স্ক্রলহীন ব্যাকগ্রাউন্ড",bgImage:"ব্যাকগ্রাউন্ড ছবির URL",charset:"ক্যারেক্টার সেট এনকোডিং",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"অন্য ক্যারেক্টার সেট এনকোডিং",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"পেজ শীর্ষক", +docType:"ডক্যুমেন্ট টাইপ হেডিং",docTypeOther:"অন্য ডক্যুমেন্ট টাইপ হেডিং",label:"ডক্যুমেন্ট প্রোপার্টি",margin:"পেজ মার্জিন",marginBottom:"নীচে",marginLeft:"বামে",marginRight:"ডানে",marginTop:"উপর",meta:"মেটাডেটা",metaAuthor:"লেখক",metaCopyright:"কপীরাইট",metaDescription:"ডক্যূমেন্ট বর্ণনা",metaKeywords:"ডক্যুমেন্ট ইন্ডেক্স কিওয়ার্ড (কমা দ্বারা বিচ্ছিন্ন)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"ডক্যুমেন্ট প্রোপার্টি", +txtColor:"টেক্স্ট রং",xhtmlDec:"XHTML ডেক্লারেশন যুক্ত কর"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bs.js new file mode 100644 index 00000000..624acfc4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bs",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Dno",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Boja teksta",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ca.js new file mode 100644 index 00000000..6eafe7fe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ca",{bgColor:"Color de fons",bgFixed:"Fons sense desplaçament (Fixe)",bgImage:"URL de la imatge de fons",charset:"Codificació de conjunt de caràcters",charsetASCII:"ASCII",charsetCE:"Europeu Central",charsetCR:"Ciríl·lic",charsetCT:"Xinès tradicional (Big5)",charsetGR:"Grec",charsetJP:"Japonès",charsetKR:"Coreà",charsetOther:"Una altra codificació de caràcters",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeu occidental",chooseColor:"Triar",design:"Disseny", +docTitle:"Títol de la pàgina",docType:"Capçalera de tipus de document",docTypeOther:"Un altra capçalera de tipus de document",label:"Propietats del document",margin:"Marges de pàgina",marginBottom:"Peu",marginLeft:"Esquerra",marginRight:"Dreta",marginTop:"Cap",meta:"Metadades",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripció del document",metaKeywords:"Paraules clau per a indexació (separats per coma)",other:"Altre...",previewHtml:'

Aquest és un text d\'exemple. Estàs utilitzant CKEditor.

', +title:"Propietats del document",txtColor:"Color de Text",xhtmlDec:"Incloure declaracions XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/cs.js new file mode 100644 index 00000000..568bac85 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cs",{bgColor:"Barva pozadí",bgFixed:"Nerolovatelné (Pevné) pozadí",bgImage:"URL obrázku na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Středoevropské jazyky",charsetCR:"Cyrilice",charsetCT:"Tradiční čínština (Big5)",charsetGR:"Řečtina",charsetJP:"Japonština",charsetKR:"Korejština",charsetOther:"Další znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západoevropské jazyky",chooseColor:"Výběr",design:"Vzhled",docTitle:"Titulek stránky", +docType:"Typ dokumentu",docTypeOther:"Jiný typ dokumetu",label:"Vlastnosti dokumentu",margin:"Okraje stránky",marginBottom:"Dolní",marginLeft:"Levý",marginRight:"Pravý",marginTop:"Horní",meta:"Metadata",metaAuthor:"Autor",metaCopyright:"Autorská práva",metaDescription:"Popis dokumentu",metaKeywords:"Klíčová slova (oddělená čárkou)",other:"",previewHtml:'

Toto je ukázkový text. Používáte CKEditor.

',title:"Vlastnosti dokumentu",txtColor:"Barva textu", +xhtmlDec:"Zahrnout deklarace XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/cy.js new file mode 100644 index 00000000..ef7e1cc9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cy",{bgColor:"Lliw Cefndir",bgFixed:"Cefndir Sefydlog (Ddim yn Sgrolio)",bgImage:"URL Delwedd Cefndir",charset:"Amgodio Set Nodau",charsetASCII:"ASCII",charsetCE:"Ewropeaidd Canol",charsetCR:"Syrilig",charsetCT:"Tsieinëeg Traddodiadol (Big5)",charsetGR:"Groeg",charsetJP:"Siapanëeg",charsetKR:"Corëeg",charsetOther:"Amgodio Set Nodau Arall",charsetTR:"Tyrceg",charsetUN:"Unicode (UTF-8)",charsetWE:"Ewropeaidd Gorllewinol",chooseColor:"Dewis",design:"Cynllunio",docTitle:"Teitl y Dudalen", +docType:"Pennawd Math y Ddogfen",docTypeOther:"Pennawd Math y Ddogfen Arall",label:"Priodweddau Dogfen",margin:"Ffin y Dudalen",marginBottom:"Gwaelod",marginLeft:"Chwith",marginRight:"Dde",marginTop:"Brig",meta:"Tagiau Meta",metaAuthor:"Awdur",metaCopyright:"Hawlfraint",metaDescription:"Disgrifiad y Ddogfen",metaKeywords:"Allweddeiriau Indecsio Dogfen (gwahanu gyda choma)",other:"Arall...",previewHtml:'

Dyma ychydig o destun sampl. Rydych chi\'n defnyddio CKEditor.

', +title:"Priodweddau Dogfen",txtColor:"Lliw y Testun",xhtmlDec:"Cynnwys Datganiadau XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/da.js new file mode 100644 index 00000000..0a10cf09 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","da",{bgColor:"Baggrundsfarve",bgFixed:"Fastlåst baggrund",bgImage:"Baggrundsbillede URL",charset:"Tegnsætskode",charsetASCII:"ASCII",charsetCE:"Centraleuropæisk",charsetCR:"Kyrillisk",charsetCT:"Traditionel kinesisk (Big5)",charsetGR:"Græsk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Anden tegnsætskode",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropæisk",chooseColor:"Vælg",design:"Design",docTitle:"Sidetitel",docType:"Dokumenttype kategori", +docTypeOther:"Anden dokumenttype kategori",label:"Egenskaber for dokument",margin:"Sidemargen",marginBottom:"Nederst",marginLeft:"Venstre",marginRight:"Højre",marginTop:"Øverst",meta:"Metatags",metaAuthor:"Forfatter",metaCopyright:"Copyright",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument index nøgleord (kommasepareret)",other:"",previewHtml:'

Dette er et eksempel på noget tekst. Du benytter CKEditor.

',title:"Egenskaber for dokument", +txtColor:"Tekstfarve",xhtmlDec:"Inkludere XHTML deklartion"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/de.js new file mode 100644 index 00000000..6dee2e4a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","de",{bgColor:"Hintergrundfarbe",bgFixed:"feststehender Hintergrund",bgImage:"Hintergrundbild URL",charset:"Zeichenkodierung",charsetASCII:"ASCII",charsetCE:"Zentraleuropäisch",charsetCR:"Kyrillisch",charsetCT:"traditionell Chinesisch (Big5)",charsetGR:"Griechisch",charsetJP:"Japanisch",charsetKR:"Koreanisch",charsetOther:"Andere Zeichenkodierung",charsetTR:"Türkisch",charsetUN:"Unicode (UTF-8)",charsetWE:"Westeuropäisch",chooseColor:"Wählen",design:"Design",docTitle:"Seitentitel", +docType:"Dokumententyp",docTypeOther:"Anderer Dokumententyp",label:"Dokument-Eigenschaften",margin:"Seitenränder",marginBottom:"Unten",marginLeft:"Links",marginRight:"Rechts",marginTop:"Oben",meta:"Metadaten",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Dokument-Beschreibung",metaKeywords:"Schlüsselwörter (durch Komma getrennt)",other:"",previewHtml:'

Das ist ein Beispieltext. Du schreibst in CKEditor.

',title:"Dokument-Eigenschaften", +txtColor:"Textfarbe",xhtmlDec:"Beziehe XHTML Deklarationen ein"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/el.js new file mode 100644 index 00000000..3f0999c5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","el",{bgColor:"Χρώμα Φόντου",bgFixed:"Φόντο Χωρίς Κύλιση (Σταθερό)",bgImage:"Διεύθυνση Εικόνας Φόντου",charset:"Κωδικοποίηση Χαρακτήρων",charsetASCII:"ASCII",charsetCE:"Κεντρικής Ευρώπης",charsetCR:"Κυριλλική",charsetCT:"Παραδοσιακή Κινέζικη (Big5)",charsetGR:"Ελληνική",charsetJP:"Ιαπωνική",charsetKR:"Κορεάτικη",charsetOther:"Άλλη Κωδικοποίηση Χαρακτήρων",charsetTR:"Τουρκική",charsetUN:"Διεθνής (UTF-8)",charsetWE:"Δυτικής Ευρώπης",chooseColor:"Επιλέξτε",design:"Σχεδιασμός", +docTitle:"Τίτλος Σελίδας",docType:"Κεφαλίδα Τύπου Εγγράφου",docTypeOther:"Άλλη Κεφαλίδα Τύπου Εγγράφου",label:"Ιδιότητες Εγγράφου",margin:"Περιθώρια Σελίδας",marginBottom:"Κάτω",marginLeft:"Αριστερά",marginRight:"Δεξιά",marginTop:"Κορυφή",meta:"Μεταδεδομένα",metaAuthor:"Δημιουργός",metaCopyright:"Πνευματικά Δικαιώματα",metaDescription:"Περιγραφή Εγγράφου",metaKeywords:"Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",other:"Άλλο...",previewHtml:'

Αυτό είναι ένα παραδειγματικό κείμενο. Χρησιμοποιείτε το CKEditor.

', +title:"Ιδιότητες Εγγράφου",txtColor:"Χρώμα Κειμένου",xhtmlDec:"Να Συμπεριληφθούν οι Δηλώσεις XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-au.js new file mode 100644 index 00000000..1991fce7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-au",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-ca.js new file mode 100644 index 00000000..f135acfa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-ca",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-gb.js new file mode 100644 index 00000000..4ae5c6f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-gb",{bgColor:"Background Colour",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma-separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Colour",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en.js new file mode 100644 index 00000000..73926df2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/eo.js new file mode 100644 index 00000000..182ea18b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eo",{bgColor:"Fona Koloro",bgFixed:"Neruluma Fono",bgImage:"URL de Fona Bildo",charset:"Signara Kodo",charsetASCII:"ASCII",charsetCE:"Centra Eŭropa",charsetCR:"Cirila",charsetCT:"Tradicia Ĉina (Big5)",charsetGR:"Greka",charsetJP:"Japana",charsetKR:"Korea",charsetOther:"Alia Signara Kodo",charsetTR:"Turka",charsetUN:"Unikodo (UTF-8)",charsetWE:"Okcidenta Eŭropa",chooseColor:"Elektu",design:"Dizajno",docTitle:"Paĝotitolo",docType:"Dokumenta Tipo",docTypeOther:"Alia Dokumenta Tipo", +label:"Dokumentaj Atributoj",margin:"Paĝaj Marĝenoj",marginBottom:"Malsupra",marginLeft:"Maldekstra",marginRight:"Dekstra",marginTop:"Supra",meta:"Metadatenoj",metaAuthor:"Verkinto",metaCopyright:"Kopirajto",metaDescription:"Dokumenta Priskribo",metaKeywords:"Ŝlosilvortoj de la Dokumento (apartigitaj de komoj)",other:"",previewHtml:'

Tio estas sampla teksto. Vi estas uzanta CKEditor.

',title:"Dokumentaj Atributoj",txtColor:"Teksta Koloro", +xhtmlDec:"Inkluzivi XHTML Deklarojn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/es.js new file mode 100644 index 00000000..8170464f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","es",{bgColor:"Color de fondo",bgFixed:"Fondo fijo (no se desplaza)",bgImage:"Imagen de fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro Europeo",charsetCR:"Ruso",charsetCT:"Chino Tradicional (Big5)",charsetGR:"Griego",charsetJP:"Japonés",charsetKR:"Koreano",charsetOther:"Otra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Elegir",design:"Diseño",docTitle:"Título de página", +docType:"Tipo de documento",docTypeOther:"Otro tipo de documento",label:"Propiedades del documento",margin:"Márgenes",marginBottom:"Inferior",marginLeft:"Izquierdo",marginRight:"Derecho",marginTop:"Superior",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripción del documento",metaKeywords:"Palabras claves del documento separadas por coma (meta keywords)",other:"Otro...",previewHtml:'

Este es un texto de ejemplo. Usted está usando CKEditor.

', +title:"Propiedades del documento",txtColor:"Color del texto",xhtmlDec:"Incluir declaración XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/et.js new file mode 100644 index 00000000..43ad55d2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","et",{bgColor:"Taustavärv",bgFixed:"Mittekeritav tagataust",bgImage:"Taustapildi URL",charset:"Märgistiku kodeering",charsetASCII:"ASCII",charsetCE:"Kesk-Euroopa",charsetCR:"Kirillisa",charsetCT:"Hiina traditsiooniline (Big5)",charsetGR:"Kreeka",charsetJP:"Jaapani",charsetKR:"Korea",charsetOther:"Ülejäänud märgistike kodeeringud",charsetTR:"Türgi",charsetUN:"Unicode (UTF-8)",charsetWE:"Lääne-Euroopa",chooseColor:"Vali",design:"Disain",docTitle:"Lehekülje tiitel", +docType:"Dokumendi tüüppäis",docTypeOther:"Teised dokumendi tüüppäised",label:"Dokumendi omadused",margin:"Lehekülje äärised",marginBottom:"Alaserv",marginLeft:"Vasakserv",marginRight:"Paremserv",marginTop:"Ülaserv",meta:"Meta andmed",metaAuthor:"Autor",metaCopyright:"Autoriõigus",metaDescription:"Dokumendi kirjeldus",metaKeywords:"Dokumendi võtmesõnad (eraldatud komadega)",other:"",previewHtml:'

See on näidistekst. Sa kasutad CKEditori.

', +title:"Dokumendi omadused",txtColor:"Teksti värv",xhtmlDec:"Arva kaasa XHTML deklaratsioonid"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/eu.js new file mode 100644 index 00000000..16175cc1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eu",{bgColor:"Atzeko Kolorea",bgFixed:"Korritze gabeko Atzealdea",bgImage:"Atzeko Irudiaren URL-a",charset:"Karaktere Multzoaren Kodeketa",charsetASCII:"ASCII",charsetCE:"Erdialdeko Europakoa",charsetCR:"Zirilikoa",charsetCT:"Txinatar Tradizionala (Big5)",charsetGR:"Grekoa",charsetJP:"Japoniarra",charsetKR:"Korearra",charsetOther:"Beste Karaktere Multzoko Kodeketa",charsetTR:"Turkiarra",charsetUN:"Unicode (UTF-8)",charsetWE:"Mendebaldeko Europakoa",chooseColor:"Choose", +design:"Diseinua",docTitle:"Orriaren Izenburua",docType:"Document Type Goiburua",docTypeOther:"Beste Document Type Goiburua",label:"Dokumentuaren Ezarpenak",margin:"Orrialdearen marjinak",marginBottom:"Behean",marginLeft:"Ezkerrean",marginRight:"Eskuman",marginTop:"Goian",meta:"Meta Informazioa",metaAuthor:"Egilea",metaCopyright:"Copyright",metaDescription:"Dokumentuaren Deskribapena",metaKeywords:"Dokumentuaren Gako-hitzak (komarekin bananduta)",other:"",previewHtml:'

Hau adibideko testua da. CKEditor erabiltzen ari zara.

', +title:"Dokumentuaren Ezarpenak",txtColor:"Testu Kolorea",xhtmlDec:"XHTML Ezarpenak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fa.js new file mode 100644 index 00000000..078e3838 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","fa",{bgColor:"رنگ پس​زمینه",bgFixed:"پس​زمینهٴ ثابت (بدون حرکت)",bgImage:"URL تصویر پسزمینه",charset:"رمزگذاری نویسه​گان",charsetASCII:"اسکی",charsetCE:"اروپای مرکزی",charsetCR:"سیریلیک",charsetCT:"چینی رسمی (Big5)",charsetGR:"یونانی",charsetJP:"ژاپنی",charsetKR:"کره​ای",charsetOther:"رمزگذاری نویسه​گان دیگر",charsetTR:"ترکی",charsetUN:"یونیکد (UTF-8)",charsetWE:"اروپای غربی",chooseColor:"انتخاب",design:"طراحی",docTitle:"عنوان صفحه",docType:"عنوان نوع سند",docTypeOther:"عنوان نوع سند دیگر", +label:"ویژگی​های سند",margin:"حاشیه​های صفحه",marginBottom:"پایین",marginLeft:"چپ",marginRight:"راست",marginTop:"بالا",meta:"فراداده",metaAuthor:"نویسنده",metaCopyright:"حق انتشار",metaDescription:"توصیف سند",metaKeywords:"کلیدواژگان نمایه​گذاری سند (با کاما جدا شوند)",other:"<سایر>",previewHtml:'

این یک متن نمونه است. شما در حال استفاده از CKEditor هستید.

',title:"ویژگی​های سند",txtColor:"رنگ متن",xhtmlDec:"شامل تعاریف XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fi.js new file mode 100644 index 00000000..22a9740a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fi",{bgColor:"Taustaväri",bgFixed:"Paikallaanpysyvä tausta",bgImage:"Taustakuva",charset:"Merkistökoodaus",charsetASCII:"ASCII",charsetCE:"Keskieurooppalainen",charsetCR:"Kyrillinen",charsetCT:"Kiina, perinteinen (Big5)",charsetGR:"Kreikka",charsetJP:"Japani",charsetKR:"Korealainen",charsetOther:"Muu merkistökoodaus",charsetTR:"Turkkilainen",charsetUN:"Unicode (UTF-8)",charsetWE:"Länsieurooppalainen",chooseColor:"Valitse",design:"Sommittelu",docTitle:"Sivun nimi", +docType:"Dokumentin tyyppi",docTypeOther:"Muu dokumentin tyyppi",label:"Dokumentin ominaisuudet",margin:"Sivun marginaalit",marginBottom:"Ala",marginLeft:"Vasen",marginRight:"Oikea",marginTop:"Ylä",meta:"Metatieto",metaAuthor:"Tekijä",metaCopyright:"Tekijänoikeudet",metaDescription:"Kuvaus",metaKeywords:"Hakusanat (pilkulla erotettuna)",other:"",previewHtml:'

Tämä on esimerkkitekstiä. Käytät juuri CKEditoria.

',title:"Dokumentin ominaisuudet", +txtColor:"Tekstiväri",xhtmlDec:"Lisää XHTML julistukset"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fo.js new file mode 100644 index 00000000..ef352698 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fo",{bgColor:"Bakgrundslitur",bgFixed:"Læst bakgrund (rullar ikki)",bgImage:"Leið til bakgrundsmynd (URL)",charset:"Teknsett koda",charsetASCII:"ASCII",charsetCE:"Miðeuropa",charsetCR:"Cyrilliskt",charsetCT:"Kinesiskt traditionelt (Big5)",charsetGR:"Grikst",charsetJP:"Japanskt",charsetKR:"Koreanskt",charsetOther:"Onnur teknsett koda",charsetTR:"Turkiskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestureuropa",chooseColor:"Vel",design:"Design",docTitle:"Síðuheiti", +docType:"Dokumentslag yvirskrift",docTypeOther:"Annað dokumentslag yvirskrift",label:"Eginleikar fyri dokument",margin:"Síðubreddar",marginBottom:"Niðast",marginLeft:"Vinstra",marginRight:"Høgra",marginTop:"Ovast",meta:"META-upplýsingar",metaAuthor:"Høvundur",metaCopyright:"Upphavsrættindi",metaDescription:"Dokumentlýsing",metaKeywords:"Dokument index lyklaorð (sundurbýtt við komma)",other:"",previewHtml:'

Hetta er ein royndartekstur. Tygum brúka CKEditor.

', +title:"Eginleikar fyri dokument",txtColor:"Tekstlitur",xhtmlDec:"Viðfest XHTML deklaratiónir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js new file mode 100644 index 00000000..31a809e8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr-ca",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage",charsetASCII:"ACSII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grecque",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage",charsetTR:"Turque",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Sélectionner",design:"Design",docTitle:"Titre de la page",docType:"Type de document", +docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Méta-données",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"Autre...",previewHtml:'

Voici un example de texte. Vous utilisez CKEditor.

',title:"Propriétés du document",txtColor:"Couleur de caractère", +xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fr.js new file mode 100644 index 00000000..f22e2493 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage de caractère",charsetASCII:"ASCII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grec",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage de caractère",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Choisissez",design:"Design",docTitle:"Titre de la page", +docType:"Type de document",docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Métadonnées",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"",previewHtml:'

Ceci est un texte d\'exemple. Vous utilisez CKEditor.

',title:"Propriétés du document", +txtColor:"Couleur de texte",xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/gl.js new file mode 100644 index 00000000..f8b0c21d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gl",{bgColor:"Cor do fondo",bgFixed:"Fondo fixo (non se despraza)",bgImage:"URL da imaxe do fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro europeo",charsetCR:"Cirílico",charsetCT:"Chinés tradicional (Big5)",charsetGR:"Grego",charsetJP:"Xaponés",charsetKR:"Coreano",charsetOther:"Outra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Escoller",design:"Deseño", +docTitle:"Título da páxina",docType:"Cabeceira do tipo de documento",docTypeOther:"Outra cabeceira do tipo de documento",label:"Propiedades do documento",margin:"Marxes da páxina",marginBottom:"Abaixo",marginLeft:"Esquerda",marginRight:"Dereita",marginTop:"Arriba",meta:"Meta etiquetas",metaAuthor:"Autor",metaCopyright:"Dereito de autoría",metaDescription:"Descrición do documento",metaKeywords:"Palabras clave de indexación do documento (separadas por comas)",other:"Outro...",previewHtml:'

Este é un texto de exemplo. Vostede esta a empregar o CKEditor.

', +title:"Propiedades do documento",txtColor:"Cor do texto",xhtmlDec:"Incluír as declaracións XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/gu.js new file mode 100644 index 00000000..7458ffe6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gu",{bgColor:"બૅકગ્રાઉન્ડ રંગ",bgFixed:"સ્ક્રોલ ન થાય તેવું બૅકગ્રાઉન્ડ",bgImage:"બૅકગ્રાઉન્ડ ચિત્ર URL",charset:"કેરેક્ટર સેટ એન્કોડિંગ",charsetASCII:"ASCII",charsetCE:"મધ્ય યુરોપિઅન (Central European)",charsetCR:"સિરીલિક (Cyrillic)",charsetCT:"ચાઇનીઝ (Chinese Traditional Big5)",charsetGR:"ગ્રીક (Greek)",charsetJP:"જાપાનિઝ (Japanese)",charsetKR:"કોરીયન (Korean)",charsetOther:"અન્ય કેરેક્ટર સેટ એન્કોડિંગ",charsetTR:"ટર્કિ (Turkish)",charsetUN:"યૂનિકોડ (UTF-8)", +charsetWE:"પશ્ચિમ યુરોપિઅન (Western European)",chooseColor:"વિકલ્પ",design:"ડીસા",docTitle:"પેજ મથાળું/ટાઇટલ",docType:"ડૉક્યુમન્ટ પ્રકાર શીર્ષક",docTypeOther:"અન્ય ડૉક્યુમન્ટ પ્રકાર શીર્ષક",label:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",margin:"પેજ માર્જિન",marginBottom:"નીચે",marginLeft:"ડાબી",marginRight:"જમણી",marginTop:"ઉપર",meta:"મેટાડૅટા",metaAuthor:"લેખક",metaCopyright:"કૉપિરાઇટ",metaDescription:"ડૉક્યુમન્ટ વર્ણન",metaKeywords:"ડૉક્યુમન્ટ ઇન્ડેક્સ સંકેતશબ્દ (અલ્પવિરામ (,) થી અલગ કરો)",other:"",previewHtml:'

આ એક સેમ્પલ ટેક્ષ્ત્ છે. તમે CKEditor વાપરો છો.

', +title:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",txtColor:"શબ્દનો રંગ",xhtmlDec:"XHTML સૂચના સમાવિષ્ટ કરવી"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/he.js new file mode 100644 index 00000000..d71d1586 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","he",{bgColor:"צבע רקע",bgFixed:"רקע לא נגלל (צמוד)",bgImage:"כתובת של תמונת רקע",charset:"קידוד תווים",charsetASCII:"ASCII",charsetCE:"מרכז אירופאי",charsetCR:"קירילי",charsetCT:"סיני מסורתי (Big5)",charsetGR:"יווני",charsetJP:"יפני",charsetKR:"קוריאני",charsetOther:"קידוד תווים אחר",charsetTR:"טורקי",charsetUN:"יוניקוד (UTF-8)",charsetWE:"מערב אירופאי",chooseColor:"בחירה",design:"עיצוב",docTitle:"כותרת עמוד",docType:"כותר סוג מסמך",docTypeOther:"כותר סוג מסמך אחר", +label:"מאפייני מסמך",margin:"מרווחי עמוד",marginBottom:"תחתון",marginLeft:"שמאלי",marginRight:"ימני",marginTop:"עליון",meta:"תגי Meta",metaAuthor:"מחבר/ת",metaCopyright:"זכויות יוצרים",metaDescription:"תיאור המסמך",metaKeywords:"מילות מפתח של המסמך (מופרדות בפסיק)",other:"אחר...",previewHtml:'

זהו טקסט הדגמה. את/ה משתמש/ת בCKEditor.

',title:"מאפייני מסמך",txtColor:"צבע טקסט",xhtmlDec:"כלול הכרזות XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hi.js new file mode 100644 index 00000000..68266186 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hi",{bgColor:"बैक्ग्राउन्ड रंग",bgFixed:"स्क्रॉल न करने वाला बैक्ग्राउन्ड",bgImage:"बैक्ग्राउन्ड तस्वीर URL",charset:"करेक्टर सॅट ऍन्कोडिंग",charsetASCII:"ASCII",charsetCE:"मध्य यूरोपीय (Central European)",charsetCR:"सिरीलिक (Cyrillic)",charsetCT:"चीनी (Chinese Traditional Big5)",charsetGR:"यवन (Greek)",charsetJP:"जापानी (Japanese)",charsetKR:"कोरीयन (Korean)",charsetOther:"अन्य करेक्टर सॅट ऍन्कोडिंग",charsetTR:"तुर्की (Turkish)",charsetUN:"यूनीकोड (UTF-8)",charsetWE:"पश्चिम यूरोपीय (Western European)", +chooseColor:"Choose",design:"Design",docTitle:"पेज शीर्षक",docType:"डॉक्यूमॅन्ट प्रकार शीर्षक",docTypeOther:"अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",label:"डॉक्यूमॅन्ट प्रॉपर्टीज़",margin:"पेज मार्जिन",marginBottom:"नीचे",marginLeft:"बायें",marginRight:"दायें",marginTop:"ऊपर",meta:"मॅटाडेटा",metaAuthor:"लेखक",metaCopyright:"कॉपीराइट",metaDescription:"डॉक्यूमॅन्ट करॅक्टरन",metaKeywords:"डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",other:"<अन्य>",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"डॉक्यूमॅन्ट प्रॉपर्टीज़",txtColor:"टेक्स्ट रंग",xhtmlDec:"XHTML सूचना सम्मिलित करें"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hr.js new file mode 100644 index 00000000..3477c6f0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hr",{bgColor:"Boja pozadine",bgFixed:"Pozadine se ne pomiče",bgImage:"URL slike pozadine",charset:"Enkodiranje znakova",charsetASCII:"ASCII",charsetCE:"Središnja Europa",charsetCR:"Ćirilica",charsetCT:"Tradicionalna kineska (Big5)",charsetGR:"Grčka",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Ostalo enkodiranje znakova",charsetTR:"Turska",charsetUN:"Unicode (UTF-8)",charsetWE:"Zapadna Europa",chooseColor:"Odaberi",design:"Dizajn",docTitle:"Naslov stranice", +docType:"Zaglavlje vrste dokumenta",docTypeOther:"Ostalo zaglavlje vrste dokumenta",label:"Svojstva dokumenta",margin:"Margine stranice",marginBottom:"Dolje",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne riječi dokumenta (odvojene zarezom)",other:"",previewHtml:'

Ovo je neki primjer teksta. Vi koristite CKEditor.

', +title:"Svojstva dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ubaci XHTML deklaracije"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hu.js new file mode 100644 index 00000000..beeed2b5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hu",{bgColor:"Háttérszín",bgFixed:"Nem gördíthető háttér",bgImage:"Háttérkép cím",charset:"Karakterkódolás",charsetASCII:"ASCII",charsetCE:"Közép-Európai",charsetCR:"Cyrill",charsetCT:"Kínai Tradicionális (Big5)",charsetGR:"Görög",charsetJP:"Japán",charsetKR:"Koreai",charsetOther:"Más karakterkódolás",charsetTR:"Török",charsetUN:"Unicode (UTF-8)",charsetWE:"Nyugat-Európai",chooseColor:"Válasszon",design:"Design",docTitle:"Oldalcím",docType:"Dokumentum típus fejléc", +docTypeOther:"Más dokumentum típus fejléc",label:"Dokumentum tulajdonságai",margin:"Oldal margók",marginBottom:"Alsó",marginLeft:"Bal",marginRight:"Jobb",marginTop:"Felső",meta:"Meta adatok",metaAuthor:"Szerző",metaCopyright:"Szerzői jog",metaDescription:"Dokumentum leírás",metaKeywords:"Dokumentum keresőszavak (vesszővel elválasztva)",other:"",previewHtml:'

Ez itt egy példa. A CKEditor-t használod.

',title:"Dokumentum tulajdonságai",txtColor:"Betűszín", +xhtmlDec:"XHTML deklarációk beillesztése"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/id.js new file mode 100644 index 00000000..9716026d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","id",{bgColor:"Warna Latar Belakang",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Pilih",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/is.js new file mode 100644 index 00000000..9085a4f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","is",{bgColor:"Bakgrunnslitur",bgFixed:"Læstur bakgrunnur",bgImage:"Slóð bakgrunnsmyndar",charset:"Letursett",charsetASCII:"ASCII",charsetCE:"Mið-evrópskt",charsetCR:"Kýrilskt",charsetCT:"Kínverskt, hefðbundið (Big5)",charsetGR:"Grískt",charsetJP:"Japanskt",charsetKR:"Kóreskt",charsetOther:"Annað letursett",charsetTR:"Tyrkneskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestur-evrópst",chooseColor:"Choose",design:"Design",docTitle:"Titill síðu",docType:"Flokkur skjalategunda", +docTypeOther:"Annar flokkur skjalategunda",label:"Eigindi skjals",margin:"Hliðarspássía",marginBottom:"Neðst",marginLeft:"Vinstri",marginRight:"Hægri",marginTop:"Efst",meta:"Lýsigögn",metaAuthor:"Höfundur",metaCopyright:"Höfundarréttur",metaDescription:"Lýsing skjals",metaKeywords:"Lykilorð efnisorðaskrár (aðgreind með kommum)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Eigindi skjals",txtColor:"Litur texta", +xhtmlDec:"Fella inn XHTML lýsingu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/it.js new file mode 100644 index 00000000..56edb3af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","it",{bgColor:"Colore di sfondo",bgFixed:"Sfondo fissato",bgImage:"Immagine di sfondo",charset:"Set di caretteri",charsetASCII:"ASCII",charsetCE:"Europa Centrale",charsetCR:"Cirillico",charsetCT:"Cinese Tradizionale (Big5)",charsetGR:"Greco",charsetJP:"Giapponese",charsetKR:"Coreano",charsetOther:"Altro set di caretteri",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Occidentale",chooseColor:"Scegli",design:"Disegna",docTitle:"Titolo pagina",docType:"Intestazione DocType", +docTypeOther:"Altra intestazione DocType",label:"Proprietà del Documento",margin:"Margini",marginBottom:"In Basso",marginLeft:"A Sinistra",marginRight:"A Destra",marginTop:"In Alto",meta:"Meta Data",metaAuthor:"Autore",metaCopyright:"Copyright",metaDescription:"Descrizione documento",metaKeywords:"Chiavi di indicizzazione documento (separate da virgola)",other:"",previewHtml:'

Questo è un testo di esempio. State usando CKEditor.

',title:"Proprietà del Documento", +txtColor:"Colore testo",xhtmlDec:"Includi dichiarazione XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ja.js new file mode 100644 index 00000000..34f57912 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ja",{bgColor:"背景色",bgFixed:"スクロールしない背景",bgImage:"背景画像 URL",charset:"文字コード",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"日本語",charsetKR:"Korean",charsetOther:"他の文字セット符号化",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"色の選択",design:"デザイン",docTitle:"ページタイトル",docType:"文書タイプヘッダー",docTypeOther:"その他文書タイプヘッダー",label:"文書 プロパティ",margin:"ページ・マージン", +marginBottom:"下部",marginLeft:"左",marginRight:"右",marginTop:"上部",meta:"メタデータ",metaAuthor:"文書の作者",metaCopyright:"文書の著作権",metaDescription:"文書の概要",metaKeywords:"文書のキーワード(カンマ区切り)",other:"<その他の>",previewHtml:'

これはテキストサンプルです。 あなたは、CKEditorを使っています。

',title:"文書 プロパティ",txtColor:"テキスト色",xhtmlDec:"XHTML宣言をインクルード"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ka.js new file mode 100644 index 00000000..50f71dee --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ka",{bgColor:"ფონის ფერი",bgFixed:"უმოძრაო (ფიქსირებული) ფონი",bgImage:"ფონური სურათის URL",charset:"კოდირება",charsetASCII:"ამერიკული (ASCII)",charsetCE:"ცენტრალურ ევროპული",charsetCR:"კირილური",charsetCT:"ტრადიციული ჩინური (Big5)",charsetGR:"ბერძნული",charsetJP:"იაპონური",charsetKR:"კორეული",charsetOther:"სხვა კოდირებები",charsetTR:"თურქული",charsetUN:"უნიკოდი (UTF-8)",charsetWE:"დასავლეთ ევროპული",chooseColor:"არჩევა",design:"დიზაინი",docTitle:"გვერდის სათაური", +docType:"დოკუმენტის ტიპი",docTypeOther:"სხვა ტიპის დოკუმენტი",label:"დოკუმენტის პარამეტრები",margin:"გვერდის კიდეები",marginBottom:"ქვედა",marginLeft:"მარცხენა",marginRight:"მარჯვენა",marginTop:"ზედა",meta:"მეტაTag-ები",metaAuthor:"ავტორი",metaCopyright:"Copyright",metaDescription:"დოკუმენტის აღწერა",metaKeywords:"დოკუმენტის საკვანძო სიტყვები (მძიმით გამოყოფილი)",other:"სხვა...",previewHtml:'

ეს არის საცდელი ტექსტი. თქვენ CKEditor-ით სარგებლობთ.

', +title:"დოკუმენტის პარამეტრები",txtColor:"ტექსტის ფერი",xhtmlDec:"XHTML დეკლარაციების ჩართვა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/km.js new file mode 100644 index 00000000..34272904 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","km",{bgColor:"ពណ៌​ផ្ទៃ​ក្រោយ",bgFixed:"ផ្ទៃ​ក្រោយ​គ្មាន​ការ​រំកិល (នឹង​ថ្កល់)",bgImage:"URL រូបភាព​ផ្ទៃ​ក្រោយ",charset:"ការ​អ៊ិនកូដ​តួ​អក្សរ",charsetASCII:"ASCII",charsetCE:"អឺរ៉ុប​កណ្ដាល",charsetCR:"Cyrillic",charsetCT:"ចិន​បុរាណ (Big5)",charsetGR:"ក្រិក",charsetJP:"ជប៉ុន",charsetKR:"កូរ៉េ",charsetOther:"កំណត់លេខកូតភាសាផ្សេងទៀត",charsetTR:"ទួរគី",charsetUN:"យូនីកូដ (UTF-8)",charsetWE:"អឺរ៉ុប​ខាង​លិច",chooseColor:"រើស",design:"រចនា",docTitle:"ចំណងជើងទំព័រ",docType:"ប្រភេទក្បាលទំព័រ​ឯកសារ", +docTypeOther:"ប្រភេទក្បាលទំព័រឯកសារ​ផ្សេងទៀត",label:"លក្ខណៈ​សម្បត្តិ​ឯកសារ",margin:"រឹម​ទំព័រ",marginBottom:"បាត​ក្រោម",marginLeft:"ឆ្វេង",marginRight:"ស្ដាំ",marginTop:"លើ",meta:"ស្លាក​មេតា",metaAuthor:"អ្នកនិពន្ធ",metaCopyright:"រក្សាសិទ្ធិ",metaDescription:"សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",metaKeywords:"ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",other:"ដទៃ​ទៀត...",previewHtml:'

នេះ​គឺ​ជាអក្សរ​គំរូ​ខ្លះៗ។ អ្នក​កំពុង​ប្រើ CKEditor

',title:"ការកំណត់ ឯកសារ", +txtColor:"ពណ៌អក្សរ",xhtmlDec:"បញ្ជូល XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ko.js new file mode 100644 index 00000000..168e9b17 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ko",{bgColor:"배경색상",bgFixed:"스크롤되지 않는 배경",bgImage:"배경 이미지 URL",charset:"캐릭터셋 인코딩",charsetASCII:"ASCII",charsetCE:"중앙 유럽",charsetCR:"키릴 문자",charsetCT:"중국어 (Big5)",charsetGR:"그리스어",charsetJP:"일본어",charsetKR:"한국어",charsetOther:"다른 캐릭터셋 인코딩",charsetTR:"터키어",charsetUN:"유니코드 (UTF-8)",charsetWE:"서유럽",chooseColor:"선택하기",design:"디자인",docTitle:"페이지명",docType:"문서 헤드",docTypeOther:"다른 문서헤드",label:"문서 속성",margin:"페이지 여백",marginBottom:"아래",marginLeft:"왼쪽",marginRight:"오른쪽", +marginTop:"위",meta:"메타데이터",metaAuthor:"작성자",metaCopyright:"저작권",metaDescription:"문서 설명",metaKeywords:"문서 키워드 (콤마로 구분)",other:"<기타>",previewHtml:'

이것은 예문입니다. 여러분은 지금 CKEditor를 사용하고 있습니다.

',title:"문서 속성",txtColor:"글자 색상",xhtmlDec:"XHTML 문서정의 포함"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ku.js new file mode 100644 index 00000000..f2dd2844 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ku",{bgColor:"ڕەنگی پاشبنەما",bgFixed:"بێ هاتووچوپێکردنی (چەسپاو) پاشبنەمای وێنه",bgImage:"ناونیشانی بەستەری وێنەی پاشبنەما",charset:"دەستەی نووسەی بەکۆدکەر",charsetASCII:"ASCII",charsetCE:"ناوەڕاستی ئەوروپا",charsetCR:"سیریلیك",charsetCT:"چینی(Big5)",charsetGR:"یۆنانی",charsetJP:"ژاپۆنی",charsetKR:"کۆریا",charsetOther:"دەستەی نووسەی بەکۆدکەری تر",charsetTR:"تورکی",charsetUN:"Unicode (UTF-8)",charsetWE:"ڕۆژئاوای ئەوروپا",chooseColor:"هەڵبژێرە",design:"شێوەکار", +docTitle:"سەردێڕی پەڕه",docType:"سەرپەڕەی جۆری پەڕه",docTypeOther:"سەرپەڕەی جۆری پەڕەی تر",label:"خاسییەتی پەڕه",margin:"تەنیشت پەڕه",marginBottom:"ژێرەوه",marginLeft:"چەپ",marginRight:"ڕاست",marginTop:"سەرەوه",meta:"زانیاری مێتا",metaAuthor:"نووسەر",metaCopyright:"مافی بڵاوکردنەوەی",metaDescription:"پێناسەی لاپەڕه",metaKeywords:"بەڵگەنامەی وشەی کاریگەر(به کۆما لێکیان جیابکەوه)",other:"هیتر...",previewHtml:'

ئەمە وەك نموونەی دەقه. تۆ بەکاردەهێنیت CKEditor.

', +title:"خاسییەتی پەڕه",txtColor:"ڕەنگی دەق",xhtmlDec:"بەیاننامەکانی XHTML لەگەڵدابێت"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/lt.js new file mode 100644 index 00000000..b2e1ba95 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lt",{bgColor:"Fono spalva",bgFixed:"Neslenkantis fonas",bgImage:"Fono paveikslėlio nuoroda (URL)",charset:"Simbolių kodavimo lentelė",charsetASCII:"ASCII",charsetCE:"Centrinės Europos",charsetCR:"Kirilica",charsetCT:"Tradicinės kinų (Big5)",charsetGR:"Graikų",charsetJP:"Japonų",charsetKR:"Korėjiečių",charsetOther:"Kita simbolių kodavimo lentelė",charsetTR:"Turkų",charsetUN:"Unikodas (UTF-8)",charsetWE:"Vakarų Europos",chooseColor:"Pasirinkite",design:"Išdėstymas", +docTitle:"Puslapio antraštė",docType:"Dokumento tipo antraštė",docTypeOther:"Kita dokumento tipo antraštė",label:"Dokumento savybės",margin:"Puslapio kraštinės",marginBottom:"Apačioje",marginLeft:"Kairėje",marginRight:"Dešinėje",marginTop:"Viršuje",meta:"Meta duomenys",metaAuthor:"Autorius",metaCopyright:"Autorinės teisės",metaDescription:"Dokumento apibūdinimas",metaKeywords:"Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",other:"",previewHtml:'

Tai yra pavyzdinis tekstas. Jūs naudojate CKEditor.

', +title:"Dokumento savybės",txtColor:"Teksto spalva",xhtmlDec:"Įtraukti XHTML deklaracijas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/lv.js new file mode 100644 index 00000000..61014944 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lv",{bgColor:"Fona krāsa",bgFixed:"Fona attēls ir fiksēts",bgImage:"Fona attēla hipersaite",charset:"Simbolu kodējums",charsetASCII:"ASCII",charsetCE:"Centrāleiropas",charsetCR:"Kirilica",charsetCT:"Ķīniešu tradicionālā (Big5)",charsetGR:"Grieķu",charsetJP:"Japāņu",charsetKR:"Korejiešu",charsetOther:"Cits simbolu kodējums",charsetTR:"Turku",charsetUN:"Unikods (UTF-8)",charsetWE:"Rietumeiropas",chooseColor:"Izvēlēties",design:"Dizains",docTitle:"Dokumenta virsraksts ", +docType:"Dokumenta tips",docTypeOther:"Cits dokumenta tips",label:"Dokumenta īpašības",margin:"Lapas robežas",marginBottom:"Apakšā",marginLeft:"Pa kreisi",marginRight:"Pa labi",marginTop:"Augšā",meta:"META dati",metaAuthor:"Autors",metaCopyright:"Autortiesības",metaDescription:"Dokumenta apraksts",metaKeywords:"Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",other:"<cits>",previewHtml:'<p>Šis ir <strong>parauga teksts</strong>. Jūs izmantojiet <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Dokumenta īpašības",txtColor:"Teksta krāsa",xhtmlDec:"Ietvert XHTML deklarācijas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/mk.js new file mode 100644 index 00000000..7f48e61c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mk",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/mn.js new file mode 100644 index 00000000..8907ba39 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mn",{bgColor:"Фоно өнгө",bgFixed:"Гүйдэггүй фоно",bgImage:"Фоно зурагны URL",charset:"Encoding тэмдэгт",charsetASCII:"ASCII",charsetCE:"Төв европ",charsetCR:"Крил",charsetCT:"Хятадын уламжлалт (Big5)",charsetGR:"Гред",charsetJP:"Япон",charsetKR:"Солонгос",charsetOther:"Encoding-д өөр тэмдэгт оноох",charsetTR:"Tурк",charsetUN:"Юникод (UTF-8)",charsetWE:"Баруун европ",chooseColor:"Сонгох",design:"Design",docTitle:"Хуудасны гарчиг",docType:"Баримт бичгийн төрөл Heading", +docTypeOther:"Бусад баримт бичгийн төрөл Heading",label:"Баримт бичиг шинж чанар",margin:"Хуудасны захын зай",marginBottom:"Доод тал",marginLeft:"Зүүн тал",marginRight:"Баруун тал",marginTop:"Дээд тал",meta:"Meta өгөгдөл",metaAuthor:"Зохиогч",metaCopyright:"Зохиогчийн эрх",metaDescription:"Баримт бичгийн тайлбар",metaKeywords:"Баримт бичгийн индекс түлхүүр үг (таслалаар тусгаарлагдана)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Баримт бичиг шинж чанар",txtColor:"Фонтны өнгө",xhtmlDec:"XHTML-ийн мэдээллийг агуулах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ms.js new file mode 100644 index 00000000..fe51ef5a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ms",{bgColor:"Warna Latarbelakang",bgFixed:"Imej Latarbelakang tanpa Skrol",bgImage:"URL Gambar Latarbelakang",charset:"Enkod Set Huruf",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Enkod Set Huruf yang Lain",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Tajuk Muka Surat", +docType:"Jenis Kepala Dokumen",docTypeOther:"Jenis Kepala Dokumen yang Lain",label:"Ciri-ciri dokumen",margin:"Margin Muka Surat",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Data Meta",metaAuthor:"Penulis",metaCopyright:"Hakcipta",metaDescription:"Keterangan Dokumen",metaKeywords:"Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",other:"<lain>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Ciri-ciri dokumen",txtColor:"Warna Text",xhtmlDec:"Masukkan pemula kod XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/nb.js new file mode 100644 index 00000000..87926ab8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nb",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/nl.js new file mode 100644 index 00000000..7425a0aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nl",{bgColor:"Achtergrondkleur",bgFixed:"Niet-scrollend (gefixeerde) achtergrond",bgImage:"Achtergrondafbeelding URL",charset:"Tekencodering",charsetASCII:"ASCII",charsetCE:"Centraal Europees",charsetCR:"Cyrillisch",charsetCT:"Traditioneel Chinees (Big5)",charsetGR:"Grieks",charsetJP:"Japans",charsetKR:"Koreaans",charsetOther:"Andere tekencodering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"West Europees",chooseColor:"Kies",design:"Ontwerp",docTitle:"Paginatitel", +docType:"Documenttype-definitie",docTypeOther:"Andere documenttype-definitie",label:"Documenteigenschappen",margin:"Pagina marges",marginBottom:"Onder",marginLeft:"Links",marginRight:"Rechts",marginTop:"Boven",meta:"Meta tags",metaAuthor:"Auteur",metaCopyright:"Auteursrechten",metaDescription:"Documentbeschrijving",metaKeywords:"Trefwoorden voor indexering (komma-gescheiden)",other:"Anders...",previewHtml:'<p>Dit is <strong>voorbeeld tekst</strong>. Je gebruikt <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Documenteigenschappen",txtColor:"Tekstkleur",xhtmlDec:"XHTML declaratie invoegen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/no.js new file mode 100644 index 00000000..11dddcff --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","no",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pl.js new file mode 100644 index 00000000..4fb43438 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pl",{bgColor:"Kolor tła",bgFixed:"Tło nieruchome (nieprzewijające się)",bgImage:"Adres URL obrazka tła",charset:"Kodowanie znaków",charsetASCII:"ASCII",charsetCE:"Środkowoeuropejskie",charsetCR:"Cyrylica",charsetCT:"Chińskie tradycyjne (Big5)",charsetGR:"Greckie",charsetJP:"Japońskie",charsetKR:"Koreańskie",charsetOther:"Inne kodowanie znaków",charsetTR:"Tureckie",charsetUN:"Unicode (UTF-8)",charsetWE:"Zachodnioeuropejskie",chooseColor:"Wybierz",design:"Projekt strony", +docTitle:"Tytuł strony",docType:"Definicja typu dokumentu",docTypeOther:"Inna definicja typu dokumentu",label:"Właściwości dokumentu",margin:"Marginesy strony",marginBottom:"Dolny",marginLeft:"Lewy",marginRight:"Prawy",marginTop:"Górny",meta:"Znaczniki meta",metaAuthor:"Autor",metaCopyright:"Prawa autorskie",metaDescription:"Opis dokumentu",metaKeywords:"Słowa kluczowe dokumentu (oddzielone przecinkami)",other:"Inne",previewHtml:'<p>To jest <strong>przykładowy tekst</strong>. Korzystasz z programu <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Właściwości dokumentu",txtColor:"Kolor tekstu",xhtmlDec:"Uwzględnij deklaracje XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pt-br.js new file mode 100644 index 00000000..c671fed0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt-br",{bgColor:"Cor do Plano de Fundo",bgFixed:"Plano de Fundo Fixo",bgImage:"URL da Imagem de Plano de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Tradicional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Escolher",design:"Design", +docTitle:"Título da Página",docType:"Cabeçalho Tipo de Documento",docTypeOther:"Outro Tipo de Documento",label:"Propriedades Documento",margin:"Margens da Página",marginBottom:"Inferior",marginLeft:"Inferior",marginRight:"Direita",marginTop:"Superior",meta:"Meta Dados",metaAuthor:"Autor",metaCopyright:"Direitos Autorais",metaDescription:"Descrição do Documento",metaKeywords:"Palavras-chave de Indexação do Documento (separadas por vírgula)",other:"<outro>",previewHtml:'<p>Este é um <strong>texto de exemplo</strong>. Você está usando <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pt.js new file mode 100644 index 00000000..ec1514d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt",{bgColor:"Cor de Fundo",bgFixed:"Fundo Fixo",bgImage:"Caminho para a Imagem de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Traditional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Choose",design:"Desenho",docTitle:"Título da Página", +docType:"Tipo de Cabeçalho do Documento",docTypeOther:"Outro Tipo de Cabeçalho do Documento",label:"Propriedades do Documento",margin:"Margem das Páginas",marginBottom:"Fundo",marginLeft:"Esquerda",marginRight:"Direita",marginTop:"Topo",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Direitos de Autor",metaDescription:"Descrição do Documento",metaKeywords:"Palavras de Indexação do Documento (separadas por virgula)",other:"<outro>",previewHtml:'<p>Isto é algum <strong>texto amostra</strong>. Está a usar o <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades do Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ro.js new file mode 100644 index 00000000..9aa0e6d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ro",{bgColor:"Culoarea fundalului (Background Color)",bgFixed:"Fundal neflotant, fix (Non-scrolling Background)",bgImage:"URL-ul imaginii din fundal (Background Image URL)",charset:"Encoding setului de caractere",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Chirilic",charsetCT:"Chinezesc tradiţional (Big5)",charsetGR:"Grecesc",charsetJP:"Japonez",charsetKR:"Corean",charsetOther:"Alt encoding al setului de caractere",charsetTR:"Turcesc",charsetUN:"Unicode (UTF-8)", +charsetWE:"Vest european",chooseColor:"Alege",design:"Design",docTitle:"Titlul paginii",docType:"Document Type Heading",docTypeOther:"Alt Document Type Heading",label:"Proprietăţile documentului",margin:"Marginile paginii",marginBottom:"Jos",marginLeft:"Stânga",marginRight:"Dreapta",marginTop:"Sus",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Drepturi de autor",metaDescription:"Descrierea documentului",metaKeywords:"Cuvinte cheie după care se va indexa documentul (separate prin virgulă)",other:"<alt>", +previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Proprietăţile documentului",txtColor:"Culoarea textului",xhtmlDec:"Include declaraţii XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ru.js new file mode 100644 index 00000000..01d585f6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ru",{bgColor:"Цвет фона",bgFixed:"Фон прикреплён (не проматывается)",bgImage:"Ссылка на фоновое изображение",charset:"Кодировка набора символов",charsetASCII:"ASCII",charsetCE:"Центрально-европейская",charsetCR:"Кириллица",charsetCT:"Китайская традиционная (Big5)",charsetGR:"Греческая",charsetJP:"Японская",charsetKR:"Корейская",charsetOther:"Другая кодировка набора символов",charsetTR:"Турецкая",charsetUN:"Юникод (UTF-8)",charsetWE:"Западно-европейская",chooseColor:"Выберите", +design:"Дизайн",docTitle:"Заголовок страницы",docType:"Заголовок типа документа",docTypeOther:"Другой заголовок типа документа",label:"Свойства документа",margin:"Отступы страницы",marginBottom:"Нижний",marginLeft:"Левый",marginRight:"Правый",marginTop:"Верхний",meta:"Метаданные",metaAuthor:"Автор",metaCopyright:"Авторские права",metaDescription:"Описание документа",metaKeywords:"Ключевые слова документа (через запятую)",other:"Другой ...",previewHtml:'<p>Это <strong>пример</strong> текста, написанного с помощью <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Свойства документа",txtColor:"Цвет текста",xhtmlDec:"Включить объявления XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/si.js new file mode 100644 index 00000000..19a7d6fa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","si",{bgColor:"පසුබිම් වර්ණය",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"පසුබිම් ",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"මාධ්‍ය ",charsetCR:"සිරිලික් හෝඩිය",charsetCT:"චීන සම්ප්‍රදාය",charsetGR:"ග්‍රීක",charsetJP:"ජපාන",charsetKR:"Korean",charsetOther:"අනෙකුත් අක්ෂර කොටස්",charsetTR:"තුර්කි",charsetUN:"Unicode (UTF-8)",charsetWE:"බස්නාහිර ",chooseColor:"තෝරන්න",design:"Design",docTitle:"පිටු මාතෘකාව",docType:"ලිපිගොනු වර්ගයේ මාතෘකාව", +docTypeOther:"අනෙකුත් ලිපිගොනු වර්ගයේ මාතෘකා",label:"ලිපිගොනු ",margin:"පිටු සීමාවන්",marginBottom:"පහල",marginLeft:"වම",marginRight:"දකුණ",marginTop:"ඉ",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"ප්‍රකාශන ",metaDescription:"ලිපිගොනු ",metaKeywords:"ලිපිගොනු පෙලගේසමේ විශේෂ වචන (කොමා වලින් වෙන්කරන ලද)",other:"අනෙකුත්",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"පෝරමයේ ගුණ/",txtColor:"අක්ෂර වර්ණ",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sk.js new file mode 100644 index 00000000..b347ab05 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sk",{bgColor:"Farba pozadia",bgFixed:"Fixné pozadie",bgImage:"URL obrázka na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Stredoeurópska",charsetCR:"Cyrillika",charsetCT:"Čínština tradičná (Big5)",charsetGR:"Gréčtina",charsetJP:"Japončina",charsetKR:"Korejčina",charsetOther:"Iná znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západná európa",chooseColor:"Vybrať",design:"Design",docTitle:"Titulok stránky",docType:"Typ záhlavia dokumentu", +docTypeOther:"Iný typ záhlavia dokumentu",label:"Vlastnosti dokumentu",margin:"Okraje stránky (margins)",marginBottom:"Dolný",marginLeft:"Ľavý",marginRight:"Pravý",marginTop:"Horný",meta:"Meta značky",metaAuthor:"Autor",metaCopyright:"Autorské práva (copyright)",metaDescription:"Popis dokumentu",metaKeywords:"Indexované kľúčové slová dokumentu (oddelené čiarkou)",other:"Iný...",previewHtml:'<p>Toto je nejaký <strong>ukážkový text</strong>. Používate <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Vlastnosti dokumentu",txtColor:"Farba textu",xhtmlDec:"Vložiť deklarácie XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sl.js new file mode 100644 index 00000000..7017e1bd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sl",{bgColor:"Barva ozadja",bgFixed:"Nepremično ozadje",bgImage:"URL slike za ozadje",charset:"Kodna tabela",charsetASCII:"ASCII",charsetCE:"Srednjeevropsko",charsetCR:"Cirilica",charsetCT:"Tradicionalno Kitajsko (Big5)",charsetGR:"Grško",charsetJP:"Japonsko",charsetKR:"Korejsko",charsetOther:"Druga kodna tabela",charsetTR:"Turško",charsetUN:"Unicode (UTF-8)",charsetWE:"Zahodnoevropsko",chooseColor:"Izberi",design:"Oblika",docTitle:"Naslov strani",docType:"Glava tipa dokumenta", +docTypeOther:"Druga glava tipa dokumenta",label:"Lastnosti dokumenta",margin:"Zamiki strani",marginBottom:"Spodaj",marginLeft:"Levo",marginRight:"Desno",marginTop:"Na vrhu",meta:"Meta podatki",metaAuthor:"Avtor",metaCopyright:"Avtorske pravice",metaDescription:"Opis strani",metaKeywords:"Ključne besede (ločene z vejicami)",other:"<drug>",previewHtml:'<p>Tole je<strong>primer besedila</strong>. Uporabljate <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Lastnosti dokumenta",txtColor:"Barva besedila", +xhtmlDec:"Vstavi XHTML deklaracije"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sq.js new file mode 100644 index 00000000..373c7293 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sq",{bgColor:"Ngjyra e Prapavijës",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"URL e Fotografisë së Prapavijës",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Evropës Qendrore",charsetCR:"Sllave",charsetCT:"Kinezisht Tradicional (Big5)",charsetGR:"Greke",charsetJP:"Japoneze",charsetKR:"Koreane",charsetOther:"Other Character Set Encoding",charsetTR:"Turke",charsetUN:"Unicode (UTF-8)",charsetWE:"Evropiano Perëndimor",chooseColor:"Përzgjidh", +design:"Dizajni",docTitle:"Titulli i Faqes",docType:"Document Type Heading",docTypeOther:"Koka e Llojit Tjetër të Dokumentit",label:"Karakteristikat e Dokumentit",margin:"Kufijtë e Faqes",marginBottom:"Poshtë",marginLeft:"Majtas",marginRight:"Djathtas",marginTop:"Lart",meta:"Meta Tags",metaAuthor:"Autori",metaCopyright:"Të drejtat e kopjimit",metaDescription:"Përshkrimi i Dokumentit",metaKeywords:"Fjalët kyçe të indeksimit të dokumentit (të ndarë me presje)",other:"Tjera...",previewHtml:'<p>Ky është nje <strong>tekst shembull</strong>. Ju jeni duke shfrytëzuar <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Karakteristikat e Dokumentit",txtColor:"Ngjyra e Tekstit",xhtmlDec:"Përfshij XHTML Deklarimet"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js new file mode 100644 index 00000000..77312ffb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr-latn",{bgColor:"Boja pozadine",bgFixed:"Fiksirana pozadina",bgImage:"URL pozadinske slike",charset:"Kodiranje skupa karaktera",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Ostala kodiranja skupa karaktera",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Naslov stranice", +docType:"Zaglavlje tipa dokumenta",docTypeOther:"Ostala zaglavlja tipa dokumenta",label:"Osobine dokumenta",margin:"Margine stranice",marginBottom:"Donja",marginLeft:"Leva",marginRight:"Desna",marginTop:"Gornja",meta:"Metapodaci",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne reci za indeksiranje dokumenta (razdvojene zarezima)",other:"<остало>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Osobine dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ukljuci XHTML deklaracije"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sr.js new file mode 100644 index 00000000..f50c3e4a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr",{bgColor:"Боја позадине",bgFixed:"Фиксирана позадина",bgImage:"УРЛ позадинске слике",charset:"Кодирање скупа карактера",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Остала кодирања скупа карактера",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Наслов странице", +docType:"Заглавље типа документа",docTypeOther:"Остала заглавља типа документа",label:"Особине документа",margin:"Маргине странице",marginBottom:"Доња",marginLeft:"Лева",marginRight:"Десна",marginTop:"Горња",meta:"Метаподаци",metaAuthor:"Аутор",metaCopyright:"Ауторска права",metaDescription:"Опис документа",metaKeywords:"Кључне речи за индексирање документа (раздвојене зарезом)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Особине документа",txtColor:"Боја текста",xhtmlDec:"Улључи XHTML декларације"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sv.js new file mode 100644 index 00000000..363de9bc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","sv",{bgColor:"Bakgrundsfärg",bgFixed:"Fast bakgrund",bgImage:"Bakgrundsbildens URL",charset:"Teckenuppsättningar",charsetASCII:"ASCII",charsetCE:"Central Europa",charsetCR:"Kyrillisk",charsetCT:"Traditionell Kinesisk (Big5)",charsetGR:"Grekiska",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Övriga teckenuppsättningar",charsetTR:"Turkiska",charsetUN:"Unicode (UTF-8)",charsetWE:"Väst Europa",chooseColor:"Välj",design:"Design",docTitle:"Sidtitel",docType:"Sidhuvud", +docTypeOther:"Övriga sidhuvuden",label:"Dokumentegenskaper",margin:"Sidmarginal",marginBottom:"Botten",marginLeft:"Vänster",marginRight:"Höger",marginTop:"Topp",meta:"Metadata",metaAuthor:"Författare",metaCopyright:"Upphovsrätt",metaDescription:"Sidans beskrivning",metaKeywords:"Sidans nyckelord (kommaseparerade)",other:"Annan...",previewHtml:'<p>Detta är en <strong>exempel text</strong>. Du använder <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Textfärg",xhtmlDec:"Inkludera XHTML deklaration"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/th.js new file mode 100644 index 00000000..2befc7f7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","th",{bgColor:"สีพื้นหลัง",bgFixed:"พื้นหลังแบบไม่มีแถบเลื่อน",bgImage:"ที่อยู่อ้างอิงออนไลน์ของรูปพื้นหลัง (Image URL)",charset:"ชุดตัวอักษร",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"ชุดตัวอักษรอื่นๆ",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"ออกแบบ",docTitle:"ชื่อไตเติ้ล", +docType:"ประเภทของเอกสาร",docTypeOther:"ประเภทเอกสารอื่นๆ",label:"คุณสมบัติของเอกสาร",margin:"ระยะขอบของหน้าเอกสาร",marginBottom:"ด้านล่าง",marginLeft:"ด้านซ้าย",marginRight:"ด้านขวา",marginTop:"ด้านบน",meta:"ข้อมูลสำหรับเสิร์ชเอนจิ้น",metaAuthor:"ผู้สร้างเอกสาร",metaCopyright:"สงวนลิขสิทธิ์",metaDescription:"ประโยคอธิบายเกี่ยวกับเอกสาร",metaKeywords:"คำสำคัญอธิบายเอกสาร (คั่นคำด้วย คอมม่า)",other:"<อื่น ๆ>",previewHtml:'<p>นี่เป็น <strong>ข้อความตัวอย่าง</strong>. คุณกำลังใช้งาน <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"คุณสมบัติของเอกสาร",txtColor:"สีตัวอักษร",xhtmlDec:"รวมเอา XHTML Declarations ไว้ด้วย"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/tr.js new file mode 100644 index 00000000..00a35d43 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tr",{bgColor:"Arka Plan Rengi",bgFixed:"Sabit Arka Plan",bgImage:"Arka Plan Resim URLsi",charset:"Karakter Kümesi Kodlaması",charsetASCII:"ASCII",charsetCE:"Orta Avrupa",charsetCR:"Kiril",charsetCT:"Geleneksel Çince (Big5)",charsetGR:"Yunanca",charsetJP:"Japonca",charsetKR:"Korece",charsetOther:"Diğer Karakter Kümesi Kodlaması",charsetTR:"Türkçe",charsetUN:"Evrensel Kod (UTF-8)",charsetWE:"Batı Avrupa",chooseColor:"Seçiniz",design:"Dizayn",docTitle:"Sayfa Başlığı", +docType:"Belge Türü Başlığı",docTypeOther:"Diğer Belge Türü Başlığı",label:"Belge Özellikleri",margin:"Kenar Boşlukları",marginBottom:"Alt",marginLeft:"Sol",marginRight:"Sağ",marginTop:"Tepe",meta:"Tanım Bilgisi (Meta)",metaAuthor:"Yazar",metaCopyright:"Telif",metaDescription:"Belge Tanımı",metaKeywords:"Belge Dizinleme Anahtar Kelimeleri (virgülle ayrılmış)",other:"<diğer>",previewHtml:'<p>Bu bir <strong>örnek metindir</strong>. <a href="javascript:void(0)">CKEditor</a> kullanıyorsunuz.</p>',title:"Belge Özellikleri", +txtColor:"Yazı Rengi",xhtmlDec:"XHTML Bildirimlerini Dahil Et"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/tt.js new file mode 100644 index 00000000..c1c6ce14 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tt",{bgColor:"Фон төсе",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Урта Ауропа",charsetCR:"Кириллик",charsetCT:"Гадәти кытай (Big5)",charsetGR:"Грек",charsetJP:"Япон",charsetKR:"Корей",charsetOther:"Other Character Set Encoding",charsetTR:"Төрек",charsetUN:"Юникод (UTF-8)",charsetWE:"Көнбатыш Ауропа",chooseColor:"Сайлау",design:"Дизайн",docTitle:"Page Title",docType:"Document Type Heading", +docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Аска",marginLeft:"Сул",marginRight:"Right",marginTop:"Өскә",meta:"Meta Tags",metaAuthor:"Автор",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Башка...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Document Properties",txtColor:"Текст төсе", +xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ug.js new file mode 100644 index 00000000..424d13a0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ug",{bgColor:"تەگلىك رەڭگى",bgFixed:"تەگلىك سۈرەتنى دومىلاتما",bgImage:"تەگلىك سۈرەت",charset:"ھەرپ كودلىنىشى",charsetASCII:"ASCII",charsetCE:"ئوتتۇرا ياۋرۇپا",charsetCR:"سىلاۋيانچە",charsetCT:"مۇرەككەپ خەنزۇچە (Big5)",charsetGR:"گىرېكچە",charsetJP:"ياپونچە",charsetKR:"كۆرىيەچە",charsetOther:"باشقا ھەرپ كودلىنىشى",charsetTR:"تۈركچە",charsetUN:"يۇنىكود (UTF-8)",charsetWE:"غەربىي ياۋرۇپا",chooseColor:"تاللاڭ",design:"لايىھە",docTitle:"بەت ماۋزۇسى",docType:"پۈتۈك تىپى", +docTypeOther:"باشقا پۈتۈك تىپى",label:"بەت خاسلىقى",margin:"بەت گىرۋەك",marginBottom:"ئاستى",marginLeft:"سول",marginRight:"ئوڭ",marginTop:"ئۈستى",meta:"مېتا سانلىق مەلۇمات",metaAuthor:"يازغۇچى",metaCopyright:"نەشر ھوقۇقى",metaDescription:"بەت يۈزى چۈشەندۈرۈشى",metaKeywords:"بەت يۈزى ئىندېكىس ھالقىلىق سۆزى (ئىنگلىزچە پەش [,] بىلەن ئايرىلىدۇ)",other:"باشقا",previewHtml:'<p>بۇ بىر قىسىم <strong>كۆرسەتمىگە ئىشلىتىدىغان تېكىست </strong>سىز نۆۋەتتە <a href="javascript:void(0)">CKEditor</a>.نى ئىشلىتىۋاتىسىز.</p>', +title:"بەت خاسلىقى",txtColor:"تېكىست رەڭگى",xhtmlDec:"XHTML ئېنىقلىمىسىنى ئۆز ئىچىگە ئالىدۇ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/uk.js new file mode 100644 index 00000000..c1027967 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","uk",{bgColor:"Колір тла",bgFixed:"Тло без прокрутки",bgImage:"URL зображення тла",charset:"Кодування набору символів",charsetASCII:"ASCII",charsetCE:"Центрально-європейська",charsetCR:"Кирилиця",charsetCT:"Китайська традиційна (Big5)",charsetGR:"Грецька",charsetJP:"Японська",charsetKR:"Корейська",charsetOther:"Інше кодування набору символів",charsetTR:"Турецька",charsetUN:"Юнікод (UTF-8)",charsetWE:"Західно-европейская",chooseColor:"Обрати",design:"Дизайн",docTitle:"Заголовок сторінки", +docType:"Заголовок типу документу",docTypeOther:"Інший заголовок типу документу",label:"Властивості документа",margin:"Відступи сторінки",marginBottom:"Нижній",marginLeft:"Лівий",marginRight:"Правий",marginTop:"Верхній",meta:"Мета дані",metaAuthor:"Автор",metaCopyright:"Авторські права",metaDescription:"Опис документа",metaKeywords:"Ключові слова документа (розділені комами)",other:"<інший>",previewHtml:'<p>Це приклад<strong>тексту</strong>. Ви використовуєте<a href="javascript:void(0)"> CKEditor </a>.</p>', +title:"Властивості документа",txtColor:"Колір тексту",xhtmlDec:"Ввімкнути XHTML оголошення"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/vi.js new file mode 100644 index 00000000..b4583767 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","vi",{bgColor:"Màu nền",bgFixed:"Không cuộn nền",bgImage:"URL của Hình ảnh nền",charset:"Bảng mã ký tự",charsetASCII:"ASCII",charsetCE:"Trung Âu",charsetCR:"Tiếng Kirin",charsetCT:"Tiếng Trung Quốc (Big5)",charsetGR:"Tiếng Hy Lạp",charsetJP:"Tiếng Nhật",charsetKR:"Tiếng Hàn",charsetOther:"Bảng mã ký tự khác",charsetTR:"Tiếng Thổ Nhĩ Kỳ",charsetUN:"Unicode (UTF-8)",charsetWE:"Tây Âu",chooseColor:"Chọn màu",design:"Thiết kế",docTitle:"Tiêu đề Trang",docType:"Kiểu Đề mục Tài liệu", +docTypeOther:"Kiểu Đề mục Tài liệu khác",label:"Thuộc tính Tài liệu",margin:"Đường biên của Trang",marginBottom:"Dưới",marginLeft:"Trái",marginRight:"Phải",marginTop:"Trên",meta:"Siêu dữ liệu",metaAuthor:"Tác giả",metaCopyright:"Bản quyền",metaDescription:"Mô tả tài liệu",metaKeywords:"Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",other:"<khác>",previewHtml:'<p>Đây là một số <strong>văn bản mẫu</strong>. Bạn đang sử dụng <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Thuộc tính Tài liệu", +txtColor:"Màu chữ",xhtmlDec:"Bao gồm cả định nghĩa XHTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js new file mode 100644 index 00000000..d8c87e71 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh-cn",{bgColor:"背景颜色",bgFixed:"不滚动背景图像",bgImage:"背景图像",charset:"字符编码",charsetASCII:"ASCII",charsetCE:"中欧",charsetCR:"西里尔文",charsetCT:"繁体中文 (Big5)",charsetGR:"希腊文",charsetJP:"日文",charsetKR:"韩文",charsetOther:"其它字符编码",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西欧",chooseColor:"选择",design:"设计",docTitle:"页面标题",docType:"文档类型",docTypeOther:"其它文档类型",label:"页面属性",margin:"页面边距",marginBottom:"下",marginLeft:"左",marginRight:"右",marginTop:"上",meta:"Meta 数据",metaAuthor:"作者", +metaCopyright:"版权",metaDescription:"页面说明",metaKeywords:"页面索引关键字 (用半角逗号[,]分隔)",other:"<其他>",previewHtml:'<p>这是一些<strong>演示用文字</strong>。您当前正在使用<a href="javascript:void(0)">CKEditor</a>。</p>',title:"页面属性",txtColor:"文本颜色",xhtmlDec:"包含 XHTML 声明"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/zh.js new file mode 100644 index 00000000..193a57da --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh",{bgColor:"背景顏色",bgFixed:"非捲動 (固定) 背景",bgImage:"背景圖像 URL",charset:"字元集編碼",charsetASCII:"ASCII",charsetCE:"中歐語系",charsetCR:"斯拉夫文",charsetCT:"正體中文 (Big5)",charsetGR:"希臘文",charsetJP:"日文",charsetKR:"韓文",charsetOther:"其他字元集編碼",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西歐語系",chooseColor:"選擇",design:"設計模式",docTitle:"頁面標題",docType:"文件類型標題",docTypeOther:"其他文件類型標題",label:"文件屬性",margin:"頁面邊界",marginBottom:"底端",marginLeft:"左",marginRight:"右",marginTop:"頂端", +meta:"Meta 標籤",metaAuthor:"作者",metaCopyright:"版權資訊",metaDescription:"文件描述",metaKeywords:"文件索引關鍵字 (以逗號分隔)",other:"其他…",previewHtml:'<p>此為簡短的<strong>範例文字</strong>。您正在使用 <a href="javascript:void(0)">CKEditor</a>。</p>',title:"文件屬性",txtColor:"文字顏色",xhtmlDec:"包含 XHTML 宣告"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/docprops/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/plugin.js new file mode 100644 index 00000000..efbe090f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/docprops/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("docprops",{requires:"wysiwygarea,dialog,colordialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"docprops,docprops-rtl",hidpi:!0,init:function(a){var b=new CKEDITOR.dialogCommand("docProps");b.modes={wysiwyg:a.config.fullPage};b.allowedContent={body:{styles:"*",attributes:"dir"},html:{attributes:"lang,xml:lang"}}; +b.requiredContent="body";a.addCommand("docProps",b);CKEDITOR.dialog.add("docProps",this.path+"dialogs/docprops.js");a.ui.addButton&&a.ui.addButton("DocProps",{label:a.lang.docprops.label,command:"docProps",toolbar:"document,30"})}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/dialogs/find.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/dialogs/find.js new file mode 100644 index 00000000..0ad6a589 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/dialogs/find.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(c){return c.type==CKEDITOR.NODE_TEXT&&0<c.getLength()&&(!o||!c.isReadOnly())}function s(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)))}var o,t=function(){return{textNode:this.textNode,offset:this.offset,character:this.textNode?this.textNode.getText().charAt(this.offset):null,hitMatchBoundary:this._.matchBoundary}},u=["find","replace"],p=[["txtFindFind","txtFindReplace"],["txtFindCaseChk", +"txtReplaceCaseChk"],["txtFindWordChk","txtReplaceWordChk"],["txtFindCyclic","txtReplaceCyclic"]],n=function(c,g){function n(a,b){var d=c.createRange();d.setStart(a.textNode,b?a.offset:a.offset+1);d.setEndAt(c.editable(),CKEDITOR.POSITION_BEFORE_END);return d}function q(a){var b=c.getSelection(),d=c.editable();b&&!a?(a=b.getRanges()[0].clone(),a.collapse(!0)):(a=c.createRange(),a.setStartAt(d,CKEDITOR.POSITION_AFTER_START));a.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);return a}var v=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1}, +fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},c.config.find_highlight,!0)),l=function(a,b){var d=this,c=new CKEDITOR.dom.walker(a);c.guard=b?s:function(a){!s(a)&&(d._.matchBoundary=!0)};c.evaluator=y;c.breakOnFalse=1;a.startContainer.type==CKEDITOR.NODE_TEXT&&(this.textNode=a.startContainer,this.offset=a.startOffset-1);this._={matchWord:b,walker:c,matchBoundary:!1}};l.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(a){var b=this.textNode; +if(null===b)return t.call(this);this._.matchBoundary=!1;if(b&&a&&0<this.offset)this.offset--;else if(b&&this.offset<b.getLength()-1)this.offset++;else{for(b=null;!b&&!(b=this._.walker[a?"previous":"next"].call(this._.walker),this._.matchWord&&!b||this._.walker._.end););this.offset=(this.textNode=b)?a?b.getLength()-1:0:0}return t.call(this)}};var r=function(a,b){this._={walker:a,cursors:[],rangeLength:b,highlightRange:null,isMatched:0}};r.prototype={toDomRange:function(){var a=c.createRange(),b=this._.cursors; +if(1>b.length){var d=this._.walker.textNode;if(d)a.setStartAfter(d);else return null}else d=b[0],b=b[b.length-1],a.setStart(d.textNode,d.offset),a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new l(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1> +this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();v.applyToRange(a,c);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();v.removeFromRange(this._.highlightRange,c);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange); +this._.highlightRange=null}},isReadOnly:function(){return!this._.highlightRange?0:this._.highlightRange.startContainer.isReadOnly()},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a);b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors; +return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,d;d=this._.cursors;d=(b=d[d.length-1])&&b.textNode?new l(n(b)):this._.walker;return new r(d,a)},getCursors:function(){return this._.cursors}};var w=function(a,b){var d=[-1];b&&(a=a.toLowerCase());for(var c=0;c<a.length;c++)for(d.push(d[c]+1);0<d[c+1]&&a.charAt(c)!=a.charAt(d[c+1]-1);)d[c+1]=d[d[c+1]-1]+1;this._={overlap:d,state:0,ignoreCase:!!b,pattern:a}};w.prototype={feedCharacter:function(a){for(this._.ignoreCase&& +(a=a.toLowerCase());;){if(a==this._.pattern.charAt(this._.state))return this._.state++,this._.state==this._.pattern.length?(this._.state=0,2):1;if(this._.state)this._.state=this._.overlap[this._.state];else return 0}return null},reset:function(){this._.state=0}};var z=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,x=function(a){if(!a)return!0;var b=a.charCodeAt(0);return 9<=b&&13>=b||8192<=b&&8202>=b||z.test(a)},e={searchRange:null,matchRange:null,find:function(a,b,d,f,e,A){this.matchRange? +(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(a.length)):this.matchRange=new r(new l(this.searchRange),a.length);for(var i=new w(a,!b),j=0,k="%";null!==k;){for(this.matchRange.moveNext();k=this.matchRange.getEndCharacter();){j=i.feedCharacter(k);if(2==j)break;this.matchRange.moveNext().hitMatchBoundary&&i.reset()}if(2==j){if(d){var h=this.matchRange.getCursors(),m=h[h.length-1],h=h[0],g=c.createRange();g.setStartAt(c.editable(),CKEDITOR.POSITION_AFTER_START); +g.setEnd(h.textNode,h.offset);h=g;m=n(m);h.trim();m.trim();h=new l(h,!0);m=new l(m,!0);if(!x(h.back().character)||!x(m.next().character))continue}this.matchRange.setMatched();!1!==e&&this.matchRange.highlight();return!0}}this.matchRange.clearMatched();this.matchRange.removeHighlight();return f&&!A?(this.searchRange=q(1),this.matchRange=null,arguments.callee.apply(this,Array.prototype.slice.call(arguments).concat([!0]))):!1},replaceCounter:0,replace:function(a,b,d,f,e,g,i){o=1;a=0;if(this.matchRange&& +this.matchRange.isMatched()&&!this.matchRange._.isReplaced&&!this.matchRange.isReadOnly()){this.matchRange.removeHighlight();b=this.matchRange.toDomRange();d=c.document.createText(d);if(!i){var j=c.getSelection();j.selectRanges([b]);c.fire("saveSnapshot")}b.deleteContents();b.insertNode(d);i||(j.selectRanges([b]),c.fire("saveSnapshot"));this.matchRange.updateFromDomRange(b);i||this.matchRange.highlight();this.matchRange._.isReplaced=!0;this.replaceCounter++;a=1}else a=this.find(b,f,e,g,!i);o=0;return a}}, +f=c.lang.find;return{title:f.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton(c,{label:c.lang.common.close})],contents:[{id:"find",label:f.find,title:f.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:f.find,onClick:function(){var a=this.getDialog(); +e.find(a.getValueOf("find","txtFindFind"),a.getValueOf("find","txtFindCaseChk"),a.getValueOf("find","txtFindWordChk"),a.getValueOf("find","txtFindCyclic"))||alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0, +label:f.matchCyclic}]}]}]},{id:"replace",label:f.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindReplace",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:f.replace,onClick:function(){var a=this.getDialog();e.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace", +"txtReplaceWordChk"),a.getValueOf("replace","txtReplaceCyclic"))||alert(f.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtReplace",label:f.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:f.replaceAll,isChanged:!1,onClick:function(){var a=this.getDialog();e.replaceCounter=0;e.searchRange=q(1);e.matchRange&&(e.matchRange.removeHighlight(),e.matchRange=null);for(c.fire("saveSnapshot");e.replace(a, +a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),!1,!0););e.replaceCounter?(alert(f.replaceSuccessMsg.replace(/%1/,e.replaceCounter)),c.fire("saveSnapshot")):alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtReplaceWordChk", +isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:f.matchCyclic}]}]}]}],onLoad:function(){var a=this,b,c=0;this.on("hide",function(){c=0});this.on("show",function(){c=1});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(f){return function(e){f.call(a,e);var g=a._.tabs[e],i;i="find"===e?"txtFindWordChk":"txtReplaceWordChk";b=a.getContentElement(e,"find"===e?"txtFindFind":"txtFindReplace");a.getContentElement(e,i);g.initialized||(CKEDITOR.document.getById(b._.inputId), +g.initialized=!0);if(c){var j,e="find"===e?1:0,g=1-e,k,h=p.length;for(k=0;k<h;k++)i=this.getContentElement(u[e],p[k][e]),j=this.getContentElement(u[g],p[k][g]),j.setValue(i.getValue())}}})},onShow:function(){e.searchRange=q();var a=this.getParentEditor().getSelection().getSelectedText(),b=this.getContentElement(g,"find"==g?"txtFindFind":"txtFindReplace");b.setValue(a);b.select();this.selectPage(g);this[("find"==g&&this._.editor.readOnly?"hide":"show")+"Page"]("replace")},onHide:function(){var a;e.matchRange&& +e.matchRange.isMatched()&&(e.matchRange.removeHighlight(),c.focus(),(a=e.matchRange.toDomRange())&&c.getSelection().selectRanges([a]));delete e.matchRange},onFocus:function(){return"replace"==g?this.getContentElement("replace","txtFindReplace"):this.getContentElement("find","txtFindFind")}}};CKEDITOR.dialog.add("find",function(c){return n(c,"find")});CKEDITOR.dialog.add("replace",function(c){return n(c,"replace")})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/find-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/find-rtl.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/find-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/find.png b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/find.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/find.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/find.png b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/find.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/find.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png new file mode 100644 index 00000000..9efd8bbd Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/replace.png b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/replace.png new file mode 100644 index 00000000..e68afcbe Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/find/icons/replace.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/af.js new file mode 100644 index 00000000..79e13e84 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","af",{find:"Soek",findOptions:"Find Options",findWhat:"Soek na:",matchCase:"Hoof/kleinletter sensitief",matchCyclic:"Soek deurlopend",matchWord:"Hele woord moet voorkom",notFoundMsg:"Teks nie gevind nie.",replace:"Vervang",replaceAll:"Vervang alles",replaceSuccessMsg:"%1 voorkoms(te) vervang.",replaceWith:"Vervang met:",title:"Soek en vervang"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ar.js new file mode 100644 index 00000000..e995c89d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ar",{find:"بحث",findOptions:"Find Options",findWhat:"البحث بـ:",matchCase:"مطابقة حالة الأحرف",matchCyclic:"مطابقة دورية",matchWord:"مطابقة بالكامل",notFoundMsg:"لم يتم العثور على النص المحدد.",replace:"إستبدال",replaceAll:"إستبدال الكل",replaceSuccessMsg:"تم استبدال 1% من الحالات ",replaceWith:"إستبدال بـ:",title:"بحث واستبدال"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bg.js new file mode 100644 index 00000000..844a0b27 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bg",{find:"Търсене",findOptions:"Find Options",findWhat:"Търси за:",matchCase:"Съвпадение",matchCyclic:"Циклично съвпадение",matchWord:"Съвпадение с дума",notFoundMsg:"Указаният текст не е намерен.",replace:"Препокриване",replaceAll:"Препокрий всички",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Препокрива с:",title:"Търсене и препокриване"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bn.js new file mode 100644 index 00000000..f80be452 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bn",{find:"খোজো",findOptions:"Find Options",findWhat:"যা খুঁজতে হবে:",matchCase:"কেস মিলাও",matchCyclic:"Match cyclic",matchWord:"পুরা শব্দ মেলাও",notFoundMsg:"আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",replace:"রিপ্লেস",replaceAll:"সব বদলে দাও",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"যার সাথে বদলাতে হবে:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bs.js new file mode 100644 index 00000000..4941067b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bs",{find:"Naði",findOptions:"Find Options",findWhat:"Naði šta:",matchCase:"Uporeðuj velika/mala slova",matchCyclic:"Match cyclic",matchWord:"Uporeðuj samo cijelu rijeè",notFoundMsg:"Traženi tekst nije pronaðen.",replace:"Zamjeni",replaceAll:"Zamjeni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zamjeni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ca.js new file mode 100644 index 00000000..85448cf4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ca",{find:"Cerca",findOptions:"Opcions de Cerca",findWhat:"Cerca el:",matchCase:"Distingeix majúscules/minúscules",matchCyclic:"Coincidència cíclica",matchWord:"Només paraules completes",notFoundMsg:"El text especificat no s'ha trobat.",replace:"Reemplaça",replaceAll:"Reemplaça-ho tot",replaceSuccessMsg:"%1 ocurrència/es reemplaçada/es.",replaceWith:"Reemplaça amb:",title:"Cerca i reemplaça"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/cs.js new file mode 100644 index 00000000..a63cd194 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cs",{find:"Hledat",findOptions:"Možnosti hledání",findWhat:"Co hledat:",matchCase:"Rozlišovat velikost písma",matchCyclic:"Procházet opakovaně",matchWord:"Pouze celá slova",notFoundMsg:"Hledaný text nebyl nalezen.",replace:"Nahradit",replaceAll:"Nahradit vše",replaceSuccessMsg:"%1 nahrazení.",replaceWith:"Čím nahradit:",title:"Najít a nahradit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/cy.js new file mode 100644 index 00000000..3e87336f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cy",{find:"Chwilio",findOptions:"Opsiynau Chwilio",findWhat:"Chwilio'r term:",matchCase:"Cydweddu'r cas",matchCyclic:"Cydweddu'n gylchol",matchWord:"Cydweddu gair cyfan",notFoundMsg:"Nid oedd y testun wedi'i ddarganfod.",replace:"Amnewid Un",replaceAll:"Amnewid Pob",replaceSuccessMsg:"Amnewidiwyd %1 achlysur.",replaceWith:"Amnewid gyda:",title:"Chwilio ac Amnewid"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/da.js new file mode 100644 index 00000000..35693e27 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","da",{find:"Søg",findOptions:"Find muligheder",findWhat:"Søg efter:",matchCase:"Forskel på store og små bogstaver",matchCyclic:"Match cyklisk",matchWord:"Kun hele ord",notFoundMsg:"Søgeteksten blev ikke fundet",replace:"Erstat",replaceAll:"Erstat alle",replaceSuccessMsg:"%1 forekomst(er) erstattet.",replaceWith:"Erstat med:",title:"Søg og erstat"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/de.js new file mode 100644 index 00000000..5295d06e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","de",{find:"Suchen",findOptions:"Suchoptionen",findWhat:"Suche nach:",matchCase:"Groß-Kleinschreibung beachten",matchCyclic:"Zyklische Suche",matchWord:"Nur ganze Worte suchen",notFoundMsg:"Der gesuchte Text wurde nicht gefunden.",replace:"Ersetzen",replaceAll:"Alle ersetzen",replaceSuccessMsg:"%1 vorkommen ersetzt.",replaceWith:"Ersetze mit:",title:"Suchen und Ersetzen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/el.js new file mode 100644 index 00000000..f559f2a0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","el",{find:"Εύρεση",findOptions:"Επιλογές Εύρεσης",findWhat:"Εύρεση για:",matchCase:"Ταίριασμα πεζών/κεφαλαίων",matchCyclic:"Αναδρομική εύρεση",matchWord:"Εύρεση μόνο πλήρων λέξεων",notFoundMsg:"Το κείμενο δεν βρέθηκε.",replace:"Αντικατάσταση",replaceAll:"Αντικατάσταση Όλων",replaceSuccessMsg:"Ο(ι) όρος(-οι) αντικαταστήθηκε(-αν) %1 φορές.",replaceWith:"Αντικατάσταση με:",title:"Εύρεση και Αντικατάσταση"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-au.js new file mode 100644 index 00000000..ad033791 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-au",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-ca.js new file mode 100644 index 00000000..d217f653 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-ca",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-gb.js new file mode 100644 index 00000000..dfbafb7e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-gb",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en.js new file mode 100644 index 00000000..6865f0b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/eo.js new file mode 100644 index 00000000..9fde69e3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eo",{find:"Serĉi",findOptions:"Opcioj pri Serĉado",findWhat:"Serĉi:",matchCase:"Kongruigi Usklecon",matchCyclic:"Cikla Serĉado",matchWord:"Tuta Vorto",notFoundMsg:"La celteksto ne estas trovita.",replace:"Anstataŭigi",replaceAll:"Anstataŭigi Ĉion",replaceSuccessMsg:"%1 anstataŭigita(j) apero(j).",replaceWith:"Anstataŭigi per:",title:"Serĉi kaj Anstataŭigi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/es.js new file mode 100644 index 00000000..2efd39ce --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","es",{find:"Buscar",findOptions:"Opciones de búsqueda",findWhat:"Texto a buscar:",matchCase:"Coincidir may/min",matchCyclic:"Buscar en todo el contenido",matchWord:"Coincidir toda la palabra",notFoundMsg:"El texto especificado no ha sido encontrado.",replace:"Reemplazar",replaceAll:"Reemplazar Todo",replaceSuccessMsg:"La expresión buscada ha sido reemplazada %1 veces.",replaceWith:"Reemplazar con:",title:"Buscar y Reemplazar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/et.js new file mode 100644 index 00000000..bcc39210 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","et",{find:"Otsi",findOptions:"Otsingu valikud",findWhat:"Otsitav:",matchCase:"Suur- ja väiketähtede eristamine",matchCyclic:"Jätkatakse algusest",matchWord:"Ainult terved sõnad",notFoundMsg:"Otsitud teksti ei leitud.",replace:"Asenda",replaceAll:"Asenda kõik",replaceSuccessMsg:"%1 vastet asendati.",replaceWith:"Asendus:",title:"Otsimine ja asendamine"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/eu.js new file mode 100644 index 00000000..f082555f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eu",{find:"Bilatu",findOptions:"Find Options",findWhat:"Zer bilatu:",matchCase:"Maiuskula/minuskula",matchCyclic:"Bilaketa ziklikoa",matchWord:"Esaldi osoa bilatu",notFoundMsg:"Idatzitako testua ez da topatu.",replace:"Ordezkatu",replaceAll:"Ordeztu Guztiak",replaceSuccessMsg:"Zenbat aldiz ordeztua: %1",replaceWith:"Zerekin ordeztu:",title:"Bilatu eta Ordeztu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fa.js new file mode 100644 index 00000000..2339c6dd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fa",{find:"جستجو",findOptions:"گزینه​های جستجو",findWhat:"چه چیز را مییابید:",matchCase:"همسانی در بزرگی و کوچکی نویسه​ها",matchCyclic:"همسانی با چرخه",matchWord:"همسانی با واژهٴ کامل",notFoundMsg:"متن موردنظر یافت نشد.",replace:"جایگزینی",replaceAll:"جایگزینی همهٴ یافته​ها",replaceSuccessMsg:"%1 رخداد جایگزین شد.",replaceWith:"جایگزینی با:",title:"جستجو و جایگزینی"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fi.js new file mode 100644 index 00000000..79daf814 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fi",{find:"Etsi",findOptions:"Hakuasetukset",findWhat:"Etsi mitä:",matchCase:"Sama kirjainkoko",matchCyclic:"Kierrä ympäri",matchWord:"Koko sana",notFoundMsg:"Etsittyä tekstiä ei löytynyt.",replace:"Korvaa",replaceAll:"Korvaa kaikki",replaceSuccessMsg:"%1 esiintymä(ä) korvattu.",replaceWith:"Korvaa tällä:",title:"Etsi ja korvaa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fo.js new file mode 100644 index 00000000..1e3dc043 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fo",{find:"Leita",findOptions:"Finn møguleikar",findWhat:"Finn:",matchCase:"Munur á stórum og smáum bókstavum",matchCyclic:"Match cyclic",matchWord:"Bert heil orð",notFoundMsg:"Leititeksturin varð ikki funnin",replace:"Yvirskriva",replaceAll:"Yvirskriva alt",replaceSuccessMsg:"%1 úrslit broytt.",replaceWith:"Yvirskriva við:",title:"Finn og broyt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fr-ca.js new file mode 100644 index 00000000..59a8e22c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr-ca",{find:"Rechercher",findOptions:"Options de recherche",findWhat:"Rechercher:",matchCase:"Respecter la casse",matchCyclic:"Recherche cyclique",matchWord:"Mot entier",notFoundMsg:"Le texte indiqué est introuvable.",replace:"Remplacer",replaceAll:"Tout remplacer",replaceSuccessMsg:"%1 remplacements.",replaceWith:"Remplacer par:",title:"Rechercher et remplacer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fr.js new file mode 100644 index 00000000..a7b4218e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr",{find:"Trouver",findOptions:"Options de recherche",findWhat:"Expression à trouver: ",matchCase:"Respecter la casse",matchCyclic:"Boucler",matchWord:"Mot entier uniquement",notFoundMsg:"Le texte spécifié ne peut être trouvé.",replace:"Remplacer",replaceAll:"Remplacer tout",replaceSuccessMsg:"%1 occurrence(s) replacée(s).",replaceWith:"Remplacer par: ",title:"Trouver et remplacer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/gl.js new file mode 100644 index 00000000..be892489 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gl",{find:"Buscar",findOptions:"Buscar opcións",findWhat:"Texto a buscar:",matchCase:"Coincidir Mai./min.",matchCyclic:"Coincidencia cíclica",matchWord:"Coincidencia coa palabra completa",notFoundMsg:"Non se atopou o texto indicado.",replace:"Substituir",replaceAll:"Substituír todo",replaceSuccessMsg:"%1 concorrencia(s) substituída(s).",replaceWith:"Substituír con:",title:"Buscar e substituír"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/gu.js new file mode 100644 index 00000000..572afcfd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gu",{find:"શોધવું",findOptions:"વીકલ્પ શોધો",findWhat:"આ શોધો",matchCase:"કેસ સરખા રાખો",matchCyclic:"સરખાવવા બધા",matchWord:"બઘા શબ્દ સરખા રાખો",notFoundMsg:"તમે શોધેલી ટેક્સ્ટ નથી મળી",replace:"રિપ્લેસ/બદલવું",replaceAll:"બઘા બદલી ",replaceSuccessMsg:"%1 ફેરફારો બાદલાયા છે.",replaceWith:"આનાથી બદલો",title:"શોધવું અને બદલવું"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/he.js new file mode 100644 index 00000000..ea4e4224 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","he",{find:"חיפוש",findOptions:"אפשרויות חיפוש",findWhat:"חיפוש מחרוזת:",matchCase:"הבחנה בין אותיות רשיות לקטנות (Case)",matchCyclic:"התאמה מחזורית",matchWord:"התאמה למילה המלאה",notFoundMsg:"הטקסט המבוקש לא נמצא.",replace:"החלפה",replaceAll:"החלפה בכל העמוד",replaceSuccessMsg:"%1 טקסטים הוחלפו.",replaceWith:"החלפה במחרוזת:",title:"חיפוש והחלפה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hi.js new file mode 100644 index 00000000..d67da0a3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hi",{find:"खोजें",findOptions:"Find Options",findWhat:"यह खोजें:",matchCase:"केस मिलायें",matchCyclic:"Match cyclic",matchWord:"पूरा शब्द मिलायें",notFoundMsg:"आपके द्वारा दिया गया टेक्स्ट नहीं मिला",replace:"रीप्लेस",replaceAll:"सभी रिप्लेस करें",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"इससे रिप्लेस करें:",title:"खोजें और बदलें"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hr.js new file mode 100644 index 00000000..bcca21eb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hr",{find:"Pronađi",findOptions:"Opcije traženja",findWhat:"Pronađi:",matchCase:"Usporedi mala/velika slova",matchCyclic:"Usporedi kružno",matchWord:"Usporedi cijele riječi",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamijeni",replaceAll:"Zamijeni sve",replaceSuccessMsg:"Zamijenjeno %1 pojmova.",replaceWith:"Zamijeni s:",title:"Pronađi i zamijeni"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hu.js new file mode 100644 index 00000000..6ca2b808 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hu",{find:"Keresés",findOptions:"Find Options",findWhat:"Keresett szöveg:",matchCase:"kis- és nagybetű megkülönböztetése",matchCyclic:"Ciklikus keresés",matchWord:"csak ha ez a teljes szó",notFoundMsg:"A keresett szöveg nem található.",replace:"Csere",replaceAll:"Az összes cseréje",replaceSuccessMsg:"%1 egyezőség cserélve.",replaceWith:"Csere erre:",title:"Keresés és csere"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/id.js new file mode 100644 index 00000000..4257045a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","id",{find:"Temukan",findOptions:"Opsi menemukan",findWhat:"Temukan apa:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Ganti",replaceAll:"Ganti Semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Ganti dengan:",title:"Temukan dan Ganti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/is.js new file mode 100644 index 00000000..d69cba6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","is",{find:"Leita",findOptions:"Find Options",findWhat:"Leita að:",matchCase:"Gera greinarmun á¡ há¡- og lágstöfum",matchCyclic:"Match cyclic",matchWord:"Aðeins heil orð",notFoundMsg:"Leitartexti fannst ekki!",replace:"Skipta út",replaceAll:"Skipta út allsstaðar",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Skipta út fyrir:",title:"Finna og skipta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/it.js new file mode 100644 index 00000000..2aed2adc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","it",{find:"Trova",findOptions:"Opzioni di ricerca",findWhat:"Trova:",matchCase:"Maiuscole/minuscole",matchCyclic:"Ricerca ciclica",matchWord:"Solo parole intere",notFoundMsg:"L'elemento cercato non è stato trovato.",replace:"Sostituisci",replaceAll:"Sostituisci tutto",replaceSuccessMsg:"%1 occorrenza(e) sostituite.",replaceWith:"Sostituisci con:",title:"Cerca e Sostituisci"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ja.js new file mode 100644 index 00000000..f2043d1f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ja",{find:"検索",findOptions:"検索オプション",findWhat:"検索する文字列:",matchCase:"大文字と小文字を区別する",matchCyclic:"末尾に逹したら先頭に戻る",matchWord:"単語単位で探す",notFoundMsg:"指定された文字列は見つかりませんでした。",replace:"置換",replaceAll:"すべて置換",replaceSuccessMsg:"%1 個置換しました。",replaceWith:"置換後の文字列:",title:"検索と置換"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ka.js new file mode 100644 index 00000000..d5d8dda9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ka",{find:"ძებნა",findOptions:"Find Options",findWhat:"საძიებელი ტექსტი:",matchCase:"დიდი და პატარა ასოების დამთხვევა",matchCyclic:"დოკუმენტის ბოლოში გასვლის მერე თავიდან დაწყება",matchWord:"მთელი სიტყვის დამთხვევა",notFoundMsg:"მითითებული ტექსტი არ მოიძებნა.",replace:"შეცვლა",replaceAll:"ყველას შეცვლა",replaceSuccessMsg:"%1 მოძებნილი შეიცვალა.",replaceWith:"შეცვლის ტექსტი:",title:"ძებნა და შეცვლა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/km.js new file mode 100644 index 00000000..3815f2ca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","km",{find:"ស្វែងរក",findOptions:"ជម្រើស​ស្វែង​រក",findWhat:"ស្វែងរកអ្វី:",matchCase:"ករណី​ដំណូច",matchCyclic:"ត្រូវ​នឹង cyclic",matchWord:"ដូច​នឹង​ពាក្យ​ទាំង​មូល",notFoundMsg:"រក​មិន​ឃើញ​ពាក្យ​ដែល​បាន​បញ្ជាក់។",replace:"ជំនួស",replaceAll:"ជំនួសទាំងអស់",replaceSuccessMsg:"ការ​ជំនួស​ចំនួន %1 បាន​កើត​ឡើង។",replaceWith:"ជំនួសជាមួយ:",title:"រក​និង​ជំនួស"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ko.js new file mode 100644 index 00000000..e17dce40 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ko",{find:"찾기",findOptions:"Find Options",findWhat:"찾을 문자열:",matchCase:"대소문자 구분",matchCyclic:"Match cyclic",matchWord:"온전한 단어",notFoundMsg:"문자열을 찾을 수 없습니다.",replace:"바꾸기",replaceAll:"모두 바꾸기",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"바꿀 문자열:",title:"찾기 & 바꾸기"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ku.js new file mode 100644 index 00000000..54cc3c93 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ku",{find:"گەڕان",findOptions:"هەڵبژاردەکانی گەڕان",findWhat:"گەڕان بەدووای:",matchCase:"جیاکردنەوه لەنێوان پیتی گەورەو بچووك",matchCyclic:"گەڕان لەهەموو پەڕەکه",matchWord:"تەنەا هەموو وشەکه",notFoundMsg:"هیچ دەقه گەڕانێك نەدۆزراوه.",replace:"لەبریدانان",replaceAll:"لەبریدانانی هەمووی",replaceSuccessMsg:" پێشهاتە(ی) لەبری دانرا. %1",replaceWith:"لەبریدانان به:",title:"گەڕان و لەبریدانان"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/lt.js new file mode 100644 index 00000000..2c55039e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lt",{find:"Rasti",findOptions:"Paieškos nustatymai",findWhat:"Surasti tekstą:",matchCase:"Skirti didžiąsias ir mažąsias raides",matchCyclic:"Sutampantis cikliškumas",matchWord:"Atitikti pilną žodį",notFoundMsg:"Nurodytas tekstas nerastas.",replace:"Pakeisti",replaceAll:"Pakeisti viską",replaceSuccessMsg:"%1 sutapimas(ų) buvo pakeisti.",replaceWith:"Pakeisti tekstu:",title:"Surasti ir pakeisti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/lv.js new file mode 100644 index 00000000..12a554cc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lv",{find:"Meklēt",findOptions:"Meklēt uzstādījumi",findWhat:"Meklēt:",matchCase:"Reģistrjūtīgs",matchCyclic:"Sakrist cikliski",matchWord:"Jāsakrīt pilnībā",notFoundMsg:"Norādītā frāze netika atrasta.",replace:"Nomainīt",replaceAll:"Aizvietot visu",replaceSuccessMsg:"%1 gadījums(i) aizvietoti",replaceWith:"Nomainīt uz:",title:"Meklēt un aizvietot"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/mk.js new file mode 100644 index 00000000..8c41cfc1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mk",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/mn.js new file mode 100644 index 00000000..28498167 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mn",{find:"Хайх",findOptions:"Хайх сонголтууд",findWhat:"Хайх үг/үсэг:",matchCase:"Тэнцэх төлөв",matchCyclic:"Match cyclic",matchWord:"Тэнцэх бүтэн үг",notFoundMsg:"Хайсан бичвэрийг олсонгүй.",replace:"Орлуулах",replaceAll:"Бүгдийг нь солих",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Солих үг:",title:"Хайж орлуулах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ms.js new file mode 100644 index 00000000..75f96037 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ms",{find:"Cari",findOptions:"Find Options",findWhat:"Perkataan yang dicari:",matchCase:"Padanan case huruf",matchCyclic:"Match cyclic",matchWord:"Padana Keseluruhan perkataan",notFoundMsg:"Text yang dicari tidak dijumpai.",replace:"Ganti",replaceAll:"Ganti semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Diganti dengan:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/nb.js new file mode 100644 index 00000000..6779f499 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nb",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/nl.js new file mode 100644 index 00000000..156a9da5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nl",{find:"Zoeken",findOptions:"Zoekopties",findWhat:"Zoeken naar:",matchCase:"Hoofdlettergevoelig",matchCyclic:"Doorlopend zoeken",matchWord:"Hele woord moet voorkomen",notFoundMsg:"De opgegeven tekst is niet gevonden.",replace:"Vervangen",replaceAll:"Alles vervangen",replaceSuccessMsg:"%1 resultaten vervangen.",replaceWith:"Vervangen met:",title:"Zoeken en vervangen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/no.js new file mode 100644 index 00000000..e098a7c5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","no",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pl.js new file mode 100644 index 00000000..1144fd8b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pl",{find:"Znajdź",findOptions:"Opcje wyszukiwania",findWhat:"Znajdź:",matchCase:"Uwzględnij wielkość liter",matchCyclic:"Cykliczne dopasowanie",matchWord:"Całe słowa",notFoundMsg:"Nie znaleziono szukanego hasła.",replace:"Zamień",replaceAll:"Zamień wszystko",replaceSuccessMsg:"%1 wystąpień zastąpionych.",replaceWith:"Zastąp przez:",title:"Znajdź i zamień"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pt-br.js new file mode 100644 index 00000000..b9e438c8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt-br",{find:"Localizar",findOptions:"Opções",findWhat:"Procurar por:",matchCase:"Coincidir Maiúsculas/Minúsculas",matchCyclic:"Coincidir cíclico",matchWord:"Coincidir a palavra inteira",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 ocorrência(s) substituída(s).",replaceWith:"Substituir por:",title:"Localizar e Substituir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pt.js new file mode 100644 index 00000000..bb8c1a6a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt",{find:"Procurar",findOptions:"Find Options",findWhat:"Texto a Procurar:",matchCase:"Maiúsculas/Minúsculas",matchCyclic:"Match cyclic",matchWord:"Coincidir com toda a palavra",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Substituir por:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ro.js new file mode 100644 index 00000000..7ec8b9d6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ro",{find:"Găseşte",findOptions:"Find Options",findWhat:"Găseşte:",matchCase:"Deosebeşte majuscule de minuscule (Match case)",matchCyclic:"Potrivește ciclic",matchWord:"Doar cuvintele întregi",notFoundMsg:"Textul specificat nu a fost găsit.",replace:"Înlocuieşte",replaceAll:"Înlocuieşte tot",replaceSuccessMsg:"%1 căutări înlocuite.",replaceWith:"Înlocuieşte cu:",title:"Găseşte şi înlocuieşte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ru.js new file mode 100644 index 00000000..b611c271 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ru",{find:"Найти",findOptions:"Опции поиска",findWhat:"Найти:",matchCase:"Учитывать регистр",matchCyclic:"По всему тексту",matchWord:"Только слово целиком",notFoundMsg:"Искомый текст не найден.",replace:"Заменить",replaceAll:"Заменить всё",replaceSuccessMsg:"Успешно заменено %1 раз(а).",replaceWith:"Заменить на:",title:"Поиск и замена"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/si.js new file mode 100644 index 00000000..1e1d1457 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","si",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"හිලව් කිරීම",replaceAll:"සියල්ලම හිලව් කරන්න",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sk.js new file mode 100644 index 00000000..11821e7a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sk",{find:"Hľadať",findOptions:"Nájsť možnosti",findWhat:"Čo hľadať:",matchCase:"Rozlišovať malé a veľké písmená",matchCyclic:"Cykliť zhodu",matchWord:"Len celé slová",notFoundMsg:"Hľadaný text nebol nájdený.",replace:"Nahradiť",replaceAll:"Nahradiť všetko",replaceSuccessMsg:"%1 výskyt(ov) nahradených.",replaceWith:"Čím nahradiť:",title:"Nájsť a nahradiť"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sl.js new file mode 100644 index 00000000..32dea7e3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sl",{find:"Najdi",findOptions:"Find Options",findWhat:"Najdi:",matchCase:"Razlikuj velike in male črke",matchCyclic:"Primerjaj znake v cirilici",matchWord:"Samo cele besede",notFoundMsg:"Navedeno besedilo ni bilo najdeno.",replace:"Zamenjaj",replaceAll:"Zamenjaj vse",replaceSuccessMsg:"%1 pojavitev je bilo zamenjano.",replaceWith:"Zamenjaj z:",title:"Najdi in zamenjaj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sq.js new file mode 100644 index 00000000..ae034f6d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sq",{find:"Gjej",findOptions:"Gjejë Alternativat",findWhat:"Gjej çka:",matchCase:"Rasti i përputhjes",matchCyclic:"Përputh ciklikun",matchWord:"Përputh fjalën e tërë",notFoundMsg:"Teksti i caktuar nuk mundej të gjendet.",replace:"Zëvendëso",replaceAll:"Zëvendëso të gjitha",replaceSuccessMsg:"%1 rast(e) u zëvendësua(n).",replaceWith:"Zëvendëso me:",title:"Gjej dhe Zëvendëso"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sr-latn.js new file mode 100644 index 00000000..40a40064 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr-latn",{find:"Pretraga",findOptions:"Find Options",findWhat:"Pronadi:",matchCase:"Razlikuj mala i velika slova",matchCyclic:"Match cyclic",matchWord:"Uporedi cele reci",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamena",replaceAll:"Zameni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zameni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sr.js new file mode 100644 index 00000000..57ca6296 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr",{find:"Претрага",findOptions:"Find Options",findWhat:"Пронађи:",matchCase:"Разликуј велика и мала слова",matchCyclic:"Match cyclic",matchWord:"Упореди целе речи",notFoundMsg:"Тражени текст није пронађен.",replace:"Замена",replaceAll:"Замени све",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Замени са:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sv.js new file mode 100644 index 00000000..f86c7d28 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sv",{find:"Sök",findOptions:"Sökalternativ",findWhat:"Sök efter:",matchCase:"Skiftläge",matchCyclic:"Matcha cykliska",matchWord:"Inkludera hela ord",notFoundMsg:"Angiven text kunde ej hittas.",replace:"Ersätt",replaceAll:"Ersätt alla",replaceSuccessMsg:"%1 förekomst(er) ersatta.",replaceWith:"Ersätt med:",title:"Sök och ersätt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/th.js new file mode 100644 index 00000000..877ab909 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","th",{find:"ค้นหา",findOptions:"Find Options",findWhat:"ค้นหาคำว่า:",matchCase:"ตัวโหญ่-เล็ก ต้องตรงกัน",matchCyclic:"Match cyclic",matchWord:"ต้องตรงกันทุกคำ",notFoundMsg:"ไม่พบคำที่ค้นหา.",replace:"ค้นหาและแทนที่",replaceAll:"แทนที่ทั้งหมดที่พบ",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"แทนที่ด้วย:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/tr.js new file mode 100644 index 00000000..a0fc4f0a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tr",{find:"Bul",findOptions:"Seçenekleri Bul",findWhat:"Aranan:",matchCase:"Büyük/küçük harf duyarlı",matchCyclic:"Eşleşen döngü",matchWord:"Kelimenin tamamı uysun",notFoundMsg:"Belirtilen yazı bulunamadı.",replace:"Değiştir",replaceAll:"Tümünü Değiştir",replaceSuccessMsg:"%1 bulunanlardan değiştirildi.",replaceWith:"Bununla değiştir:",title:"Bul ve Değiştir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/tt.js new file mode 100644 index 00000000..90a66914 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tt",{find:"Эзләү",findOptions:"Эзләү көйләүләре",findWhat:"Нәрсә эзләргә:",matchCase:"Баш һәм юл хәрефләрен исәпкә алу",matchCyclic:"Кабатлап эзләргә",matchWord:"Сүзләрне тулысынча гына эзләү",notFoundMsg:"Эзләнгән текст табылмады.",replace:"Алмаштыру",replaceAll:"Барысын да алмаштыру",replaceSuccessMsg:"%1 урында(ларда) алмаштырылган.",replaceWith:"Нәрсәгә алмаштыру:",title:"Эзләп табу һәм алмаштыру"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ug.js new file mode 100644 index 00000000..9a3e7542 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ug",{find:"ئىزدە",findOptions:"ئىزدەش تاللانمىسى",findWhat:"ئىزدە:",matchCase:"چوڭ كىچىك ھەرپنى پەرقلەندۈر",matchCyclic:"ئايلانما ماسلىشىش",matchWord:"پۈتۈن سۆز ماسلىشىش",notFoundMsg:"بەلگىلەنگەن تېكىستنى تاپالمىدى",replace:"ئالماشتۇر",replaceAll:"ھەممىنى ئالماشتۇر",replaceSuccessMsg:"جەمئى %1 جايدىكى ئالماشتۇرۇش تاماملاندى",replaceWith:"ئالماشتۇر:",title:"ئىزدەپ ئالماشتۇر"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/uk.js new file mode 100644 index 00000000..12bf2eb6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","uk",{find:"Пошук",findOptions:"Параметри Пошуку",findWhat:"Шукати:",matchCase:"Враховувати регістр",matchCyclic:"Циклічна заміна",matchWord:"Збіг цілих слів",notFoundMsg:"Вказаний текст не знайдено.",replace:"Заміна",replaceAll:"Замінити все",replaceSuccessMsg:"%1 співпадінь(ня) замінено.",replaceWith:"Замінити на:",title:"Знайти і замінити"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/vi.js new file mode 100644 index 00000000..07936d94 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","vi",{find:"Tìm kiếm",findOptions:"Tìm tùy chọn",findWhat:"Tìm chuỗi:",matchCase:"Phân biệt chữ hoa/thường",matchCyclic:"Giống một phần",matchWord:"Giống toàn bộ từ",notFoundMsg:"Không tìm thấy chuỗi cần tìm.",replace:"Thay thế",replaceAll:"Thay thế tất cả",replaceSuccessMsg:"%1 vị trí đã được thay thế.",replaceWith:"Thay bằng:",title:"Tìm kiếm và thay thế"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/zh-cn.js new file mode 100644 index 00000000..746626af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh-cn",{find:"查找",findOptions:"查找选项",findWhat:"查找:",matchCase:"区分大小写",matchCyclic:"循环匹配",matchWord:"全字匹配",notFoundMsg:"指定的文本没有找到。",replace:"替换",replaceAll:"全部替换",replaceSuccessMsg:"共完成 %1 处替换。",replaceWith:"替换:",title:"查找和替换"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/zh.js new file mode 100644 index 00000000..4d6656ae --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh",{find:"尋找",findOptions:"尋找選項",findWhat:"尋找目標:",matchCase:"大小寫須相符",matchCyclic:"循環搜尋",matchWord:"全字拼寫須相符",notFoundMsg:"找不到指定的文字。",replace:"取代",replaceAll:"全部取代",replaceSuccessMsg:"已取代 %1 個指定項目。",replaceWith:"取代成:",title:"尋找及取代"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/find/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/find/plugin.js new file mode 100644 index 00000000..103b530d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/find/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("find",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"find,find-rtl,replace",hidpi:!0,init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&& +(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("replace",this.path+"dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}}; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/dialogs/flash.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/dialogs/flash.js new file mode 100644 index 00000000..6592f8e4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/dialogs/flash.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function b(a,b,c){var k=n[this.id];if(k)for(var f=this instanceof CKEDITOR.ui.dialog.checkbox,e=0;e<k.length;e++){var d=k[e];switch(d.type){case g:if(!a)continue;if(null!==a.getAttribute(d.name)){a=a.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case o:if(!a)continue;if(d.name in c){a=c[d.name];f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case i:if(!b)continue; +if(b.getAttribute(d.name)){a=b.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"])}}}function c(a,b,c){var k=n[this.id];if(k)for(var f=""===this.getValue(),e=this instanceof CKEDITOR.ui.dialog.checkbox,d=0;d<k.length;d++){var h=k[d];switch(h.type){case g:if(!a||"data"==h.name&&b&&!a.hasAttribute("data"))continue;var l=this.getValue();f||e&&l===h["default"]?a.removeAttribute(h.name):a.setAttribute(h.name,l);break;case o:if(!a)continue; +l=this.getValue();if(f||e&&l===h["default"])h.name in c&&c[h.name].remove();else if(h.name in c)c[h.name].setAttribute("value",l);else{var p=CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>",a.getDocument());p.setAttributes({name:h.name,value:l});1>a.getChildCount()?p.appendTo(a):p.insertBefore(a.getFirst())}break;case i:if(!b)continue;l=this.getValue();f||e&&l===h["default"]?b.removeAttribute(h.name):b.setAttribute(h.name,l)}}}for(var g=1,o=2,i=4,n={id:[{type:g,name:"id"}],classid:[{type:g, +name:"classid"}],codebase:[{type:g,name:"codebase"}],pluginspage:[{type:i,name:"pluginspage"}],src:[{type:o,name:"movie"},{type:i,name:"src"},{type:g,name:"data"}],name:[{type:i,name:"name"}],align:[{type:g,name:"align"}],"class":[{type:g,name:"class"},{type:i,name:"class"}],width:[{type:g,name:"width"},{type:i,name:"width"}],height:[{type:g,name:"height"},{type:i,name:"height"}],hSpace:[{type:g,name:"hSpace"},{type:i,name:"hSpace"}],vSpace:[{type:g,name:"vSpace"},{type:i,name:"vSpace"}],style:[{type:g, +name:"style"},{type:i,name:"style"}],type:[{type:i,name:"type"}]},m="play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "),j=0;j<m.length;j++)n[m[j]]=[{type:i,name:m[j]},{type:o,name:m[j]}];m=["play","loop","menu"];for(j=0;j<m.length;j++)n[m[j]][0]["default"]=n[m[j]][1]["default"]=!0;CKEDITOR.dialog.add("flash",function(a){var g=!a.config.flashEmbedTagOnly,i=a.config.flashAddEmbedTag||a.config.flashEmbedTagOnly,k,f="<div>"+CKEDITOR.tools.htmlEncode(a.lang.common.preview)+ +'<br><div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div><div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';return{title:a.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){this.fakeImage=this.objectNode=this.embedNode=null;k=new CKEDITOR.dom.element("embed",a.document);var e=this.getSelectedElement();if(e&&e.data("cke-real-element-type")&&"flash"==e.data("cke-real-element-type")){this.fakeImage= +e;var d=a.restoreRealElement(e),h=null,b=null,c={};if("cke:object"==d.getName()){h=d;d=h.getElementsByTag("embed","cke");0<d.count()&&(b=d.getItem(0));for(var d=h.getElementsByTag("param","cke"),g=0,i=d.count();g<i;g++){var f=d.getItem(g),j=f.getAttribute("name"),f=f.getAttribute("value");c[j]=f}}else"cke:embed"==d.getName()&&(b=d);this.objectNode=h;this.embedNode=b;this.setupContent(h,b,c,e)}},onOk:function(){var e=null,d=null,b=null;if(this.fakeImage)e=this.objectNode,d=this.embedNode;else if(g&& +(e=CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>",a.document),e.setAttributes({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"})),i)d=CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>",a.document),d.setAttributes({type:"application/x-shockwave-flash",pluginspage:"http://www.macromedia.com/go/getflashplayer"}),e&&d.appendTo(e);if(e)for(var b={},c=e.getElementsByTag("param", +"cke"),f=0,j=c.count();f<j;f++)b[c.getItem(f).getAttribute("name")]=c.getItem(f);c={};f={};this.commitContent(e,d,b,c,f);e=a.createFakeElement(e||d,"cke_flash","flash",!0);e.setAttributes(f);e.setStyles(c);this.fakeImage?(e.replace(this.fakeImage),a.getSelection().selectElement(e)):a.insertElement(e)},onHide:function(){this.preview&&this.preview.setHtml("")},contents:[{id:"info",label:a.lang.common.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"], +align:"right",children:[{id:"src",type:"text",label:a.lang.common.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc),setup:b,commit:c,onLoad:function(){var a=this.getDialog(),b=function(b){k.setAttribute("src",b);a.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(k.getAttribute("src"))+'" type="application/x-shockwave-flash"></embed>')};a.preview=a.getContentElement("info","preview").getElement().getChild(3);this.on("change",function(a){a.data&& +a.data.value&&b(a.data.value)});this.getInputElement().on("change",function(){b(this.getValue())},this)}},{type:"button",id:"browse",filebrowser:"info:src",hidden:!0,style:"display:inline-block;margin-top:14px;",label:a.lang.common.browseServer}]}]},{type:"hbox",widths:["25%","25%","25%","25%","25%"],children:[{type:"text",id:"width",requiredContent:"embed[width]",style:"width:95px",label:a.lang.common.width,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1", +a.lang.common.width)),setup:b,commit:c},{type:"text",id:"height",requiredContent:"embed[height]",style:"width:95px",label:a.lang.common.height,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",a.lang.common.height)),setup:b,commit:c},{type:"text",id:"hSpace",requiredContent:"embed[hspace]",style:"width:95px",label:a.lang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace),setup:b,commit:c},{type:"text",id:"vSpace",requiredContent:"embed[vspace]", +style:"width:95px",label:a.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace),setup:b,commit:c}]},{type:"vbox",children:[{type:"html",id:"preview",style:"width:95%;",html:f}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:a.lang.common.upload,elements:[{type:"file",id:"upload",label:a.lang.common.upload,size:38},{type:"fileButton",id:"uploadButton",label:a.lang.common.uploadSubmit,filebrowser:"info:src","for":["Upload","upload"]}]},{id:"properties", +label:a.lang.flash.propertiesTab,elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"scale",type:"select",requiredContent:"embed[scale]",label:a.lang.flash.scale,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.scaleAll,"showall"],[a.lang.flash.scaleNoBorder,"noborder"],[a.lang.flash.scaleFit,"exactfit"]],setup:b,commit:c},{id:"allowScriptAccess",type:"select",requiredContent:"embed[allowscriptaccess]",label:a.lang.flash.access,"default":"",style:"width : 100%;", +items:[[a.lang.common.notSet,""],[a.lang.flash.accessAlways,"always"],[a.lang.flash.accessSameDomain,"samedomain"],[a.lang.flash.accessNever,"never"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"wmode",type:"select",requiredContent:"embed[wmode]",label:a.lang.flash.windowMode,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.windowModeWindow,"window"],[a.lang.flash.windowModeOpaque,"opaque"],[a.lang.flash.windowModeTransparent,"transparent"]], +setup:b,commit:c},{id:"quality",type:"select",requiredContent:"embed[quality]",label:a.lang.flash.quality,"default":"high",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.qualityBest,"best"],[a.lang.flash.qualityHigh,"high"],[a.lang.flash.qualityAutoHigh,"autohigh"],[a.lang.flash.qualityMedium,"medium"],[a.lang.flash.qualityAutoLow,"autolow"],[a.lang.flash.qualityLow,"low"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"align",type:"select",requiredContent:"object[align]", +label:a.lang.common.align,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.flash.alignAbsBottom,"absBottom"],[a.lang.flash.alignAbsMiddle,"absMiddle"],[a.lang.flash.alignBaseline,"baseline"],[a.lang.common.alignBottom,"bottom"],[a.lang.common.alignMiddle,"middle"],[a.lang.common.alignRight,"right"],[a.lang.flash.alignTextTop,"textTop"],[a.lang.common.alignTop,"top"]],setup:b,commit:function(a,b,f,g,i){var j=this.getValue();c.apply(this,arguments); +j&&(i.align=j)}},{type:"html",html:"<div></div>"}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"menu",label:a.lang.flash.chkMenu,"default":!0,setup:b,commit:c},{type:"checkbox",id:"play",label:a.lang.flash.chkPlay,"default":!0,setup:b,commit:c},{type:"checkbox",id:"loop",label:a.lang.flash.chkLoop,"default":!0,setup:b,commit:c},{type:"checkbox",id:"allowFullScreen",label:a.lang.flash.chkFull,"default":!0, +setup:b,commit:c}]}]}]},{id:"advanced",label:a.lang.common.advancedTab,elements:[{type:"hbox",children:[{type:"text",id:"id",requiredContent:"object[id]",label:a.lang.common.id,setup:b,commit:c}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",id:"bgcolor",requiredContent:"embed[bgcolor]",label:a.lang.flash.bgcolor,setup:b,commit:c},{type:"text",id:"class",requiredContent:"embed(cke-xyz)",label:a.lang.common.cssClass,setup:b,commit:c}]},{type:"text",id:"style",requiredContent:"embed{cke-xyz}", +validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),label:a.lang.common.cssStyle,setup:b,commit:c}]}]}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/icons/flash.png b/platforms/android/assets/www/lib/ckeditor/plugins/flash/icons/flash.png new file mode 100644 index 00000000..df7b1c60 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/flash/icons/flash.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png b/platforms/android/assets/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png new file mode 100644 index 00000000..7ad0e388 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/images/placeholder.png b/platforms/android/assets/www/lib/ckeditor/plugins/flash/images/placeholder.png new file mode 100644 index 00000000..0bc6caa7 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/flash/images/placeholder.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/af.js new file mode 100644 index 00000000..9ee64f1f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","af",{access:"Skrip toegang",accessAlways:"Altyd",accessNever:"Nooit",accessSameDomain:"Selfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-middel",alignBaseline:"Basislyn",alignTextTop:"Teks bo",bgcolor:"Agtergrondkleur",chkFull:"Laat volledige skerm toe",chkLoop:"Herhaal",chkMenu:"Flash spyskaart aan",chkPlay:"Speel outomaties",flashvars:"Veranderlikes vir Flash",hSpace:"HSpasie",properties:"Flash eienskappe",propertiesTab:"Eienskappe",quality:"Kwaliteit", +qualityAutoHigh:"Outomaties hoog",qualityAutoLow:"Outomaties laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Skaal",scaleAll:"Wys alles",scaleFit:"Presiese pas",scaleNoBorder:"Geen rand",title:"Flash eienskappe",vSpace:"VSpasie",validateHSpace:"HSpasie moet 'n heelgetal wees.",validateSrc:"Voeg die URL in",validateVSpace:"VSpasie moet 'n heelgetal wees.",windowMode:"Venster modus",windowModeOpaque:"Ondeursigtig",windowModeTransparent:"Deursigtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ar.js new file mode 100644 index 00000000..5b89e5b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ar",{access:"دخول النص البرمجي",accessAlways:"دائماً",accessNever:"مطلقاً",accessSameDomain:"نفس النطاق",alignAbsBottom:"أسفل النص",alignAbsMiddle:"وسط السطر",alignBaseline:"على السطر",alignTextTop:"أعلى النص",bgcolor:"لون الخلفية",chkFull:"ملء الشاشة",chkLoop:"تكرار",chkMenu:"تمكين قائمة فيلم الفلاش",chkPlay:"تشغيل تلقائي",flashvars:"متغيرات الفلاش",hSpace:"تباعد أفقي",properties:"خصائص الفلاش",propertiesTab:"الخصائص",quality:"جودة",qualityAutoHigh:"عالية تلقائياً", +qualityAutoLow:"منخفضة تلقائياً",qualityBest:"أفضل",qualityHigh:"عالية",qualityLow:"منخفضة",qualityMedium:"متوسطة",scale:"الحجم",scaleAll:"إظهار الكل",scaleFit:"ضبط تام",scaleNoBorder:"بلا حدود",title:"خصائص فيلم الفلاش",vSpace:"تباعد عمودي",validateHSpace:"HSpace يجب أن يكون عدداً.",validateSrc:"فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",validateVSpace:"VSpace يجب أن يكون عدداً.",windowMode:"وضع النافذة",windowModeOpaque:"غير شفاف",windowModeTransparent:"شفاف",windowModeWindow:"نافذة"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bg.js new file mode 100644 index 00000000..a60e86c5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","bg",{access:"Достъп до скрипт",accessAlways:"Винаги",accessNever:"Никога",accessSameDomain:"Същият домейн",alignAbsBottom:"Най-долу",alignAbsMiddle:"Точно по средата",alignBaseline:"Базова линия",alignTextTop:"Върху текста",bgcolor:"Цвят на фона",chkFull:"Включи на цял екран",chkLoop:"Цикъл",chkMenu:"Разрешено Flash меню",chkPlay:"Авто. пускане",flashvars:"Променливи за Флаш",hSpace:"Хоризонтален отстъп",properties:"Настройки за флаш",propertiesTab:"Настройки",quality:"Качество", +qualityAutoHigh:"Авто. високо",qualityAutoLow:"Авто. ниско",qualityBest:"Отлично",qualityHigh:"Високо",qualityLow:"Ниско",qualityMedium:"Средно",scale:"Оразмеряване",scaleAll:"Показва всичко",scaleFit:"Според мястото",scaleNoBorder:"Без рамка",title:"Настройки за флаш",vSpace:"Вертикален отстъп",validateHSpace:"HSpace трябва да е число.",validateSrc:"Уеб адреса не трябва да е празен.",validateVSpace:"VSpace трябва да е число.",windowMode:"Режим на прозореца",windowModeOpaque:"Плътност",windowModeTransparent:"Прозрачност", +windowModeWindow:"Прозорец"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bn.js new file mode 100644 index 00000000..2eed56b1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs নীচে",alignAbsMiddle:"Abs উপর",alignBaseline:"মূল রেখা",alignTextTop:"টেক্সট উপর",bgcolor:"বেকগ্রাউন্ড রং",chkFull:"Allow Fullscreen",chkLoop:"লূপ",chkMenu:"ফ্ল্যাশ মেনু এনাবল কর",chkPlay:"অটো প্লে",flashvars:"Variables for Flash",hSpace:"হরাইজন্টাল স্পেস",properties:"ফ্লাশ প্রোপার্টি",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"স্কেল",scaleAll:"সব দেখাও",scaleFit:"নিখুঁত ফিট",scaleNoBorder:"কোনো বর্ডার নেই",title:"ফ্ল্যাশ প্রোপার্টি",vSpace:"ভার্টিকেল স্পেস",validateHSpace:"HSpace must be a number.",validateSrc:"অনুগ্রহ করে URL লিংক টাইপ করুন",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bs.js new file mode 100644 index 00000000..4d5f4b4b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bs",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Molimo ukucajte URL link",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ca.js new file mode 100644 index 00000000..c1e16027 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ca",{access:"Accés a scripts",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"El mateix domini",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Superior",bgcolor:"Color de Fons",chkFull:"Permetre la pantalla completa",chkLoop:"Bucle",chkMenu:"Habilita menú Flash",chkPlay:"Reprodució automàtica",flashvars:"Variables de Flash",hSpace:"Espaiat horitzontal",properties:"Propietats del Flash",propertiesTab:"Propietats", +quality:"Qualitat",qualityAutoHigh:"Alta automàtica",qualityAutoLow:"Baixa automàtica",qualityBest:"La millor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Mitjana",scale:"Escala",scaleAll:"Mostra-ho tot",scaleFit:"Mida exacta",scaleNoBorder:"Sense vores",title:"Propietats del Flash",vSpace:"Espaiat vertical",validateHSpace:"L'espaiat horitzontal ha de ser un número.",validateSrc:"La URL no pot estar buida.",validateVSpace:"L'espaiat vertical ha de ser un número.",windowMode:"Mode de la finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparent",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/cs.js new file mode 100644 index 00000000..51087ed4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","cs",{access:"Přístup ke skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Ve stejné doméně",alignAbsBottom:"Zcela dolů",alignAbsMiddle:"Doprostřed",alignBaseline:"Na účaří",alignTextTop:"Na horní okraj textu",bgcolor:"Barva pozadí",chkFull:"Povolit celoobrazovkový režim",chkLoop:"Opakování",chkMenu:"Nabídka Flash",chkPlay:"Automatické spuštění",flashvars:"Proměnné pro Flash",hSpace:"Horizontální mezera",properties:"Vlastnosti Flashe",propertiesTab:"Vlastnosti", +quality:"Kvalita",qualityAutoHigh:"Vysoká - auto",qualityAutoLow:"Nízká - auto",qualityBest:"Nejlepší",qualityHigh:"Vysoká",qualityLow:"Nejnižší",qualityMedium:"Střední",scale:"Zobrazit",scaleAll:"Zobrazit vše",scaleFit:"Přizpůsobit",scaleNoBorder:"Bez okraje",title:"Vlastnosti Flashe",vSpace:"Vertikální mezera",validateHSpace:"Zadaná horizontální mezera musí být číslo.",validateSrc:"Zadejte prosím URL odkazu",validateVSpace:"Zadaná vertikální mezera musí být číslo.",windowMode:"Režim okna",windowModeOpaque:"Neprůhledné", +windowModeTransparent:"Průhledné",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/cy.js new file mode 100644 index 00000000..b6ae1ef3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","cy",{access:"Mynediad Sgript",accessAlways:"Pob amser",accessNever:"Byth",accessSameDomain:"R'un parth",alignAbsBottom:"Gwaelod Abs",alignAbsMiddle:"Canol Abs",alignBaseline:"Baslinell",alignTextTop:"Testun Top",bgcolor:"Lliw cefndir",chkFull:"Caniatàu Sgrin Llawn",chkLoop:"Lwpio",chkMenu:"Galluogi Dewislen Flash",chkPlay:"AwtoChwarae",flashvars:"Newidynnau ar gyfer Flash",hSpace:"BwlchLl",properties:"Priodweddau Flash",propertiesTab:"Priodweddau",quality:"Ansawdd", +qualityAutoHigh:"Uchel Awto",qualityAutoLow:"Isel Awto",qualityBest:"Gorau",qualityHigh:"Uchel",qualityLow:"Isel",qualityMedium:"Canolig",scale:"Graddfa",scaleAll:"Dangos pob",scaleFit:"Ffit Union",scaleNoBorder:"Dim Ymyl",title:"Priodweddau Flash",vSpace:"BwlchF",validateHSpace:"Rhaid i'r BwlchLl fod yn rhif.",validateSrc:"Ni all yr URL fod yn wag.",validateVSpace:"Rhaid i'r BwlchF fod yn rhif.",windowMode:"Modd ffenestr",windowModeOpaque:"Afloyw",windowModeTransparent:"Tryloyw",windowModeWindow:"Ffenestr"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/da.js new file mode 100644 index 00000000..a55294d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","da",{access:"Scriptadgang",accessAlways:"Altid",accessNever:"Aldrig",accessSameDomain:"Samme domæne",alignAbsBottom:"Absolut nederst",alignAbsMiddle:"Absolut centreret",alignBaseline:"Grundlinje",alignTextTop:"Toppen af teksten",bgcolor:"Baggrundsfarve",chkFull:"Tillad fuldskærm",chkLoop:"Gentagelse",chkMenu:"Vis Flash-menu",chkPlay:"Automatisk afspilning",flashvars:"Variabler for Flash",hSpace:"Vandret margen",properties:"Egenskaber for Flash",propertiesTab:"Egenskaber", +quality:"Kvalitet",qualityAutoHigh:"Auto høj",qualityAutoLow:"Auto lav",qualityBest:"Bedste",qualityHigh:"Høj",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skalér",scaleAll:"Vis alt",scaleFit:"Tilpas størrelse",scaleNoBorder:"Ingen ramme",title:"Egenskaber for Flash",vSpace:"Lodret margen",validateHSpace:"Vandret margen skal være et tal.",validateSrc:"Indtast hyperlink URL!",validateVSpace:"Lodret margen skal være et tal.",windowMode:"Vinduestilstand",windowModeOpaque:"Gennemsigtig (opaque)",windowModeTransparent:"Transparent", +windowModeWindow:"Vindue"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/de.js new file mode 100644 index 00000000..44d7237a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","de",{access:"Skript Zugang",accessAlways:"Immer",accessNever:"Nie",accessSameDomain:"Gleiche Domain",alignAbsBottom:"Abs Unten",alignAbsMiddle:"Abs Mitte",alignBaseline:"Baseline",alignTextTop:"Text Oben",bgcolor:"Hintergrundfarbe",chkFull:"Vollbildmodus erlauben",chkLoop:"Endlosschleife",chkMenu:"Flash-Menü aktivieren",chkPlay:"Automatisch Abspielen",flashvars:"Variablen für Flash",hSpace:"Horizontal-Abstand",properties:"Flash-Eigenschaften",propertiesTab:"Eigenschaften", +quality:"Qualität",qualityAutoHigh:"Auto Hoch",qualityAutoLow:"Auto Niedrig",qualityBest:"Beste",qualityHigh:"Hoch",qualityLow:"Niedrig",qualityMedium:"Medium",scale:"Skalierung",scaleAll:"Alles anzeigen",scaleFit:"Passgenau",scaleNoBorder:"Ohne Rand",title:"Flash-Eigenschaften",vSpace:"Vertikal-Abstand",validateHSpace:"HSpace muss eine Zahl sein.",validateSrc:"Bitte geben Sie die Link-URL an",validateVSpace:"VSpace muss eine Zahl sein.",windowMode:"Fenster Modus",windowModeOpaque:"Deckend",windowModeTransparent:"Transparent", +windowModeWindow:"Fenster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/el.js new file mode 100644 index 00000000..4904d1b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","el",{access:"Πρόσβαση Script",accessAlways:"Πάντα",accessNever:"Ποτέ",accessSameDomain:"Ίδιο όνομα τομέα",alignAbsBottom:"Απόλυτα Κάτω",alignAbsMiddle:"Απόλυτα στη Μέση",alignBaseline:"Γραμμή Βάσης",alignTextTop:"Κορυφή Κειμένου",bgcolor:"Χρώμα Υποβάθρου",chkFull:"Να Επιτρέπεται η Προβολή σε Πλήρη Οθόνη",chkLoop:"Επανάληψη",chkMenu:"Ενεργοποίηση Flash Menu",chkPlay:"Αυτόματη Εκτέλεση",flashvars:"Μεταβλητές για Flash",hSpace:"Οριζόντιο Διάστημα",properties:"Ιδιότητες Flash", +propertiesTab:"Ιδιότητες",quality:"Ποιότητα",qualityAutoHigh:"Αυτόματη Υψηλή",qualityAutoLow:"Αυτόματη Χαμηλή",qualityBest:"Καλύτερη",qualityHigh:"Υψηλή",qualityLow:"Χαμηλή",qualityMedium:"Μεσαία",scale:"Μεγέθυνση",scaleAll:"Εμφάνιση όλων",scaleFit:"Ακριβές Μέγεθος",scaleNoBorder:"Χωρίς Περίγραμμα",title:"Ιδιότητες Flash",vSpace:"Κάθετο Διάστημα",validateHSpace:"Το HSpace πρέπει να είναι αριθμός.",validateSrc:"Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",validateVSpace:"Το VSpace πρέπει να είναι αριθμός.", +windowMode:"Τρόπος λειτουργίας παραθύρου",windowModeOpaque:"Συμπαγές",windowModeTransparent:"Διάφανο",windowModeWindow:"Παράθυρο"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-au.js new file mode 100644 index 00000000..e066c740 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-au",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-ca.js new file mode 100644 index 00000000..9c6fdc4a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-ca",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-gb.js new file mode 100644 index 00000000..ccbc28af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-gb",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en.js new file mode 100644 index 00000000..13380310 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/eo.js new file mode 100644 index 00000000..30218bc1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eo",{access:"Atingi skriptojn",accessAlways:"Ĉiam",accessNever:"Neniam",accessSameDomain:"Sama domajno",alignAbsBottom:"Absoluta Malsupro",alignAbsMiddle:"Absoluta Centro",alignBaseline:"TekstoMalsupro",alignTextTop:"TekstoSupro",bgcolor:"Fona Koloro",chkFull:"Permesi tutekranon",chkLoop:"Iteracio",chkMenu:"Ebligi flaŝmenuon",chkPlay:"Aŭtomata legado",flashvars:"Variabloj por Flaŝo",hSpace:"Horizontala Spaco",properties:"Flaŝatributoj",propertiesTab:"Atributoj",quality:"Kvalito", +qualityAutoHigh:"Aŭtomate alta",qualityAutoLow:"Aŭtomate malalta",qualityBest:"Plej bona",qualityHigh:"Alta",qualityLow:"Malalta",qualityMedium:"Meza",scale:"Skalo",scaleAll:"Montri ĉion",scaleFit:"Origina grando",scaleNoBorder:"Neniu bordero",title:"Flaŝatributoj",vSpace:"Vertikala Spaco",validateHSpace:"Horizontala Spaco devas esti nombro.",validateSrc:"Bonvolu entajpi la retadreson (URL)",validateVSpace:"Vertikala Spaco devas esti nombro.",windowMode:"Fenestra reĝimo",windowModeOpaque:"Opaka", +windowModeTransparent:"Travidebla",windowModeWindow:"Fenestro"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/es.js new file mode 100644 index 00000000..296239e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","es",{access:"Acceso de scripts",accessAlways:"Siempre",accessNever:"Nunca",accessSameDomain:"Mismo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Línea de base",alignTextTop:"Tope del texto",bgcolor:"Color de Fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar Menú Flash",chkPlay:"Autoejecución",flashvars:"Opciones",hSpace:"Esp.Horiz",properties:"Propiedades de Flash",propertiesTab:"Propiedades",quality:"Calidad", +qualityAutoHigh:"Auto Alta",qualityAutoLow:"Auto Baja",qualityBest:"La mejor",qualityHigh:"Alta",qualityLow:"Baja",qualityMedium:"Media",scale:"Escala",scaleAll:"Mostrar todo",scaleFit:"Ajustado",scaleNoBorder:"Sin Borde",title:"Propiedades de Flash",vSpace:"Esp.Vert",validateHSpace:"Esp.Horiz debe ser un número.",validateSrc:"Por favor escriba el vínculo URL",validateVSpace:"Esp.Vert debe ser un número.",windowMode:"WindowMode",windowModeOpaque:"Opaco",windowModeTransparent:"Transparente",windowModeWindow:"Ventana"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/et.js new file mode 100644 index 00000000..9ac2b3cd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","et",{access:"Skriptide ligipääs",accessAlways:"Kõigile",accessNever:"Mitte ühelegi",accessSameDomain:"Samalt domeenilt",alignAbsBottom:"Abs alla",alignAbsMiddle:"Abs keskele",alignBaseline:"Baasjoonele",alignTextTop:"Tekstist üles",bgcolor:"Tausta värv",chkFull:"Täisekraan lubatud",chkLoop:"Korduv",chkMenu:"Flashi menüü lubatud",chkPlay:"Automaatne start ",flashvars:"Flashi muutujad",hSpace:"H. vaheruum",properties:"Flashi omadused",propertiesTab:"Omadused",quality:"Kvaliteet", +qualityAutoHigh:"Automaatne kõrge",qualityAutoLow:"Automaatne madal",qualityBest:"Parim",qualityHigh:"Kõrge",qualityLow:"Madal",qualityMedium:"Keskmine",scale:"Mastaap",scaleAll:"Näidatakse kõike",scaleFit:"Täpne sobivus",scaleNoBorder:"Äärist ei ole",title:"Flashi omadused",vSpace:"V. vaheruum",validateHSpace:"H. vaheruum peab olema number.",validateSrc:"Palun kirjuta lingi URL",validateVSpace:"V. vaheruum peab olema number.",windowMode:"Akna režiim",windowModeOpaque:"Läbipaistmatu",windowModeTransparent:"Läbipaistev", +windowModeWindow:"Aken"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/eu.js new file mode 100644 index 00000000..5cf12025 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eu",{access:"Scriptak baimendu",accessAlways:"Beti",accessNever:"Inoiz ere ez",accessSameDomain:"Domeinu berdinekoak",alignAbsBottom:"Abs Behean",alignAbsMiddle:"Abs Erdian",alignBaseline:"Oinan",alignTextTop:"Testua Goian",bgcolor:"Atzeko kolorea",chkFull:"Onartu Pantaila osoa",chkLoop:"Begizta",chkMenu:"Flasharen Menua Gaitu",chkPlay:"Automatikoki Erreproduzitu",flashvars:"Flash Aldagaiak",hSpace:"HSpace",properties:"Flasharen Ezaugarriak",propertiesTab:"Ezaugarriak", +quality:"Kalitatea",qualityAutoHigh:"Auto Altua",qualityAutoLow:"Auto Baxua",qualityBest:"Hoberena",qualityHigh:"Altua",qualityLow:"Baxua",qualityMedium:"Ertaina",scale:"Eskalatu",scaleAll:"Dena erakutsi",scaleFit:"Doitu",scaleNoBorder:"Ertzik gabe",title:"Flasharen Ezaugarriak",vSpace:"VSpace",validateHSpace:"HSpace zenbaki bat izan behar da.",validateSrc:"Mesedez URL esteka idatzi",validateVSpace:"VSpace zenbaki bat izan behar da.",windowMode:"Leihoaren modua",windowModeOpaque:"Opakoa",windowModeTransparent:"Gardena", +windowModeWindow:"Leihoa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fa.js new file mode 100644 index 00000000..ac4a6092 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","fa",{access:"دسترسی به اسکریپت",accessAlways:"همیشه",accessNever:"هرگز",accessSameDomain:"همان دامنه",alignAbsBottom:"پائین مطلق",alignAbsMiddle:"وسط مطلق",alignBaseline:"خط پایه",alignTextTop:"متن بالا",bgcolor:"رنگ پس​زمینه",chkFull:"اجازه تمام صفحه",chkLoop:"اجرای پیاپی",chkMenu:"در دسترس بودن منوی فلش",chkPlay:"آغاز خودکار",flashvars:"مقادیر برای فلش",hSpace:"فاصلهٴ افقی",properties:"ویژگی​های فلش",propertiesTab:"ویژگی​ها",quality:"کیفیت",qualityAutoHigh:"بالا - خودکار", +qualityAutoLow:"پایین - خودکار",qualityBest:"بهترین",qualityHigh:"بالا",qualityLow:"پایین",qualityMedium:"متوسط",scale:"مقیاس",scaleAll:"نمایش همه",scaleFit:"جایگیری کامل",scaleNoBorder:"بدون کران",title:"ویژگی​های فلش",vSpace:"فاصلهٴ عمودی",validateHSpace:"مقدار فاصله گذاری افقی باید یک عدد باشد.",validateSrc:"لطفا URL پیوند را بنویسید",validateVSpace:"مقدار فاصله گذاری عمودی باید یک عدد باشد.",windowMode:"حالت پنجره",windowModeOpaque:"مات",windowModeTransparent:"شفاف",windowModeWindow:"پنجره"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fi.js new file mode 100644 index 00000000..c40fe43d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fi",{access:"Skriptien pääsy",accessAlways:"Aina",accessNever:"Ei koskaan",accessSameDomain:"Sama verkkotunnus",alignAbsBottom:"Aivan alas",alignAbsMiddle:"Aivan keskelle",alignBaseline:"Alas (teksti)",alignTextTop:"Ylös (teksti)",bgcolor:"Taustaväri",chkFull:"Salli kokoruututila",chkLoop:"Toisto",chkMenu:"Näytä Flash-valikko",chkPlay:"Automaattinen käynnistys",flashvars:"Muuttujat Flash:lle",hSpace:"Vaakatila",properties:"Flash-ominaisuudet",propertiesTab:"Ominaisuudet", +quality:"Laatu",qualityAutoHigh:"Automaattinen korkea",qualityAutoLow:"Automaattinen matala",qualityBest:"Paras",qualityHigh:"Korkea",qualityLow:"Matala",qualityMedium:"Keskitaso",scale:"Levitä",scaleAll:"Näytä kaikki",scaleFit:"Tarkka koko",scaleNoBorder:"Ei rajaa",title:"Flash ominaisuudet",vSpace:"Pystytila",validateHSpace:"Vaakatilan täytyy olla numero.",validateSrc:"Linkille on kirjoitettava URL",validateVSpace:"Pystytilan täytyy olla numero.",windowMode:"Ikkuna tila",windowModeOpaque:"Läpinäkyvyys", +windowModeTransparent:"Läpinäkyvä",windowModeWindow:"Ikkuna"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fo.js new file mode 100644 index 00000000..d02410a1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fo",{access:"Script atgongd",accessAlways:"Altíð",accessNever:"Ongantíð",accessSameDomain:"Sama navnaøki",alignAbsBottom:"Abs botnur",alignAbsMiddle:"Abs miðja",alignBaseline:"Basislinja",alignTextTop:"Tekst toppur",bgcolor:"Bakgrundslitur",chkFull:"Loyv fullan skerm",chkLoop:"Endurspæl",chkMenu:"Ger Flash skrá virkna",chkPlay:"Avspælingin byrjar sjálv",flashvars:"Variablar fyri Flash",hSpace:"Høgri breddi",properties:"Flash eginleikar",propertiesTab:"Eginleikar", +quality:"Góðska",qualityAutoHigh:"Auto høg",qualityAutoLow:"Auto Lág",qualityBest:"Besta",qualityHigh:"Høg",qualityLow:"Lág",qualityMedium:"Meðal",scale:"Skalering",scaleAll:"Vís alt",scaleFit:"Neyv skalering",scaleNoBorder:"Eingin bordi",title:"Flash eginleikar",vSpace:"Vinstri breddi",validateHSpace:"HSpace má vera eitt tal.",validateSrc:"Vinarliga skriva tilknýti (URL)",validateVSpace:"VSpace má vera eitt tal.",windowMode:"Slag av rúti",windowModeOpaque:"Ikki transparent",windowModeTransparent:"Transparent", +windowModeWindow:"Rútur"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fr-ca.js new file mode 100644 index 00000000..8218f119 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr-ca",{access:"Accès au script",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur de fond",chkFull:"Permettre le plein-écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Lecture automatique",flashvars:"Variables pour Flash",hSpace:"Espacement horizontal",properties:"Propriétés de l'animation Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute auto",qualityAutoLow:"Basse auto",qualityBest:"Meilleur",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Échelle",scaleAll:"Afficher tout",scaleFit:"Ajuster aux dimensions",scaleNoBorder:"Sans bordure",title:"Propriétés de l'animation Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un entier.",validateSrc:"Veuillez saisir l'URL",validateVSpace:"L'espacement vertical doit être un entier.", +windowMode:"Mode de fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fr.js new file mode 100644 index 00000000..fdc543c6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr",{access:"Accès aux scripts",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur d'arrière-plan",chkFull:"Permettre le plein écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Jouer automatiquement",flashvars:"Variables du Flash",hSpace:"Espacement horizontal",properties:"Propriétés du Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute Auto",qualityAutoLow:"Basse Auto",qualityBest:"Meilleure",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Echelle",scaleAll:"Afficher tout",scaleFit:"Taille d'origine",scaleNoBorder:"Pas de bordure",title:"Propriétés du Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un nombre.",validateSrc:"L'adresse ne doit pas être vide.",validateVSpace:"L'espacement vertical doit être un nombre.", +windowMode:"Mode fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/gl.js new file mode 100644 index 00000000..38e85081 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","gl",{access:"Acceso de scripts",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs Inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Liña de base",alignTextTop:"Tope do texto",bgcolor:"Cor do fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar o menú do «Flash»",chkPlay:"Reprodución auomática",flashvars:"Opcións do «Flash»",hSpace:"Esp. Horiz.",properties:"Propiedades do «Flash»",propertiesTab:"Propiedades", +quality:"Calidade",qualityAutoHigh:"Alta, automática",qualityAutoLow:"Baixa, automática",qualityBest:"A mellor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Media",scale:"Escalar",scaleAll:"Amosar todo",scaleFit:"Encaixar axustando",scaleNoBorder:"Sen bordo",title:"Propiedades do «Flash»",vSpace:"Esp.Vert.",validateHSpace:"O espazado horizontal debe ser un número.",validateSrc:"O URL non pode estar baleiro.",validateVSpace:"O espazado vertical debe ser un número.",windowMode:"Modo da xanela", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Xanela"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/gu.js new file mode 100644 index 00000000..601bb61c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","gu",{access:"સ્ક્રીપ્ટ એક્સેસ",accessAlways:"હમેશાં",accessNever:"નહી",accessSameDomain:"એજ ડોમેન",alignAbsBottom:"Abs નીચે",alignAbsMiddle:"Abs ઉપર",alignBaseline:"આધાર લીટી",alignTextTop:"ટેક્સ્ટ ઉપર",bgcolor:"બૅકગ્રાઉન્ડ રંગ,",chkFull:"ફૂલ સ્ક્રીન કરવું",chkLoop:"લૂપ",chkMenu:"ફ્લૅશ મેન્યૂ નો પ્રયોગ કરો",chkPlay:"ઑટો/સ્વયં પ્લે",flashvars:"ફલેશ ના વિકલ્પો",hSpace:"સમસ્તરીય જગ્યા",properties:"ફ્લૅશના ગુણ",propertiesTab:"ગુણ",quality:"ગુણધર્મ",qualityAutoHigh:"ઓટો ઊંચું", +qualityAutoLow:"ઓટો નીચું",qualityBest:"શ્રેષ્ઠ",qualityHigh:"ઊંચું",qualityLow:"નીચું",qualityMedium:"મધ્યમ",scale:"સ્કેલ",scaleAll:"સ્કેલ ઓલ/બધુ બતાવો",scaleFit:"સ્કેલ એકદમ ફીટ",scaleNoBorder:"સ્કેલ બોર્ડર વગર",title:"ફ્લૅશ ગુણ",vSpace:"લંબરૂપ જગ્યા",validateHSpace:"HSpace આંકડો હોવો જોઈએ.",validateSrc:"લિંક URL ટાઇપ કરો",validateVSpace:"VSpace આંકડો હોવો જોઈએ.",windowMode:"વિન્ડો મોડ",windowModeOpaque:"અપારદર્શક",windowModeTransparent:"પારદર્શક",windowModeWindow:"વિન્ડો"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/he.js new file mode 100644 index 00000000..6870ea2a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","he",{access:"גישת סקריפט",accessAlways:"תמיד",accessNever:"אף פעם",accessSameDomain:"דומיין זהה",alignAbsBottom:"לתחתית האבסולוטית",alignAbsMiddle:"מרכוז אבסולוטי",alignBaseline:"לקו התחתית",alignTextTop:"לראש הטקסט",bgcolor:"צבע רקע",chkFull:"אפשר חלון מלא",chkLoop:"לולאה",chkMenu:"אפשר תפריט פלאש",chkPlay:"ניגון אוטומטי",flashvars:"משתנים לפלאש",hSpace:"מרווח אופקי",properties:"מאפייני פלאש",propertiesTab:"מאפיינים",quality:"איכות",qualityAutoHigh:"גבוהה אוטומטית", +qualityAutoLow:"נמוכה אוטומטית",qualityBest:"מעולה",qualityHigh:"גבוהה",qualityLow:"נמוכה",qualityMedium:"ממוצעת",scale:"גודל",scaleAll:"הצג הכל",scaleFit:"התאמה מושלמת",scaleNoBorder:"ללא גבולות",title:"מאפיני פלאש",vSpace:"מרווח אנכי",validateHSpace:"המרווח האופקי חייב להיות מספר.",validateSrc:"יש להקליד את כתובת סרטון הפלאש (URL)",validateVSpace:"המרווח האנכי חייב להיות מספר.",windowMode:"מצב חלון",windowModeOpaque:"אטום",windowModeTransparent:"שקוף",windowModeWindow:"חלון"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hi.js new file mode 100644 index 00000000..2f3b6e99 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hi",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs नीचे",alignAbsMiddle:"Abs ऊपर",alignBaseline:"मूल रेखा",alignTextTop:"टेक्स्ट ऊपर",bgcolor:"बैक्ग्राउन्ड रंग",chkFull:"Allow Fullscreen",chkLoop:"लूप",chkMenu:"फ़्लैश मॅन्यू का प्रयोग करें",chkPlay:"ऑटो प्ले",flashvars:"Variables for Flash",hSpace:"हॉरिज़ॉन्टल स्पेस",properties:"फ़्लैश प्रॉपर्टीज़",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"स्केल",scaleAll:"सभी दिखायें",scaleFit:"बिल्कुल फ़िट",scaleNoBorder:"कोई बॉर्डर नहीं",title:"फ़्लैश प्रॉपर्टीज़",vSpace:"वर्टिकल स्पेस",validateHSpace:"HSpace must be a number.",validateSrc:"लिंक URL टाइप करें",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hr.js new file mode 100644 index 00000000..ae7c82f4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hr",{access:"Script Access",accessAlways:"Uvijek",accessNever:"Nikad",accessSameDomain:"Ista domena",alignAbsBottom:"Abs dolje",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Omogući Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Omogući Flash izbornik",chkPlay:"Auto Play",flashvars:"Varijable za Flash",hSpace:"HSpace",properties:"Flash svojstva",propertiesTab:"Svojstva",quality:"Kvaliteta",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Omjer",scaleAll:"Prikaži sve",scaleFit:"Točna veličina",scaleNoBorder:"Bez okvira",title:"Flash svojstva",vSpace:"VSpace",validateHSpace:"HSpace mora biti broj.",validateSrc:"Molimo upišite URL link",validateVSpace:"VSpace mora biti broj.",windowMode:"Vrsta prozora",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hu.js new file mode 100644 index 00000000..92620909 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","hu",{access:"Szkript hozzáférés",accessAlways:"Mindig",accessNever:"Soha",accessSameDomain:"Azonos domainről",alignAbsBottom:"Legaljára",alignAbsMiddle:"Közepére",alignBaseline:"Alapvonalhoz",alignTextTop:"Szöveg tetejére",bgcolor:"Háttérszín",chkFull:"Teljes képernyő engedélyezése",chkLoop:"Folyamatosan",chkMenu:"Flash menü engedélyezése",chkPlay:"Automata lejátszás",flashvars:"Flash változók",hSpace:"Vízsz. táv",properties:"Flash tulajdonságai",propertiesTab:"Tulajdonságok", +quality:"Minőség",qualityAutoHigh:"Automata jó",qualityAutoLow:"Automata gyenge",qualityBest:"Legjobb",qualityHigh:"Jó",qualityLow:"Gyenge",qualityMedium:"Közepes",scale:"Méretezés",scaleAll:"Mindent mutat",scaleFit:"Teljes kitöltés",scaleNoBorder:"Keret nélkül",title:"Flash tulajdonságai",vSpace:"Függ. táv",validateHSpace:"A vízszintes távolsűág mezőbe csak számokat írhat.",validateSrc:"Adja meg a hivatkozás webcímét",validateVSpace:"A függőleges távolsűág mezőbe csak számokat írhat.",windowMode:"Ablak mód", +windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/id.js new file mode 100644 index 00000000..9272c08d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","id",{access:"Script Access",accessAlways:"Selalu",accessNever:"Tidak Pernah",accessSameDomain:"Domain yang sama",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Dasar",alignTextTop:"Text Top",bgcolor:"Warna Latar Belakang",chkFull:"Izinkan Layar Penuh",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Mainkan Otomatis",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properti",quality:"Kualitas", +qualityAutoHigh:"Tinggi Otomatis",qualityAutoLow:"Rendah Otomatis",qualityBest:"Terbaik",qualityHigh:"Tinggi",qualityLow:"Rendah",qualityMedium:"Sedang",scale:"Scale",scaleAll:"Perlihatkan semua",scaleFit:"Exact Fit",scaleNoBorder:"Tanpa Batas",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace harus sebuah angka",validateSrc:"URL tidak boleh kosong",validateVSpace:"VSpace harus sebuah angka",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparan",windowModeWindow:"Jendela"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/is.js new file mode 100644 index 00000000..0b0d71b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","is",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs neðst",alignAbsMiddle:"Abs miðjuð",alignBaseline:"Grunnlína",alignTextTop:"Efri brún texta",bgcolor:"Bakgrunnslitur",chkFull:"Allow Fullscreen",chkLoop:"Endurtekning",chkMenu:"Sýna Flash-valmynd",chkPlay:"Sjálfvirk spilun",flashvars:"Variables for Flash",hSpace:"Vinstri bil",properties:"Eigindi Flash",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skali",scaleAll:"Sýna allt",scaleFit:"Fella skala að stærð",scaleNoBorder:"Án ramma",title:"Eigindi Flash",vSpace:"Hægri bil",validateHSpace:"HSpace must be a number.",validateSrc:"Sláðu inn veffang stiklunnar!",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/it.js new file mode 100644 index 00000000..7c5e09f4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","it",{access:"Accesso Script",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"Solo stesso dominio",alignAbsBottom:"In basso assoluto",alignAbsMiddle:"Centrato assoluto",alignBaseline:"Linea base",alignTextTop:"In alto al testo",bgcolor:"Colore sfondo",chkFull:"Permetti la modalità tutto schermo",chkLoop:"Riavvio automatico",chkMenu:"Abilita Menu di Flash",chkPlay:"Avvio Automatico",flashvars:"Variabili per Flash",hSpace:"HSpace",properties:"Proprietà Oggetto Flash", +propertiesTab:"Proprietà",quality:"Qualità",qualityAutoHigh:"Alta Automatica",qualityAutoLow:"Bassa Automatica",qualityBest:"Massima",qualityHigh:"Alta",qualityLow:"Bassa",qualityMedium:"Intermedia",scale:"Ridimensiona",scaleAll:"Mostra Tutto",scaleFit:"Dimensione Esatta",scaleNoBorder:"Senza Bordo",title:"Proprietà Oggetto Flash",vSpace:"VSpace",validateHSpace:"L'HSpace dev'essere un numero.",validateSrc:"Devi inserire l'URL del collegamento",validateVSpace:"Il VSpace dev'essere un numero.",windowMode:"Modalità finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Trasparente",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ja.js new file mode 100644 index 00000000..8a2238b4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ja",{access:"スプリクトアクセス(AllowScriptAccess)",accessAlways:"すべての場合に通信可能(Always)",accessNever:"すべての場合に通信不可能(Never)",accessSameDomain:"同一ドメインのみに通信可能(Same domain)",alignAbsBottom:"下部(絶対的)",alignAbsMiddle:"中央(絶対的)",alignBaseline:"ベースライン",alignTextTop:"テキスト上部",bgcolor:"背景色",chkFull:"フルスクリーン許可",chkLoop:"ループ再生",chkMenu:"Flashメニュー可能",chkPlay:"再生",flashvars:"フラッシュに渡す変数(FlashVars)",hSpace:"横間隔",properties:"Flash プロパティ",propertiesTab:"プロパティ",quality:"画質",qualityAutoHigh:"自動/高", +qualityAutoLow:"自動/低",qualityBest:"品質優先",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"拡大縮小設定",scaleAll:"すべて表示",scaleFit:"上下左右にフィット",scaleNoBorder:"外が見えない様に拡大",title:"Flash プロパティ",vSpace:"縦間隔",validateHSpace:"横間隔は数値で入力してください。",validateSrc:"リンクURLを入力してください。",validateVSpace:"縦間隔は数値で入力してください。",windowMode:"ウィンドウモード",windowModeOpaque:"背景を不透明設定",windowModeTransparent:"背景を透過設定",windowModeWindow:"標準"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ka.js new file mode 100644 index 00000000..fb482eca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ka",{access:"სკრიპტის წვდომა",accessAlways:"ყოველთვის",accessNever:"არასდროს",accessSameDomain:"იგივე დომენი",alignAbsBottom:"ჩარჩოს ქვემოთა ნაწილის სწორება ტექსტისთვის",alignAbsMiddle:"ჩარჩოს შუა ნაწილის სწორება ტექსტისთვის",alignBaseline:"საბაზისო ხაზის სწორება",alignTextTop:"ტექსტი ზემოდან",bgcolor:"ფონის ფერი",chkFull:"მთელი ეკრანის დაშვება",chkLoop:"ჩაციკლვა",chkMenu:"Flash-ის მენიუს დაშვება",chkPlay:"ავტო გაშვება",flashvars:"ცვლადები Flash-ისთვის",hSpace:"ჰორიზ. სივრცე", +properties:"Flash-ის პარამეტრები",propertiesTab:"პარამეტრები",quality:"ხარისხი",qualityAutoHigh:"მაღალი (ავტომატური)",qualityAutoLow:"ძალიან დაბალი",qualityBest:"საუკეთესო",qualityHigh:"მაღალი",qualityLow:"დაბალი",qualityMedium:"საშუალო",scale:"მასშტაბირება",scaleAll:"ყველაფრის ჩვენება",scaleFit:"ზუსტი ჩასმა",scaleNoBorder:"ჩარჩოს გარეშე",title:"Flash-ის პარამეტრები",vSpace:"ვერტ. სივრცე",validateHSpace:"ჰორიზონტალური სივრცე არ უნდა იყოს ცარიელი.",validateSrc:"URL არ უნდა იყოს ცარიელი.",validateVSpace:"ვერტიკალური სივრცე არ უნდა იყოს ცარიელი.", +windowMode:"ფანჯრის რეჟიმი",windowModeOpaque:"გაუმჭვირვალე",windowModeTransparent:"გამჭვირვალე",windowModeWindow:"ფანჯარა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/km.js new file mode 100644 index 00000000..a4babe9e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","km",{access:"Script Access",accessAlways:"ជានិច្ច",accessNever:"កុំ",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"បន្ទាត់ជាមូលដ្ឋាន",alignTextTop:"លើអត្ថបទ",bgcolor:"ពណ៌ផ្ទៃខាងក្រោយ",chkFull:"អនុញ្ញាត​ឲ្យ​ពេញ​អេក្រង់",chkLoop:"ចំនួនដង",chkMenu:"បង្ហាញ មឺនុយរបស់ Flash",chkPlay:"លេងដោយស្វ័យប្រវត្ត",flashvars:"អថេរ Flash",hSpace:"គំលាតទទឹង",properties:"ការកំណត់ Flash",propertiesTab:"លក្ខណៈ​សម្បត្តិ",quality:"គុណភាព", +qualityAutoHigh:"ខ្ពស់​ស្វ័យ​ប្រវត្តិ",qualityAutoLow:"ទាប​ស្វ័យ​ប្រវត្តិ",qualityBest:"ល្អ​បំផុត",qualityHigh:"ខ្ពស់",qualityLow:"ទាប",qualityMedium:"មធ្យម",scale:"ទំហំ",scaleAll:"បង្ហាញទាំងអស់",scaleFit:"ត្រូវល្មម",scaleNoBorder:"មិនបង្ហាញស៊ុម",title:"ការកំណត់ Flash",vSpace:"គំលាតបណ្តោយ",validateHSpace:"HSpace must be a number.",validateSrc:"សូមសរសេរ អាស័យដ្ឋាន URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"ភាព​ថ្លា",windowModeWindow:"វីនដូ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ko.js new file mode 100644 index 00000000..514c74a8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ko",{access:"스크립트 허용",accessAlways:"항상 허용",accessNever:"허용 안함",accessSameDomain:"Same domain",alignAbsBottom:"줄아래(Abs Bottom)",alignAbsMiddle:"줄중간(Abs Middle)",alignBaseline:"기준선",alignTextTop:"글자상단",bgcolor:"배경 색상",chkFull:"전체화면 ",chkLoop:"반복",chkMenu:"플래쉬메뉴 가능",chkPlay:"자동재생",flashvars:"Variables for Flash",hSpace:"수평여백",properties:"플래쉬 속성",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High", +qualityLow:"Low",qualityMedium:"Medium",scale:"영역",scaleAll:"모두보기",scaleFit:"영역자동조절",scaleNoBorder:"경계선없음",title:"플래쉬 등록정보",vSpace:"수직여백",validateHSpace:"HSpace must be a number.",validateSrc:"링크 URL을 입력하십시요.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ku.js new file mode 100644 index 00000000..e9618955 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ku",{access:"دەستپێگەیشتنی نووسراو",accessAlways:"هەمیشه",accessNever:"هەرگیز",accessSameDomain:"هەمان دۆمەین",alignAbsBottom:"له ژێرەوه",alignAbsMiddle:"لەناوەند",alignBaseline:"هێڵەبنەڕەت",alignTextTop:"دەق لەسەرەوه",bgcolor:"ڕەنگی پاشبنەما",chkFull:"ڕێپێدان بە پڕی شاشه",chkLoop:"گرێ",chkMenu:"چالاککردنی لیستەی فلاش",chkPlay:"پێکردنی یان لێدانی خۆکار",flashvars:"گۆڕاوەکان بۆ فلاش",hSpace:"بۆشایی ئاسۆیی",properties:"خاسیەتی فلاش",propertiesTab:"خاسیەت",quality:"جۆرایەتی", +qualityAutoHigh:"بەرزی خۆکار",qualityAutoLow:"نزمی خۆکار",qualityBest:"باشترین",qualityHigh:"بەرزی",qualityLow:"نزم",qualityMedium:"مامناوەند",scale:"پێوانه",scaleAll:"نیشاندانی هەموو",scaleFit:"بەوردی بگونجێت",scaleNoBorder:"بێ پەراوێز",title:"خاسیەتی فلاش",vSpace:"بۆشایی ئەستونی",validateHSpace:"بۆشایی ئاسۆیی دەبێت ژمارە بێت.",validateSrc:"ناونیشانی بەستەر نابێت خاڵی بێت",validateVSpace:"بۆشایی ئەستونی دەبێت ژماره بێت.",windowMode:"شێوازی پەنجەره",windowModeOpaque:"ناڕوون",windowModeTransparent:"ڕۆشن", +windowModeWindow:"پەنجەره"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/lt.js new file mode 100644 index 00000000..8e013f24 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lt",{access:"Skripto priėjimas",accessAlways:"Visada",accessNever:"Niekada",accessSameDomain:"Tas pats domenas",alignAbsBottom:"Absoliučią apačią",alignAbsMiddle:"Absoliutų vidurį",alignBaseline:"Apatinę liniją",alignTextTop:"Teksto viršūnę",bgcolor:"Fono spalva",chkFull:"Leisti per visą ekraną",chkLoop:"Ciklas",chkMenu:"Leisti Flash meniu",chkPlay:"Automatinis paleidimas",flashvars:"Flash kintamieji",hSpace:"Hor.Erdvė",properties:"Flash savybės",propertiesTab:"Nustatymai", +quality:"Kokybė",qualityAutoHigh:"Automatiškai Gera",qualityAutoLow:"Automatiškai Žema",qualityBest:"Geriausia",qualityHigh:"Gera",qualityLow:"Žema",qualityMedium:"Vidutinė",scale:"Mastelis",scaleAll:"Rodyti visą",scaleFit:"Tikslus atitikimas",scaleNoBorder:"Be rėmelio",title:"Flash savybės",vSpace:"Vert.Erdvė",validateHSpace:"HSpace turi būti skaičius.",validateSrc:"Prašome įvesti nuorodos URL",validateVSpace:"VSpace turi būti skaičius.",windowMode:"Lango režimas",windowModeOpaque:"Nepermatomas", +windowModeTransparent:"Permatomas",windowModeWindow:"Langas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/lv.js new file mode 100644 index 00000000..30edb939 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lv",{access:"Skripta pieeja",accessAlways:"Vienmēr",accessNever:"Nekad",accessSameDomain:"Tas pats domēns",alignAbsBottom:"Absolūti apakšā",alignAbsMiddle:"Absolūti vertikāli centrēts",alignBaseline:"Pamatrindā",alignTextTop:"Teksta augšā",bgcolor:"Fona krāsa",chkFull:"Pilnekrāns",chkLoop:"Nepārtraukti",chkMenu:"Atļaut Flash izvēlni",chkPlay:"Automātiska atskaņošana",flashvars:"Flash mainīgie",hSpace:"Horizontālā telpa",properties:"Flash īpašības",propertiesTab:"Uzstādījumi", +quality:"Kvalitāte",qualityAutoHigh:"Automātiski Augsta",qualityAutoLow:"Automātiski Zema",qualityBest:"Labākā",qualityHigh:"Augsta",qualityLow:"Zema",qualityMedium:"Vidēja",scale:"Mainīt izmēru",scaleAll:"Rādīt visu",scaleFit:"Precīzs izmērs",scaleNoBorder:"Bez rāmja",title:"Flash īpašības",vSpace:"Vertikālā telpa",validateHSpace:"Hspace jābūt skaitlim",validateSrc:"Lūdzu norādi hipersaiti",validateVSpace:"Vspace jābūt skaitlim",windowMode:"Loga režīms",windowModeOpaque:"Necaurspīdīgs",windowModeTransparent:"Caurspīdīgs", +windowModeWindow:"Logs"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/mk.js new file mode 100644 index 00000000..ae22f2a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mk",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/mn.js new file mode 100644 index 00000000..6759d77d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mn",{access:"Script Access",accessAlways:"Онцлогууд",accessNever:"Хэзээ ч үгүй",accessSameDomain:"Байнга",alignAbsBottom:"Abs доод талд",alignAbsMiddle:"Abs Дунд талд",alignBaseline:"Baseline",alignTextTop:"Текст дээр",bgcolor:"Дэвсгэр өнгө",chkFull:"Allow Fullscreen",chkLoop:"Давтах",chkMenu:"Флаш цэс идвэхжүүлэх",chkPlay:"Автоматаар тоглох",flashvars:"Variables for Flash",hSpace:"Хөндлөн зай",properties:"Флаш шинж чанар",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Өргөгтгөх",scaleAll:"Бүгдийг харуулах",scaleFit:"Яг тааруулах",scaleNoBorder:"Хүрээгүй",title:"Флаш шинж чанар",vSpace:"Босоо зай",validateHSpace:"HSpace must be a number.",validateSrc:"Линк URL-ээ төрөлжүүлнэ үү",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ms.js new file mode 100644 index 00000000..9012a684 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ms",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Bawah Mutlak",alignAbsMiddle:"Pertengahan Mutlak",alignBaseline:"Garis Dasar",alignTextTop:"Atas Text",bgcolor:"Warna Latarbelakang",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"Ruang Melintang",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"Ruang Menegak",validateHSpace:"HSpace must be a number.",validateSrc:"Sila taip sambungan URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/nb.js new file mode 100644 index 00000000..c03f61f7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","nb",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/nl.js new file mode 100644 index 00000000..193591ba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","nl",{access:"Script toegang",accessAlways:"Altijd",accessNever:"Nooit",accessSameDomain:"Zelfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-midden",alignBaseline:"Basislijn",alignTextTop:"Boven tekst",bgcolor:"Achtergrondkleur",chkFull:"Schermvullend toestaan",chkLoop:"Herhalen",chkMenu:"Flashmenu's inschakelen",chkPlay:"Automatisch afspelen",flashvars:"Variabelen voor Flash",hSpace:"HSpace",properties:"Eigenschappen Flash",propertiesTab:"Eigenschappen", +quality:"Kwaliteit",qualityAutoHigh:"Automatisch hoog",qualityAutoLow:"Automatisch laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Schaal",scaleAll:"Alles tonen",scaleFit:"Precies passend",scaleNoBorder:"Geen rand",title:"Eigenschappen Flash",vSpace:"VSpace",validateHSpace:"De HSpace moet een getal zijn.",validateSrc:"De URL mag niet leeg zijn.",validateVSpace:"De VSpace moet een getal zijn.",windowMode:"Venster modus",windowModeOpaque:"Ondoorzichtig", +windowModeTransparent:"Doorzichtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/no.js new file mode 100644 index 00000000..4f660ce4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","no",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pl.js new file mode 100644 index 00000000..aa3da87e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pl",{access:"Dostęp skryptów",accessAlways:"Zawsze",accessNever:"Nigdy",accessSameDomain:"Ta sama domena",alignAbsBottom:"Do dołu",alignAbsMiddle:"Do środka w pionie",alignBaseline:"Do linii bazowej",alignTextTop:"Do góry tekstu",bgcolor:"Kolor tła",chkFull:"Zezwól na pełny ekran",chkLoop:"Pętla",chkMenu:"Włącz menu",chkPlay:"Autoodtwarzanie",flashvars:"Zmienne obiektu Flash",hSpace:"Odstęp poziomy",properties:"Właściwości obiektu Flash",propertiesTab:"Właściwości", +quality:"Jakość",qualityAutoHigh:"Auto wysoka",qualityAutoLow:"Auto niska",qualityBest:"Najlepsza",qualityHigh:"Wysoka",qualityLow:"Niska",qualityMedium:"Średnia",scale:"Skaluj",scaleAll:"Pokaż wszystko",scaleFit:"Dokładne dopasowanie",scaleNoBorder:"Bez obramowania",title:"Właściwości obiektu Flash",vSpace:"Odstęp pionowy",validateHSpace:"Odstęp poziomy musi być liczbą.",validateSrc:"Podaj adres URL",validateVSpace:"Odstęp pionowy musi być liczbą.",windowMode:"Tryb okna",windowModeOpaque:"Nieprzezroczyste", +windowModeTransparent:"Przezroczyste",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pt-br.js new file mode 100644 index 00000000..4be3e143 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt-br",{access:"Acesso ao script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Acessar Mesmo Domínio",alignAbsBottom:"Inferior Absoluto",alignAbsMiddle:"Centralizado Absoluto",alignBaseline:"Baseline",alignTextTop:"Superior Absoluto",bgcolor:"Cor do Plano de Fundo",chkFull:"Permitir tela cheia",chkLoop:"Tocar Infinitamente",chkMenu:"Habilita Menu Flash",chkPlay:"Tocar Automaticamente",flashvars:"Variáveis do Flash",hSpace:"HSpace",properties:"Propriedades do Flash", +propertiesTab:"Propriedades",quality:"Qualidade",qualityAutoHigh:"Qualidade Alta Automática",qualityAutoLow:"Qualidade Baixa Automática",qualityBest:"Qualidade Melhor",qualityHigh:"Qualidade Alta",qualityLow:"Qualidade Baixa",qualityMedium:"Qualidade Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Escala Exata",scaleNoBorder:"Sem Borda",title:"Propriedades do Flash",vSpace:"VSpace",validateHSpace:"O HSpace tem que ser um número",validateSrc:"Por favor, digite o endereço do link",validateVSpace:"O VSpace tem que ser um número.", +windowMode:"Modo da janela",windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pt.js new file mode 100644 index 00000000..374ffae8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt",{access:"Acesso ao Script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Linha de base",alignTextTop:"Topo do texto",bgcolor:"Cor de Fundo",chkFull:"Permitir Ecrã inteiro",chkLoop:"Loop",chkMenu:"Permitir Menu do Flash",chkPlay:"Reproduzir automaticamente",flashvars:"Variaveis para o Flash",hSpace:"Esp.Horiz",properties:"Propriedades do Flash",propertiesTab:"Propriedades", +quality:"Qualidade",qualityAutoHigh:"Alta Automaticamente",qualityAutoLow:"Baixa Automaticamente",qualityBest:"Melhor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Tamanho Exacto",scaleNoBorder:"Sem Limites",title:"Propriedades do Flash",vSpace:"Esp.Vert",validateHSpace:"HSpace tem de ser um numero.",validateSrc:"Por favor introduza a hiperligação URL",validateVSpace:"VSpace tem de ser um numero.",windowMode:"Modo de janela",windowModeOpaque:"Opaco", +windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ro.js new file mode 100644 index 00000000..8be6b18f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ro",{access:"Acces script",accessAlways:"Întotdeauna",accessNever:"Niciodată",accessSameDomain:"Același domeniu",alignAbsBottom:"Jos absolut (Abs Bottom)",alignAbsMiddle:"Mijloc absolut (Abs Middle)",alignBaseline:"Linia de jos (Baseline)",alignTextTop:"Text sus",bgcolor:"Coloarea fundalului",chkFull:"Permite pe tot ecranul",chkLoop:"Repetă (Loop)",chkMenu:"Activează meniul flash",chkPlay:"Rulează automat",flashvars:"Variabile pentru flash",hSpace:"HSpace",properties:"Proprietăţile flashului", +propertiesTab:"Proprietăți",quality:"Calitate",qualityAutoHigh:"Auto înaltă",qualityAutoLow:"Auto Joasă",qualityBest:"Cea mai bună",qualityHigh:"Înaltă",qualityLow:"Joasă",qualityMedium:"Medie",scale:"Scală",scaleAll:"Arată tot",scaleFit:"Potriveşte",scaleNoBorder:"Fără bordură (No border)",title:"Proprietăţile flashului",vSpace:"VSpace",validateHSpace:"Hspace trebuie să fie un număr.",validateSrc:"Vă rugăm să scrieţi URL-ul",validateVSpace:"VSpace trebuie să fie un număr",windowMode:"Mod fereastră", +windowModeOpaque:"Opacă",windowModeTransparent:"Transparentă",windowModeWindow:"Fereastră"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ru.js new file mode 100644 index 00000000..d4f39fb5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ru",{access:"Доступ к скриптам",accessAlways:"Всегда",accessNever:"Никогда",accessSameDomain:"В том же домене",alignAbsBottom:"По низу текста",alignAbsMiddle:"По середине текста",alignBaseline:"По базовой линии",alignTextTop:"По верху текста",bgcolor:"Цвет фона",chkFull:"Разрешить полноэкранный режим",chkLoop:"Повторять",chkMenu:"Включить меню Flash",chkPlay:"Автоматическое воспроизведение",flashvars:"Переменные для Flash",hSpace:"Гориз. отступ",properties:"Свойства Flash", +propertiesTab:"Свойства",quality:"Качество",qualityAutoHigh:"Запуск на высоком",qualityAutoLow:"Запуск на низком",qualityBest:"Лучшее",qualityHigh:"Высокое",qualityLow:"Низкое",qualityMedium:"Среднее",scale:"Масштабировать",scaleAll:"Пропорционально",scaleFit:"Заполнять",scaleNoBorder:"Заходить за границы",title:"Свойства Flash",vSpace:"Вертик. отступ",validateHSpace:"Горизонтальный отступ задается числом.",validateSrc:"Вы должны ввести ссылку",validateVSpace:"Вертикальный отступ задается числом.", +windowMode:"Взаимодействие с окном",windowModeOpaque:"Непрозрачный",windowModeTransparent:"Прозрачный",windowModeWindow:"Обычный"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/si.js new file mode 100644 index 00000000..6184682d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","si",{access:"පිටපත් ප්‍රවේශය",accessAlways:"හැමවිටම",accessNever:"කිසිදා නොවේ",accessSameDomain:"එකම වසමේ",alignAbsBottom:"පතුල",alignAbsMiddle:"Abs ",alignBaseline:"පාද රේඛාව",alignTextTop:"වගන්තිය ඉහල",bgcolor:"පසුබිම් වර්ණය",chkFull:"පුර්ණ තිරය සදහා අවසර",chkLoop:"පුඩුව",chkMenu:"සක්‍රිය බබලන මෙනුව",chkPlay:"ස්‌වයංක්‍රිය ක්‍රියාත්මක වීම",flashvars:"වෙනස්වන දත්ත",hSpace:"HSpace",properties:"බබලන ගුණ",propertiesTab:"ගුණ",quality:"තත්වය",qualityAutoHigh:"ස්‌වයංක්‍රිය ", +qualityAutoLow:" ස්‌වයංක්‍රිය ",qualityBest:"වඩාත් ගැලපෙන",qualityHigh:"ඉහළ",qualityLow:"පහළ",qualityMedium:"මධ්‍ය",scale:"පරිමාණ",scaleAll:"සියල්ල ",scaleFit:"හරියටම ගැලපෙන",scaleNoBorder:"මාඉම් නොමැති",title:"බබලන ",vSpace:"VSpace",validateHSpace:"HSpace සංක්‍යාවක් විය යුතුය.",validateSrc:"URL හිස් නොවිය ",validateVSpace:"VSpace සංක්‍යාවක් විය යුතුය",windowMode:"ජනෙල ක්‍රමය",windowModeOpaque:"විනිවිද පෙනෙන",windowModeTransparent:"විනිවිද පෙනෙන",windowModeWindow:"ජනෙල"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sk.js new file mode 100644 index 00000000..e959ca02 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sk",{access:"Prístup skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Rovnaká doména",alignAbsBottom:"Úplne dole",alignAbsMiddle:"Do stredu",alignBaseline:"Na základnú čiaru",alignTextTop:"Na horný okraj textu",bgcolor:"Farba pozadia",chkFull:"Povoliť zobrazenie na celú obrazovku (fullscreen)",chkLoop:"Opakovanie",chkMenu:"Povoliť Flash Menu",chkPlay:"Automatické prehrávanie",flashvars:"Premenné pre Flash",hSpace:"H-medzera",properties:"Vlastnosti Flashu", +propertiesTab:"Vlastnosti",quality:"Kvalita",qualityAutoHigh:"Automaticky vysoká",qualityAutoLow:"Automaticky nízka",qualityBest:"Najlepšia",qualityHigh:"Vysoká",qualityLow:"Nízka",qualityMedium:"Stredná",scale:"Mierka",scaleAll:"Zobraziť všetko",scaleFit:"Roztiahnuť, aby sedelo presne",scaleNoBorder:"Bez okrajov",title:"Vlastnosti Flashu",vSpace:"V-medzera",validateHSpace:"H-medzera musí byť číslo.",validateSrc:"URL nesmie byť prázdne.",validateVSpace:"V-medzera musí byť číslo",windowMode:"Mód okna", +windowModeOpaque:"Nepriehľadný",windowModeTransparent:"Priehľadný",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sl.js new file mode 100644 index 00000000..3de6413e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sl",{access:"Dostop skript",accessAlways:"Vedno",accessNever:"Nikoli",accessSameDomain:"Samo ista domena",alignAbsBottom:"Popolnoma na dno",alignAbsMiddle:"Popolnoma v sredino",alignBaseline:"Na osnovno črto",alignTextTop:"Besedilo na vrh",bgcolor:"Barva ozadja",chkFull:"Dovoli celozaslonski način",chkLoop:"Ponavljanje",chkMenu:"Omogoči Flash Meni",chkPlay:"Samodejno predvajaj",flashvars:"Spremenljivke za Flash",hSpace:"Vodoravni razmik",properties:"Lastnosti Flash", +propertiesTab:"Lastnosti",quality:"Kakovost",qualityAutoHigh:"Samodejno visoka",qualityAutoLow:"Samodejno nizka",qualityBest:"Najvišja",qualityHigh:"Visoka",qualityLow:"Nizka",qualityMedium:"Srednja",scale:"Povečava",scaleAll:"Pokaži vse",scaleFit:"Natančno prileganje",scaleNoBorder:"Brez obrobe",title:"Lastnosti Flash",vSpace:"Navpični razmik",validateHSpace:"Vodoravni razmik mora biti število.",validateSrc:"Vnesite URL povezave",validateVSpace:"Navpični razmik mora biti število.",windowMode:"Vrsta okna", +windowModeOpaque:"Motno",windowModeTransparent:"Prosojno",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sq.js new file mode 100644 index 00000000..bded5272 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sq",{access:"Qasja në Skriptë",accessAlways:"Gjithnjë",accessNever:"Asnjëherë",accessSameDomain:"Fusha e Njëjtë",alignAbsBottom:"Abs në Fund",alignAbsMiddle:"Abs në Mes",alignBaseline:"Baza",alignTextTop:"Koka e Tekstit",bgcolor:"Ngjyra e Prapavijës",chkFull:"Lejo Ekran të Plotë",chkLoop:"Përsëritje",chkMenu:"Lejo Menynë për Flash",chkPlay:"Auto Play",flashvars:"Variablat për Flash",hSpace:"Hapësira Horizontale",properties:"Karakteristikat për Flash",propertiesTab:"Karakteristikat", +quality:"Kualiteti",qualityAutoHigh:"Automatikisht i Lartë",qualityAutoLow:"Automatikisht i Ulët",qualityBest:"Më i Miri",qualityHigh:"I Lartë",qualityLow:"Më i Ulti",qualityMedium:"I Mesëm",scale:"Shkalla",scaleAll:"Shfaq të Gjitha",scaleFit:"Përputhje të Plotë",scaleNoBorder:"Pa Kornizë",title:"Rekuizitat për Flash",vSpace:"Hapësira Vertikale",validateHSpace:"Hapësira Horizontale duhet të është numër.",validateSrc:"URL nuk duhet mbetur zbrazur.",validateVSpace:"Hapësira Vertikale duhet të është numër.", +windowMode:"Window mode",windowModeOpaque:"Errët",windowModeTransparent:"Tejdukshëm",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sr-latn.js new file mode 100644 index 00000000..641140c3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr-latn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Uključi fleš meni",chkPlay:"Automatski start",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Osobine fleša",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skaliraj",scaleAll:"Prikaži sve",scaleFit:"Popuni površinu",scaleNoBorder:"Bez ivice",title:"Osobine fleša",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Unesite URL linka",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sr.js new file mode 100644 index 00000000..c62614dc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs доле",alignAbsMiddle:"Abs средина",alignBaseline:"Базно",alignTextTop:"Врх текста",bgcolor:"Боја позадине",chkFull:"Allow Fullscreen",chkLoop:"Понављај",chkMenu:"Укључи флеш мени",chkPlay:"Аутоматски старт",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Особине Флеша",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Скалирај",scaleAll:"Прикажи све",scaleFit:"Попуни површину",scaleNoBorder:"Без ивице",title:"Особине флеша",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Унесите УРЛ линка",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sv.js new file mode 100644 index 00000000..7c6edcc4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sv",{access:"Script-tillgång",accessAlways:"Alltid",accessNever:"Aldrig",accessSameDomain:"Samma domän",alignAbsBottom:"Absolut nederkant",alignAbsMiddle:"Absolut centrering",alignBaseline:"Baslinje",alignTextTop:"Text överkant",bgcolor:"Bakgrundsfärg",chkFull:"Tillåt helskärm",chkLoop:"Upprepa/Loopa",chkMenu:"Aktivera Flashmeny",chkPlay:"Automatisk uppspelning",flashvars:"Variabler för Flash",hSpace:"Horis. marginal",properties:"Flashegenskaper",propertiesTab:"Egenskaper", +quality:"Kvalitet",qualityAutoHigh:"Auto Hög",qualityAutoLow:"Auto Låg",qualityBest:"Bäst",qualityHigh:"Hög",qualityLow:"Låg",qualityMedium:"Medium",scale:"Skala",scaleAll:"Visa allt",scaleFit:"Exakt passning",scaleNoBorder:"Ingen ram",title:"Flashegenskaper",vSpace:"Vert. marginal",validateHSpace:"HSpace måste vara ett nummer.",validateSrc:"Var god ange länkens URL",validateVSpace:"VSpace måste vara ett nummer.",windowMode:"Fönsterläge",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent", +windowModeWindow:"Fönster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/th.js new file mode 100644 index 00000000..49932348 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","th",{access:"การเข้าถึงสคริปต์",accessAlways:"ตลอดไป",accessNever:"ไม่เลย",accessSameDomain:"โดเมนเดียวกัน",alignAbsBottom:"ชิดด้านล่างสุด",alignAbsMiddle:"กึ่งกลาง",alignBaseline:"ชิดบรรทัด",alignTextTop:"ใต้ตัวอักษร",bgcolor:"สีพื้นหลัง",chkFull:"อนุญาตให้แสดงเต็มหน้าจอได้",chkLoop:"เล่นวนรอบ Loop",chkMenu:"ให้ใช้งานเมนูของ Flash",chkPlay:"เล่นอัตโนมัติ Auto Play",flashvars:"ตัวแปรสำหรับ Flas",hSpace:"ระยะแนวนอน",properties:"คุณสมบัติของไฟล์ Flash",propertiesTab:"คุณสมบัติ", +quality:"คุณภาพ",qualityAutoHigh:"ปรับคุณภาพสูงอัตโนมัติ",qualityAutoLow:"ปรับคุณภาพต่ำอัตโนมัติ",qualityBest:"ดีที่สุด",qualityHigh:"สูง",qualityLow:"ต่ำ",qualityMedium:"ปานกลาง",scale:"อัตราส่วน Scale",scaleAll:"แสดงให้เห็นทั้งหมด Show all",scaleFit:"แสดงให้พอดีกับพื้นที่ Exact Fit",scaleNoBorder:"ไม่แสดงเส้นขอบ No Border",title:"คุณสมบัติของไฟล์ Flash",vSpace:"ระยะแนวตั้ง",validateHSpace:"HSpace ต้องเป็นจำนวนตัวเลข",validateSrc:"กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",validateVSpace:"VSpace ต้องเป็นจำนวนตัวเลข", +windowMode:"โหมดหน้าต่าง",windowModeOpaque:"ความทึบแสง",windowModeTransparent:"ความโปรงแสง",windowModeWindow:"หน้าต่าง"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/tr.js new file mode 100644 index 00000000..8d76aa2b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tr",{access:"Kod İzni",accessAlways:"Herzaman",accessNever:"Asla",accessSameDomain:"Aynı domain",alignAbsBottom:"Tam Altı",alignAbsMiddle:"Tam Ortası",alignBaseline:"Taban Çizgisi",alignTextTop:"Yazı Tepeye",bgcolor:"Arka Renk",chkFull:"Tam ekrana İzinver",chkLoop:"Döngü",chkMenu:"Flash Menüsünü Kullan",chkPlay:"Otomatik Oynat",flashvars:"Flash Değerleri",hSpace:"Yatay Boşluk",properties:"Flash Özellikleri",propertiesTab:"Özellikler",quality:"Kalite",qualityAutoHigh:"Otomatik Yükseklik", +qualityAutoLow:"Otomatik Düşüklük",qualityBest:"En iyi",qualityHigh:"Yüksek",qualityLow:"Düşük",qualityMedium:"Orta",scale:"Boyutlandır",scaleAll:"Hepsini Göster",scaleFit:"Tam Sığdır",scaleNoBorder:"Kenar Yok",title:"Flash Özellikleri",vSpace:"Dikey Boşluk",validateHSpace:"HSpace sayı olmalıdır.",validateSrc:"Lütfen köprü URL'sini yazın",validateVSpace:"VSpace sayı olmalıdır.",windowMode:"Pencere modu",windowModeOpaque:"Opak",windowModeTransparent:"Şeffaf",windowModeWindow:"Pencere"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/tt.js new file mode 100644 index 00000000..db937890 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tt",{access:"Script Access",accessAlways:"Һəрвакыт",accessNever:"Беркайчан да",accessSameDomain:"Same domain",alignAbsBottom:"Иң аска",alignAbsMiddle:"Төгәл уртада",alignBaseline:"Таяныч сызыгы",alignTextTop:"Text Top",bgcolor:"Фон төсе",chkFull:"Allow Fullscreen",chkLoop:"Әйләнеш",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Флеш үзлекләре",propertiesTab:"Үзлекләр",quality:"Сыйфат",qualityAutoHigh:"Авто югары сыйфат", +qualityAutoLow:"Авто түбән сыйфат",qualityBest:"Иң югары сыйфат",qualityHigh:"Югары",qualityLow:"Түбəн",qualityMedium:"Уртача",scale:"Scale",scaleAll:"Барысын күрсәтү",scaleFit:"Exact Fit",scaleNoBorder:"Чиксез",title:"Флеш үзлекләре",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Тəрəзə тәртибе",windowModeOpaque:"Үтә күренмәле",windowModeTransparent:"Үтə күренмəле",windowModeWindow:"Тəрəзə"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ug.js new file mode 100644 index 00000000..36bdb424 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ug",{access:"قوليازما زىيارەتكە يول قوي",accessAlways:"ھەمىشە",accessNever:"ھەرگىز",accessSameDomain:"ئوخشاش دائىرىدە",alignAbsBottom:"مۇتلەق ئاستى",alignAbsMiddle:"مۇتلەق ئوتتۇرا",alignBaseline:"ئاساسىي سىزىق",alignTextTop:"تېكىست ئۈستىدە",bgcolor:"تەگلىك رەڭگى",chkFull:"پۈتۈن ئېكراننى قوزغات",chkLoop:"دەۋرىي",chkMenu:"Flash تىزىملىكنى قوزغات",chkPlay:"ئۆزلۈكىدىن چال",flashvars:"Flash ئۆزگەرگۈچى",hSpace:"توغرىسىغا ئارىلىق",properties:"Flash خاسلىق",propertiesTab:"خاسلىق", +quality:"سۈپەت",qualityAutoHigh:"يۇقىرى (ئاپتوماتىك)",qualityAutoLow:"تۆۋەن (ئاپتوماتىك)",qualityBest:"ئەڭ ياخشى",qualityHigh:"يۇقىرى",qualityLow:"تۆۋەن",qualityMedium:"ئوتتۇرا (ئاپتوماتىك)",scale:"نىسبىتى",scaleAll:"ھەممىنى كۆرسەت",scaleFit:"قەتئىي ماسلىشىش",scaleNoBorder:"گىرۋەك يوق",title:"ماۋزۇ",vSpace:"بويىغا ئارىلىق",validateHSpace:"توغرىسىغا ئارىلىق چوقۇم سان بولىدۇ",validateSrc:"ئەسلى ھۆججەت ئادرېسىنى كىرگۈزۈڭ",validateVSpace:"بويىغا ئارىلىق چوقۇم سان بولىدۇ",windowMode:"كۆزنەك ھالىتى",windowModeOpaque:"خىرە", +windowModeTransparent:"سۈزۈك",windowModeWindow:"كۆزنەك گەۋدىسى"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/uk.js new file mode 100644 index 00000000..cc458daf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","uk",{access:"Доступ до скрипта",accessAlways:"Завжди",accessNever:"Ніколи",accessSameDomain:"З того ж домена",alignAbsBottom:"По нижньому краю (abs)",alignAbsMiddle:"По середині (abs)",alignBaseline:"По базовій лінії",alignTextTop:"Текст по верхньому краю",bgcolor:"Колір фону",chkFull:"Дозволити повноекранний перегляд",chkLoop:"Циклічно",chkMenu:"Дозволити меню Flash",chkPlay:"Автопрогравання",flashvars:"Змінні Flash",hSpace:"Гориз. відступ",properties:"Властивості Flash", +propertiesTab:"Властивості",quality:"Якість",qualityAutoHigh:"Автом. відмінна",qualityAutoLow:"Автом. низька",qualityBest:"Відмінна",qualityHigh:"Висока",qualityLow:"Низька",qualityMedium:"Середня",scale:"Масштаб",scaleAll:"Показати все",scaleFit:"Поч. розмір",scaleNoBorder:"Без рамки",title:"Властивості Flash",vSpace:"Верт. відступ",validateHSpace:"Гориз. відступ повинен бути цілим числом.",validateSrc:"Будь ласка, вкажіть URL посилання",validateVSpace:"Верт. відступ повинен бути цілим числом.", +windowMode:"Віконний режим",windowModeOpaque:"Непрозорість",windowModeTransparent:"Прозорість",windowModeWindow:"Вікно"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/vi.js new file mode 100644 index 00000000..17a0c1b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","vi",{access:"Truy cập mã",accessAlways:"Luôn luôn",accessNever:"Không bao giờ",accessSameDomain:"Cùng tên miền",alignAbsBottom:"Dưới tuyệt đối",alignAbsMiddle:"Giữa tuyệt đối",alignBaseline:"Đường cơ sở",alignTextTop:"Phía trên chữ",bgcolor:"Màu nền",chkFull:"Cho phép toàn màn hình",chkLoop:"Lặp",chkMenu:"Cho phép bật menu của Flash",chkPlay:"Tự động chạy",flashvars:"Các biến số dành cho Flash",hSpace:"Khoảng đệm ngang",properties:"Thuộc tính Flash",propertiesTab:"Thuộc tính", +quality:"Chất lượng",qualityAutoHigh:"Cao tự động",qualityAutoLow:"Thấp tự động",qualityBest:"Tốt nhất",qualityHigh:"Cao",qualityLow:"Thấp",qualityMedium:"Trung bình",scale:"Tỷ lệ",scaleAll:"Hiển thị tất cả",scaleFit:"Vừa vặn",scaleNoBorder:"Không đường viền",title:"Thuộc tính Flash",vSpace:"Khoảng đệm dọc",validateHSpace:"Khoảng đệm ngang phải là số nguyên.",validateSrc:"Hãy đưa vào đường dẫn liên kết",validateVSpace:"Khoảng đệm dọc phải là số nguyên.",windowMode:"Chế độ cửa sổ",windowModeOpaque:"Mờ đục", +windowModeTransparent:"Trong suốt",windowModeWindow:"Cửa sổ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/zh-cn.js new file mode 100644 index 00000000..d7be33ba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh-cn",{access:"允许脚本访问",accessAlways:"总是",accessNever:"从不",accessSameDomain:"同域",alignAbsBottom:"绝对底部",alignAbsMiddle:"绝对居中",alignBaseline:"基线",alignTextTop:"文本上方",bgcolor:"背景颜色",chkFull:"启用全屏",chkLoop:"循环",chkMenu:"启用 Flash 菜单",chkPlay:"自动播放",flashvars:"Flash 变量",hSpace:"水平间距",properties:"Flash 属性",propertiesTab:"属性",quality:"质量",qualityAutoHigh:"高(自动)",qualityAutoLow:"低(自动)",qualityBest:"最好",qualityHigh:"高",qualityLow:"低",qualityMedium:"中(自动)",scale:"缩放",scaleAll:"全部显示", +scaleFit:"严格匹配",scaleNoBorder:"无边框",title:"标题",vSpace:"垂直间距",validateHSpace:"水平间距必须为数字格式",validateSrc:"请输入源文件地址",validateVSpace:"垂直间距必须为数字格式",windowMode:"窗体模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"窗体"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/zh.js new file mode 100644 index 00000000..83af6820 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh",{access:"腳本存取",accessAlways:"永遠",accessNever:"從不",accessSameDomain:"相同網域",alignAbsBottom:"絕對下方",alignAbsMiddle:"絕對置中",alignBaseline:"基準線",alignTextTop:"上層文字",bgcolor:"背景顏色",chkFull:"允許全螢幕",chkLoop:"重複播放",chkMenu:"啟用 Flash 選單",chkPlay:"自動播放",flashvars:"Flash 變數",hSpace:"HSpace",properties:"Flash 屬性​​",propertiesTab:"屬性",quality:"品質",qualityAutoHigh:"自動高",qualityAutoLow:"自動低",qualityBest:"最佳",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"縮放比例",scaleAll:"全部顯示", +scaleFit:"最適化",scaleNoBorder:"無框線",title:"Flash 屬性​​",vSpace:"VSpace",validateHSpace:"HSpace 必須為數字。",validateSrc:"URL 不可為空白。",validateVSpace:"VSpace 必須為數字。",windowMode:"視窗模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"視窗"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/flash/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/flash/plugin.js new file mode 100644 index 00000000..a2a786ac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/flash/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||f.test(a.src||"")}function e(a,b){return a.createFakeParserElement(b,"cke_flash","flash",!0)}var f=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"flash", +hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b="object[classid,codebase,height,hspace,vspace,width];param[name,value];embed[height,hspace,pluginspage,src,type,vspace,width]";CKEDITOR.dialog.isTabEnabled(a,"flash","properties")&&(b+=";object[align]; embed[allowscriptaccess,quality,scale,wmode]"); +CKEDITOR.dialog.isTabEnabled(a,"flash","advanced")&&(b+=";object[id]{*}; embed[bgcolor]{*}(*)");a.addCommand("flash",new CKEDITOR.dialogCommand("flash",{allowedContent:b,requiredContent:"embed"}));a.ui.addButton&&a.ui.addButton("Flash",{label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element; +b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!d(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!d(b.children[c]))break; +return e(a,b)}return null}return e(a,b)},"cke:embed":function(b){return!d(b)?null:e(a,b)}}},5)}})})();CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/af.js new file mode 100644 index 00000000..0473fe90 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","af",{fontSize:{label:"Grootte",voiceLabel:"Fontgrootte",panelTitle:"Fontgrootte"},label:"Font",panelTitle:"Fontnaam",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ar.js new file mode 100644 index 00000000..cf81e27a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ar",{fontSize:{label:"حجم الخط",voiceLabel:"حجم الخط",panelTitle:"حجم الخط"},label:"خط",panelTitle:"حجم الخط",voiceLabel:"حجم الخط"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bg.js new file mode 100644 index 00000000..62e05fe6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bg",{fontSize:{label:"Размер",voiceLabel:"Размер на шрифт",panelTitle:"Размер на шрифт"},label:"Шрифт",panelTitle:"Име на шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bn.js new file mode 100644 index 00000000..98cd2702 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bn",{fontSize:{label:"সাইজ",voiceLabel:"Font Size",panelTitle:"সাইজ"},label:"ফন্ট",panelTitle:"ফন্ট",voiceLabel:"ফন্ট"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bs.js new file mode 100644 index 00000000..171cdc18 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bs",{fontSize:{label:"Velièina",voiceLabel:"Font Size",panelTitle:"Velièina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ca.js new file mode 100644 index 00000000..b710fa74 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ca",{fontSize:{label:"Mida",voiceLabel:"Mida de la lletra",panelTitle:"Mida de la lletra"},label:"Tipus de lletra",panelTitle:"Tipus de lletra",voiceLabel:"Tipus de lletra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/cs.js new file mode 100644 index 00000000..31c3d385 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cs",{fontSize:{label:"Velikost",voiceLabel:"Velikost písma",panelTitle:"Velikost"},label:"Písmo",panelTitle:"Písmo",voiceLabel:"Písmo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/cy.js new file mode 100644 index 00000000..d85cdff4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cy",{fontSize:{label:"Maint",voiceLabel:"Maint y Ffont",panelTitle:"Maint y Ffont"},label:"Ffont",panelTitle:"Enw'r Ffont",voiceLabel:"Ffont"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/da.js new file mode 100644 index 00000000..24b02926 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","da",{fontSize:{label:"Skriftstørrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrifttype",panelTitle:"Skrifttype",voiceLabel:"Skrifttype"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/de.js new file mode 100644 index 00000000..71bd88de --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","de",{fontSize:{label:"Größe",voiceLabel:"Schrifgröße",panelTitle:"Größe"},label:"Schriftart",panelTitle:"Schriftart",voiceLabel:"Schriftart"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/el.js new file mode 100644 index 00000000..ecb9a8b2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","el",{fontSize:{label:"Μέγεθος",voiceLabel:"Μέγεθος Γραμματοσειράς",panelTitle:"Μέγεθος Γραμματοσειράς"},label:"Γραμματοσειρά",panelTitle:"Όνομα Γραμματοσειράς",voiceLabel:"Γραμματοσειρά"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-au.js new file mode 100644 index 00000000..8b19ae02 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-au",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-ca.js new file mode 100644 index 00000000..a41715d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-ca",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-gb.js new file mode 100644 index 00000000..aa7fd0d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-gb",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en.js new file mode 100644 index 00000000..c332c074 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/eo.js new file mode 100644 index 00000000..bf6f5123 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eo",{fontSize:{label:"Grado",voiceLabel:"Tipara grado",panelTitle:"Tipara grado"},label:"Tiparo",panelTitle:"Tipara nomo",voiceLabel:"Tiparo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/es.js new file mode 100644 index 00000000..c452c865 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","es",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño de fuente",panelTitle:"Tamaño"},label:"Fuente",panelTitle:"Fuente",voiceLabel:"Fuente"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/et.js new file mode 100644 index 00000000..76f2b072 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","et",{fontSize:{label:"Suurus",voiceLabel:"Kirja suurus",panelTitle:"Suurus"},label:"Kiri",panelTitle:"Kiri",voiceLabel:"Kiri"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/eu.js new file mode 100644 index 00000000..941c541f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eu",{fontSize:{label:"Tamaina",voiceLabel:"Tamaina",panelTitle:"Tamaina"},label:"Letra-tipoa",panelTitle:"Letra-tipoa",voiceLabel:"Letra-tipoa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fa.js new file mode 100644 index 00000000..b4b4cfca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fa",{fontSize:{label:"اندازه",voiceLabel:"اندازه قلم",panelTitle:"اندازه قلم"},label:"قلم",panelTitle:"نام قلم",voiceLabel:"قلم"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fi.js new file mode 100644 index 00000000..59de601f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fi",{fontSize:{label:"Koko",voiceLabel:"Kirjaisimen koko",panelTitle:"Koko"},label:"Kirjaisinlaji",panelTitle:"Kirjaisinlaji",voiceLabel:"Kirjaisinlaji"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fo.js new file mode 100644 index 00000000..2080e025 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fo",{fontSize:{label:"Skriftstødd",voiceLabel:"Skriftstødd",panelTitle:"Skriftstødd"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Skrift"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fr-ca.js new file mode 100644 index 00000000..bcf3fc12 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr-ca",{fontSize:{label:"Taille",voiceLabel:"Taille",panelTitle:"Taille"},label:"Police",panelTitle:"Police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fr.js new file mode 100644 index 00000000..32486dc7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr",{fontSize:{label:"Taille",voiceLabel:"Taille de police",panelTitle:"Taille de police"},label:"Police",panelTitle:"Style de police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/gl.js new file mode 100644 index 00000000..74fdf0d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gl",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño da letra",panelTitle:"Tamaño da letra"},label:"Tipo de letra",panelTitle:"Nome do tipo de letra",voiceLabel:"Tipo de letra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/gu.js new file mode 100644 index 00000000..7c1a2670 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gu",{fontSize:{label:"ફૉન્ટ સાઇઝ/કદ",voiceLabel:"ફોન્ટ સાઈઝ",panelTitle:"ફૉન્ટ સાઇઝ/કદ"},label:"ફૉન્ટ",panelTitle:"ફૉન્ટ",voiceLabel:"ફોન્ટ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/he.js new file mode 100644 index 00000000..a712a5a3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","he",{fontSize:{label:"גודל",voiceLabel:"גודל",panelTitle:"גודל"},label:"גופן",panelTitle:"גופן",voiceLabel:"גופן"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hi.js new file mode 100644 index 00000000..2c66d5f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hi",{fontSize:{label:"साइज़",voiceLabel:"Font Size",panelTitle:"साइज़"},label:"फ़ॉन्ट",panelTitle:"फ़ॉन्ट",voiceLabel:"फ़ॉन्ट"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hr.js new file mode 100644 index 00000000..4cb480d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hr",{fontSize:{label:"Veličina",voiceLabel:"Veličina slova",panelTitle:"Veličina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hu.js new file mode 100644 index 00000000..e9edbdb1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hu",{fontSize:{label:"Méret",voiceLabel:"Betűméret",panelTitle:"Méret"},label:"Betűtípus",panelTitle:"Betűtípus",voiceLabel:"Betűtípus"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/id.js new file mode 100644 index 00000000..22b03078 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","id",{fontSize:{label:"Ukuran",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/is.js new file mode 100644 index 00000000..9fbd17d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","is",{fontSize:{label:"Leturstærð ",voiceLabel:"Font Size",panelTitle:"Leturstærð "},label:"Leturgerð ",panelTitle:"Leturgerð ",voiceLabel:"Leturgerð "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/it.js new file mode 100644 index 00000000..146a8fb5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","it",{fontSize:{label:"Dimensione",voiceLabel:"Dimensione Carattere",panelTitle:"Dimensione"},label:"Carattere",panelTitle:"Carattere",voiceLabel:"Carattere"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ja.js new file mode 100644 index 00000000..c7e579ed --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ja",{fontSize:{label:"サイズ",voiceLabel:"フォントサイズ",panelTitle:"フォントサイズ"},label:"フォント",panelTitle:"フォント",voiceLabel:"フォント"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ka.js new file mode 100644 index 00000000..a45a4b5c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ka",{fontSize:{label:"ზომა",voiceLabel:"ტექსტის ზომა",panelTitle:"ტექსტის ზომა"},label:"ფონტი",panelTitle:"ფონტის სახელი",voiceLabel:"ფონტი"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/km.js new file mode 100644 index 00000000..b817819b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","km",{fontSize:{label:"ទំហំ",voiceLabel:"ទំហំ​អក្សរ",panelTitle:"ទំហំ​អក្សរ"},label:"ពុម្ព​អក្សរ",panelTitle:"ឈ្មោះ​ពុម្ព​អក្សរ",voiceLabel:"ពុម្ព​អក្សរ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ko.js new file mode 100644 index 00000000..b6b66210 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ko",{fontSize:{label:"글자 크기",voiceLabel:"Font Size",panelTitle:"글자 크기"},label:"폰트",panelTitle:"폰트",voiceLabel:"폰트"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ku.js new file mode 100644 index 00000000..9e2d5582 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ku",{fontSize:{label:"گەورەیی",voiceLabel:"گەورەیی فۆنت",panelTitle:"گەورەیی فۆنت"},label:"فۆنت",panelTitle:"ناوی فۆنت",voiceLabel:"فۆنت"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/lt.js new file mode 100644 index 00000000..c613a9d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lt",{fontSize:{label:"Šrifto dydis",voiceLabel:"Šrifto dydis",panelTitle:"Šrifto dydis"},label:"Šriftas",panelTitle:"Šriftas",voiceLabel:"Šriftas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/lv.js new file mode 100644 index 00000000..023b054f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lv",{fontSize:{label:"Izmērs",voiceLabel:"Fonta izmeŗs",panelTitle:"Izmērs"},label:"Šrifts",panelTitle:"Šrifts",voiceLabel:"Fonts"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/mk.js new file mode 100644 index 00000000..c47889e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mk",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/mn.js new file mode 100644 index 00000000..855b36e8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mn",{fontSize:{label:"Хэмжээ",voiceLabel:"Үсгийн хэмжээ",panelTitle:"Үсгийн хэмжээ"},label:"Үсгийн хэлбэр",panelTitle:"Үгсийн хэлбэрийн нэр",voiceLabel:"Үгсийн хэлбэр"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ms.js new file mode 100644 index 00000000..bf2cac96 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ms",{fontSize:{label:"Saiz",voiceLabel:"Font Size",panelTitle:"Saiz"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/nb.js new file mode 100644 index 00000000..3e85a266 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nb",{fontSize:{label:"Størrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/nl.js new file mode 100644 index 00000000..301a9424 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nl",{fontSize:{label:"Lettergrootte",voiceLabel:"Lettergrootte",panelTitle:"Lettergrootte"},label:"Lettertype",panelTitle:"Lettertype",voiceLabel:"Lettertype"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/no.js new file mode 100644 index 00000000..2e45e27c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","no",{fontSize:{label:"Størrelse",voiceLabel:"Font Størrelse",panelTitle:"Størrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pl.js new file mode 100644 index 00000000..f15dd769 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pl",{fontSize:{label:"Rozmiar",voiceLabel:"Rozmiar czcionki",panelTitle:"Rozmiar"},label:"Czcionka",panelTitle:"Czcionka",voiceLabel:"Czcionka"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pt-br.js new file mode 100644 index 00000000..bfe0147b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt-br",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da fonte",panelTitle:"Tamanho"},label:"Fonte",panelTitle:"Fonte",voiceLabel:"Fonte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pt.js new file mode 100644 index 00000000..06de8cd0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da Letra",panelTitle:"Tamanho da Letra"},label:"Tipo de Letra",panelTitle:"Nome do Tipo de Letra",voiceLabel:"Tipo de Letra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ro.js new file mode 100644 index 00000000..2b101811 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ro",{fontSize:{label:"Mărime",voiceLabel:"Font Size",panelTitle:"Mărime"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ru.js new file mode 100644 index 00000000..c5407217 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ru",{fontSize:{label:"Размер",voiceLabel:"Размер шрифта",panelTitle:"Размер шрифта"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/si.js new file mode 100644 index 00000000..c6246daf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","si",{fontSize:{label:"විශාලත්වය",voiceLabel:"අක්ෂර විශාලත්වය",panelTitle:"අක්ෂර විශාලත්වය"},label:"අක්ෂරය",panelTitle:"අක්ෂර නාමය",voiceLabel:"අක්ෂර"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sk.js new file mode 100644 index 00000000..e09e8d4c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sk",{fontSize:{label:"Veľkosť",voiceLabel:"Veľkosť písma",panelTitle:"Veľkosť písma"},label:"Font",panelTitle:"Názov fontu",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sl.js new file mode 100644 index 00000000..061fea48 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sl",{fontSize:{label:"Velikost",voiceLabel:"Velikost",panelTitle:"Velikost"},label:"Pisava",panelTitle:"Pisava",voiceLabel:"Pisava"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sq.js new file mode 100644 index 00000000..c7c95938 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sq",{fontSize:{label:"Madhësia",voiceLabel:"Madhësia e Shkronjës",panelTitle:"Madhësia e Shkronjës"},label:"Shkronja",panelTitle:"Emri i Shkronjës",voiceLabel:"Shkronja"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sr-latn.js new file mode 100644 index 00000000..87604c2f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr-latn",{fontSize:{label:"Veličina fonta",voiceLabel:"Font Size",panelTitle:"Veličina fonta"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sr.js new file mode 100644 index 00000000..5e2276d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr",{fontSize:{label:"Величина фонта",voiceLabel:"Font Size",panelTitle:"Величина фонта"},label:"Фонт",panelTitle:"Фонт",voiceLabel:"Фонт"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sv.js new file mode 100644 index 00000000..6eb9e8e0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sv",{fontSize:{label:"Storlek",voiceLabel:"Teckenstorlek",panelTitle:"Teckenstorlek"},label:"Typsnitt",panelTitle:"Typsnitt",voiceLabel:"Typsnitt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/th.js new file mode 100644 index 00000000..464cab1f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","th",{fontSize:{label:"ขนาด",voiceLabel:"Font Size",panelTitle:"ขนาด"},label:"แบบอักษร",panelTitle:"แบบอักษร",voiceLabel:"แบบอักษร"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/tr.js new file mode 100644 index 00000000..424f6652 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tr",{fontSize:{label:"Boyut",voiceLabel:"Font Size",panelTitle:"Boyut"},label:"Yazı Türü",panelTitle:"Yazı Türü",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/tt.js new file mode 100644 index 00000000..623cbcb4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tt",{fontSize:{label:"Зурлык",voiceLabel:"Шрифт зурлыклары",panelTitle:"Шрифт зурлыклары"},label:"Шрифт",panelTitle:"Шрифт исеме",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ug.js new file mode 100644 index 00000000..235c677f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ug",{fontSize:{label:"چوڭلۇقى",voiceLabel:"خەت چوڭلۇقى",panelTitle:"چوڭلۇقى"},label:"خەت نۇسخا",panelTitle:"خەت نۇسخا",voiceLabel:"خەت نۇسخا"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/uk.js new file mode 100644 index 00000000..8a2387fe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","uk",{fontSize:{label:"Розмір",voiceLabel:"Розмір шрифту",panelTitle:"Розмір"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/vi.js new file mode 100644 index 00000000..e082b7b6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","vi",{fontSize:{label:"Cỡ chữ",voiceLabel:"Kích cỡ phông",panelTitle:"Cỡ chữ"},label:"Phông",panelTitle:"Phông",voiceLabel:"Phông"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/zh-cn.js new file mode 100644 index 00000000..370710a5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh-cn",{fontSize:{label:"大小",voiceLabel:"文字大小",panelTitle:"大小"},label:"字体",panelTitle:"字体",voiceLabel:"字体"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/zh.js new file mode 100644 index 00000000..a2716813 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh",{fontSize:{label:"大小",voiceLabel:"字型大小",panelTitle:"字型大小"},label:"字型",panelTitle:"字型名稱",voiceLabel:"字型"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/font/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/font/plugin.js new file mode 100644 index 00000000..dba4cae1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/font/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(b,a,e,h,j,n,l,o){for(var p=b.config,k=new CKEDITOR.style(l),c=j.split(";"),j=[],g={},d=0;d<c.length;d++){var f=c[d];if(f){var f=f.split("/"),m={},i=c[d]=f[0];m[e]=j[d]=f[1]||i;g[i]=new CKEDITOR.style(l,m);g[i]._.definition.name=i}else c.splice(d--,1)}b.ui.addRichCombo(a,{label:h.label,title:h.panelTitle,toolbar:"styles,"+o,allowedContent:k,requiredContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(p.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}}, +init:function(){this.startGroup(h.panelTitle);for(var b=0;b<c.length;b++){var a=c[b];this.add(a,g[a].buildPreview(),a)}},onClick:function(a){b.focus();b.fire("saveSnapshot");var c=g[a];b[this.getValue()==a?"removeStyle":"applyStyle"](c);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){for(var c=this.getValue(),a=a.data.path.elements,d=0,f;d<a.length;d++){f=a[d];for(var e in g)if(g[e].checkElementMatch(f,!0,b)){e!=c&&this.setValue(e);return}}this.setValue("",n)},this)}, +refresh:function(){b.activeFilter.check(k)||this.setState(CKEDITOR.TRISTATE_DISABLED)}})}CKEDITOR.plugins.add("font",{requires:"richcombo",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var a=b.config;e(b,"Font","family",b.lang.font,a.font_names,a.font_defaultLabel,a.font_style,30);e(b,"FontSize","size", +b.lang.font.fontSize,a.fontSize_sizes,a.fontSize_defaultLabel,a.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif"; +CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]}; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/button.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/button.js new file mode 100644 index 00000000..56a4efdd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/button.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("button",function(b){function d(a){var b=this.getValue();b?(a.attributes[this.id]=b,"name"==this.id&&(a.attributes["data-cke-saved-name"]=b)):(delete a.attributes[this.id],"name"==this.id&&delete a.attributes["data-cke-saved-name"])}return{title:b.lang.forms.button.title,minWidth:350,minHeight:150,onShow:function(){delete this.button;var a=this.getParentEditor().getSelection().getSelectedElement();a&&a.is("input")&&a.getAttribute("type")in{button:1,reset:1,submit:1}&&(this.button= +a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.button,d=!b,c=b?CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]:new CKEDITOR.htmlParser.element("input");this.commitContent(c);var e=new CKEDITOR.htmlParser.basicWriter;c.writeHtml(e);c=CKEDITOR.dom.element.createFromHtml(e.getHtml(),a.document);d?a.insertElement(c):(c.replace(b),a.getSelection().selectElement(c))},contents:[{id:"info",label:b.lang.forms.button.title,title:b.lang.forms.button.title,elements:[{id:"name", +type:"text",label:b.lang.common.name,"default":"",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:d},{id:"value",type:"text",label:b.lang.forms.button.text,accessKey:"V","default":"",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:d},{id:"type",type:"select",label:b.lang.forms.button.type,"default":"button",accessKey:"T",items:[[b.lang.forms.button.typeBtn,"button"],[b.lang.forms.button.typeSbm,"submit"],[b.lang.forms.button.typeRst, +"reset"]],setup:function(a){this.setValue(a.getAttribute("type")||"")},commit:d}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js new file mode 100644 index 00000000..65f1be60 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkbox",function(d){return{title:d.lang.forms.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){delete this.checkbox;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"checkbox"==a.getAttribute("type")&&(this.checkbox=a,this.setupContent(a))},onOk:function(){var a,b=this.checkbox;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","checkbox"),a.insertElement(b));this.commitContent({element:b})},contents:[{id:"info", +label:d.lang.forms.checkboxAndRadio.checkboxTitle,title:d.lang.forms.checkboxAndRadio.checkboxTitle,startupFocus:"txtName",elements:[{id:"txtName",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",label:d.lang.forms.checkboxAndRadio.value, +"default":"",accessKey:"V",setup:function(a){a=a.getAttribute("value");this.setValue(CKEDITOR.env.ie&&"on"==a?"":a)},commit:function(a){var b=a.element,c=this.getValue();c&&!(CKEDITOR.env.ie&&"on"==c)?b.setAttribute("value",c):CKEDITOR.env.ie?(c=new CKEDITOR.dom.element("input",b.getDocument()),b.copyAttributes(c,{value:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c):b.removeAttribute("value")}},{id:"cmbSelected",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"", +accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=!!b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="checkbox"'+(e?' checked="checked"':"")+"/>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/form.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/form.js new file mode 100644 index 00000000..86267185 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/form.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("form",function(a){var d={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.forms.form.title,minWidth:350,minHeight:200,onShow:function(){delete this.form;var b=this.getParentEditor().elementPath().contains("form",1);b&&(this.form=b,this.setupContent(b))},onOk:function(){var b,a=this.form,c=!a;c&&(b=this.getParentEditor(),a=b.document.createElement("form"),a.appendBogus());c&&b.insertElement(a);this.commitContent(a)},onLoad:function(){function a(b){this.setValue(b.getAttribute(this.id)|| +"")}function e(a){this.getValue()?a.setAttribute(this.id,this.getValue()):a.removeAttribute(this.id)}this.foreach(function(c){d[c.id]&&(c.setup=a,c.commit=e)})},contents:[{id:"info",label:a.lang.forms.form.title,title:a.lang.forms.form.title,elements:[{id:"txtName",type:"text",label:a.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name", +!1),a.removeAttribute("name"))}},{id:"action",type:"text",label:a.lang.forms.form.action,"default":"",accessKey:"T"},{type:"hbox",widths:["45%","55%"],children:[{id:"id",type:"text",label:a.lang.common.id,"default":"",accessKey:"I"},{id:"enctype",type:"select",label:a.lang.forms.form.encoding,style:"width:100%",accessKey:"E","default":"",items:[[""],["text/plain"],["multipart/form-data"],["application/x-www-form-urlencoded"]]}]},{type:"hbox",widths:["45%","55%"],children:[{id:"target",type:"select", +label:a.lang.common.target,style:"width:100%",accessKey:"M","default":"",items:[[a.lang.common.notSet,""],[a.lang.common.targetNew,"_blank"],[a.lang.common.targetTop,"_top"],[a.lang.common.targetSelf,"_self"],[a.lang.common.targetParent,"_parent"]]},{id:"method",type:"select",label:a.lang.forms.form.method,accessKey:"M","default":"GET",items:[["GET","get"],["POST","post"]]}]}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js new file mode 100644 index 00000000..f4699b7d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("hiddenfield",function(d){return{title:d.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){delete this.hiddenField;var a=this.getParentEditor(),b=a.getSelection(),c=b.getSelectedElement();c&&(c.data("cke-real-element-type")&&"hiddenfield"==c.data("cke-real-element-type"))&&(this.hiddenField=c,c=a.restoreRealElement(this.hiddenField),this.setupContent(c),b.selectElement(this.hiddenField))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name"); +this.getValueOf("info","value");var b=this.getParentEditor(),a=CKEDITOR.env.ie&&!(8<=CKEDITOR.document.$.documentMode)?b.document.createElement('<input name="'+CKEDITOR.tools.htmlEncode(a)+'">'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title, +elements:[{id:"_cke_saved_name",type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()): +a.removeAttribute("value")}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/radio.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/radio.js new file mode 100644 index 00000000..1af693e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/radio.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("radio",function(d){return{title:d.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&("input"==a.getName()&&"radio"==a.getAttribute("type"))&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"));c&&a.insertElement(b);this.commitContent({element:b})}, +contents:[{id:"info",label:d.lang.forms.checkboxAndRadio.radioTitle,title:d.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:d.lang.forms.checkboxAndRadio.value,"default":"", +accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="radio"'+ +(e?' checked="checked"':"")+"></input>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/select.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/select.js new file mode 100644 index 00000000..a6c50e20 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/select.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("select",function(c){function h(a,b,e,d,c){a=f(a);d=d?d.createElement("OPTION"):document.createElement("OPTION");if(a&&d&&"option"==d.getName())CKEDITOR.env.ie?(isNaN(parseInt(c,10))?a.$.options.add(d.$):a.$.options.add(d.$,c),d.$.innerHTML=0<b.length?b:"",d.$.value=e):(null!==c&&c<a.getChildCount()?a.getChild(0>c?0:c).insertBeforeMe(d):a.append(d),d.setText(0<b.length?b:""),d.setValue(e));else return!1;return d}function m(a){for(var a=f(a),b=g(a),e=a.getChildren().count()-1;0<= +e;e--)a.getChild(e).$.selected&&a.getChild(e).remove();i(a,b)}function n(a,b,e,d){a=f(a);if(0>b)return!1;a=a.getChild(b);a.setText(e);a.setValue(d);return a}function k(a){for(a=f(a);a.getChild(0)&&a.getChild(0).remove(););}function j(a,b,e){var a=f(a),d=g(a);if(0>d)return!1;b=d+b;b=0>b?0:b;b=b>=a.getChildCount()?a.getChildCount()-1:b;if(d==b)return!1;var d=a.getChild(d),c=d.getText(),o=d.getValue();d.remove();d=h(a,c,o,!e?null:e,b);i(a,b);return d}function g(a){return(a=f(a))?a.$.selectedIndex:-1} +function i(a,b){a=f(a);if(0>b)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function l(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){delete this.selectBox;this.setupContent("clear");var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"select"==a.getName()){this.selectBox= +a;this.setupContent(a.getName(),a);for(var a=l(a),b=0;b<a.count();b++)this.setupContent("option",a.getItem(b))}},onOk:function(){var a=this.getParentEditor(),b=this.selectBox,e=!b;e&&(b=a.document.createElement("select"));this.commitContent(b);if(e&&(a.insertElement(b),CKEDITOR.env.ie)){var d=a.getSelection(),c=d.createBookmarks();setTimeout(function(){d.selectBookmarks(c)},0)}},contents:[{id:"info",label:c.lang.forms.select.selectInfo,title:c.lang.forms.select.selectInfo,accessKey:"",elements:[{id:"txtName", +type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.common.name,"default":"",accessKey:"N",style:"width:350px",setup:function(a,b){"clear"==a?this.setValue(this["default"]||""):"select"==a&&this.setValue(b.data("cke-saved-name")||b.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.forms.select.value, +style:"width:350px","default":"",className:"cke_disabled",onLoad:function(){this.getInputElement().setAttribute("readOnly",!0)},setup:function(a,b){"clear"==a?this.setValue(""):"option"==a&&b.getAttribute("selected")&&this.setValue(b.$.value)}},{type:"hbox",widths:["175px","170px"],children:[{id:"txtSize",type:"text",labelLayout:"horizontal",label:c.lang.forms.select.size,"default":"",accessKey:"S",style:"width:175px",validate:function(){var a=CKEDITOR.dialog.validate.integer(c.lang.common.validateNumberFailed); +return""===this.getValue()||a.apply(this)},setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("size")||"");CKEDITOR.env.webkit&&this.getInputElement().setStyle("width","86px")},commit:function(a){this.getValue()?a.setAttribute("size",this.getValue()):a.removeAttribute("size")}},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.lines)+"</span>"}]},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.opAvail)+"</span>"},{type:"hbox",widths:["115px", +"115px","100px"],children:[{type:"vbox",children:[{id:"txtOptName",type:"text",label:c.lang.forms.select.opText,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbName",label:"",title:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(this.getValue());a.setValue(b.getValue())}, +setup:function(a,b){"clear"==a?k(this):"option"==a&&h(this,b.getText(),b.getText(),this.getDialog().getParentEditor().document)},commit:function(a){var b=this.getDialog(),e=l(this),d=l(b.getContentElement("info","cmbValue")),c=b.getContentElement("info","txtValue").getValue();k(a);for(var f=0;f<e.count();f++){var g=h(a,e.getItem(f).getValue(),d.getItem(f).getValue(),b.getParentEditor().document);d.getItem(f).getValue()==c&&(g.setAttribute("selected","selected"),g.selected=!0)}}}]},{type:"vbox",children:[{id:"txtOptValue", +type:"text",label:c.lang.forms.select.opValue,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbValue",label:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(b.getValue());a.setValue(this.getValue())},setup:function(a,b){if("clear"==a)k(this);else if("option"== +a){var e=b.getValue();h(this,e,e,this.getDialog().getParentEditor().document);"selected"==b.getAttribute("selected")&&this.getDialog().getContentElement("info","txtValue").setValue(e)}}}]},{type:"vbox",padding:5,children:[{type:"button",id:"btnAdd",style:"",label:c.lang.forms.select.btnAdd,title:c.lang.forms.select.btnAdd,style:"width:100%;",onClick:function(){var a=this.getDialog();a.getParentEditor();var b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info", +"cmbName"),c=a.getContentElement("info","cmbValue");h(d,b.getValue(),b.getValue(),a.getParentEditor().document);h(c,e.getValue(),e.getValue(),a.getParentEditor().document);b.setValue("");e.setValue("")}},{type:"button",id:"btnModify",label:c.lang.forms.select.btnModify,title:c.lang.forms.select.btnModify,style:"width:100%;",onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info","cmbName"),a=a.getContentElement("info", +"cmbValue"),c=g(d);0<=c&&(n(d,c,b.getValue(),b.getValue()),n(a,c,e.getValue(),e.getValue()))}},{type:"button",id:"btnUp",style:"width:100%;",label:c.lang.forms.select.btnUp,title:c.lang.forms.select.btnUp,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,-1,a.getParentEditor().document);j(c,-1,a.getParentEditor().document)}},{type:"button",id:"btnDown",style:"width:100%;",label:c.lang.forms.select.btnDown,title:c.lang.forms.select.btnDown, +onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,1,a.getParentEditor().document);j(c,1,a.getParentEditor().document)}}]}]},{type:"hbox",widths:["40%","20%","40%"],children:[{type:"button",id:"btnSetValue",label:c.lang.forms.select.btnSetValue,title:c.lang.forms.select.btnSetValue,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue");a.getContentElement("info","txtValue").setValue(b.getValue())}}, +{type:"button",id:"btnDelete",label:c.lang.forms.select.btnDelete,title:c.lang.forms.select.btnDelete,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue"),d=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue");m(b);m(c);d.setValue("");a.setValue("")}},{id:"chkMulti",type:"checkbox",label:c.lang.forms.select.chkMulti,"default":"",accessKey:"M",value:"checked",setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("multiple")); +CKEDITOR.env.webkit&&this.getElement().getParent().setStyle("vertical-align","middle")},commit:function(a){this.getValue()?a.setAttribute("multiple",this.getValue()):a.removeAttribute("multiple")}}]}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/textarea.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/textarea.js new file mode 100644 index 00000000..de8b3187 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/textarea.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title, +elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed), +setup:function(a){this.setValue(a.hasAttribute("cols")&&a.getAttribute("cols")||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){this.setValue(a.hasAttribute("rows")&&a.getAttribute("rows")||"")},commit:function(a){this.getValue()?a.setAttribute("rows", +this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/textfield.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/textfield.js new file mode 100644 index 00000000..46b006e2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/dialogs/textfield.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textfield",function(b){function e(a){var a=a.element,c=this.getValue();c?a.setAttribute(this.id,c):a.removeAttribute(this.id)}function f(a){this.setValue(a.hasAttribute(this.id)&&a.getAttribute(this.id)||"")}var g={email:1,password:1,search:1,tel:1,text:1,url:1};return{title:b.lang.forms.textfield.title,minWidth:350,minHeight:150,onShow:function(){delete this.textField;var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"input"==a.getName()&&(g[a.getAttribute("type")]|| +!a.getAttribute("type")))this.textField=a,this.setupContent(a)},onOk:function(){var a=this.getParentEditor(),c=this.textField,b=!c;b&&(c=a.document.createElement("input"),c.setAttribute("type","text"));c={element:c};b&&a.insertElement(c.element);this.commitContent(c);b||a.getSelection().selectElement(c.element)},onLoad:function(){this.foreach(function(a){if(a.getValue&&(a.setup||(a.setup=f),!a.commit))a.commit=e})},contents:[{id:"info",label:b.lang.forms.textfield.title,title:b.lang.forms.textfield.title, +elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"_cke_saved_name",type:"text",label:b.lang.forms.textfield.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.textfield.value,"default":"",accessKey:"V",commit:function(a){if(CKEDITOR.env.ie&& +!this.getValue()){var c=a.element,d=new CKEDITOR.dom.element("input",b.document);c.copyAttributes(d,{value:1});d.replace(c);a.element=d}else e.call(this,a)}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"size",type:"text",label:b.lang.forms.textfield.charWidth,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)},{id:"maxLength",type:"text",label:b.lang.forms.textfield.maxChars,"default":"",accessKey:"M",style:"width:50px", +validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}],onLoad:function(){CKEDITOR.env.ie7Compat&&this.getElement().setStyle("zoom","100%")}},{id:"type",type:"select",label:b.lang.forms.textfield.type,"default":"text",accessKey:"M",items:[[b.lang.forms.textfield.typeEmail,"email"],[b.lang.forms.textfield.typePass,"password"],[b.lang.forms.textfield.typeSearch,"search"],[b.lang.forms.textfield.typeTel,"tel"],[b.lang.forms.textfield.typeText,"text"],[b.lang.forms.textfield.typeUrl, +"url"]],setup:function(a){this.setValue(a.getAttribute("type"))},commit:function(a){var c=a.element;if(CKEDITOR.env.ie){var d=c.getAttribute("type"),e=this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('<input type="'+e+'"></input>',b.document),c.copyAttributes(d,{type:1}),d.replace(c),a.element=d)}else c.setAttribute("type",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/button.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/button.png new file mode 100644 index 00000000..0bf68caa Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/button.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/checkbox.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/checkbox.png new file mode 100644 index 00000000..2f4eb2f4 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/checkbox.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/form.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/form.png new file mode 100644 index 00000000..08416674 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/form.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png new file mode 100644 index 00000000..fce4fccc Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png new file mode 100644 index 00000000..bd92b165 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png new file mode 100644 index 00000000..36be4aa0 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png new file mode 100644 index 00000000..4a02649c Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png new file mode 100644 index 00000000..cd5f3186 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png new file mode 100644 index 00000000..d2737963 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png new file mode 100644 index 00000000..2f0c72d6 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png new file mode 100644 index 00000000..42452e19 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png new file mode 100644 index 00000000..da2b066b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png new file mode 100644 index 00000000..60618a5b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png new file mode 100644 index 00000000..87073d22 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/imagebutton.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/imagebutton.png new file mode 100644 index 00000000..162df9a3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/imagebutton.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/radio.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/radio.png new file mode 100644 index 00000000..aaad523f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/radio.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/select-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/select-rtl.png new file mode 100644 index 00000000..029a0d22 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/select-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/select.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/select.png new file mode 100644 index 00000000..44b02b9d Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/select.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png new file mode 100644 index 00000000..8a15d688 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textarea.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textarea.png new file mode 100644 index 00000000..58e0fa02 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textarea.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textfield.png b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textfield.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/icons/textfield.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif b/platforms/android/assets/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif new file mode 100644 index 00000000..953f643b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/af.js new file mode 100644 index 00000000..27ed76df --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","af",{button:{title:"Knop eienskappe",text:"Teks (Waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Stuur",typeRst:"Maak leeg"},checkboxAndRadio:{checkboxTitle:"Merkhokkie eienskappe",radioTitle:"Radioknoppie eienskappe",value:"Waarde",selected:"Geselekteer"},form:{title:"Vorm eienskappe",menu:"Vorm eienskappe",action:"Aksie",method:"Metode",encoding:"Kodering"},hidden:{title:"Verborge veld eienskappe",name:"Naam",value:"Waarde"},select:{title:"Keuseveld eienskappe",selectInfo:"Info", +opAvail:"Beskikbare opsies",value:"Waarde",size:"Grootte",lines:"Lyne",chkMulti:"Laat meer as een keuse toe",opText:"Teks",opValue:"Waarde",btnAdd:"Byvoeg",btnModify:"Wysig",btnUp:"Op",btnDown:"Af",btnSetValue:"Stel as geselekteerde waarde",btnDelete:"Verwyder"},textarea:{title:"Teks-area eienskappe",cols:"Kolomme",rows:"Rye"},textfield:{title:"Teksveld eienskappe",name:"Naam",value:"Waarde",charWidth:"Breedte (karakters)",maxChars:"Maksimum karakters",type:"Soort",typeText:"Teks",typePass:"Wagwoord", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ar.js new file mode 100644 index 00000000..537ca014 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ar.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ar",{button:{title:"خصائص زر الضغط",text:"القيمة/التسمية",type:"نوع الزر",typeBtn:"زر",typeSbm:"إرسال",typeRst:"إعادة تعيين"},checkboxAndRadio:{checkboxTitle:"خصائص خانة الإختيار",radioTitle:"خصائص زر الخيار",value:"القيمة",selected:"محدد"},form:{title:"خصائص النموذج",menu:"خصائص النموذج",action:"اسم الملف",method:"الأسلوب",encoding:"تشفير"},hidden:{title:"خصائص الحقل المخفي",name:"الاسم",value:"القيمة"},select:{title:"خصائص اختيار الحقل",selectInfo:"اختار معلومات", +opAvail:"الخيارات المتاحة",value:"القيمة",size:"الحجم",lines:"الأسطر",chkMulti:"السماح بتحديدات متعددة",opText:"النص",opValue:"القيمة",btnAdd:"إضافة",btnModify:"تعديل",btnUp:"أعلى",btnDown:"أسفل",btnSetValue:"إجعلها محددة",btnDelete:"إزالة"},textarea:{title:"خصائص مساحة النص",cols:"الأعمدة",rows:"الصفوف"},textfield:{title:"خصائص مربع النص",name:"الاسم",value:"القيمة",charWidth:"عرض السمات",maxChars:"اقصى عدد للسمات",type:"نوع المحتوى",typeText:"نص",typePass:"كلمة مرور",typeEmail:"بريد إلكتروني",typeSearch:"بحث", +typeTel:"رقم الهاتف",typeUrl:"الرابط"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bg.js new file mode 100644 index 00000000..6761facd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bg",{button:{title:"Настройки на бутона",text:"Текст (стойност)",type:"Тип",typeBtn:"Бутон",typeSbm:"Добави",typeRst:"Нулиране"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Настройки на радиобутон",value:"Стойност",selected:"Избрано"},form:{title:"Настройки на формата",menu:"Настройки на формата",action:"Действие",method:"Метод",encoding:"Кодиране"},hidden:{title:"Настройки за скрито поле",name:"Име",value:"Стойност"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Налични опции",value:"Стойност",size:"Размер",lines:"линии",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Стойност",btnAdd:"Добави",btnModify:"Промени",btnUp:"На горе",btnDown:"На долу",btnSetValue:"Set as selected value",btnDelete:"Изтриване"},textarea:{title:"Опции за текстовата зона",cols:"Колони",rows:"Редове"},textfield:{title:"Настройки за текстово поле",name:"Име",value:"Стойност",charWidth:"Ширина на знаците",maxChars:"Макс. знаци",type:"Тип", +typeText:"Текст",typePass:"Парола",typeEmail:"Email",typeSearch:"Търсене",typeTel:"Телефонен номер",typeUrl:"Уеб адрес"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bn.js new file mode 100644 index 00000000..63773289 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bn",{button:{title:"বাটন প্রোপার্টি",text:"টেক্সট (ভ্যালু)",type:"প্রকার",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"চেক বক্স প্রোপার্টি",radioTitle:"রেডিও বাটন প্রোপার্টি",value:"ভ্যালু",selected:"সিলেক্টেড"},form:{title:"ফর্ম প্রোপার্টি",menu:"ফর্ম প্রোপার্টি",action:"একশ্যন",method:"পদ্ধতি",encoding:"Encoding"},hidden:{title:"গুপ্ত ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু"},select:{title:"বাছাই ফীল্ড প্রোপার্টি",selectInfo:"তথ্য", +opAvail:"অন্যান্য বিকল্প",value:"ভ্যালু",size:"সাইজ",lines:"লাইন সমূহ",chkMulti:"একাধিক সিলেকশন এলাউ কর",opText:"টেক্সট",opValue:"ভ্যালু",btnAdd:"যুক্ত",btnModify:"বদলে দাও",btnUp:"উপর",btnDown:"নীচে",btnSetValue:"বাছাই করা ভ্যালু হিসেবে সেট কর",btnDelete:"ডিলীট"},textarea:{title:"টেক্সট এরিয়া প্রোপার্টি",cols:"কলাম",rows:"রো"},textfield:{title:"টেক্সট ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু",charWidth:"ক্যারেক্টার প্রশস্ততা",maxChars:"সর্বাধিক ক্যারেক্টার",type:"টাইপ",typeText:"টেক্সট",typePass:"পাসওয়ার্ড", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bs.js new file mode 100644 index 00000000..cac69a36 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bs",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ca.js new file mode 100644 index 00000000..55da8f9b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ca",{button:{title:"Propietats del botó",text:"Text (Valor)",type:"Tipus",typeBtn:"Botó",typeSbm:"Transmet formulari",typeRst:"Reinicia formulari"},checkboxAndRadio:{checkboxTitle:"Propietats de la casella de verificació",radioTitle:"Propietats del botó d'opció",value:"Valor",selected:"Seleccionat"},form:{title:"Propietats del formulari",menu:"Propietats del formulari",action:"Acció",method:"Mètode",encoding:"Codificació"},hidden:{title:"Propietats del camp ocult", +name:"Nom",value:"Valor"},select:{title:"Propietats del camp de selecció",selectInfo:"Info",opAvail:"Opcions disponibles",value:"Valor",size:"Mida",lines:"Línies",chkMulti:"Permet múltiples seleccions",opText:"Text",opValue:"Valor",btnAdd:"Afegeix",btnModify:"Modifica",btnUp:"Amunt",btnDown:"Avall",btnSetValue:"Selecciona per defecte",btnDelete:"Elimina"},textarea:{title:"Propietats de l'àrea de text",cols:"Columnes",rows:"Files"},textfield:{title:"Propietats del camp de text",name:"Nom",value:"Valor", +charWidth:"Amplada",maxChars:"Nombre màxim de caràcters",type:"Tipus",typeText:"Text",typePass:"Contrasenya",typeEmail:"Correu electrònic",typeSearch:"Cercar",typeTel:"Número de telèfon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/cs.js new file mode 100644 index 00000000..5691de93 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cs",{button:{title:"Vlastnosti tlačítka",text:"Popisek",type:"Typ",typeBtn:"Tlačítko",typeSbm:"Odeslat",typeRst:"Obnovit"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacího políčka",radioTitle:"Vlastnosti přepínače",value:"Hodnota",selected:"Zaškrtnuto"},form:{title:"Vlastnosti formuláře",menu:"Vlastnosti formuláře",action:"Akce",method:"Metoda",encoding:"Kódování"},hidden:{title:"Vlastnosti skrytého pole",name:"Název",value:"Hodnota"},select:{title:"Vlastnosti seznamu", +selectInfo:"Info",opAvail:"Dostupná nastavení",value:"Hodnota",size:"Velikost",lines:"Řádků",chkMulti:"Povolit mnohonásobné výběry",opText:"Text",opValue:"Hodnota",btnAdd:"Přidat",btnModify:"Změnit",btnUp:"Nahoru",btnDown:"Dolů",btnSetValue:"Nastavit jako vybranou hodnotu",btnDelete:"Smazat"},textarea:{title:"Vlastnosti textové oblasti",cols:"Sloupců",rows:"Řádků"},textfield:{title:"Vlastnosti textového pole",name:"Název",value:"Hodnota",charWidth:"Šířka ve znacích",maxChars:"Maximální počet znaků", +type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hledat",typeTel:"Telefonní číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/cy.js new file mode 100644 index 00000000..332c861f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cy",{button:{title:"Priodweddau Botymau",text:"Testun (Gwerth)",type:"Math",typeBtn:"Botwm",typeSbm:"Anfon",typeRst:"Ailosod"},checkboxAndRadio:{checkboxTitle:"Priodweddau Blwch Ticio",radioTitle:"Priodweddau Botwm Radio",value:"Gwerth",selected:"Dewiswyd"},form:{title:"Priodweddau Ffurflen",menu:"Priodweddau Ffurflen",action:"Gweithred",method:"Dull",encoding:"Amgodio"},hidden:{title:"Priodweddau Maes Cudd",name:"Enw",value:"Gwerth"},select:{title:"Priodweddau Maes Dewis", +selectInfo:"Gwyb Dewis",opAvail:"Opsiynau ar Gael",value:"Gwerth",size:"Maint",lines:"llinellau",chkMulti:"Caniatàu aml-ddewisiadau",opText:"Testun",opValue:"Gwerth",btnAdd:"Ychwanegu",btnModify:"Newid",btnUp:"Lan",btnDown:"Lawr",btnSetValue:"Gosod fel gwerth a ddewiswyd",btnDelete:"Dileu"},textarea:{title:"Priodweddau Ardal Testun",cols:"Colofnau",rows:"Rhesi"},textfield:{title:"Priodweddau Maes Testun",name:"Enw",value:"Gwerth",charWidth:"Lled Nod",maxChars:"Uchafswm y Nodau",type:"Math",typeText:"Testun", +typePass:"Cyfrinair",typeEmail:"Ebost",typeSearch:"Chwilio",typeTel:"Rhif Ffôn",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/da.js new file mode 100644 index 00000000..cf4a1934 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","da",{button:{title:"Egenskaber for knap",text:"Tekst",type:"Type",typeBtn:"Knap",typeSbm:"Send",typeRst:"Nulstil"},checkboxAndRadio:{checkboxTitle:"Egenskaber for afkrydsningsfelt",radioTitle:"Egenskaber for alternativknap",value:"Værdi",selected:"Valgt"},form:{title:"Egenskaber for formular",menu:"Egenskaber for formular",action:"Handling",method:"Metode",encoding:"Kodning (encoding)"},hidden:{title:"Egenskaber for skjult felt",name:"Navn",value:"Værdi"},select:{title:"Egenskaber for liste", +selectInfo:"Generelt",opAvail:"Valgmuligheder",value:"Værdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillad flere valg",opText:"Tekst",opValue:"Værdi",btnAdd:"Tilføj",btnModify:"Redigér",btnUp:"Op",btnDown:"Ned",btnSetValue:"Sæt som valgt",btnDelete:"Slet"},textarea:{title:"Egenskaber for tekstboks",cols:"Kolonner",rows:"Rækker"},textfield:{title:"Egenskaber for tekstfelt",name:"Navn",value:"Værdi",charWidth:"Bredde (tegn)",maxChars:"Max. antal tegn",type:"Type",typeText:"Tekst",typePass:"Adgangskode", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/de.js new file mode 100644 index 00000000..483c7f9d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","de",{button:{title:"Button-Eigenschaften",text:"Text (Wert)",type:"Typ",typeBtn:"Button",typeSbm:"Absenden",typeRst:"Zurücksetzen"},checkboxAndRadio:{checkboxTitle:"Checkbox-Eigenschaften",radioTitle:"Optionsfeld-Eigenschaften",value:"Wert",selected:"ausgewählt"},form:{title:"Formular-Eigenschaften",menu:"Formular-Eigenschaften",action:"Action",method:"Method",encoding:"Zeichenkodierung"},hidden:{title:"Verstecktes Feld-Eigenschaften",name:"Name",value:"Wert"},select:{title:"Auswahlfeld-Eigenschaften", +selectInfo:"Info",opAvail:"Mögliche Optionen",value:"Wert",size:"Größe",lines:"Linien",chkMulti:"Erlaube Mehrfachauswahl",opText:"Text",opValue:"Wert",btnAdd:"Hinzufügen",btnModify:"Ändern",btnUp:"Hoch",btnDown:"Runter",btnSetValue:"Setze als Standardwert",btnDelete:"Entfernen"},textarea:{title:"Textfeld (mehrzeilig) Eigenschaften",cols:"Spalten",rows:"Reihen"},textfield:{title:"Textfeld (einzeilig) Eigenschaften",name:"Name",value:"Wert",charWidth:"Zeichenbreite",maxChars:"Max. Zeichen",type:"Typ", +typeText:"Text",typePass:"Passwort",typeEmail:"E-mail",typeSearch:"Suche",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/el.js new file mode 100644 index 00000000..2f42eff3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","el",{button:{title:"Ιδιότητες Κουμπιού",text:"Κείμενο (Τιμή)",type:"Τύπος",typeBtn:"Κουμπί",typeSbm:"Υποβολή",typeRst:"Επαναφορά"},checkboxAndRadio:{checkboxTitle:"Ιδιότητες Κουτιού Επιλογής",radioTitle:"Ιδιότητες Κουμπιού Επιλογής",value:"Τιμή",selected:"Επιλεγμένο"},form:{title:"Ιδιότητες Φόρμας",menu:"Ιδιότητες Φόρμας",action:"Ενέργεια",method:"Μέθοδος",encoding:"Κωδικοποίηση"},hidden:{title:"Ιδιότητες Κρυφού Πεδίου",name:"Όνομα",value:"Τιμή"},select:{title:"Ιδιότητες Πεδίου Επιλογής", +selectInfo:"Πληροφορίες Πεδίου Επιλογής",opAvail:"Διαθέσιμες Επιλογές",value:"Τιμή",size:"Μέγεθος",lines:"γραμμές",chkMulti:"Να επιτρέπονται οι πολλαπλές επιλογές",opText:"Κείμενο",opValue:"Τιμή",btnAdd:"Προσθήκη",btnModify:"Τροποποίηση",btnUp:"Πάνω",btnDown:"Κάτω",btnSetValue:"Θέση ως προεπιλογή",btnDelete:"Διαγραφή"},textarea:{title:"Ιδιότητες Περιοχής Κειμένου",cols:"Στήλες",rows:"Σειρές"},textfield:{title:"Ιδιότητες Πεδίου Κειμένου",name:"Όνομα",value:"Τιμή",charWidth:"Πλάτος Χαρακτήρων",maxChars:"Μέγιστοι χαρακτήρες", +type:"Τύπος",typeText:"Κείμενο",typePass:"Κωδικός",typeEmail:"Email",typeSearch:"Αναζήτηση",typeTel:"Αριθμός Τηλεφώνου",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-au.js new file mode 100644 index 00000000..e144ec74 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-au",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-ca.js new file mode 100644 index 00000000..8adf26e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-ca",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-gb.js new file mode 100644 index 00000000..d72b16c6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-gb",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"E-mail",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en.js new file mode 100644 index 00000000..95cf7753 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/eo.js new file mode 100644 index 00000000..26744b66 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eo",{button:{title:"Butonaj atributoj",text:"Teksto (Valoro)",type:"Tipo",typeBtn:"Butono",typeSbm:"Validigi (submit)",typeRst:"Remeti en la originstaton (Reset)"},checkboxAndRadio:{checkboxTitle:"Markobutonaj Atributoj",radioTitle:"Radiobutonaj Atributoj",value:"Valoro",selected:"Selektita"},form:{title:"Formularaj Atributoj",menu:"Formularaj Atributoj",action:"Ago",method:"Metodo",encoding:"Kodoprezento"},hidden:{title:"Atributoj de Kaŝita Kampo",name:"Nomo",value:"Valoro"}, +select:{title:"Atributoj de Elekta Kampo",selectInfo:"Informoj pri la rulummenuo",opAvail:"Elektoj Disponeblaj",value:"Valoro",size:"Grando",lines:"Linioj",chkMulti:"Permesi Plurajn Elektojn",opText:"Teksto",opValue:"Valoro",btnAdd:"Aldoni",btnModify:"Modifi",btnUp:"Supren",btnDown:"Malsupren",btnSetValue:"Agordi kiel Elektitan Valoron",btnDelete:"Forigi"},textarea:{title:"Atributoj de Teksta Areo",cols:"Kolumnoj",rows:"Linioj"},textfield:{title:"Atributoj de Teksta Kampo",name:"Nomo",value:"Valoro", +charWidth:"Signolarĝo",maxChars:"Maksimuma Nombro da Signoj",type:"Tipo",typeText:"Teksto",typePass:"Pasvorto",typeEmail:"retpoŝtadreso",typeSearch:"Serĉi",typeTel:"Telefonnumero",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/es.js new file mode 100644 index 00000000..e275cf88 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","es",{button:{title:"Propiedades de Botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Boton",typeSbm:"Enviar",typeRst:"Reestablecer"},checkboxAndRadio:{checkboxTitle:"Propiedades de Casilla",radioTitle:"Propiedades de Botón de Radio",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades de Formulario",menu:"Propiedades de Formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades de Campo Oculto",name:"Nombre",value:"Valor"}, +select:{title:"Propiedades de Campo de Selección",selectInfo:"Información",opAvail:"Opciones disponibles",value:"Valor",size:"Tamaño",lines:"Lineas",chkMulti:"Permitir múltiple selección",opText:"Texto",opValue:"Valor",btnAdd:"Agregar",btnModify:"Modificar",btnUp:"Subir",btnDown:"Bajar",btnSetValue:"Establecer como predeterminado",btnDelete:"Eliminar"},textarea:{title:"Propiedades de Area de Texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades de Campo de Texto",name:"Nombre",value:"Valor", +charWidth:"Caracteres de ancho",maxChars:"Máximo caracteres",type:"Tipo",typeText:"Texto",typePass:"Contraseña",typeEmail:"Correo electrónico",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/et.js new file mode 100644 index 00000000..0e1d62e2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","et",{button:{title:"Nupu omadused",text:"Tekst (väärtus)",type:"Liik",typeBtn:"Nupp",typeSbm:"Saada",typeRst:"Lähtesta"},checkboxAndRadio:{checkboxTitle:"Märkeruudu omadused",radioTitle:"Raadionupu omadused",value:"Väärtus",selected:"Märgitud"},form:{title:"Vormi omadused",menu:"Vormi omadused",action:"Toiming",method:"Meetod",encoding:"Kodeering"},hidden:{title:"Varjatud lahtri omadused",name:"Nimi",value:"Väärtus"},select:{title:"Valiklahtri omadused",selectInfo:"Info", +opAvail:"Võimalikud valikud:",value:"Väärtus",size:"Suurus",lines:"ridu",chkMulti:"Võimalik mitu valikut",opText:"Tekst",opValue:"Väärtus",btnAdd:"Lisa",btnModify:"Muuda",btnUp:"Üles",btnDown:"Alla",btnSetValue:"Määra vaikimisi",btnDelete:"Kustuta"},textarea:{title:"Tekstiala omadused",cols:"Veerge",rows:"Ridu"},textfield:{title:"Tekstilahtri omadused",name:"Nimi",value:"Väärtus",charWidth:"Laius (tähemärkides)",maxChars:"Maksimaalselt tähemärke",type:"Liik",typeText:"Tekst",typePass:"Parool",typeEmail:"E-mail", +typeSearch:"Otsi",typeTel:"Telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/eu.js new file mode 100644 index 00000000..cfb5e9a5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eu",{button:{title:"Botoiaren Ezaugarriak",text:"Testua (Balorea)",type:"Mota",typeBtn:"Botoia",typeSbm:"Bidali",typeRst:"Garbitu"},checkboxAndRadio:{checkboxTitle:"Kontrol-laukiko Ezaugarriak",radioTitle:"Aukera-botoiaren Ezaugarriak",value:"Balorea",selected:"Hautatuta"},form:{title:"Formularioaren Ezaugarriak",menu:"Formularioaren Ezaugarriak",action:"Ekintza",method:"Metodoa",encoding:"Kodeketa"},hidden:{title:"Ezkutuko Eremuaren Ezaugarriak",name:"Izena",value:"Balorea"}, +select:{title:"Hautespen Eremuaren Ezaugarriak",selectInfo:"Informazioa",opAvail:"Aukera Eskuragarriak",value:"Balorea",size:"Tamaina",lines:"lerro kopurura",chkMulti:"Hautaketa anitzak baimendu",opText:"Testua",opValue:"Balorea",btnAdd:"Gehitu",btnModify:"Aldatu",btnUp:"Gora",btnDown:"Behera",btnSetValue:"Aukeratutako balorea ezarri",btnDelete:"Ezabatu"},textarea:{title:"Testu-arearen Ezaugarriak",cols:"Zutabeak",rows:"Lerroak"},textfield:{title:"Testu Eremuaren Ezaugarriak",name:"Izena",value:"Balorea", +charWidth:"Zabalera",maxChars:"Zenbat karaktere gehienez",type:"Mota",typeText:"Testua",typePass:"Pasahitza",typeEmail:"E-posta",typeSearch:"Bilatu",typeTel:"Telefono Zenbakia",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fa.js new file mode 100644 index 00000000..326ada0d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fa.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fa",{button:{title:"ویژگی​های دکمه",text:"متن (مقدار)",type:"نوع",typeBtn:"دکمه",typeSbm:"ثبت",typeRst:"بازنشانی (Reset)"},checkboxAndRadio:{checkboxTitle:"ویژگی​های خانهٴ گزینه​ای",radioTitle:"ویژگی​های دکمهٴ رادیویی",value:"مقدار",selected:"برگزیده"},form:{title:"ویژگی​های فرم",menu:"ویژگی​های فرم",action:"رویداد",method:"متد",encoding:"رمزنگاری"},hidden:{title:"ویژگی​های فیلد پنهان",name:"نام",value:"مقدار"},select:{title:"ویژگی​های فیلد چندگزینه​ای",selectInfo:"اطلاعات", +opAvail:"گزینه​های دردسترس",value:"مقدار",size:"اندازه",lines:"خطوط",chkMulti:"گزینش چندگانه فراهم باشد",opText:"متن",opValue:"مقدار",btnAdd:"افزودن",btnModify:"ویرایش",btnUp:"بالا",btnDown:"پائین",btnSetValue:"تنظیم به عنوان مقدار برگزیده",btnDelete:"پاککردن"},textarea:{title:"ویژگی​های ناحیهٴ متنی",cols:"ستون​ها",rows:"سطرها"},textfield:{title:"ویژگی​های فیلد متنی",name:"نام",value:"مقدار",charWidth:"پهنای نویسه",maxChars:"بیشینهٴ نویسه​ها",type:"نوع",typeText:"متن",typePass:"گذرواژه",typeEmail:"ایمیل", +typeSearch:"جستجو",typeTel:"شماره تلفن",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fi.js new file mode 100644 index 00000000..31cf6d05 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fi",{button:{title:"Painikkeen ominaisuudet",text:"Teksti (arvo)",type:"Tyyppi",typeBtn:"Painike",typeSbm:"Lähetä",typeRst:"Tyhjennä"},checkboxAndRadio:{checkboxTitle:"Valintaruudun ominaisuudet",radioTitle:"Radiopainikkeen ominaisuudet",value:"Arvo",selected:"Valittu"},form:{title:"Lomakkeen ominaisuudet",menu:"Lomakkeen ominaisuudet",action:"Toiminto",method:"Tapa",encoding:"Enkoodaus"},hidden:{title:"Piilokentän ominaisuudet",name:"Nimi",value:"Arvo"},select:{title:"Valintakentän ominaisuudet", +selectInfo:"Info",opAvail:"Ominaisuudet",value:"Arvo",size:"Koko",lines:"Rivit",chkMulti:"Salli usea valinta",opText:"Teksti",opValue:"Arvo",btnAdd:"Lisää",btnModify:"Muuta",btnUp:"Ylös",btnDown:"Alas",btnSetValue:"Aseta valituksi",btnDelete:"Poista"},textarea:{title:"Tekstilaatikon ominaisuudet",cols:"Sarakkeita",rows:"Rivejä"},textfield:{title:"Tekstikentän ominaisuudet",name:"Nimi",value:"Arvo",charWidth:"Leveys",maxChars:"Maksimi merkkimäärä",type:"Tyyppi",typeText:"Teksti",typePass:"Salasana", +typeEmail:"Sähköposti",typeSearch:"Haku",typeTel:"Puhelinnumero",typeUrl:"Osoite"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fo.js new file mode 100644 index 00000000..3ff4950e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fo",{button:{title:"Eginleikar fyri knøtt",text:"Tekstur",type:"Slag",typeBtn:"Knøttur",typeSbm:"Send",typeRst:"Nullstilla"},checkboxAndRadio:{checkboxTitle:"Eginleikar fyri flugubein",radioTitle:"Eginleikar fyri radioknøtt",value:"Virði",selected:"Valt"},form:{title:"Eginleikar fyri Form",menu:"Eginleikar fyri Form",action:"Hending",method:"Háttur",encoding:"Encoding"},hidden:{title:"Eginleikar fyri fjaldan teig",name:"Navn",value:"Virði"},select:{title:"Eginleikar fyri valskrá", +selectInfo:"Upplýsingar",opAvail:"Tøkir møguleikar",value:"Virði",size:"Stødd",lines:"Linjur",chkMulti:"Loyv fleiri valmøguleikum samstundis",opText:"Tekstur",opValue:"Virði",btnAdd:"Legg afturat",btnModify:"Broyt",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Set sum valt virði",btnDelete:"Strika"},textarea:{title:"Eginleikar fyri tekstumráði",cols:"kolonnur",rows:"røðir"},textfield:{title:"Eginleikar fyri tekstteig",name:"Navn",value:"Virði",charWidth:"Breidd (sjónlig tekn)",maxChars:"Mest loyvdu tekn", +type:"Slag",typeText:"Tekstur",typePass:"Loyniorð",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fr-ca.js new file mode 100644 index 00000000..f44c8d63 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr-ca",{button:{title:"Propriétés du bouton",text:"Texte (Valeur)",type:"Type",typeBtn:"Bouton",typeSbm:"Soumettre",typeRst:"Réinitialiser"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom",value:"Valeur"}, +select:{title:"Propriétés du champ de sélection",selectInfo:"Info",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Monter",btnDown:"Descendre",btnSetValue:"Valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte",name:"Nom",value:"Valeur",charWidth:"Largeur de caractères", +maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"Courriel",typeSearch:"Recherche",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fr.js new file mode 100644 index 00000000..eff0fd02 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr",{button:{title:"Propriétés du bouton",text:"Texte (Value)",type:"Type",typeBtn:"Bouton",typeSbm:"Validation (submit)",typeRst:"Remise à zéro"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton Radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom", +value:"Valeur"},select:{title:"Propriétés du menu déroulant",selectInfo:"Informations sur le menu déroulant",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"Lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Haut",btnDown:"Bas",btnSetValue:"Définir comme valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte", +name:"Nom",value:"Valeur",charWidth:"Taille des caractères",maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"E-mail",typeSearch:"Rechercher",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/gl.js new file mode 100644 index 00000000..792ee3f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gl",{button:{title:"Propiedades do botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botón",typeSbm:"Enviar",typeRst:"Restabelever"},checkboxAndRadio:{checkboxTitle:"Propiedades da caixa de selección",radioTitle:"Propiedades do botón de opción",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades do formulario",menu:"Propiedades do formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades do campo agochado",name:"Nome", +value:"Valor"},select:{title:"Propiedades do campo de selección",selectInfo:"Información",opAvail:"Opcións dispoñíbeis",value:"Valor",size:"Tamaño",lines:"liñas",chkMulti:"Permitir múltiplas seleccións",opText:"Texto",opValue:"Valor",btnAdd:"Engadir",btnModify:"Modificar",btnUp:"Subir",btnDown:"Baixar",btnSetValue:"Estabelecer como valor seleccionado",btnDelete:"Eliminar"},textarea:{title:"Propiedades da área de texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades do campo de texto", +name:"Nome",value:"Valor",charWidth:"Largo do carácter",maxChars:"Núm. máximo de caracteres",type:"Tipo",typeText:"Texto",typePass:"Contrasinal",typeEmail:"Correo",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/gu.js new file mode 100644 index 00000000..976d136a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gu",{button:{title:"બટનના ગુણ",text:"ટેક્સ્ટ (વૅલ્યૂ)",type:"પ્રકાર",typeBtn:"બટન",typeSbm:"સબ્મિટ",typeRst:"રિસેટ"},checkboxAndRadio:{checkboxTitle:"ચેક બોક્સ ગુણ",radioTitle:"રેડિઓ બટનના ગુણ",value:"વૅલ્યૂ",selected:"સિલેક્ટેડ"},form:{title:"ફૉર્મ/પત્રકના ગુણ",menu:"ફૉર્મ/પત્રકના ગુણ",action:"ક્રિયા",method:"પદ્ધતિ",encoding:"અન્કોડીન્ગ"},hidden:{title:"ગુપ્ત ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ"},select:{title:"પસંદગી ક્ષેત્રના ગુણ",selectInfo:"સૂચના",opAvail:"ઉપલબ્ધ વિકલ્પ", +value:"વૅલ્યૂ",size:"સાઇઝ",lines:"લીટીઓ",chkMulti:"એકથી વધારે પસંદ કરી શકો",opText:"ટેક્સ્ટ",opValue:"વૅલ્યૂ",btnAdd:"ઉમેરવું",btnModify:"બદલવું",btnUp:"ઉપર",btnDown:"નીચે",btnSetValue:"પસંદ કરલી વૅલ્યૂ સેટ કરો",btnDelete:"રદ કરવું"},textarea:{title:"ટેક્સ્ટ એઅરિઆ, શબ્દ વિસ્તારના ગુણ",cols:"કૉલમ/ઊભી કટાર",rows:"પંક્તિઓ"},textfield:{title:"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ",charWidth:"કેરેક્ટરની પહોળાઈ",maxChars:"અધિકતમ કેરેક્ટર",type:"ટાઇપ",typeText:"ટેક્સ્ટ",typePass:"પાસવર્ડ", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/he.js new file mode 100644 index 00000000..102ba4c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","he",{button:{title:"מאפייני כפתור",text:"טקסט (ערך)",type:"סוג",typeBtn:"כפתור",typeSbm:"שליחה",typeRst:"איפוס"},checkboxAndRadio:{checkboxTitle:"מאפייני תיבת סימון",radioTitle:"מאפייני לחצן אפשרויות",value:"ערך",selected:"מסומן"},form:{title:"מאפיני טופס",menu:"מאפיני טופס",action:"שלח אל",method:"סוג שליחה",encoding:"קידוד"},hidden:{title:"מאפיני שדה חבוי",name:"שם",value:"ערך"},select:{title:"מאפייני שדה בחירה",selectInfo:"מידע",opAvail:"אפשרויות זמינות",value:"ערך", +size:"גודל",lines:"שורות",chkMulti:"איפשור בחירות מרובות",opText:"טקסט",opValue:"ערך",btnAdd:"הוספה",btnModify:"שינוי",btnUp:"למעלה",btnDown:"למטה",btnSetValue:"קביעה כברירת מחדל",btnDelete:"מחיקה"},textarea:{title:"מאפייני איזור טקסט",cols:"עמודות",rows:"שורות"},textfield:{title:"מאפייני שדה טקסט",name:"שם",value:"ערך",charWidth:"רוחב לפי תווים",maxChars:"מקסימום תווים",type:"סוג",typeText:"טקסט",typePass:"סיסמה",typeEmail:'דוא"ל',typeSearch:"חיפוש",typeTel:"מספר טלפון",typeUrl:"כתובת (URL)"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hi.js new file mode 100644 index 00000000..28f074e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hi",{button:{title:"बटन प्रॉपर्टीज़",text:"टेक्स्ट (वैल्यू)",type:"प्रकार",typeBtn:"बटन",typeSbm:"सब्मिट",typeRst:"रिसेट"},checkboxAndRadio:{checkboxTitle:"चॅक बॉक्स प्रॉपर्टीज़",radioTitle:"रेडिओ बटन प्रॉपर्टीज़",value:"वैल्यू",selected:"सॅलॅक्टॅड"},form:{title:"फ़ॉर्म प्रॉपर्टीज़",menu:"फ़ॉर्म प्रॉपर्टीज़",action:"क्रिया",method:"तरीका",encoding:"Encoding"},hidden:{title:"गुप्त फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू"},select:{title:"चुनाव फ़ील्ड प्रॉपर्टीज़",selectInfo:"सूचना", +opAvail:"उपलब्ध विकल्प",value:"वैल्यू",size:"साइज़",lines:"पंक्तियाँ",chkMulti:"एक से ज्यादा विकल्प चुनने दें",opText:"टेक्स्ट",opValue:"वैल्यू",btnAdd:"जोड़ें",btnModify:"बदलें",btnUp:"ऊपर",btnDown:"नीचे",btnSetValue:"चुनी गई वैल्यू सॅट करें",btnDelete:"डिलीट"},textarea:{title:"टेक्स्त एरिया प्रॉपर्टीज़",cols:"कालम",rows:"पंक्तियां"},textfield:{title:"टेक्स्ट फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू",charWidth:"करॅक्टर की चौढ़ाई",maxChars:"अधिकतम करॅक्टर",type:"टाइप",typeText:"टेक्स्ट",typePass:"पास्वर्ड", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hr.js new file mode 100644 index 00000000..9965827c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hr",{button:{title:"Button svojstva",text:"Tekst (vrijednost)",type:"Vrsta",typeBtn:"Gumb",typeSbm:"Pošalji",typeRst:"Poništi"},checkboxAndRadio:{checkboxTitle:"Checkbox svojstva",radioTitle:"Radio Button svojstva",value:"Vrijednost",selected:"Odabrano"},form:{title:"Form svojstva",menu:"Form svojstva",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Hidden Field svojstva",name:"Ime",value:"Vrijednost"},select:{title:"Selection svojstva",selectInfo:"Info", +opAvail:"Dostupne opcije",value:"Vrijednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruki odabir",opText:"Tekst",opValue:"Vrijednost",btnAdd:"Dodaj",btnModify:"Promijeni",btnUp:"Gore",btnDown:"Dolje",btnSetValue:"Postavi kao odabranu vrijednost",btnDelete:"Obriši"},textarea:{title:"Textarea svojstva",cols:"Kolona",rows:"Redova"},textfield:{title:"Text Field svojstva",name:"Ime",value:"Vrijednost",charWidth:"Širina",maxChars:"Najviše karaktera",type:"Vrsta",typeText:"Tekst",typePass:"Šifra", +typeEmail:"Email",typeSearch:"Traži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hu.js new file mode 100644 index 00000000..962606d8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hu",{button:{title:"Gomb tulajdonságai",text:"Szöveg (Érték)",type:"Típus",typeBtn:"Gomb",typeSbm:"Küldés",typeRst:"Alaphelyzet"},checkboxAndRadio:{checkboxTitle:"Jelölőnégyzet tulajdonságai",radioTitle:"Választógomb tulajdonságai",value:"Érték",selected:"Kiválasztott"},form:{title:"Űrlap tulajdonságai",menu:"Űrlap tulajdonságai",action:"Adatfeldolgozást végző hivatkozás",method:"Adatküldés módja",encoding:"Kódolás"},hidden:{title:"Rejtett mező tulajdonságai",name:"Név", +value:"Érték"},select:{title:"Legördülő lista tulajdonságai",selectInfo:"Alaptulajdonságok",opAvail:"Elérhető opciók",value:"Érték",size:"Méret",lines:"sor",chkMulti:"több sor is kiválasztható",opText:"Szöveg",opValue:"Érték",btnAdd:"Hozzáad",btnModify:"Módosít",btnUp:"Fel",btnDown:"Le",btnSetValue:"Legyen az alapértelmezett érték",btnDelete:"Töröl"},textarea:{title:"Szövegterület tulajdonságai",cols:"Karakterek száma egy sorban",rows:"Sorok száma"},textfield:{title:"Szövegmező tulajdonságai",name:"Név", +value:"Érték",charWidth:"Megjelenített karakterek száma",maxChars:"Maximális karakterszám",type:"Típus",typeText:"Szöveg",typePass:"Jelszó",typeEmail:"Ímél",typeSearch:"Keresés",typeTel:"Telefonszám",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/id.js new file mode 100644 index 00000000..7fdc87fe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","id",{button:{title:"Button Properties",text:"Teks (Nilai)",type:"Tipe",typeBtn:"Tombol",typeSbm:"Menyerahkan",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Nilai",selected:"Terpilih"},form:{title:"Form Properties",menu:"Form Properties",action:"Aksi",method:"Metode",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Nama",value:"Nilai"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Nilai",size:"Ukuran",lines:"garis",chkMulti:"Izinkan pemilihan ganda",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah",btnModify:"Modifikasi",btnUp:"Atas",btnDown:"Bawah",btnSetValue:"Set as selected value",btnDelete:"Hapus"},textarea:{title:"Textarea Properties",cols:"Kolom",rows:"Baris"},textfield:{title:"Text Field Properties",name:"Name",value:"Nilai",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Tipe",typeText:"Teks", +typePass:"Kata kunci",typeEmail:"Surel",typeSearch:"Cari",typeTel:"Nomor Telepon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/is.js new file mode 100644 index 00000000..7ca735ec --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","is",{button:{title:"Eigindi hnapps",text:"Texti",type:"Gerð",typeBtn:"Hnappur",typeSbm:"Staðfesta",typeRst:"Hreinsa"},checkboxAndRadio:{checkboxTitle:"Eigindi markreits",radioTitle:"Eigindi valhnapps",value:"Gildi",selected:"Valið"},form:{title:"Eigindi innsláttarforms",menu:"Eigindi innsláttarforms",action:"Aðgerð",method:"Aðferð",encoding:"Encoding"},hidden:{title:"Eigindi falins svæðis",name:"Nafn",value:"Gildi"},select:{title:"Eigindi lista",selectInfo:"Upplýsingar", +opAvail:"Kostir",value:"Gildi",size:"Stærð",lines:"línur",chkMulti:"Leyfa fleiri kosti",opText:"Texti",opValue:"Gildi",btnAdd:"Bæta við",btnModify:"Breyta",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Merkja sem valið",btnDelete:"Eyða"},textarea:{title:"Eigindi textasvæðis",cols:"Dálkar",rows:"Línur"},textfield:{title:"Eigindi textareits",name:"Nafn",value:"Gildi",charWidth:"Breidd (leturtákn)",maxChars:"Hámarksfjöldi leturtákna",type:"Gerð",typeText:"Texti",typePass:"Lykilorð",typeEmail:"Email",typeSearch:"Search", +typeTel:"Telephone Number",typeUrl:"Vefslóð"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/it.js new file mode 100644 index 00000000..90f4f584 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","it",{button:{title:"Proprietà bottone",text:"Testo (Valore)",type:"Tipo",typeBtn:"Bottone",typeSbm:"Invio",typeRst:"Annulla"},checkboxAndRadio:{checkboxTitle:"Proprietà checkbox",radioTitle:"Proprietà radio button",value:"Valore",selected:"Selezionato"},form:{title:"Proprietà modulo",menu:"Proprietà modulo",action:"Azione",method:"Metodo",encoding:"Codifica"},hidden:{title:"Proprietà campo nascosto",name:"Nome",value:"Valore"},select:{title:"Proprietà menu di selezione", +selectInfo:"Info",opAvail:"Opzioni disponibili",value:"Valore",size:"Dimensione",lines:"righe",chkMulti:"Permetti selezione multipla",opText:"Testo",opValue:"Valore",btnAdd:"Aggiungi",btnModify:"Modifica",btnUp:"Su",btnDown:"Gi",btnSetValue:"Imposta come predefinito",btnDelete:"Rimuovi"},textarea:{title:"Proprietà area di testo",cols:"Colonne",rows:"Righe"},textfield:{title:"Proprietà campo di testo",name:"Nome",value:"Valore",charWidth:"Larghezza",maxChars:"Numero massimo di caratteri",type:"Tipo", +typeText:"Testo",typePass:"Password",typeEmail:"Email",typeSearch:"Cerca",typeTel:"Numero di telefono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ja.js new file mode 100644 index 00000000..8e615cfd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ja",{button:{title:"ボタン プロパティ",text:"テキスト (値)",type:"タイプ",typeBtn:"ボタン",typeSbm:"送信",typeRst:"リセット"},checkboxAndRadio:{checkboxTitle:"チェックボックスのプロパティ",radioTitle:"ラジオボタンのプロパティ",value:"値",selected:"選択済み"},form:{title:"フォームのプロパティ",menu:"フォームのプロパティ",action:"アクション (action)",method:"メソッド (method)",encoding:"エンコード方式 (encoding)"},hidden:{title:"不可視フィールド プロパティ",name:"名前 (name)",value:"値 (value)"},select:{title:"選択フィールドのプロパティ",selectInfo:"情報",opAvail:"利用可能なオプション",value:"選択項目値", +size:"サイズ",lines:"行",chkMulti:"複数選択を許可",opText:"選択項目名",opValue:"値",btnAdd:"追加",btnModify:"編集",btnUp:"上へ",btnDown:"下へ",btnSetValue:"選択した値を設定",btnDelete:"削除"},textarea:{title:"テキストエリア プロパティ",cols:"列",rows:"行"},textfield:{title:"1行テキスト プロパティ",name:"名前",value:"値",charWidth:"サイズ",maxChars:"最大長",type:"タイプ",typeText:"テキスト",typePass:"パスワード入力",typeEmail:"メール",typeSearch:"検索",typeTel:"電話番号",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ka.js new file mode 100644 index 00000000..06b8131d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ka",{button:{title:"ღილაკის პარამეტრები",text:"ტექსტი",type:"ტიპი",typeBtn:"ღილაკი",typeSbm:"გაგზავნა",typeRst:"გასუფთავება"},checkboxAndRadio:{checkboxTitle:"მონიშვნის ღილაკის (Checkbox) პარამეტრები",radioTitle:"ასარჩევი ღილაკის (Radio) პარამეტრები",value:"ტექსტი",selected:"არჩეული"},form:{title:"ფორმის პარამეტრები",menu:"ფორმის პარამეტრები",action:"ქმედება",method:"მეთოდი",encoding:"კოდირება"},hidden:{title:"მალული ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა"}, +select:{title:"არჩევის ველის პარამეტრები",selectInfo:"ინფორმაცია",opAvail:"შესაძლებელი ვარიანტები",value:"მნიშვნელობა",size:"ზომა",lines:"ხაზები",chkMulti:"მრავლობითი არჩევანის საშუალება",opText:"ტექსტი",opValue:"მნიშვნელობა",btnAdd:"დამატება",btnModify:"შეცვლა",btnUp:"ზემოთ",btnDown:"ქვემოთ",btnSetValue:"ამორჩეულ მნიშვნელოვნად დაყენება",btnDelete:"წაშლა"},textarea:{title:"ტექსტური არის პარამეტრები",cols:"სვეტები",rows:"სტრიქონები"},textfield:{title:"ტექსტური ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა", +charWidth:"სიმბოლოს ზომა",maxChars:"ასოების მაქსიმალური ოდენობა",type:"ტიპი",typeText:"ტექსტი",typePass:"პაროლი",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/km.js new file mode 100644 index 00000000..e9c1269d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","km",{button:{title:"លក្ខណៈ​ប៊ូតុង",text:"អត្ថបទ (តម្លៃ)",type:"ប្រភេទ",typeBtn:"ប៊ូតុង",typeSbm:"ដាក់ស្នើ",typeRst:"កំណត់​ឡើង​វិញ"},checkboxAndRadio:{checkboxTitle:"លក្ខណៈ​ប្រអប់​ធីក",radioTitle:"លក្ខនៈ​ប៊ូតុង​មូល",value:"តម្លៃ",selected:"បាន​ជ្រើស"},form:{title:"លក្ខណៈ​បែបបទ",menu:"លក្ខណៈ​បែបបទ",action:"សកម្មភាព",method:"វិធីសាស្ត្រ",encoding:"ការ​អ៊ិនកូដ"},hidden:{title:"លក្ខណៈ​វាល​កំបាំង",name:"ឈ្មោះ",value:"តម្លៃ"},select:{title:"លក្ខណៈ​វាល​ជម្រើស",selectInfo:"ព័ត៌មាន​ជម្រើស", +opAvail:"ជម្រើស​ដែល​មាន",value:"តម្លៃ",size:"ទំហំ",lines:"បន្ទាត់",chkMulti:"អនុញ្ញាត​ពហុ​ជម្រើស",opText:"អត្ថបទ",opValue:"តម្លៃ",btnAdd:"បន្ថែម",btnModify:"ផ្លាស់ប្តូរ",btnUp:"លើ",btnDown:"ក្រោម",btnSetValue:"កំណត់​ជា​តម្លៃ​ដែល​បាន​ជ្រើស",btnDelete:"លុប"},textarea:{title:"លក្ខណៈ​ប្រអប់​អត្ថបទ",cols:"ជួរឈរ",rows:"ជួរដេក"},textfield:{title:"លក្ខណៈ​វាល​អត្ថបទ",name:"ឈ្មោះ",value:"តម្លៃ",charWidth:"ទទឹង​តួ​អក្សរ",maxChars:"អក្សរអតិបរិមា",type:"ប្រភេទ",typeText:"អត្ថបទ",typePass:"ពាក្យសម្ងាត់",typeEmail:"អ៊ីមែល", +typeSearch:"ស្វែង​រក",typeTel:"លេខ​ទូរសព្ទ",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ko.js new file mode 100644 index 00000000..7e7ea054 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ko",{button:{title:"버튼 속성",text:"버튼글자(값)",type:"버튼종류",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"체크박스 속성",radioTitle:"라디오버튼 속성",value:"값",selected:"선택됨"},form:{title:"폼 속성",menu:"폼 속성",action:"실행경로(Action)",method:"방법(Method)",encoding:"Encoding"},hidden:{title:"숨김필드 속성",name:"이름",value:"값"},select:{title:"펼침목록 속성",selectInfo:"정보",opAvail:"선택옵션",value:"값",size:"세로크기",lines:"줄",chkMulti:"여러항목 선택 허용",opText:"이름",opValue:"값", +btnAdd:"추가",btnModify:"변경",btnUp:"위로",btnDown:"아래로",btnSetValue:"선택된것으로 설정",btnDelete:"삭제"},textarea:{title:"입력영역 속성",cols:"칸수",rows:"줄수"},textfield:{title:"입력필드 속성",name:"이름",value:"값",charWidth:"글자 너비",maxChars:"최대 글자수",type:"종류",typeText:"문자열",typePass:"비밀번호",typeEmail:"이메일",typeSearch:"검색",typeTel:"전화번호",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ku.js new file mode 100644 index 00000000..75599890 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ku",{button:{title:"خاسیەتی دوگمە",text:"(نرخی) دەق",type:"جۆر",typeBtn:"دوگمە",typeSbm:"بنێرە",typeRst:"ڕێکخستنەوە"},checkboxAndRadio:{checkboxTitle:"خاسیەتی چووارگۆشی پشکنین",radioTitle:"خاسیەتی جێگرەوەی دوگمە",value:"نرخ",selected:"هەڵبژاردرا"},form:{title:"خاسیەتی داڕشتە",menu:"خاسیەتی داڕشتە",action:"کردار",method:"ڕێگە",encoding:"بەکۆدکەر"},hidden:{title:"خاسیەتی خانەی شاردراوە",name:"ناو",value:"نرخ"},select:{title:"هەڵبژاردەی خاسیەتی خانە",selectInfo:"زانیاری", +opAvail:"هەڵبژاردەی لەبەردەستدابوون",value:"نرخ",size:"گەورەیی",lines:"هێڵەکان",chkMulti:"ڕێدان بەفره هەڵبژارده",opText:"دەق",opValue:"نرخ",btnAdd:"زیادکردن",btnModify:"گۆڕانکاری",btnUp:"سەرەوه",btnDown:"خوارەوە",btnSetValue:"دابنێ وەك نرخێکی هەڵبژێردراو",btnDelete:"سڕینەوه"},textarea:{title:"خاسیەتی ڕووبەری دەق",cols:"ستوونەکان",rows:"ڕیزەکان"},textfield:{title:"خاسیەتی خانەی دەق",name:"ناو",value:"نرخ",charWidth:"پانی نووسە",maxChars:"ئەوپەڕی نووسە",type:"جۆر",typeText:"دەق",typePass:"پێپەڕەوشە", +typeEmail:"ئیمەیل",typeSearch:"گەڕان",typeTel:"ژمارەی تەلەفۆن",typeUrl:"ناونیشانی بەستەر"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/lt.js new file mode 100644 index 00000000..743b8307 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lt",{button:{title:"Mygtuko savybės",text:"Tekstas (Reikšmė)",type:"Tipas",typeBtn:"Mygtukas",typeSbm:"Siųsti",typeRst:"Išvalyti"},checkboxAndRadio:{checkboxTitle:"Žymimojo langelio savybės",radioTitle:"Žymimosios akutės savybės",value:"Reikšmė",selected:"Pažymėtas"},form:{title:"Formos savybės",menu:"Formos savybės",action:"Veiksmas",method:"Metodas",encoding:"Kodavimas"},hidden:{title:"Nerodomo lauko savybės",name:"Vardas",value:"Reikšmė"},select:{title:"Atrankos lauko savybės", +selectInfo:"Informacija",opAvail:"Galimos parinktys",value:"Reikšmė",size:"Dydis",lines:"eilučių",chkMulti:"Leisti daugeriopą atranką",opText:"Tekstas",opValue:"Reikšmė",btnAdd:"Įtraukti",btnModify:"Modifikuoti",btnUp:"Aukštyn",btnDown:"Žemyn",btnSetValue:"Laikyti pažymėta reikšme",btnDelete:"Trinti"},textarea:{title:"Teksto srities savybės",cols:"Ilgis",rows:"Plotis"},textfield:{title:"Teksto lauko savybės",name:"Vardas",value:"Reikšmė",charWidth:"Ilgis simboliais",maxChars:"Maksimalus simbolių skaičius", +type:"Tipas",typeText:"Tekstas",typePass:"Slaptažodis",typeEmail:"El. paštas",typeSearch:"Paieška",typeTel:"Telefono numeris",typeUrl:"Nuoroda"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/lv.js new file mode 100644 index 00000000..289cd6a8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lv",{button:{title:"Pogas īpašības",text:"Teksts (vērtība)",type:"Tips",typeBtn:"Poga",typeSbm:"Nosūtīt",typeRst:"Atcelt"},checkboxAndRadio:{checkboxTitle:"Atzīmēšanas kastītes īpašības",radioTitle:"Izvēles poga īpašības",value:"Vērtība",selected:"Iezīmēts"},form:{title:"Formas īpašības",menu:"Formas īpašības",action:"Darbība",method:"Metode",encoding:"Kodējums"},hidden:{title:"Paslēptās teksta rindas īpašības",name:"Nosaukums",value:"Vērtība"},select:{title:"Iezīmēšanas lauka īpašības", +selectInfo:"Informācija",opAvail:"Pieejamās iespējas",value:"Vērtība",size:"Izmērs",lines:"rindas",chkMulti:"Atļaut vairākus iezīmējumus",opText:"Teksts",opValue:"Vērtība",btnAdd:"Pievienot",btnModify:"Veikt izmaiņas",btnUp:"Augšup",btnDown:"Lejup",btnSetValue:"Noteikt kā iezīmēto vērtību",btnDelete:"Dzēst"},textarea:{title:"Teksta laukuma īpašības",cols:"Kolonnas",rows:"Rindas"},textfield:{title:"Teksta rindas īpašības",name:"Nosaukums",value:"Vērtība",charWidth:"Simbolu platums",maxChars:"Simbolu maksimālais daudzums", +type:"Tips",typeText:"Teksts",typePass:"Parole",typeEmail:"Epasts",typeSearch:"Meklēt",typeTel:"Tālruņa numurs",typeUrl:"Adrese"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/mk.js new file mode 100644 index 00000000..84837f53 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mk",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/mn.js new file mode 100644 index 00000000..747b5eb6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mn",{button:{title:"Товчны шинж чанар",text:"Тэкст (Утга)",type:"Төрөл",typeBtn:"Товч",typeSbm:"Submit",typeRst:"Болих"},checkboxAndRadio:{checkboxTitle:"Чекбоксны шинж чанар",radioTitle:"Радио товчны шинж чанар",value:"Утга",selected:"Сонгогдсон"},form:{title:"Форм шинж чанар",menu:"Форм шинж чанар",action:"Үйлдэл",method:"Арга",encoding:"Encoding"},hidden:{title:"Нууц талбарын шинж чанар",name:"Нэр",value:"Утга"},select:{title:"Согогч талбарын шинж чанар",selectInfo:"Мэдээлэл", +opAvail:"Идвэхтэй сонголт",value:"Утга",size:"Хэмжээ",lines:"Мөр",chkMulti:"Олон зүйл зэрэг сонгохыг зөвшөөрөх",opText:"Тэкст",opValue:"Утга",btnAdd:"Нэмэх",btnModify:"Өөрчлөх",btnUp:"Дээш",btnDown:"Доош",btnSetValue:"Сонгогдсан утга оноох",btnDelete:"Устгах"},textarea:{title:"Текст орчны шинж чанар",cols:"Багана",rows:"Мөр"},textfield:{title:"Текст талбарын шинж чанар",name:"Нэр",value:"Утга",charWidth:"Тэмдэгтын өргөн",maxChars:"Хамгийн их тэмдэгт",type:"Төрөл",typeText:"Текст",typePass:"Нууц үг", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"цахим хуудасны хаяг (URL)"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ms.js new file mode 100644 index 00000000..fbf6b9f4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ms",{button:{title:"Ciri-ciri Butang",text:"Teks (Nilai)",type:"Jenis",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Ciri-ciri Checkbox",radioTitle:"Ciri-ciri Butang Radio",value:"Nilai",selected:"Dipilih"},form:{title:"Ciri-ciri Borang",menu:"Ciri-ciri Borang",action:"Tindakan borang",method:"Cara borang dihantar",encoding:"Encoding"},hidden:{title:"Ciri-ciri Field Tersembunyi",name:"Nama",value:"Nilai"},select:{title:"Ciri-ciri Selection Field", +selectInfo:"Select Info",opAvail:"Pilihan sediada",value:"Nilai",size:"Saiz",lines:"garisan",chkMulti:"Benarkan pilihan pelbagai",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah Pilihan",btnModify:"Ubah Pilihan",btnUp:"Naik ke atas",btnDown:"Turun ke bawah",btnSetValue:"Set sebagai nilai terpilih",btnDelete:"Padam"},textarea:{title:"Ciri-ciri Textarea",cols:"Lajur",rows:"Baris"},textfield:{title:"Ciri-ciri Text Field",name:"Nama",value:"Nilai",charWidth:"Lebar isian",maxChars:"Isian Maksimum",type:"Jenis", +typeText:"Teks",typePass:"Kata Laluan",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/nb.js new file mode 100644 index 00000000..5874510b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nb",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/nl.js new file mode 100644 index 00000000..5bff8285 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nl",{button:{title:"Eigenschappen knop",text:"Tekst (waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Versturen",typeRst:"Leegmaken"},checkboxAndRadio:{checkboxTitle:"Eigenschappen aanvinkvakje",radioTitle:"Eigenschappen selectievakje",value:"Waarde",selected:"Geselecteerd"},form:{title:"Eigenschappen formulier",menu:"Eigenschappen formulier",action:"Actie",method:"Methode",encoding:"Codering"},hidden:{title:"Eigenschappen verborgen veld",name:"Naam",value:"Waarde"}, +select:{title:"Eigenschappen selectieveld",selectInfo:"Informatie",opAvail:"Beschikbare opties",value:"Waarde",size:"Grootte",lines:"Regels",chkMulti:"Gecombineerde selecties toestaan",opText:"Tekst",opValue:"Waarde",btnAdd:"Toevoegen",btnModify:"Wijzigen",btnUp:"Omhoog",btnDown:"Omlaag",btnSetValue:"Als geselecteerde waarde instellen",btnDelete:"Verwijderen"},textarea:{title:"Eigenschappen tekstvak",cols:"Kolommen",rows:"Rijen"},textfield:{title:"Eigenschappen tekstveld",name:"Naam",value:"Waarde", +charWidth:"Breedte (tekens)",maxChars:"Maximum aantal tekens",type:"Soort",typeText:"Tekst",typePass:"Wachtwoord",typeEmail:"E-mail",typeSearch:"Zoeken",typeTel:"Telefoonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/no.js new file mode 100644 index 00000000..07e20c4f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","no",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pl.js new file mode 100644 index 00000000..8577d620 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pl",{button:{title:"Właściwości przycisku",text:"Tekst (Wartość)",type:"Typ",typeBtn:"Przycisk",typeSbm:"Wyślij",typeRst:"Wyczyść"},checkboxAndRadio:{checkboxTitle:"Właściwości pola wyboru (checkbox)",radioTitle:"Właściwości przycisku opcji (radio)",value:"Wartość",selected:"Zaznaczone"},form:{title:"Właściwości formularza",menu:"Właściwości formularza",action:"Akcja",method:"Metoda",encoding:"Kodowanie"},hidden:{title:"Właściwości pola ukrytego",name:"Nazwa",value:"Wartość"}, +select:{title:"Właściwości listy wyboru",selectInfo:"Informacje",opAvail:"Dostępne opcje",value:"Wartość",size:"Rozmiar",lines:"wierszy",chkMulti:"Wielokrotny wybór",opText:"Tekst",opValue:"Wartość",btnAdd:"Dodaj",btnModify:"Zmień",btnUp:"Do góry",btnDown:"Do dołu",btnSetValue:"Ustaw jako zaznaczoną",btnDelete:"Usuń"},textarea:{title:"Właściwości obszaru tekstowego",cols:"Liczba kolumn",rows:"Liczba wierszy"},textfield:{title:"Właściwości pola tekstowego",name:"Nazwa",value:"Wartość",charWidth:"Szerokość w znakach", +maxChars:"Szerokość maksymalna",type:"Typ",typeText:"Tekst",typePass:"Hasło",typeEmail:"Email",typeSearch:"Szukaj",typeTel:"Numer telefonu",typeUrl:"Adres URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pt-br.js new file mode 100644 index 00000000..1fe748a5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt-br",{button:{title:"Formatar Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botão",typeSbm:"Enviar",typeRst:"Limpar"},checkboxAndRadio:{checkboxTitle:"Formatar Caixa de Seleção",radioTitle:"Formatar Botão de Opção",value:"Valor",selected:"Selecionado"},form:{title:"Formatar Formulário",menu:"Formatar Formulário",action:"Ação",method:"Método",encoding:"Codificação"},hidden:{title:"Formatar Campo Oculto",name:"Nome",value:"Valor"},select:{title:"Formatar Caixa de Listagem", +selectInfo:"Informações",opAvail:"Opções disponíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir múltiplas seleções",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir como selecionado",btnDelete:"Remover"},textarea:{title:"Formatar Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Formatar Caixa de Texto",name:"Nome",value:"Valor",charWidth:"Comprimento (em caracteres)",maxChars:"Número Máximo de Caracteres", +type:"Tipo",typeText:"Texto",typePass:"Senha",typeEmail:"Email",typeSearch:"Busca",typeTel:"Número de Telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pt.js new file mode 100644 index 00000000..7958d629 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt",{button:{title:"Propriedades do Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Propriedades da Caixa de Verificação",radioTitle:"Propriedades do Botão de Opção",value:"Valor",selected:"Seleccionado"},form:{title:"Propriedades do Formulário",menu:"Propriedades do Formulário",action:"Acção",method:"Método",encoding:"Encoding"},hidden:{title:"Propriedades do Campo Escondido",name:"Nome", +value:"Valor"},select:{title:"Propriedades da Caixa de Combinação",selectInfo:"Informação",opAvail:"Opções Possíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir selecções múltiplas",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir um valor por defeito",btnDelete:"Apagar"},textarea:{title:"Propriedades da Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Propriedades do Campo de Texto", +name:"Nome",value:"Valor",charWidth:"Tamanho do caracter",maxChars:"Nr. Máximo de Caracteres",type:"Tipo",typeText:"Texto",typePass:"Palavra-chave",typeEmail:"Email",typeSearch:"Pesquisar",typeTel:"Numero de telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ro.js new file mode 100644 index 00000000..0db618b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ro",{button:{title:"Proprietăţi buton",text:"Text (Valoare)",type:"Tip",typeBtn:"Buton",typeSbm:"Trimite",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Proprietăţi bifă (Checkbox)",radioTitle:"Proprietăţi buton radio (Radio Button)",value:"Valoare",selected:"Selectat"},form:{title:"Proprietăţi formular (Form)",menu:"Proprietăţi formular (Form)",action:"Acţiune",method:"Metodă",encoding:"Encodare"},hidden:{title:"Proprietăţi câmp ascuns (Hidden Field)",name:"Nume", +value:"Valoare"},select:{title:"Proprietăţi câmp selecţie (Selection Field)",selectInfo:"Informaţii",opAvail:"Opţiuni disponibile",value:"Valoare",size:"Mărime",lines:"linii",chkMulti:"Permite selecţii multiple",opText:"Text",opValue:"Valoare",btnAdd:"Adaugă",btnModify:"Modifică",btnUp:"Sus",btnDown:"Jos",btnSetValue:"Setează ca valoare selectată",btnDelete:"Şterge"},textarea:{title:"Proprietăţi suprafaţă text (Textarea)",cols:"Coloane",rows:"Linii"},textfield:{title:"Proprietăţi câmp text (Text Field)", +name:"Nume",value:"Valoare",charWidth:"Lărgimea caracterului",maxChars:"Caractere maxime",type:"Tip",typeText:"Text",typePass:"Parolă",typeEmail:"Email",typeSearch:"Cauta",typeTel:"Numar de telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ru.js new file mode 100644 index 00000000..534eb497 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ru",{button:{title:"Свойства кнопки",text:"Текст (Значение)",type:"Тип",typeBtn:"Кнопка",typeSbm:"Отправка",typeRst:"Сброс"},checkboxAndRadio:{checkboxTitle:"Свойства флаговой кнопки",radioTitle:"Свойства кнопки выбора",value:"Значение",selected:"Выбрано"},form:{title:"Свойства формы",menu:"Свойства формы",action:"Действие",method:"Метод",encoding:"Кодировка"},hidden:{title:"Свойства скрытого поля",name:"Имя",value:"Значение"},select:{title:"Свойства списка выбора", +selectInfo:"Информация о списке выбора",opAvail:"Доступные варианты",value:"Значение",size:"Размер",lines:"строк(и)",chkMulti:"Разрешить выбор нескольких вариантов",opText:"Текст",opValue:"Значение",btnAdd:"Добавить",btnModify:"Изменить",btnUp:"Поднять",btnDown:"Опустить",btnSetValue:"Пометить как выбранное",btnDelete:"Удалить"},textarea:{title:"Свойства многострочного текстового поля",cols:"Колонок",rows:"Строк"},textfield:{title:"Свойства текстового поля",name:"Имя",value:"Значение",charWidth:"Ширина поля (в символах)", +maxChars:"Макс. количество символов",type:"Тип содержимого",typeText:"Текст",typePass:"Пароль",typeEmail:"Email",typeSearch:"Поиск",typeTel:"Номер телефона",typeUrl:"Ссылка"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/si.js new file mode 100644 index 00000000..ab61582f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/si.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","si",{button:{title:"බොත්තම් ගුණ",text:"වගන්තිය(වටිනාකම)",type:"වර්ගය",typeBtn:"බොත්තම",typeSbm:"යොමුකරනවා",typeRst:"නැවත ආරම්භකතත්වයට පත් කරනවා"},checkboxAndRadio:{checkboxTitle:"ලකුණු කිරීමේ කොටුවේ ලක්ෂණ",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"පෝරමයේ ",menu:"පෝරමයේ ගුණ/",action:"ගන්නා පියවර",method:"ක්‍රමය",encoding:"කේතීකරණය"},hidden:{title:"සැඟවුණු ප්‍රදේශයේ ",name:"නම",value:"Value"},select:{title:"තේරීම් ප්‍රදේශයේ ", +selectInfo:"විස්තර තෝරන්න",opAvail:"ඉතුරුවී ඇති වීකල්ප",value:"Value",size:"විශාලත්වය",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"මකා දැම්ම"},textarea:{title:"Textarea Properties",cols:"සිරස් ",rows:"Rows"},textfield:{title:"Text Field Properties",name:"නම",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"වර්ගය",typeText:"Text", +typePass:"Password",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sk.js new file mode 100644 index 00000000..218b6274 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sk",{button:{title:"Vlastnosti tlačidla",text:"Text (Hodnota)",type:"Typ",typeBtn:"Tlačidlo",typeSbm:"Odoslať",typeRst:"Resetovať"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacieho políčka",radioTitle:"Vlastnosti prepínača (radio button)",value:"Hodnota",selected:"Vybrané (selected)"},form:{title:"Vlastnosti formulára",menu:"Vlastnosti formulára",action:"Akcia (action)",method:"Metóda (method)",encoding:"Kódovanie (encoding)"},hidden:{title:"Vlastnosti skrytého poľa", +name:"Názov (name)",value:"Hodnota"},select:{title:"Vlastnosti rozbaľovacieho zoznamu",selectInfo:"Informácie o výbere",opAvail:"Dostupné možnosti",value:"Hodnota",size:"Veľkosť",lines:"riadkov",chkMulti:"Povoliť viacnásobný výber",opText:"Text",opValue:"Hodnota",btnAdd:"Pridať",btnModify:"Upraviť",btnUp:"Hore",btnDown:"Dole",btnSetValue:"Nastaviť ako vybranú hodnotu",btnDelete:"Vymazať"},textarea:{title:"Vlastnosti textovej oblasti (textarea)",cols:"Stĺpcov",rows:"Riadkov"},textfield:{title:"Vlastnosti textového poľa", +name:"Názov (name)",value:"Hodnota",charWidth:"Šírka poľa (podľa znakov)",maxChars:"Maximálny počet znakov",type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hľadať",typeTel:"Telefónne číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sl.js new file mode 100644 index 00000000..ad3bc43f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sl",{button:{title:"Lastnosti gumba",text:"Besedilo (Vrednost)",type:"Tip",typeBtn:"Gumb",typeSbm:"Potrdi",typeRst:"Ponastavi"},checkboxAndRadio:{checkboxTitle:"Lastnosti potrditvenega polja",radioTitle:"Lastnosti izbirnega polja",value:"Vrednost",selected:"Izbrano"},form:{title:"Lastnosti obrazca",menu:"Lastnosti obrazca",action:"Akcija",method:"Metoda",encoding:"Kodiranje znakov"},hidden:{title:"Lastnosti skritega polja",name:"Ime",value:"Vrednost"},select:{title:"Lastnosti spustnega seznama", +selectInfo:"Podatki",opAvail:"Razpoložljive izbire",value:"Vrednost",size:"Velikost",lines:"vrstic",chkMulti:"Dovoli izbor večih vrstic",opText:"Besedilo",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Spremeni",btnUp:"Gor",btnDown:"Dol",btnSetValue:"Postavi kot privzeto izbiro",btnDelete:"Izbriši"},textarea:{title:"Lastnosti vnosnega območja",cols:"Stolpcev",rows:"Vrstic"},textfield:{title:"Lastnosti vnosnega polja",name:"Ime",value:"Vrednost",charWidth:"Dolžina",maxChars:"Največje število znakov", +type:"Tip",typeText:"Besedilo",typePass:"Geslo",typeEmail:"E-pošta",typeSearch:"Iskanje",typeTel:"Telefonska Številka",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sq.js new file mode 100644 index 00000000..a8c45b47 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sq",{button:{title:"Rekuizitat e Pullës",text:"Teskti (Vlera)",type:"LLoji",typeBtn:"Buton",typeSbm:"Dërgo",typeRst:"Rikthe"},checkboxAndRadio:{checkboxTitle:"Rekuizitat e Kutizë Përzgjedhëse",radioTitle:"Rekuizitat e Pullës",value:"Vlera",selected:"Përzgjedhur"},form:{title:"Rekuizitat e Formës",menu:"Rekuizitat e Formës",action:"Veprim",method:"Metoda",encoding:"Kodimi"},hidden:{title:"Rekuizitat e Fushës së Fshehur",name:"Emër",value:"Vlera"},select:{title:"Rekuizitat e Fushës së Përzgjedhur", +selectInfo:"Përzgjidh Informacionin",opAvail:"Opsionet e Mundshme",value:"Vlera",size:"Madhësia",lines:"rreshtat",chkMulti:"Lejo përzgjidhje të shumëfishta",opText:"Teksti",opValue:"Vlera",btnAdd:"Vendos",btnModify:"Ndrysho",btnUp:"Sipër",btnDown:"Poshtë",btnSetValue:"Bëje si vlerë të përzgjedhur",btnDelete:"Grise"},textarea:{title:"Rekuzitat e Fushës së Tekstit",cols:"Kolonat",rows:"Rreshtat"},textfield:{title:"Rekuizitat e Fushës së Tekstit",name:"Emër",value:"Vlera",charWidth:"Gjerësia e Karakterit", +maxChars:"Numri maksimal i karaktereve",type:"LLoji",typeText:"Teksti",typePass:"Fjalëkalimi",typeEmail:"Posta Elektronike",typeSearch:"Kërko",typeTel:"Numri i Telefonit",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sr-latn.js new file mode 100644 index 00000000..af31d088 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr-latn",{button:{title:"Osobine dugmeta",text:"Tekst (vrednost)",type:"Tip",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Osobine polja za potvrdu",radioTitle:"Osobine radio-dugmeta",value:"Vrednost",selected:"Označeno"},form:{title:"Osobine forme",menu:"Osobine forme",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Osobine skrivenog polja",name:"Naziv",value:"Vrednost"},select:{title:"Osobine izbornog polja", +selectInfo:"Info",opAvail:"Dostupne opcije",value:"Vrednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruku selekciju",opText:"Tekst",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Izmeni",btnUp:"Gore",btnDown:"Dole",btnSetValue:"Podesi kao označenu vrednost",btnDelete:"Obriši"},textarea:{title:"Osobine zone teksta",cols:"Broj kolona",rows:"Broj redova"},textfield:{title:"Osobine tekstualnog polja",name:"Naziv",value:"Vrednost",charWidth:"Širina (karaktera)",maxChars:"Maksimalno karaktera", +type:"Tip",typeText:"Tekst",typePass:"Lozinka",typeEmail:"Email",typeSearch:"Pretraži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sr.js new file mode 100644 index 00000000..74d46b2d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr",{button:{title:"Особине дугмета",text:"Текст (вредност)",type:"Tип",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Особине поља за потврду",radioTitle:"Особине радио-дугмета",value:"Вредност",selected:"Означено"},form:{title:"Особине форме",menu:"Особине форме",action:"Aкција",method:"Mетода",encoding:"Encoding"},hidden:{title:"Особине скривеног поља",name:"Назив",value:"Вредност"},select:{title:"Особине изборног поља",selectInfo:"Инфо", +opAvail:"Доступне опције",value:"Вредност",size:"Величина",lines:"линија",chkMulti:"Дозволи вишеструку селекцију",opText:"Текст",opValue:"Вредност",btnAdd:"Додај",btnModify:"Измени",btnUp:"Горе",btnDown:"Доле",btnSetValue:"Подеси као означену вредност",btnDelete:"Обриши"},textarea:{title:"Особине зоне текста",cols:"Број колона",rows:"Број редова"},textfield:{title:"Особине текстуалног поља",name:"Назив",value:"Вредност",charWidth:"Ширина (карактера)",maxChars:"Максимално карактера",type:"Тип",typeText:"Текст", +typePass:"Лозинка",typeEmail:"Е-пошта",typeSearch:"Претрага",typeTel:"Број телефона",typeUrl:"УРЛ"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sv.js new file mode 100644 index 00000000..b03b381d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sv",{button:{title:"Egenskaper för knapp",text:"Text (värde)",type:"Typ",typeBtn:"Knapp",typeSbm:"Skicka",typeRst:"Återställ"},checkboxAndRadio:{checkboxTitle:"Egenskaper för kryssruta",radioTitle:"Egenskaper för alternativknapp",value:"Värde",selected:"Vald"},form:{title:"Egenskaper för formulär",menu:"Egenskaper för formulär",action:"Funktion",method:"Metod",encoding:"Kodning"},hidden:{title:"Egenskaper för dolt fält",name:"Namn",value:"Värde"},select:{title:"Egenskaper för flervalslista", +selectInfo:"Information",opAvail:"Befintliga val",value:"Värde",size:"Storlek",lines:"Linjer",chkMulti:"Tillåt flerval",opText:"Text",opValue:"Värde",btnAdd:"Lägg till",btnModify:"Redigera",btnUp:"Upp",btnDown:"Ner",btnSetValue:"Markera som valt värde",btnDelete:"Radera"},textarea:{title:"Egenskaper för textruta",cols:"Kolumner",rows:"Rader"},textfield:{title:"Egenskaper för textfält",name:"Namn",value:"Värde",charWidth:"Teckenbredd",maxChars:"Max antal tecken",type:"Typ",typeText:"Text",typePass:"Lösenord", +typeEmail:"E-post",typeSearch:"Sök",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/th.js new file mode 100644 index 00000000..e9337498 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","th",{button:{title:"รายละเอียดของ ปุ่ม",text:"ข้อความ (ค่าตัวแปร)",type:"ข้อความ",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"คุณสมบัติของ เช็คบ๊อก",radioTitle:"คุณสมบัติของ เรดิโอบัตตอน",value:"ค่าตัวแปร",selected:"เลือกเป็นค่าเริ่มต้น"},form:{title:"คุณสมบัติของ แบบฟอร์ม",menu:"คุณสมบัติของ แบบฟอร์ม",action:"แอคชั่น",method:"เมธอด",encoding:"Encoding"},hidden:{title:"คุณสมบัติของ ฮิดเดนฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร"}, +select:{title:"คุณสมบัติของ แถบตัวเลือก",selectInfo:"อินโฟ",opAvail:"รายการตัวเลือก",value:"ค่าตัวแปร",size:"ขนาด",lines:"บรรทัด",chkMulti:"เลือกหลายค่าได้",opText:"ข้อความ",opValue:"ค่าตัวแปร",btnAdd:"เพิ่ม",btnModify:"แก้ไข",btnUp:"บน",btnDown:"ล่าง",btnSetValue:"เลือกเป็นค่าเริ่มต้น",btnDelete:"ลบ"},textarea:{title:"คุณสมบัติของ เท็กแอเรีย",cols:"สดมภ์",rows:"แถว"},textfield:{title:"คุณสมบัติของ เท็กซ์ฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร",charWidth:"ความกว้าง",maxChars:"จำนวนตัวอักษรสูงสุด",type:"ชนิด", +typeText:"ข้อความ",typePass:"รหัสผ่าน",typeEmail:"อีเมล",typeSearch:"ค้นหาก",typeTel:"หมายเลขโทรศัพท์",typeUrl:"ที่อยู่อ้างอิง URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/tr.js new file mode 100644 index 00000000..3710d318 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tr",{button:{title:"Düğme Özellikleri",text:"Metin (Değer)",type:"Tip",typeBtn:"Düğme",typeSbm:"Gönder",typeRst:"Sıfırla"},checkboxAndRadio:{checkboxTitle:"Onay Kutusu Özellikleri",radioTitle:"Seçenek Düğmesi Özellikleri",value:"Değer",selected:"Seçili"},form:{title:"Form Özellikleri",menu:"Form Özellikleri",action:"İşlem",method:"Yöntem",encoding:"Kodlama"},hidden:{title:"Gizli Veri Özellikleri",name:"Ad",value:"Değer"},select:{title:"Seçim Menüsü Özellikleri",selectInfo:"Bilgi", +opAvail:"Mevcut Seçenekler",value:"Değer",size:"Boyut",lines:"satır",chkMulti:"Çoklu seçime izin ver",opText:"Metin",opValue:"Değer",btnAdd:"Ekle",btnModify:"Düzenle",btnUp:"Yukarı",btnDown:"Aşağı",btnSetValue:"Seçili değer olarak ata",btnDelete:"Sil"},textarea:{title:"Çok Satırlı Metin Özellikleri",cols:"Sütunlar",rows:"Satırlar"},textfield:{title:"Metin Girişi Özellikleri",name:"Ad",value:"Değer",charWidth:"Karakter Genişliği",maxChars:"En Fazla Karakter",type:"Tür",typeText:"Metin",typePass:"Şifre", +typeEmail:"E-posta",typeSearch:"Ara",typeTel:"Telefon Numarası",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/tt.js new file mode 100644 index 00000000..2242a407 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tt",{button:{title:"Төймә үзлекләре",text:"Text (Value)",type:"Төр",typeBtn:"Төймә",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Сайланган"},form:{title:"Форма үзлекләре",menu:"Форма үзлекләре",action:"Гамәл",method:"Ысул",encoding:"Кодировка"},hidden:{title:"Яшерен кыр үзлекләре",name:"Исем",value:"Күләм"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Күләм",size:"Зурлык",lines:"юллар",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Күләм",btnAdd:"Кушу",btnModify:"Үзгәртү",btnUp:"Өскә",btnDown:"Аска",btnSetValue:"Set as selected value",btnDelete:"Бетерү"},textarea:{title:"Текст мәйданы үзлекләре",cols:"Баганалар",rows:"Юллар"},textfield:{title:"Текст кыры үзлекләре",name:"Исем",value:"Күләм",charWidth:"Символлар киңлеге",maxChars:"Maximum Characters",type:"Төр",typeText:"Текст",typePass:"Сер сүз", +typeEmail:"Эл. почта",typeSearch:"Эзләү",typeTel:"Телефон номеры",typeUrl:"Сылталама"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ug.js new file mode 100644 index 00000000..9ff3eeeb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ug",{button:{title:"توپچا خاسلىقى",text:"بەلگە (قىممەت)",type:"تىپى",typeBtn:"توپچا",typeSbm:"تاپشۇر",typeRst:"ئەسلىگە قايتۇر"},checkboxAndRadio:{checkboxTitle:"كۆپ تاللاش خاسلىقى",radioTitle:"تاق تاللاش توپچا خاسلىقى",value:"تاللىغان قىممەت",selected:"تاللانغان"},form:{title:"جەدۋەل خاسلىقى",menu:"جەدۋەل خاسلىقى",action:"مەشغۇلات",method:"ئۇسۇل",encoding:"جەدۋەل كودلىنىشى"},hidden:{title:"يوشۇرۇن دائىرە خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى"},select:{title:"جەدۋەل/تىزىم خاسلىقى", +selectInfo:"ئۇچۇر تاللاڭ",opAvail:"تاللاش تۈرلىرى",value:"قىممەت",size:"ئېگىزلىكى",lines:"قۇر",chkMulti:"كۆپ تاللاشچان",opText:"تاللانما تېكىستى",opValue:"تاللانما قىممىتى",btnAdd:"قوش",btnModify:"ئۆزگەرت",btnUp:"ئۈستىگە",btnDown:"ئاستىغا",btnSetValue:"دەسلەپكى تاللانما قىممىتىگە تەڭشە",btnDelete:"ئۆچۈر"},textarea:{title:" كۆپ قۇرلۇق تېكىست خاسلىقى",cols:"ھەرپ كەڭلىكى",rows:"قۇر سانى"},textfield:{title:"تاق قۇرلۇق تېكىست خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى",charWidth:"ھەرپ كەڭلىكى",maxChars:"ئەڭ كۆپ ھەرپ سانى", +type:"تىپى",typeText:"تېكىست",typePass:"ئىم",typeEmail:"تورخەت",typeSearch:"ئىزدە",typeTel:"تېلېفون نومۇر",typeUrl:"ئادرېس"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/uk.js new file mode 100644 index 00000000..317d57f5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","uk",{button:{title:"Властивості кнопки",text:"Значення",type:"Тип",typeBtn:"Кнопка (button)",typeSbm:"Надіслати (submit)",typeRst:"Очистити (reset)"},checkboxAndRadio:{checkboxTitle:"Властивості галочки",radioTitle:"Властивості кнопки вибору",value:"Значення",selected:"Обрана"},form:{title:"Властивості форми",menu:"Властивості форми",action:"Дія",method:"Метод",encoding:"Кодування"},hidden:{title:"Властивості прихованого поля",name:"Ім'я",value:"Значення"},select:{title:"Властивості списку", +selectInfo:"Інфо",opAvail:"Доступні варіанти",value:"Значення",size:"Кількість",lines:"видимих позицій у списку",chkMulti:"Список з мультивибором",opText:"Текст",opValue:"Значення",btnAdd:"Добавити",btnModify:"Змінити",btnUp:"Вгору",btnDown:"Вниз",btnSetValue:"Встановити як обране значення",btnDelete:"Видалити"},textarea:{title:"Властивості текстової області",cols:"Стовбці",rows:"Рядки"},textfield:{title:"Властивості текстового поля",name:"Ім'я",value:"Значення",charWidth:"Ширина",maxChars:"Макс. к-ть символів", +type:"Тип",typeText:"Текст",typePass:"Пароль",typeEmail:"Пошта",typeSearch:"Пошук",typeTel:"Мобільний",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/vi.js new file mode 100644 index 00000000..a02d09c7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","vi",{button:{title:"Thuộc tính của nút",text:"Chuỗi hiển thị (giá trị)",type:"Kiểu",typeBtn:"Nút bấm",typeSbm:"Nút gửi",typeRst:"Nút nhập lại"},checkboxAndRadio:{checkboxTitle:"Thuộc tính nút kiểm",radioTitle:"Thuộc tính nút chọn",value:"Giá trị",selected:"Được chọn"},form:{title:"Thuộc tính biểu mẫu",menu:"Thuộc tính biểu mẫu",action:"Hành động",method:"Phương thức",encoding:"Bảng mã"},hidden:{title:"Thuộc tính trường ẩn",name:"Tên",value:"Giá trị"},select:{title:"Thuộc tính ô chọn", +selectInfo:"Thông tin",opAvail:"Các tùy chọn có thể sử dụng",value:"Giá trị",size:"Kích cỡ",lines:"dòng",chkMulti:"Cho phép chọn nhiều",opText:"Văn bản",opValue:"Giá trị",btnAdd:"Thêm",btnModify:"Thay đổi",btnUp:"Lên",btnDown:"Xuống",btnSetValue:"Giá trị được chọn",btnDelete:"Nút xoá"},textarea:{title:"Thuộc tính vùng văn bản",cols:"Số cột",rows:"Số hàng"},textfield:{title:"Thuộc tính trường văn bản",name:"Tên",value:"Giá trị",charWidth:"Độ rộng của ký tự",maxChars:"Số ký tự tối đa",type:"Kiểu",typeText:"Ký tự", +typePass:"Mật khẩu",typeEmail:"Email",typeSearch:"Tìm kiếm",typeTel:"Số điện thoại",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/zh-cn.js new file mode 100644 index 00000000..3c7ea105 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh-cn",{button:{title:"按钮属性",text:"标签(值)",type:"类型",typeBtn:"按钮",typeSbm:"提交",typeRst:"重设"},checkboxAndRadio:{checkboxTitle:"复选框属性",radioTitle:"单选按钮属性",value:"选定值",selected:"已勾选"},form:{title:"表单属性",menu:"表单属性",action:"动作",method:"方法",encoding:"表单编码"},hidden:{title:"隐藏域属性",name:"名称",value:"初始值"},select:{title:"菜单/列表属性",selectInfo:"选择信息",opAvail:"可选项",value:"值",size:"高度",lines:"行",chkMulti:"允许多选",opText:"选项文本",opValue:"选项值",btnAdd:"添加",btnModify:"修改",btnUp:"上移",btnDown:"下移", +btnSetValue:"设为初始选定",btnDelete:"删除"},textarea:{title:"多行文本属性",cols:"字符宽度",rows:"行数"},textfield:{title:"单行文本属性",name:"名称",value:"初始值",charWidth:"字符宽度",maxChars:"最多字符数",type:"类型",typeText:"文本",typePass:"密码",typeEmail:"Email",typeSearch:"搜索",typeTel:"电话号码",typeUrl:"地址"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/zh.js new file mode 100644 index 00000000..4eec674e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh",{button:{title:"按鈕內容",text:"顯示文字 (值)",type:"類型",typeBtn:"按鈕",typeSbm:"送出",typeRst:"重設"},checkboxAndRadio:{checkboxTitle:"核取方塊內容",radioTitle:"選項按鈕內容",value:"數值",selected:"已選"},form:{title:"表單內容",menu:"表單內容",action:"動作",method:"方式",encoding:"編碼"},hidden:{title:"隱藏欄位內容",name:"名稱",value:"數值"},select:{title:"選取欄位內容",selectInfo:"選擇資訊",opAvail:"可用選項",value:"數值",size:"大小",lines:"行數",chkMulti:"允許多選",opText:"文字",opValue:"數值",btnAdd:"新增",btnModify:"修改",btnUp:"向上",btnDown:"向下", +btnSetValue:"設為已選",btnDelete:"刪除"},textarea:{title:"文字區域內容",cols:"列",rows:"行"},textfield:{title:"文字欄位內容",name:"名字",value:"數值",charWidth:"字元寬度",maxChars:"最大字元數",type:"類型",typeText:"文字",typePass:"密碼",typeEmail:"電子郵件",typeSearch:"搜尋",typeTel:"電話號碼",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/forms/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/forms/plugin.js new file mode 100644 index 00000000..5a1ffae7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/forms/plugin.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"button,checkbox,form,hiddenfield,imagebutton,radio,select,select-rtl,textarea,textarea-rtl,textfield",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n"); +CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(a){var b=a.lang,g=0,h={email:1,password:1,search:1,tel:1,text:1,url:1},j={checkbox:"input[type,name,checked]",radio:"input[type,name,checked]",textfield:"input[type,name,value,size,maxlength]",textarea:"textarea[cols,rows,name]",select:"select[name,size,multiple]; option[value,selected]", +button:"input[type,name,value]",form:"form[action,name,id,enctype,target,method]",hiddenfield:"input[type,name,value]",imagebutton:"input[type,alt,src]{width,height,border,border-width,border-style,margin,float}"},k={checkbox:"input",radio:"input",textfield:"input",textarea:"textarea",select:"select",button:"input",form:"form",hiddenfield:"input",imagebutton:"input"},e=function(d,c,e){var h={allowedContent:j[c],requiredContent:k[c]};"form"==c&&(h.context="form");a.addCommand(c,new CKEDITOR.dialogCommand(c, +h));a.ui.addButton&&a.ui.addButton(d,{label:b.common[d.charAt(0).toLowerCase()+d.slice(1)],command:c,toolbar:"forms,"+(g+=10)});CKEDITOR.dialog.add(c,e)},f=this.path+"dialogs/";!a.blockless&&e("Form","form",f+"form.js");e("Checkbox","checkbox",f+"checkbox.js");e("Radio","radio",f+"radio.js");e("TextField","textfield",f+"textfield.js");e("Textarea","textarea",f+"textarea.js");e("Select","select",f+"select.js");e("Button","button",f+"button.js");var i=a.plugins.image;i&&!a.plugins.image2&&e("ImageButton", +"imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");e("HiddenField","hiddenfield",f+"hiddenfield.js");a.addMenuItems&&(e={checkbox:{label:b.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:b.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:b.forms.textfield.title,command:"textfield",group:"textfield"},hiddenfield:{label:b.forms.hidden.title,command:"hiddenfield",group:"hiddenfield"},button:{label:b.forms.button.title, +command:"button",group:"button"},select:{label:b.forms.select.title,command:"select",group:"select"},textarea:{label:b.forms.textarea.title,command:"textarea",group:"textarea"}},i&&(e.imagebutton={label:b.image.titleButton,command:"imagebutton",group:"imagebutton"}),!a.blockless&&(e.form={label:b.forms.form.menu,command:"form",group:"form"}),a.addMenuItems(e));a.contextMenu&&(!a.blockless&&a.contextMenu.addListener(function(d,c,a){if((d=a.contains("form",1))&&!d.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}), +a.contextMenu.addListener(function(d){if(d&&!d.isReadOnly()){var c=d.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var a=d.getAttribute("type")||"text";switch(a){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};case "radio":return{radio:CKEDITOR.TRISTATE_OFF};case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[a])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c== +"img"&&d.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));a.on("doubleclick",function(d){var c=d.data.element;if(!a.blockless&&c.is("form"))d.data.dialog="form";else if(c.is("select"))d.data.dialog="select";else if(c.is("textarea"))d.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")=="hiddenfield")d.data.dialog="hiddenfield";else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":d.data.dialog= +"button";break;case "checkbox":d.data.dialog="checkbox";break;case "radio":d.data.dialog="radio";break;case "image":d.data.dialog="imagebutton"}if(h[c])d.data.dialog="textfield"}})},afterInit:function(a){var b=a.dataProcessor,g=b&&b.htmlFilter,b=b&&b.dataFilter;CKEDITOR.env.ie&&g&&g.addRules({elements:{input:function(a){var a=a.attributes,b=a.type;b||(a.type="text");("checkbox"==b||"radio"==b)&&"on"==a.value&&delete a.value}}},{applyToAll:!0});b&&b.addRules({elements:{input:function(b){if("hidden"== +b.attributes.type)return a.createFakeParserElement(b,"cke_hidden","hiddenfield")}}},{applyToAll:!0})}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/icons.png b/platforms/android/assets/www/lib/ckeditor/plugins/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/icons.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/icons_hidpi.png b/platforms/android/assets/www/lib/ckeditor/plugins/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/icons_hidpi.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js new file mode 100644 index 00000000..dba1e930 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}}; +CKEDITOR.dialog.add("iframe",function(b){var f=b.lang.iframe,a=b.lang.common,e=b.plugins.dialogadvtab;return{title:f.title,minWidth:350,minHeight:260,onShow:function(){this.fakeImage=this.iframeNode=null;var a=this.getSelectedElement();a&&(a.data("cke-real-element-type")&&"iframe"==a.data("cke-real-element-type"))&&(this.fakeImage=a,this.iframeNode=a=b.restoreRealElement(a),this.setupContent(a))},onOk:function(){var a;a=this.fakeImage?this.iframeNode:new CKEDITOR.dom.element("iframe");var c={},d= +{};this.commitContent(a,c,d);a=b.createFakeElement(a,"cke_iframe","iframe",!0);a.setAttributes(d);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),b.getSelection().selectElement(a)):b.insertElement(a)},contents:[{id:"info",label:a.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{id:"src",type:"text",label:a.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(f.noUrl),setup:c,commit:d}]},{type:"hbox",children:[{id:"width",type:"text",requiredContent:"iframe[width]", +style:"width:100%",labelLayout:"vertical",label:a.width,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.width)),setup:c,commit:d},{id:"height",type:"text",requiredContent:"iframe[height]",style:"width:100%",labelLayout:"vertical",label:a.height,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.height)),setup:c,commit:d},{id:"align",type:"select",requiredContent:"iframe[align]","default":"",items:[[a.notSet,""],[a.alignLeft,"left"],[a.alignRight, +"right"],[a.alignTop,"top"],[a.alignMiddle,"middle"],[a.alignBottom,"bottom"]],style:"width:100%",labelLayout:"vertical",label:a.align,setup:function(a,b){c.apply(this,arguments);if(b){var d=b.getAttribute("align");this.setValue(d&&d.toLowerCase()||"")}},commit:function(a,b,c){d.apply(this,arguments);this.getValue()&&(c.align=this.getValue())}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"scrolling",type:"checkbox",requiredContent:"iframe[scrolling]",label:f.scrolling,setup:c,commit:d},{id:"frameborder", +type:"checkbox",requiredContent:"iframe[frameborder]",label:f.border,setup:c,commit:d}]},{type:"hbox",widths:["50%","50%"],children:[{id:"name",type:"text",requiredContent:"iframe[name]",label:a.name,setup:c,commit:d},{id:"title",type:"text",requiredContent:"iframe[title]",label:a.advisoryTitle,setup:c,commit:d}]},{id:"longdesc",type:"text",requiredContent:"iframe[longdesc]",label:a.longDescr,setup:c,commit:d}]},e&&e.createAdvancedTab(b,{id:1,classes:1,styles:1},"iframe")]}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png new file mode 100644 index 00000000..ff17604d Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/icons/iframe.png b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/icons/iframe.png new file mode 100644 index 00000000..f72d1915 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/icons/iframe.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/images/placeholder.png b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/images/placeholder.png new file mode 100644 index 00000000..4af09565 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/images/placeholder.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/af.js new file mode 100644 index 00000000..71eb910a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","af",{border:"Wys rand van raam",noUrl:"Gee die iframe URL",scrolling:"Skuifbalke aan",title:"IFrame Eienskappe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ar.js new file mode 100644 index 00000000..8b90f6c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ar",{border:"إظهار حدود الإطار",noUrl:"فضلا أكتب رابط الـ iframe",scrolling:"تفعيل أشرطة الإنتقال",title:"خصائص iframe",toolbar:"iframe"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bg.js new file mode 100644 index 00000000..23b9a7bc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bg",{border:"Показва рамка на карето",noUrl:"Моля въведете URL за iFrame",scrolling:"Вкл. скролбаровете",title:"IFrame настройки",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bn.js new file mode 100644 index 00000000..a7a9ee05 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bs.js new file mode 100644 index 00000000..f37043c6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bs",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ca.js new file mode 100644 index 00000000..18bddf5b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ca",{border:"Mostra la vora del marc",noUrl:"Si us plau, introdueixi la URL de l'iframe",scrolling:"Activa les barres de desplaçament",title:"Propietats de l'IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/cs.js new file mode 100644 index 00000000..37b25fb6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cs",{border:"Zobrazit okraj",noUrl:"Zadejte prosím URL obsahu pro IFrame",scrolling:"Zapnout posuvníky",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/cy.js new file mode 100644 index 00000000..f8db6041 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cy",{border:"Dangos ymyl y ffrâm",noUrl:"Rhowch URL yr iframe",scrolling:"Galluogi bariau sgrolio",title:"Priodweddau IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/da.js new file mode 100644 index 00000000..54115330 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","da",{border:"Vis kant på rammen",noUrl:"Venligst indsæt URL på iframen",scrolling:"Aktiver scrollbars",title:"Iframe egenskaber",toolbar:"Iframe"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/de.js new file mode 100644 index 00000000..2556d571 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","de",{border:"Rahmen anzeigen",noUrl:"Bitte geben Sie die IFrame-URL an",scrolling:"Rollbalken anzeigen",title:"IFrame-Eigenschaften",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/el.js new file mode 100644 index 00000000..cecba9bd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","el",{border:"Προβολή περιγράμματος πλαισίου",noUrl:"Παρακαλούμε εισάγεται το URL του iframe",scrolling:"Ενεργοποίηση μπαρών κύλισης",title:"Ιδιότητες IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-au.js new file mode 100644 index 00000000..8e2821f8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-au",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-ca.js new file mode 100644 index 00000000..c25669ed --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-ca",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-gb.js new file mode 100644 index 00000000..214388d1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-gb",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en.js new file mode 100644 index 00000000..8d1407e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/eo.js new file mode 100644 index 00000000..a1855070 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eo",{border:"Montri borderon de kadro (frame)",noUrl:"Bonvolu entajpi la retadreson de la ligilo al la enlinia kadro (IFrame)",scrolling:"Ebligi rulumskalon",title:"Atributoj de la enlinia kadro (IFrame)",toolbar:"Enlinia kadro (IFrame)"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/es.js new file mode 100644 index 00000000..89e38510 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","es",{border:"Mostrar borde del marco",noUrl:"Por favor, escriba la dirección del iframe",scrolling:"Activar barras de desplazamiento",title:"Propiedades de iframe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/et.js new file mode 100644 index 00000000..7cd5ec0d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","et",{border:"Raami äärise näitamine",noUrl:"Vali iframe URLi liik",scrolling:"Kerimisribade lubamine",title:"IFrame omadused",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/eu.js new file mode 100644 index 00000000..f8b1cff1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eu",{border:"Markoaren ertza ikusi",noUrl:"iframe-aren URLa idatzi, mesedez.",scrolling:"Korritze barrak gaitu",title:"IFrame-aren Propietateak",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fa.js new file mode 100644 index 00000000..a6bd7ee6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fa",{border:"نمایش خطوط frame",noUrl:"لطفا مسیر URL iframe را درج کنید",scrolling:"نمایش خطکشها",title:"ویژگیهای IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fi.js new file mode 100644 index 00000000..2813efb0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fi",{border:"Näytä kehyksen reunat",noUrl:"Anna IFrame-kehykselle lähdeosoite (src)",scrolling:"Näytä vierityspalkit",title:"IFrame-kehyksen ominaisuudet",toolbar:"IFrame-kehys"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fo.js new file mode 100644 index 00000000..3ec97a07 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fo",{border:"Vís frame kant",noUrl:"Vinarliga skriva URL til iframe",scrolling:"Loyv scrollbars",title:"Møguleikar fyri IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js new file mode 100644 index 00000000..1a43ea6e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr-ca",{border:"Afficher la bordure du cadre",noUrl:"Veuillez entre l'URL du IFrame",scrolling:"Activer les barres de défilement",title:"Propriétés du IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fr.js new file mode 100644 index 00000000..c5bc58cb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr",{border:"Afficher une bordure de la IFrame",noUrl:"Veuillez entrer l'adresse du lien de la IFrame",scrolling:"Permettre à la barre de défilement",title:"Propriétés de la IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/gl.js new file mode 100644 index 00000000..5326e33f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gl",{border:"Amosar o bordo do marco",noUrl:"Escriba o enderezo do iframe",scrolling:"Activar as barras de desprazamento",title:"Propiedades do iFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/gu.js new file mode 100644 index 00000000..0c6aed93 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gu",{border:"ફ્રેમ બોર્ડેર બતાવવી",noUrl:"iframe URL ટાઈપ્ કરો",scrolling:"સ્ક્રોલબાર ચાલુ કરવા",title:"IFrame વિકલ્પો",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/he.js new file mode 100644 index 00000000..4c227775 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","he",{border:"הראה מסגרת לחלון",noUrl:"יש להכניס כתובת לחלון.",scrolling:"אפשר פסי גלילה",title:"מאפייני חלון פנימי (iframe)",toolbar:"חלון פנימי (iframe)"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hi.js new file mode 100644 index 00000000..8699b826 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hi",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hr.js new file mode 100644 index 00000000..6cf8b838 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hr",{border:"Prikaži okvir IFrame-a",noUrl:"Unesite URL iframe-a",scrolling:"Omogući trake za skrolanje",title:"IFrame svojstva",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hu.js new file mode 100644 index 00000000..94bdf85e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hu",{border:"Legyen keret",noUrl:"Kérem írja be a iframe URL-t",scrolling:"Gördítősáv bekapcsolása",title:"IFrame Tulajdonságok",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/id.js new file mode 100644 index 00000000..0db9a8ee --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","id",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/is.js new file mode 100644 index 00000000..bb669e8a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","is",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/it.js new file mode 100644 index 00000000..54f33bec --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","it",{border:"Mostra il bordo",noUrl:"Inserire l'URL del campo IFrame",scrolling:"Abilita scrollbar",title:"Proprietà IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ja.js new file mode 100644 index 00000000..039c5788 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ja",{border:"フレームの枠を表示",noUrl:"iframeのURLを入力してください。",scrolling:"スクロールバーの表示を許可",title:"iFrameのプロパティ",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ka.js new file mode 100644 index 00000000..e8388990 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ka",{border:"ჩარჩოს გამოჩენა",noUrl:"აკრიფეთ iframe-ის URL",scrolling:"გადახვევის ზოლების დაშვება",title:"IFrame-ის პარამეტრები",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/km.js new file mode 100644 index 00000000..629c7831 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","km",{border:"បង្ហាញ​បន្ទាត់​ស៊ុម",noUrl:"សូម​បញ្ចូល URL របស់ iframe",scrolling:"ប្រើ​របារ​រំកិល",title:"លក្ខណៈ​សម្បត្តិ IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ko.js new file mode 100644 index 00000000..fa6bc741 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ko",{border:"프레임 테두리 표시",noUrl:"iframe 대응 URL을 입력해주세요.",scrolling:"스크롤바 사용",title:"IFrame 속성",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ku.js new file mode 100644 index 00000000..bc1ae360 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ku",{border:"نیشاندانی لاکێشه بە چوواردەوری چووارچێوە",noUrl:"تکایه ناونیشانی بەستەر بنووسه بۆ چووارچێوه",scrolling:"چالاککردنی هاتووچۆپێکردن",title:"دیالۆگی چووارچێوه",toolbar:"چووارچێوه"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/lt.js new file mode 100644 index 00000000..20dee016 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lt",{border:"Rodyti rėmelį",noUrl:"Nurodykite iframe nuorodą",scrolling:"Įjungti slankiklius",title:"IFrame nustatymai",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/lv.js new file mode 100644 index 00000000..b9db9432 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lv",{border:"Rādīt rāmi",noUrl:"Norādiet iframe adresi",scrolling:"Atļaut ritjoslas",title:"IFrame uzstādījumi",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/mk.js new file mode 100644 index 00000000..a4dbb236 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mk",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/mn.js new file mode 100644 index 00000000..f45cf054 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ms.js new file mode 100644 index 00000000..8ff5bc1b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ms",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/nb.js new file mode 100644 index 00000000..ec65e337 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nb",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/nl.js new file mode 100644 index 00000000..348ee0ec --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nl",{border:"Framerand tonen",noUrl:"Vul de IFrame URL in",scrolling:"Scrollbalken inschakelen",title:"IFrame-eigenschappen",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/no.js new file mode 100644 index 00000000..04a9241d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","no",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pl.js new file mode 100644 index 00000000..d0859990 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pl",{border:"Pokaż obramowanie obiektu IFrame",noUrl:"Podaj adres URL elementu IFrame",scrolling:"Włącz paski przewijania",title:"Właściwości elementu IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pt-br.js new file mode 100644 index 00000000..67100264 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt-br",{border:"Mostra borda do iframe",noUrl:"Insira a URL do iframe",scrolling:"Abilita scrollbars",title:"Propriedade do IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pt.js new file mode 100644 index 00000000..4ac51c5b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt",{border:"Mostrar a borda da Frame",noUrl:"Por favor, digite o URL da iframe",scrolling:"Ativar barras de deslocamento",title:"Propriedades da IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ro.js new file mode 100644 index 00000000..d2ca21fb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ro",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ru.js new file mode 100644 index 00000000..8691613d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ru",{border:"Показать границы фрейма",noUrl:"Пожалуйста, введите ссылку фрейма",scrolling:"Отображать полосы прокрутки",title:"Свойства iFrame",toolbar:"iFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/si.js new file mode 100644 index 00000000..a0b2c1e3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","si",{border:"සැකිල්ලේ කඩයිම් ",noUrl:"කරුණාකර රුපයේ URL ලියන්න",scrolling:"සක්ක්‍රිය කරන්න",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sk.js new file mode 100644 index 00000000..7685e8bf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sk",{border:"Zobraziť rám frame-u",noUrl:"Prosím, vložte URL iframe",scrolling:"Povoliť skrolovanie",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sl.js new file mode 100644 index 00000000..7b79a792 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sl",{border:"Pokaži mejo okvira",noUrl:"Prosimo, vnesite iframe URL",scrolling:"Omogoči scrollbars",title:"IFrame Lastnosti",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sq.js new file mode 100644 index 00000000..4c66e350 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sq",{border:"Shfaq kufirin e kornizës",noUrl:"Ju lutemi shkruani URL-në e iframe-it",scrolling:"Lejo shiritët zvarritës",title:"Karakteristikat e IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js new file mode 100644 index 00000000..3d279456 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr-latn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sr.js new file mode 100644 index 00000000..e7d1c535 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sv.js new file mode 100644 index 00000000..c8adee27 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sv",{border:"Visa ramkant",noUrl:"Skriv in URL för iFrame",scrolling:"Aktivera rullningslister",title:"iFrame Egenskaper",toolbar:"iFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/th.js new file mode 100644 index 00000000..6d876edf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","th",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/tr.js new file mode 100644 index 00000000..9096f663 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tr",{border:"Çerceve sınırlarını göster",noUrl:"Lütfen IFrame köprü (URL) bağlantısını yazın",scrolling:"Kaydırma çubuklarını aktif et",title:"IFrame Özellikleri",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/tt.js new file mode 100644 index 00000000..586d3ae3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tt",{border:"Frame чикләрен күрсәтү",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame үзлекләре",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ug.js new file mode 100644 index 00000000..156b972a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ug",{border:"كاندۇك گىرۋەكلىرىنى كۆرسەت",noUrl:"كاندۇكنىڭ ئادرېسى(Url)نى كىرگۈزۈڭ",scrolling:"دومىلىما سۈرگۈچكە يول قوي",title:"IFrame خاسلىق",toolbar:"IFrame "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/uk.js new file mode 100644 index 00000000..fe6660c3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","uk",{border:"Показати рамки фрейму",noUrl:"Будь ласка введіть посилання для IFrame",scrolling:"Увімкнути прокрутку",title:"Налаштування для IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/vi.js new file mode 100644 index 00000000..70340226 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","vi",{border:"Hiển thị viền khung",noUrl:"Vui lòng nhập địa chỉ iframe",scrolling:"Kích hoạt thanh cuộn",title:"Thuộc tính iframe",toolbar:"Iframe"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js new file mode 100644 index 00000000..876c196b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh-cn",{border:"显示框架边框",noUrl:"请输入框架的 URL",scrolling:"允许滚动条",title:"IFrame 属性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/zh.js new file mode 100644 index 00000000..5fdd10fa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh",{border:"顯示框架框線",noUrl:"請輸入 iframe URL",scrolling:"啟用捲軸列",title:"IFrame 屬性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframe/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/plugin.js new file mode 100644 index 00000000..eefa85c4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframe/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"iframe",hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")}, +init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b= +a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe", +!0)}}})}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/iframedialog/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/iframedialog/plugin.js new file mode 100644 index 00000000..1d6addbd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/iframedialog/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("iframedialog",{requires:"dialog",onLoad:function(){CKEDITOR.dialog.addIframe=function(e,d,a,j,f,l,g){a={type:"iframe",src:a,width:"100%",height:"100%"};a.onContentLoad="function"==typeof l?l:function(){var a=this.getElement().$.contentWindow;if(a.onDialogEvent){var b=this.getDialog(),c=function(b){return a.onDialogEvent(b)};b.on("ok",c);b.on("cancel",c);b.on("resize",c);b.on("hide",function(a){b.removeListener("ok",c);b.removeListener("cancel",c);b.removeListener("resize",c); +a.removeListener()});a.onDialogEvent({name:"load",sender:this,editor:b._.editor})}};var h={title:d,minWidth:j,minHeight:f,contents:[{id:"iframe",label:d,expand:!0,elements:[a],style:"width:"+a.width+";height:"+a.height}]},i;for(i in g)h[i]=g[i];this.add(e,function(){return h})};(function(){var e=function(d,a,j){if(!(3>arguments.length)){var f=this._||(this._={}),e=a.onContentLoad&&CKEDITOR.tools.bind(a.onContentLoad,this),g=CKEDITOR.tools.cssLength(a.width),h=CKEDITOR.tools.cssLength(a.height);f.frameId= +CKEDITOR.tools.getNextId()+"_iframe";d.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().setStyles({width:g,height:h})});var i={src:"%2",id:f.frameId,frameborder:0,allowtransparency:!0},k=[];"function"==typeof a.onContentLoad&&(i.onload="CKEDITOR.tools.callFunction(%1);");CKEDITOR.ui.dialog.uiElement.call(this,d,a,k,"iframe",{width:g,height:h},i,"");j.push('<div style="width:'+g+";height:"+h+';" id="'+this.domId+'"></div>');k=k.join("");d.on("show",function(){var b=CKEDITOR.document.getById(f.frameId).getParent(), +c=CKEDITOR.tools.addFunction(e),c=k.replace("%1",c).replace("%2",CKEDITOR.tools.htmlEncode(a.src));b.setHtml(c)})}};e.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.dialog.addUIElement("iframe",{build:function(d,a,j){return new e(d,a,j)}})})()}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image/dialogs/image.js b/platforms/android/assets/www/lib/ckeditor/plugins/image/dialogs/image.js new file mode 100644 index 00000000..c84ecdc3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image/dialogs/image.js @@ -0,0 +1,43 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var r=function(c,j){function r(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){this.commit(f,d);for(var a=[].concat(a),e=a.length,c,g=0;g<e;g++)(c=b.getContentElement.apply(b,a[g].split(":")))&&c.setup(f,d)}s=0}}var f=1,k=/^\s*(\d+)((px)|\%)?\s*$/i,v=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,o=/^\d+px$/, +w=function(){var a=this.getValue(),b=this.getDialog(),d=a.match(k);d&&("%"==d[2]&&l(b,!1),a=d[1]);b.lockRatio&&(d=b.originalElement,"true"==d.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(d.$.width*(a/d.$.height))),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(d.$.height*(a/d.$.width))),isNaN(a)||b.setValueOf("info","txtHeight",a))));g(b)},g=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},s,l=function(a, +b){if(!a.getContentElement("info","ratioLock"))return null;var d=a.originalElement;if(!d)return null;if("check"==b){if(!a.userlockRatio&&"true"==d.getCustomData("isReady")){var e=a.getValueOf("info","txtWidth"),c=a.getValueOf("info","txtHeight"),d=1E3*d.$.width/d.$.height,f=1E3*e/c;a.lockRatio=!1;!e&&!c?a.lockRatio=!0:!isNaN(d)&&!isNaN(f)&&Math.round(d)==Math.round(f)&&(a.lockRatio=!0)}}else void 0!=b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);e=CKEDITOR.document.getById(p);a.lockRatio? +e.removeClass("cke_btn_unlocked"):e.addClass("cke_btn_unlocked");e.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&e.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},x=function(a){var b=a.originalElement;if("true"==b.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),e=a.getContentElement("info","txtHeight");d&&d.setValue(b.$.width);e&&e.setValue(b.$.height)}g(a)},y=function(a,b){function d(a,b){var d=a.match(k);return d? +("%"==d[2]&&(d[1]+="%",l(e,!1)),d[1]):b}if(a==f){var e=this.getDialog(),c="",g="txtWidth"==this.id?"width":"height",h=b.getAttribute(g);h&&(c=d(h,c));c=d(b.getStyle(g),c);this.setValue(c)}},t,q=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.setCustomData("isReady","true");a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||x(this);this.firstLoad&&CKEDITOR.tools.setTimeout(function(){l(this,"check")}, +0,this);this.dontResetSize=this.firstLoad=!1},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");l(this,!1)},n=function(a){return CKEDITOR.tools.getNextId()+"_"+a},p=n("btnLockSizes"),u=n("btnResetSize"),m=n("ImagePreviewLoader"),A=n("previewLink"), +z=n("previewImage");return{title:c.lang.image["image"==j?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),d=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1),c=CKEDITOR.document.getById(m);c&&c.setStyle("display","none");t=new CKEDITOR.dom.element("img", +a.document);this.preview=CKEDITOR.document.getById(z);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");if(d){this.linkElement=d;this.linkEditMode=!0;c=d.getChildren();if(1==c.count()){var g=c.getItem(0).getName();if("img"==g||"input"==g)this.imageElement=c.getItem(0),"img"==this.imageElement.getName()?this.imageEditMode="img":"input"==this.imageElement.getName()&&(this.imageEditMode="input")}"image"== +j&&this.setupContent(2,d)}if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode?(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(f,this.imageElement)):this.imageElement=a.document.createElement("img"); +l(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==j&&"input"==a&&confirm(c.lang.image.button2Img)?(this.imageElement=c.document.createElement("img"),this.imageElement.setAttribute("alt",""),c.insertElement(this.imageElement)):"image"!=j&&"img"==a&&confirm(c.lang.image.img2Button)?(this.imageElement=c.document.createElement("input"), +this.imageElement.setAttributes({type:"image",alt:""}),c.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==j?this.imageElement=c.document.createElement("img"):(this.imageElement=c.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=c.document.createElement("a"));this.commitContent(f,this.imageElement);this.commitContent(2,this.linkElement); +this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(c.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(c.getSelection().selectElement(this.linkElement),c.insertElement(this.imageElement)):this.addLink?this.linkEditMode?c.insertElement(this.imageElement):(c.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):c.insertElement(this.imageElement)}, +onLoad:function(){"image"!=j&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(u),5),this.addFocusable(a.getById(p),5));this.commitContent=r},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",q),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement= +!1);delete this.imageElement},contents:[{id:"info",label:c.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:c.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),d=a.originalElement;a.preview&&a.preview.removeStyle("display");d.setCustomData("isReady","false");var c=CKEDITOR.document.getById(m);c&&c.setStyle("display", +"");d.on("load",q,a);d.on("error",h,a);d.on("abort",h,a);d.setAttribute("src",b);a.preview&&(t.setAttribute("src",b),a.preview.setAttribute("src",t.$.src),g(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(a==f){var d=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(d);this.setInitValue()}},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()), +b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:c.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:c.lang.image.alt,accessKey:"T","default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("alt"))}, +commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:c.lang.common.width,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a= +this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidWidth);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(e)):b.removeStyle("width"),!d&&b.removeAttribute("width")):4==a?e.match(k)?b.setStyle("width",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("width",a.$.width+"px")):8==a&&(b.removeAttribute("width"), +b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:c.lang.common.height,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidHeight);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(e)):b.removeStyle("height"),!d&&b.removeAttribute("height")): +4==a?e.match(k)?b.setStyle("height",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("height",a.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(u),b=CKEDITOR.document.getById(p);a&&(a.on("click",function(a){x(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover", +function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){l(this);var b=this.originalElement,c=this.getValueOf("info","txtWidth");if(b.getCustomData("isReady")=="true"&&c){b=b.$.height/b.$.width*c;if(!isNaN(b)){this.setValueOf("info","txtHeight",Math.round(b));g(this)}}a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")}, +b))},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.lockRatio+'" class="cke_btn_locked" id="'+p+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+c.lang.image.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.resetSize+'" class="cke_btn_reset" id="'+u+'" role="button"><span class="cke_label">'+c.lang.image.resetSize+"</span></a></div>"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}", +width:"60px",label:c.lang.image.border,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder),setup:function(a,b){if(a==f){var d;d=(d=(d=b.getStyle("border-width"))&&d.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(d[1],10);isNaN(parseInt(d,10))&&(d=b.getAttribute("border"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&& +this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),!d&&a==f&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:c.lang.image.hSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this, +"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),setup:function(a,b){if(a==f){var d,c;d=b.getStyle("margin-left");c=b.getStyle("margin-right");d=d&&d.match(o);c=c&&c.match(o);d=parseInt(d,10);c=parseInt(c,10);d=d==c&&d;isNaN(parseInt(d,10))&&(d=b.getAttribute("hspace"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")): +(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),!d&&a==f&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:c.lang.image.vSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace), +setup:function(a,b){if(a==f){var c,e;c=b.getStyle("margin-top");e=b.getStyle("margin-bottom");c=c&&c.match(o);e=e&&e.match(o);c=parseInt(c,10);e=parseInt(e,10);c=c==e&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(e))), +!c&&a==f&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:c.lang.common.align,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.alignLeft,"left"],[c.lang.common.alignRight,"right"]],onChange:function(){g(this.getDialog());i.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(a==f){var c=b.getStyle("float"); +switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b,c){var e=this.getValue();if(a==f||4==a){if(e?b.setStyle("float",e):b.removeStyle("float"),!c&&a==f)switch(e=(b.getAttribute("align")||"").toLowerCase(),e){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"<div>"+CKEDITOR.tools.htmlEncode(c.lang.common.preview)+ +'<br><div id="'+m+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'"><img id="'+z+'" alt="" /></a>'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+ +"</td></tr></table></div></div>"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=this.getValue();b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink= +!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")|| +"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"], +children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle, +"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a, +b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}}; +CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image/images/noimage.png b/platforms/android/assets/www/lib/ckeditor/plugins/image/images/noimage.png new file mode 100644 index 00000000..15981130 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/image/images/noimage.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/dialogs/image2.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/dialogs/image2.js new file mode 100644 index 00000000..9b9b9028 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/dialogs/image2.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("image2",function(j){function z(){var a=this.getValue().match(A);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c["invalid"+CKEDITOR.tools.capitalize(this.id)]);return a}function K(){function a(a,b){d.push(i.once(a,function(a){for(var i;i=d.pop();)i.removeListener();b(a)}))}var i=p.createElement("img"),d=[];return function(d,b,c){a("load",function(){var a=B(i);b.call(c,i,a.width,a.height)});a("error",function(){b(null)});a("abort",function(){b(null)});i.setAttribute("src",(t.baseHref|| +"")+d+"?"+Math.random().toString(16).substring(2))}}function C(){var a=this.getValue();q(!1);a!==u.data.src?(D(a,function(a,d,b){q(!0);if(!a)return k(!1);g.setValue(d);h.setValue(b);r=d;s=b;k(E.checkHasNaturalRatio(a))}),l=!0):l?(q(!0),g.setValue(m),h.setValue(n),l=!1):q(!0)}function F(){if(e){var a=this.getValue();if(a&&(a.match(A)||k(!1),"0"!==a)){var b="width"==this.id,d=m||r,c=n||s,a=b?Math.round(c*(a/d)):Math.round(d*(a/c));isNaN(a)||(b?h:g).setValue(a)}}}function k(a){if(f){if("boolean"==typeof a){if(v)return; +e=a}else if(a=g.getValue(),v=!0,(e=!e)&&a)a*=n/m,isNaN(a)||h.setValue(Math.round(a));f[e?"removeClass":"addClass"]("cke_btn_unlocked");f.setAttribute("aria-checked",e);CKEDITOR.env.hc&&f.getChild(0).setHtml(e?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢")}}function q(a){a=a?"enable":"disable";g[a]();h[a]()}var A=/(^\s*(\d+)(px)?\s*$)|^$/i,G=CKEDITOR.tools.getNextId(),H=CKEDITOR.tools.getNextId(),b=j.lang.image2,c=j.lang.common,L=(new CKEDITOR.template('<div><a href="javascript:void(0)" tabindex="-1" title="'+ +b.lockRatio+'" class="cke_btn_locked" id="{lockButtonId}" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+b.resetSize+'" class="cke_btn_reset" id="{resetButtonId}" role="button"><span class="cke_label">'+b.resetSize+"</span></a></div>")).output({lockButtonId:G,resetButtonId:H}),E=CKEDITOR.plugins.image2,t=j.config,w=j.widgets.registered.image.features,B=E.getNatural,p,u,I,D,m,n,r,s,l,e,v,f,o,g,h,x, +y=!(!t.filebrowserImageBrowseUrl&&!t.filebrowserBrowseUrl),J=[{id:"src",type:"text",label:c.url,onKeyup:C,onChange:C,setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())},validate:CKEDITOR.dialog.validate.notEmpty(b.urlMissing)}];y&&J.push({type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:j.lang.common.browseServer,hidden:!0,filebrowser:"info:src"});return{title:b.title,minWidth:250,minHeight:100,onLoad:function(){p= +this._.element.getDocument();D=K()},onShow:function(){u=this.widget;I=u.parts.image;l=v=e=!1;x=B(I);r=m=x.width;s=n=x.height},contents:[{id:"info",label:b.infoTab,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["100%"],children:J}]},{id:"alt",type:"text",label:b.alt,setup:function(a){this.setValue(a.data.alt)},commit:function(a){a.setData("alt",this.getValue())}},{type:"hbox",widths:["25%","25%","50%"],requiredContent:w.dimension.requiredContent,children:[{type:"text",width:"45px", +id:"width",label:c.width,validate:z,onKeyUp:F,onLoad:function(){g=this},setup:function(a){this.setValue(a.data.width)},commit:function(a){a.setData("width",this.getValue())}},{type:"text",id:"height",width:"45px",label:c.height,validate:z,onKeyUp:F,onLoad:function(){h=this},setup:function(a){this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}},{id:"lock",type:"html",style:"margin-top:18px;width:40px;height:20px;",onLoad:function(){function a(a){a.on("mouseover",function(){this.addClass("cke_btn_over")}, +a);a.on("mouseout",function(){this.removeClass("cke_btn_over")},a)}var b=this.getDialog();f=p.getById(G);o=p.getById(H);f&&(b.addFocusable(f,4+y),f.on("click",function(a){k();a.data&&a.data.preventDefault()},this.getDialog()),a(f));o&&(b.addFocusable(o,5+y),o.on("click",function(a){if(l){g.setValue(r);h.setValue(s)}else{g.setValue(m);h.setValue(n)}a.data&&a.data.preventDefault()},this),a(o))},setup:function(a){k(a.data.lock)},commit:function(a){a.setData("lock",e)},html:L}]},{type:"hbox",id:"alignment", +requiredContent:w.align.requiredContent,children:[{id:"align",type:"radio",items:[[c.alignNone,"none"],[c.alignLeft,"left"],[c.alignCenter,"center"],[c.alignRight,"right"]],label:c.align,setup:function(a){this.setValue(a.data.align)},commit:function(a){a.setData("align",this.getValue())}}]},{id:"hasCaption",type:"checkbox",label:b.captioned,requiredContent:w.caption.requiredContent,setup:function(a){this.setValue(a.data.hasCaption)},commit:function(a){a.setData("hasCaption",this.getValue())}}]},{id:"Upload", +hidden:!0,filebrowser:"uploadButton",label:b.uploadTab,elements:[{type:"file",id:"upload",label:b.btnUpload,style:"height:40px"},{type:"fileButton",id:"uploadButton",filebrowser:"info:src",label:b.btnUpload,"for":["Upload","upload"]}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png b/platforms/android/assets/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png new file mode 100644 index 00000000..b3c7ade5 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/icons/image.png b/platforms/android/assets/www/lib/ckeditor/plugins/image2/icons/image.png new file mode 100644 index 00000000..fcf61b5f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/image2/icons/image.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/af.js new file mode 100644 index 00000000..d5ef4619 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","af",{alt:"Alternatiewe teks",btnUpload:"Stuur na bediener",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Afbeelding informasie",lockRatio:"Vaste proporsie",menu:"Afbeelding eienskappe",pathName:"image",pathNameCaption:"caption",resetSize:"Herstel grootte",resizer:"Click and drag to resize",title:"Afbeelding eienskappe",uploadTab:"Oplaai",urlMissing:"Die URL na die afbeelding ontbreek."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ar.js new file mode 100644 index 00000000..435544b2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ar",{alt:"عنوان الصورة",btnUpload:"أرسلها للخادم",captioned:"صورة ذات اسم",captionPlaceholder:"تسمية",infoTab:"معلومات الصورة",lockRatio:"تناسق الحجم",menu:"خصائص الصورة",pathName:"صورة",pathNameCaption:"تسمية",resetSize:"إستعادة الحجم الأصلي",resizer:"انقر ثم اسحب للتحجيم",title:"خصائص الصورة",uploadTab:"رفع",urlMissing:"عنوان مصدر الصورة مفقود"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bg.js new file mode 100644 index 00000000..a97a26e6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bg",{alt:"Алтернативен текст",btnUpload:"Изпрати я на сървъра",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо за снимка",lockRatio:"Заключване на съотношението",menu:"Настройки за снимка",pathName:"image",pathNameCaption:"caption",resetSize:"Нулиране на размер",resizer:"Click and drag to resize",title:"Настройки за снимка",uploadTab:"Качване",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bn.js new file mode 100644 index 00000000..93618a02 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bn",{alt:"বিকল্প টেক্সট",btnUpload:"ইহাকে সার্ভারে প্রেরন কর",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ছবির তথ্য",lockRatio:"অনুপাত লক কর",menu:"ছবির প্রোপার্টি",pathName:"image",pathNameCaption:"caption",resetSize:"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও",resizer:"Click and drag to resize",title:"ছবির প্রোপার্টি",uploadTab:"আপলোড",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bs.js new file mode 100644 index 00000000..ff4ae297 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bs",{alt:"Tekst na slici",btnUpload:"Šalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zakljuèaj odnos",menu:"Svojstva slike",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj dimenzije",resizer:"Click and drag to resize",title:"Svojstva slike",uploadTab:"Šalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ca.js new file mode 100644 index 00000000..6e73ef35 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ca",{alt:"Text alternatiu",btnUpload:"Envia-la al servidor",captioned:"Imatge amb subtítol",captionPlaceholder:"Títol",infoTab:"Informació de la imatge",lockRatio:"Bloqueja les proporcions",menu:"Propietats de la imatge",pathName:"imatge",pathNameCaption:"subtítol",resetSize:"Restaura la mida",resizer:"Clicar i arrossegar per redimensionar",title:"Propietats de la imatge",uploadTab:"Puja",urlMissing:"Falta la URL de la imatge."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/cs.js new file mode 100644 index 00000000..d148641d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cs",{alt:"Alternativní text",btnUpload:"Odeslat na server",captioned:"Obrázek s popisem",captionPlaceholder:"Popis",infoTab:"Informace o obrázku",lockRatio:"Zámek",menu:"Vlastnosti obrázku",pathName:"Obrázek",pathNameCaption:"Popis",resetSize:"Původní velikost",resizer:"Klepněte a táhněte pro změnu velikosti",title:"Vlastnosti obrázku",uploadTab:"Odeslat",urlMissing:"Zadané URL zdroje obrázku nebylo nalezeno."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/cy.js new file mode 100644 index 00000000..031ba7ef --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cy",{alt:"Testun Amgen",btnUpload:"Anfon i'r Gweinydd",captioned:"Delwedd â phennawd",captionPlaceholder:"Caption",infoTab:"Gwyb Delwedd",lockRatio:"Cloi Cymhareb",menu:"Priodweddau Delwedd",pathName:"delwedd",pathNameCaption:"pennawd",resetSize:"Ailosod Maint",resizer:"Clicio a llusgo i ail-meintio",title:"Priodweddau Delwedd",uploadTab:"Lanlwytho",urlMissing:"URL gwreiddiol y ddelwedd ar goll."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/da.js new file mode 100644 index 00000000..b5412c41 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","da",{alt:"Alternativ tekst",btnUpload:"Upload fil til serveren",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Generelt",lockRatio:"Lås størrelsesforhold",menu:"Egenskaber for billede",pathName:"image",pathNameCaption:"caption",resetSize:"Nulstil størrelse",resizer:"Click and drag to resize",title:"Egenskaber for billede",uploadTab:"Upload",urlMissing:"Kilde på billed-URL mangler"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/de.js new file mode 100644 index 00000000..de90c18d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","de",{alt:"Alternativer Text",btnUpload:"Zum Server senden",captioned:"Bild mit Überschrift",captionPlaceholder:"Überschrift",infoTab:"Bild-Info",lockRatio:"Größenverhältnis beibehalten",menu:"Bild-Eigenschaften",pathName:"Bild",pathNameCaption:"Überschrift",resetSize:"Größe zurücksetzen",resizer:"Zum vergrößern anwählen und ziehen",title:"Bild-Eigenschaften",uploadTab:"Hochladen",urlMissing:"Imagequelle URL fehlt."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/el.js new file mode 100644 index 00000000..65307e3d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","el",{alt:"Εναλλακτικό Κείμενο",btnUpload:"Αποστολή στον Διακομιστή",captioned:"Εικόνα με λεζάντα",captionPlaceholder:"Λεζάντα",infoTab:"Πληροφορίες Εικόνας",lockRatio:"Κλείδωμα Αναλογίας",menu:"Ιδιότητες Εικόνας",pathName:"εικόνα",pathNameCaption:"λεζάντα",resetSize:"Επαναφορά Αρχικού Μεγέθους",resizer:"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος",title:"Ιδιότητες Εικόνας",uploadTab:"Αποστολή",urlMissing:"Λείπει το πηγαίο URL της εικόνας."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-au.js new file mode 100644 index 00000000..caab219c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-au",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-ca.js new file mode 100644 index 00000000..ec19b8f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-ca",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-gb.js new file mode 100644 index 00000000..d5a9406a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-gb",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en.js new file mode 100644 index 00000000..524e0a2a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/eo.js new file mode 100644 index 00000000..26587e03 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eo",{alt:"Anstataŭiga Teksto",btnUpload:"Sendu al Servilo",captioned:"Bildo kun apudskribo",captionPlaceholder:"Apudskribo",infoTab:"Informoj pri Bildo",lockRatio:"Konservi Proporcion",menu:"Atributoj de Bildo",pathName:"bildo",pathNameCaption:"apudskribo",resetSize:"Origina Grando",resizer:"Kliki kaj treni por ŝanĝi la grandon",title:"Atributoj de Bildo",uploadTab:"Alŝuti",urlMissing:"La fontretadreso de la bildo mankas."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/es.js new file mode 100644 index 00000000..c68c9162 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","es",{alt:"Texto Alternativo",btnUpload:"Enviar al Servidor",captioned:"Imagen subtitulada",captionPlaceholder:"Caption",infoTab:"Información de Imagen",lockRatio:"Proporcional",menu:"Propiedades de Imagen",pathName:"image",pathNameCaption:"subtítulo",resetSize:"Tamaño Original",resizer:"Dar clic y arrastrar para cambiar tamaño",title:"Propiedades de Imagen",uploadTab:"Cargar",urlMissing:"Debe indicar la URL de la imagen."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/et.js new file mode 100644 index 00000000..b8571dbf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","et",{alt:"Alternatiivne tekst",btnUpload:"Saada serverisse",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Pildi info",lockRatio:"Lukusta kuvasuhe",menu:"Pildi omadused",pathName:"image",pathNameCaption:"caption",resetSize:"Lähtesta suurus",resizer:"Click and drag to resize",title:"Pildi omadused",uploadTab:"Lae üles",urlMissing:"Pildi lähte-URL on puudu."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/eu.js new file mode 100644 index 00000000..dadf5a3a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eu",{alt:"Ordezko Testua",btnUpload:"Zerbitzarira bidalia",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Irudi informazioa",lockRatio:"Erlazioa Blokeatu",menu:"Irudi Ezaugarriak",pathName:"image",pathNameCaption:"caption",resetSize:"Tamaina Berrezarri",resizer:"Click and drag to resize",title:"Irudi Ezaugarriak",uploadTab:"Gora kargatu",urlMissing:"Irudiaren iturburu URL-a falta da."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fa.js new file mode 100644 index 00000000..6600e16e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fa",{alt:"متن جایگزین",btnUpload:"به سرور بفرست",captioned:"تصویر زیرنویس شده",captionPlaceholder:"عنوان",infoTab:"اطلاعات تصویر",lockRatio:"قفل کردن نسبت",menu:"ویژگی​های تصویر",pathName:"تصویر",pathNameCaption:"عنوان",resetSize:"بازنشانی اندازه",resizer:"کلیک و کشیدن برای تغییر اندازه",title:"ویژگی​های تصویر",uploadTab:"بالاگذاری",urlMissing:"آدرس URL اصلی تصویر یافت نشد."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fi.js new file mode 100644 index 00000000..e4a104e8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fi",{alt:"Vaihtoehtoinen teksti",btnUpload:"Lähetä palvelimelle",captioned:"Kuva kuvatekstillä",captionPlaceholder:"Kuvateksti",infoTab:"Kuvan tiedot",lockRatio:"Lukitse suhteet",menu:"Kuvan ominaisuudet",pathName:"kuva",pathNameCaption:"kuvateksti",resetSize:"Alkuperäinen koko",resizer:"Klikkaa ja raahaa muuttaaksesi kokoa",title:"Kuvan ominaisuudet",uploadTab:"Lisää tiedosto",urlMissing:"Kuvan lähdeosoite puuttuu."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fo.js new file mode 100644 index 00000000..a2bbfae9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fo",{alt:"Alternativur tekstur",btnUpload:"Send til ambætaran",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Myndaupplýsingar",lockRatio:"Læs lutfallið",menu:"Myndaeginleikar",pathName:"image",pathNameCaption:"caption",resetSize:"Upprunastødd",resizer:"Click and drag to resize",title:"Myndaeginleikar",uploadTab:"Send til ambætaran",urlMissing:"URL til mynd manglar."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fr-ca.js new file mode 100644 index 00000000..30cd9e98 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr-ca",{alt:"Texte alternatif",btnUpload:"Envoyer sur le serveur",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informations sur l'image2",lockRatio:"Verrouiller les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"caption",resetSize:"Taille originale",resizer:"Click and drag to resize",title:"Propriétés de l'image2",uploadTab:"Téléverser",urlMissing:"L'URL de la source de l'image est manquant."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fr.js new file mode 100644 index 00000000..2c7ed973 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr",{alt:"Texte de remplacement",btnUpload:"Envoyer sur le serveur",captioned:"Image légendée",captionPlaceholder:"Légende",infoTab:"Informations sur l'image2",lockRatio:"Conserver les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"légende",resetSize:"Taille d'origine",resizer:"Cliquer et glisser pour redimensionner",title:"Propriétés de l'image2",uploadTab:"Envoyer",urlMissing:"L'adresse source de l'image est manquante."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/gl.js new file mode 100644 index 00000000..f030c9e4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gl",{alt:"Texto alternativo",btnUpload:"Enviar ao servidor",captioned:"Imaxe subtitulada ",captionPlaceholder:"Caption",infoTab:"Información da imaxe",lockRatio:"Proporcional",menu:"Propiedades da imaxe",pathName:"Imaxe",pathNameCaption:"subtítulo",resetSize:"Tamaño orixinal",resizer:"Prema e arrastre para axustar o tamaño",title:"Propiedades da imaxe",uploadTab:"Cargar",urlMissing:"Non se atopa o URL da imaxe."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/gu.js new file mode 100644 index 00000000..4e83249d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gu",{alt:"ઑલ્ટર્નટ ટેક્સ્ટ",btnUpload:"આ સર્વરને મોકલવું",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ચિત્ર ની જાણકારી",lockRatio:"લૉક ગુણોત્તર",menu:"ચિત્રના ગુણ",pathName:"image",pathNameCaption:"caption",resetSize:"રીસેટ સાઇઝ",resizer:"Click and drag to resize",title:"ચિત્રના ગુણ",uploadTab:"અપલોડ",urlMissing:"ઈમેજની મૂળ URL છે નહી."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/he.js new file mode 100644 index 00000000..4787142e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","he",{alt:"טקסט חלופי",btnUpload:"שליחה לשרת",captioned:"כותרת תמונה",captionPlaceholder:"Caption",infoTab:"מידע על התמונה",lockRatio:"נעילת היחס",menu:"תכונות התמונה",pathName:"תמונה",pathNameCaption:"כותרת",resetSize:"איפוס הגודל",resizer:"לחץ וגרור לשינוי הגודל",title:"מאפייני התמונה",uploadTab:"העלאה",urlMissing:"כתובת התמונה חסרה."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hi.js new file mode 100644 index 00000000..ec9225d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hi",{alt:"वैकल्पिक टेक्स्ट",btnUpload:"इसे सर्वर को भेजें",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"तस्वीर की जानकारी",lockRatio:"लॉक अनुपात",menu:"तस्वीर प्रॉपर्टीज़",pathName:"image",pathNameCaption:"caption",resetSize:"रीसॅट साइज़",resizer:"Click and drag to resize",title:"तस्वीर प्रॉपर्टीज़",uploadTab:"अपलोड",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hr.js new file mode 100644 index 00000000..812813c5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hr",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Svojstva slika",pathName:"image",pathNameCaption:"caption",resetSize:"Obriši veličinu",resizer:"Click and drag to resize",title:"Svojstva slika",uploadTab:"Pošalji",urlMissing:"Nedostaje URL slike."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hu.js new file mode 100644 index 00000000..bffa8b81 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hu",{alt:"Buborék szöveg",btnUpload:"Küldés a szerverre",captioned:"Feliratozott kép",captionPlaceholder:"Képfelirat",infoTab:"Alaptulajdonságok",lockRatio:"Arány megtartása",menu:"Kép tulajdonságai",pathName:"kép",pathNameCaption:"felirat",resetSize:"Eredeti méret",resizer:"Kattints és húzz az átméretezéshez",title:"Kép tulajdonságai",uploadTab:"Feltöltés",urlMissing:"Hiányzik a kép URL-je"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/id.js new file mode 100644 index 00000000..a238cab5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","id",{alt:"Teks alternatif",btnUpload:"Kirim ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Gambar",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Unggah",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/is.js new file mode 100644 index 00000000..196c68dc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","is",{alt:"Baklægur texti",btnUpload:"Hlaða upp",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Almennt",lockRatio:"Festa stærðarhlutfall",menu:"Eigindi myndar",pathName:"image",pathNameCaption:"caption",resetSize:"Reikna stærð",resizer:"Click and drag to resize",title:"Eigindi myndar",uploadTab:"Senda upp",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/it.js new file mode 100644 index 00000000..d65b4549 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","it",{alt:"Testo alternativo",btnUpload:"Invia al server",captioned:"Immagine con didascalia",captionPlaceholder:"Didascalia",infoTab:"Informazioni immagine",lockRatio:"Blocca rapporto",menu:"Proprietà immagine",pathName:"immagine",pathNameCaption:"didascalia",resetSize:"Reimposta dimensione",resizer:"Fare clic e trascinare per ridimensionare",title:"Proprietà immagine",uploadTab:"Carica",urlMissing:"Manca l'URL dell'immagine."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ja.js new file mode 100644 index 00000000..b4457fd7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ja",{alt:"代替テキスト",btnUpload:"サーバーに送信",captioned:"キャプションを付ける",captionPlaceholder:"キャプション",infoTab:"画像情報",lockRatio:"比率を固定",menu:"画像のプロパティ",pathName:"image",pathNameCaption:"caption",resetSize:"サイズをリセット",resizer:"ドラッグしてリサイズ",title:"画像のプロパティ",uploadTab:"アップロード",urlMissing:"画像のURLを入力してください。"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ka.js new file mode 100644 index 00000000..88407289 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ka",{alt:"სანაცვლო ტექსტი",btnUpload:"სერვერისთვის გაგზავნა",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"სურათის ინფორმცია",lockRatio:"პროპორციის შენარჩუნება",menu:"სურათის პარამეტრები",pathName:"image",pathNameCaption:"caption",resetSize:"ზომის დაბრუნება",resizer:"Click and drag to resize",title:"სურათის პარამეტრები",uploadTab:"აქაჩვა",urlMissing:"სურათის URL არაა შევსებული."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/km.js new file mode 100644 index 00000000..993429cd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","km",{alt:"អត្ថបទជំនួស",btnUpload:"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",captioned:"រូប​ដែល​មាន​ចំណង​ជើង",captionPlaceholder:"Caption",infoTab:"ពត៌មានអំពីរូបភាព",lockRatio:"ចាក់​សោ​ផល​ធៀប",menu:"លក្ខណៈ​សម្បត្តិ​រូប​ភាព",pathName:"រូបភាព",pathNameCaption:"ចំណងជើង",resetSize:"កំណត់ទំហំឡើងវិញ",resizer:"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ",title:"លក្ខណៈ​សម្បត្តិ​រូប​ភាប",uploadTab:"ផ្ទុក​ឡើង",urlMissing:"ខ្វះ URL ប្រភព​រូប​ភាព។"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ko.js new file mode 100644 index 00000000..90726a2a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ko",{alt:"이미지 설명",btnUpload:"서버로 전송",captioned:"이미지 설명 넣기",captionPlaceholder:"Caption",infoTab:"이미지 정보",lockRatio:"비율 유지",menu:"이미지 설정",pathName:"이미지",pathNameCaption:"이미지 설명",resetSize:"원래 크기로",resizer:"크기를 조절하려면 클릭 후 드래그 하세요",title:"이미지 설정",uploadTab:"업로드",urlMissing:"이미지 소스 URL이 없습니다."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ku.js new file mode 100644 index 00000000..6ec1c93f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ku",{alt:"جێگرەوەی دەق",btnUpload:"ناردنی بۆ ڕاژه",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"زانیاری وێنه",lockRatio:"داخستنی ڕێژه",menu:"خاسیەتی وێنه",pathName:"image",pathNameCaption:"caption",resetSize:"ڕێکخستنەوەی قەباره",resizer:"Click and drag to resize",title:"خاسیەتی وێنه",uploadTab:"بارکردن",urlMissing:"سەرچاوەی بەستەری وێنه بزره"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/lt.js new file mode 100644 index 00000000..47b883d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lt",{alt:"Alternatyvus Tekstas",btnUpload:"Siųsti į serverį",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Vaizdo informacija",lockRatio:"Išlaikyti proporciją",menu:"Vaizdo savybės",pathName:"image",pathNameCaption:"caption",resetSize:"Atstatyti dydį",resizer:"Click and drag to resize",title:"Vaizdo savybės",uploadTab:"Siųsti",urlMissing:"Paveiksliuko nuorodos nėra."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/lv.js new file mode 100644 index 00000000..069595db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lv",{alt:"Alternatīvais teksts",btnUpload:"Nosūtīt serverim",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informācija par attēlu",lockRatio:"Nemainīga Augstuma/Platuma attiecība",menu:"Attēla īpašības",pathName:"image",pathNameCaption:"caption",resetSize:"Atjaunot sākotnējo izmēru",resizer:"Click and drag to resize",title:"Attēla īpašības",uploadTab:"Augšupielādēt",urlMissing:"Trūkst attēla atrašanās adrese."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/mk.js new file mode 100644 index 00000000..0d5b35e5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mk",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/mn.js new file mode 100644 index 00000000..f2d437f5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mn",{alt:"Зургийг орлох бичвэр",btnUpload:"Үүнийг сервэррүү илгээ",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Зурагны мэдээлэл",lockRatio:"Радио түгжих",menu:"Зураг",pathName:"image",pathNameCaption:"caption",resetSize:"хэмжээ дахин оноох",resizer:"Click and drag to resize",title:"Зураг",uploadTab:"Илгээж ачаалах",urlMissing:"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ms.js new file mode 100644 index 00000000..8d1d6652 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ms",{alt:"Text Alternatif",btnUpload:"Hantar ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Imej",lockRatio:"Tetapkan Nisbah",menu:"Ciri-ciri Imej",pathName:"image",pathNameCaption:"caption",resetSize:"Saiz Set Semula",resizer:"Click and drag to resize",title:"Ciri-ciri Imej",uploadTab:"Muat Naik",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/nb.js new file mode 100644 index 00000000..2f237a60 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nb",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Bildetekst",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/nl.js new file mode 100644 index 00000000..f032d845 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nl",{alt:"Alternatieve tekst",btnUpload:"Naar server verzenden",captioned:"Afbeelding met onderschrift",captionPlaceholder:"Onderschrift",infoTab:"Afbeeldingsinformatie",lockRatio:"Verhouding vergrendelen",menu:"Eigenschappen afbeelding",pathName:"afbeelding",pathNameCaption:"onderschrift",resetSize:"Afmetingen herstellen",resizer:"Klik en sleep om te herschalen",title:"Afbeeldingseigenschappen",uploadTab:"Uploaden",urlMissing:"De URL naar de afbeelding ontbreekt."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/no.js new file mode 100644 index 00000000..11bffbbc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","no",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Caption",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pl.js new file mode 100644 index 00000000..09e19e37 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pl",{alt:"Tekst zastępczy",btnUpload:"Wyślij",captioned:"Obrazek z podpisem",captionPlaceholder:"Podpis",infoTab:"Informacje o obrazku",lockRatio:"Zablokuj proporcje",menu:"Właściwości obrazka",pathName:"obrazek",pathNameCaption:"podpis",resetSize:"Przywróć rozmiar",resizer:"Kliknij i przeciągnij, by zmienić rozmiar.",title:"Właściwości obrazka",uploadTab:"Wyślij",urlMissing:"Podaj adres URL obrazka."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pt-br.js new file mode 100644 index 00000000..82c42e85 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt-br",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Legenda da Imagem",captionPlaceholder:"Legenda",infoTab:"Informações da Imagem",lockRatio:"Travar Proporções",menu:"Formatar Imagem",pathName:"Imagem",pathNameCaption:"Legenda",resetSize:"Redefinir para o Tamanho Original",resizer:"Click e arraste para redimensionar",title:"Formatar Imagem",uploadTab:"Enviar ao Servidor",urlMissing:"URL da imagem está faltando."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pt.js new file mode 100644 index 00000000..d46507bb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Imagem Legendada",captionPlaceholder:"Caption",infoTab:"Informação da Imagem",lockRatio:"Proporcional",menu:"Propriedades da Imagem",pathName:"imagem",pathNameCaption:"legenda",resetSize:"Tamanho Original",resizer:"Clique e arraste para redimensionar",title:"Propriedades da Imagem",uploadTab:"Enviar",urlMissing:"O URL da fonte da imagem está em falta."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ro.js new file mode 100644 index 00000000..8f860894 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ro",{alt:"Text alternativ",btnUpload:"Trimite la server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informaţii despre imagine",lockRatio:"Păstrează proporţiile",menu:"Proprietăţile imaginii",pathName:"image",pathNameCaption:"caption",resetSize:"Resetează mărimea",resizer:"Click and drag to resize",title:"Proprietăţile imaginii",uploadTab:"Încarcă",urlMissing:"Sursa URL a imaginii lipsește."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ru.js new file mode 100644 index 00000000..eda93cb0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ru",{alt:"Альтернативный текст",btnUpload:"Загрузить на сервер",captioned:"Захваченное изображение",captionPlaceholder:"Название",infoTab:"Данные об изображении",lockRatio:"Сохранять пропорции",menu:"Свойства изображения",pathName:"изображение",pathNameCaption:"захват",resetSize:"Вернуть обычные размеры",resizer:"Нажмите и растяните",title:"Свойства изображения",uploadTab:"Загрузка файла",urlMissing:"Не указана ссылка на изображение."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/si.js new file mode 100644 index 00000000..5ab518c1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","si",{alt:"විකල්ප ",btnUpload:"සේවාදායකය වෙත යොමුකිරිම",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"රුපයේ තොරතුරු",lockRatio:"නවතන අනුපාතය ",menu:"රුපයේ ගුණ",pathName:"image",pathNameCaption:"caption",resetSize:"නැවතත් විශාලත්වය වෙනස් කිරීම",resizer:"Click and drag to resize",title:"රුපයේ ",uploadTab:"උඩුගතකිරීම",urlMissing:"රුප මුලාශ්‍ර URL නැත."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sk.js new file mode 100644 index 00000000..18778843 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sk",{alt:"Alternatívny text",btnUpload:"Odoslať to na server",captioned:"Opísaný obrázok",captionPlaceholder:"Popis",infoTab:"Informácie o obrázku",lockRatio:"Pomer zámky",menu:"Vlastnosti obrázka",pathName:"obrázok",pathNameCaption:"popis",resetSize:"Pôvodná veľkosť",resizer:"Kliknite a potiahnite pre zmenu veľkosti",title:"Vlastnosti obrázka",uploadTab:"Nahrať",urlMissing:"Chýba URL zdroja obrázka."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sl.js new file mode 100644 index 00000000..aced917a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sl",{alt:"Nadomestno besedilo",btnUpload:"Pošlji na strežnik",captioned:"Podnaslovljena slika",captionPlaceholder:"Napis",infoTab:"Podatki o sliki",lockRatio:"Zakleni razmerje",menu:"Lastnosti slike",pathName:"slika",pathNameCaption:"napis",resetSize:"Ponastavi velikost",resizer:"Kliknite in povlecite, da spremeniti velikost",title:"Lastnosti slike",uploadTab:"Naloži",urlMissing:"Manjka vir (URL) slike."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sq.js new file mode 100644 index 00000000..8232aef2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sq",{alt:"Tekst Alternativ",btnUpload:"Dërgo në server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informacione mbi Fotografinë",lockRatio:"Mbyll Racionin",menu:"Karakteristikat e Fotografisë",pathName:"image",pathNameCaption:"caption",resetSize:"Rikthe Madhësinë",resizer:"Click and drag to resize",title:"Karakteristikat e Fotografisë",uploadTab:"Ngarko",urlMissing:"Mungon URL e burimit të fotografisë."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sr-latn.js new file mode 100644 index 00000000..287f0265 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr-latn",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Osobine slika",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj veličinu",resizer:"Click and drag to resize",title:"Osobine slika",uploadTab:"Pošalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sr.js new file mode 100644 index 00000000..18857fb7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr",{alt:"Алтернативни текст",btnUpload:"Пошаљи на сервер",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо слике",lockRatio:"Закључај однос",menu:"Особине слика",pathName:"image",pathNameCaption:"caption",resetSize:"Ресетуј величину",resizer:"Click and drag to resize",title:"Особине слика",uploadTab:"Пошаљи",urlMissing:"Недостаје УРЛ слике."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sv.js new file mode 100644 index 00000000..2c5ed3f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sv",{alt:"Alternativ text",btnUpload:"Skicka till server",captioned:"Rubricerad bild",captionPlaceholder:"Bildtext",infoTab:"Bildinformation",lockRatio:"Lås höjd/bredd förhållanden",menu:"Bildegenskaper",pathName:"bild",pathNameCaption:"rubrik",resetSize:"Återställ storlek",resizer:"Klicka och drag för att ändra storlek",title:"Bildegenskaper",uploadTab:"Ladda upp",urlMissing:"Bildkällans URL saknas."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/th.js new file mode 100644 index 00000000..636814d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","th",{alt:"คำประกอบรูปภาพ",btnUpload:"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ข้อมูลของรูปภาพ",lockRatio:"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่",menu:"คุณสมบัติของ รูปภาพ",pathName:"image",pathNameCaption:"caption",resetSize:"กำหนดรูปเท่าขนาดจริง",resizer:"Click and drag to resize",title:"คุณสมบัติของ รูปภาพ",uploadTab:"อัพโหลดไฟล์",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/tr.js new file mode 100644 index 00000000..305d1b39 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tr",{alt:"Alternatif Yazı",btnUpload:"Sunucuya Yolla",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Resim Bilgisi",lockRatio:"Oranı Kilitle",menu:"Resim Özellikleri",pathName:"Resim",pathNameCaption:"caption",resetSize:"Boyutu Başa Döndür",resizer:"Boyutlandırmak için, tıklayın ve sürükleyin",title:"Resim Özellikleri",uploadTab:"Karşıya Yükle",urlMissing:"Resmin URL kaynağı bulunamadı."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/tt.js new file mode 100644 index 00000000..2133d73b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tt",{alt:"Альтернатив текст",btnUpload:"Серверга җибәрү",captioned:"Исеме куелган рәсем",captionPlaceholder:"Исем",infoTab:"Рәсем тасвирламасы",lockRatio:"Lock Ratio",menu:"Рәсем үзлекләре",pathName:"рәсем",pathNameCaption:"исем",resetSize:"Баштагы зурлык",resizer:"Күчереп куер өчен басып шудырыгыз",title:"Рәсем үзлекләре",uploadTab:"Йөкләү",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ug.js new file mode 100644 index 00000000..7913ee9f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ug",{alt:"تېكىست ئالماشتۇر",btnUpload:"مۇلازىمېتىرغا يۈكلە",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"سۈرەت",lockRatio:"نىسبەتنى قۇلۇپلا",menu:"سۈرەت خاسلىقى",pathName:"image",pathNameCaption:"caption",resetSize:"ئەسلى چوڭلۇق",resizer:"Click and drag to resize",title:"سۈرەت خاسلىقى",uploadTab:"يۈكلە",urlMissing:"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/uk.js new file mode 100644 index 00000000..989eb551 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","uk",{alt:"Альтернативний текст",btnUpload:"Надіслати на сервер",captioned:"Підписане зображення",captionPlaceholder:"Caption",infoTab:"Інформація про зображення",lockRatio:"Зберегти пропорції",menu:"Властивості зображення",pathName:"Зображення",pathNameCaption:"заголовок",resetSize:"Очистити поля розмірів",resizer:"Клікніть та потягніть для зміни розмірів",title:"Властивості зображення",uploadTab:"Надіслати",urlMissing:"Вкажіть URL зображення."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/vi.js new file mode 100644 index 00000000..863c40d1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","vi",{alt:"Chú thích ảnh",btnUpload:"Tải lên máy chủ",captioned:"Ảnh có chú thích",captionPlaceholder:"Nhãn",infoTab:"Thông tin của ảnh",lockRatio:"Giữ nguyên tỷ lệ",menu:"Thuộc tính của ảnh",pathName:"ảnh",pathNameCaption:"chú thích",resetSize:"Kích thước gốc",resizer:"Kéo rê để thay đổi kích cỡ",title:"Thuộc tính của ảnh",uploadTab:"Tải lên",urlMissing:"Thiếu đường dẫn hình ảnh"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/zh-cn.js new file mode 100644 index 00000000..3209b92f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh-cn",{alt:"替换文本",btnUpload:"上传到服务器",captioned:"带标题图像",captionPlaceholder:"标题",infoTab:"图像信息",lockRatio:"锁定比例",menu:"图像属性",pathName:"图像",pathNameCaption:"标题",resetSize:"原始尺寸",resizer:"点击并拖拽以改变尺寸",title:"图像属性",uploadTab:"上传",urlMissing:"缺少图像源文件地址"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/zh.js new file mode 100644 index 00000000..f9489af4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh",{alt:"替代文字",btnUpload:"傳送至伺服器",captioned:"已加標題之圖片",captionPlaceholder:"Caption",infoTab:"影像資訊",lockRatio:"固定比例",menu:"影像屬性",pathName:"圖片",pathNameCaption:"標題",resetSize:"重設大小",resizer:"拖曳以改變大小",title:"影像屬性",uploadTab:"上傳",urlMissing:"遺失圖片來源之 URL "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/image2/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/image2/plugin.js new file mode 100644 index 00000000..37195045 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/image2/plugin.js @@ -0,0 +1,30 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function A(a){function b(){this.deflated||(a.widgets.focused==this.widget&&(this.focused=!0),a.widgets.destroy(this.widget),this.deflated=!0)}function e(){var d=a.editable(),c=a.document;if(this.deflated)this.widget=a.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!(new CKEDITOR.dom.elementPath(this.widget.wrapper,d)).block&&(d=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),d.replace(this.widget.wrapper),this.widget.wrapper.move(d)),this.focused&& +(this.widget.focus(),delete this.focused),delete this.deflated;else{var b=this.widget,d=f,c=b.wrapper,e=b.data.align,b=b.data.hasCaption;if(d){for(var j=3;j--;)c.removeClass(d[j]);"center"==e?b&&c.addClass(d[1]):"none"!=e&&c.addClass(d[n[e]])}else"center"==e?(b?c.setStyle("text-align","center"):c.removeStyle("text-align"),c.removeStyle("float")):("none"==e?c.removeStyle("float"):c.setStyle("float",e),c.removeStyle("text-align"))}}var f=a.config.image2_alignClasses,g=a.config.image2_captionedClass; +return{allowedContent:B(a),requiredContent:"img[src,alt]",features:C(a),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href]"}},parts:{image:"img",caption:"figcaption"},dialog:"image2",template:z,data:function(){var d=this.features;this.data.hasCaption&&!a.filter.checkFeature(d.caption)&&(this.data.hasCaption=!1);"none"!=this.data.align&&!a.filter.checkFeature(d.align)&& +(this.data.align="none");this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:b,inflate:e});this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link;this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt});if(this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var c in this.data.classes)this.parts.image.removeClass(c);if(a.filter.checkFeature(d.dimension)){d= +this.data;d={width:d.width,height:d.height};c=this.parts.image;for(var f in d)d[f]?c.setAttribute(f,d[f]):c.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,c=this.parts.image,e={hasCaption:!!this.parts.caption,src:c.getAttribute("src"),alt:c.getAttribute("alt")||"",width:c.getAttribute("width")||"",height:c.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(c):!0},g=c.getAscendant("a");g&&this.wrapper.contains(g)&&(this.parts.link= +g);e.align||(f?(this.element.hasClass(f[0])?e.align="left":this.element.hasClass(f[2])&&(e.align="right"),e.align?this.element.removeClass(f[n[e.align]]):e.align="none"):(e.align=this.element.getStyle("float")||c.getStyle("float")||"none",this.element.removeStyle("float"),c.removeStyle("float")));if(a.plugins.link&&this.parts.link&&(e.link=CKEDITOR.plugins.link.parseLinkAttributes(a,this.parts.link),(c=e.link.advanced)&&c.advCSSClasses))c.advCSSClasses=CKEDITOR.tools.trim(c.advCSSClasses.replace(/cke_\S+/, +""));this.wrapper[(e.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption");this.setData(e);a.filter.checkFeature(this.features.dimension)&&D(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF});this.on("dialog",function(a){a.data.widget=this},this)},addClass:function(a){k(this).addClass(a)},hasClass:function(a){return k(this).hasClass(a)}, +removeClass:function(a){k(this).removeClass(a)},getClasses:function(){var a=RegExp("^("+[].concat(g,f).join("|")+")$");return function(){var b=this.repository.parseElementClasses(k(this).getAttribute("class")),e;for(e in b)a.test(e)&&delete b[e];return b}}(),upcast:E(a),downcast:F(a)}}function E(a){var b=l(a),e=a.config.image2_captionedClass;return function(a,g){var d={width:1,height:1},c=a.name,h;if(!a.attributes["data-cke-realelement"]){if(b(a)){if("div"==c&&(h=a.getFirst("figure")))a.replaceWith(h), +a=h;g.align="center";h=a.getFirst("img")||a.getFirst("a").getFirst("img")}else"figure"==c&&a.hasClass(e)?h=a.getFirst("img")||a.getFirst("a").getFirst("img"):o(a)&&(h="a"==a.name?a.children[0]:a);if(h){for(var y in d)(c=h.attributes[y])&&c.match(G)&&delete h.attributes[y];return a}}}}function F(a){var b=a.config.image2_alignClasses;return function(a){var f="a"==a.name?a.getFirst():a,g=f.attributes,d=this.data.align;if(!this.inline){var c=a.getFirst("span");c&&c.replaceWith(c.getFirst({img:1,a:1}))}d&& +"none"!=d&&(c=CKEDITOR.tools.parseCssText(g.style||""),"center"==d&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):d in{left:1,right:1}&&(b?f.addClass(b[n[d]]):c["float"]=d),!b&&!CKEDITOR.tools.isEmpty(c)&&(g.style=CKEDITOR.tools.writeCssText(c)));return a}}function l(a){var b=a.config.image2_captionedClass,e=a.config.image2_alignClasses,f={figure:1,a:1,img:1};return function(g){if(!(g.name in{div:1,p:1}))return!1;var d=g.children; +if(1!==d.length)return!1;d=d[0];if(!(d.name in f))return!1;if("p"==g.name){if(!o(d))return!1}else if("figure"==d.name){if(!d.hasClass(b))return!1}else if(a.enterMode==CKEDITOR.ENTER_P||!o(d))return!1;return(e?g.hasClass(e[1]):"center"==CKEDITOR.tools.parseCssText(g.attributes.style||"",!0)["text-align"])?!0:!1}}function o(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function D(a){var b=a.editor,e=b.editable(),f=b.document,g=a.resizer=f.createElement("span");g.addClass("cke_image_resizer"); +g.setAttribute("title",b.lang.image2.resizer);g.append(new CKEDITOR.dom.text("​",f));if(a.inline)a.wrapper.append(g);else{var d=a.parts.link||a.parts.image,c=d.getParent(),h=f.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(d);h.append(g);a.element.append(h,!0);c.is("span")&&c.remove()}g.on("mousedown",function(c){function j(a,b,c){var d=CKEDITOR.document,j=[];f.equals(d)||j.push(d.on(a,b));j.push(f.on(a,b));if(c)for(a=j.length;a--;)c.push(j.pop())}function d(){p=k+w*t;q=Math.round(p/ +r)}function s(){q=n-m;p=Math.round(q*r)}var h=a.parts.image,w="right"==a.data.align?-1:1,i=c.data.$.screenX,H=c.data.$.screenY,k=h.$.clientWidth,n=h.$.clientHeight,r=k/n,l=[],o="cke_image_s"+(!~w?"w":"e"),x,p,q,v,t,m,u;b.fire("saveSnapshot");j("mousemove",function(a){x=a.data.$;t=x.screenX-i;m=H-x.screenY;u=Math.abs(t/m);1==w?0>=t?0>=m?d():u>=r?d():s():0>=m?u>=r?s():d():s():0>=t?0>=m?u>=r?s():d():s():0>=m?d():u>=r?d():s();15<=p&&15<=q?(h.setAttributes({width:p,height:q}),v=!0):v=!1},l);j("mouseup", +function(){for(var c;c=l.pop();)c.removeListener();e.removeClass(o);g.removeClass("cke_image_resizing");v&&(a.setData({width:p,height:q}),b.fire("saveSnapshot"));v=!1},l);e.addClass(o);g.addClass("cke_image_resizing")});a.on("data",function(){g["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function I(a){var b=[],e;return function(f){var g=a.getCommand("justify"+f);if(g){b.push(function(){g.refresh(a,a.elementPath())});if(f in{right:1,left:1,center:1})g.on("exec",function(d){var c= +i(a);if(c){c.setData("align",f);for(c=b.length;c--;)b[c]();d.cancel()}});g.on("refresh",function(b){var c=i(a),g={right:1,left:1,center:1};c&&(void 0==e&&(e=a.filter.checkFeature(a.widgets.registered.image.features.align)),e?this.setState(c.data.align==f?CKEDITOR.TRISTATE_ON:f in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function J(a){a.plugins.link&&(CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){var b=b.definition, +e=b.onShow,f=b.onOk;b.onShow=function(){var b=i(a);b&&(b.inline?!b.wrapper.getAscendant("a"):1)?this.setupContent(b.data.link||{}):e.apply(this,arguments)};b.onOk=function(){var b=i(a);if(b&&(b.inline?!b.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);b.setData("link",d)}else f.apply(this,arguments)}}}),a.getCommand("unlink").on("exec",function(b){var e=i(a);e&&e.parts.link&&(e.setData("link",null),this.refresh(a,a.elementPath()),b.cancel())}),a.getCommand("unlink").on("refresh",function(b){var e= +i(a);e&&(this.setState(e.data.link||e.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),b.cancel())}))}function i(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function B(a){var b=a.config.image2_alignClasses,a={div:{match:l(a)},p:{match:l(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+a.config.image2_captionedClass},figcaption:!0};b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+a.img.classes):(a.div.styles= +"text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function C(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function k(a){return a.data.hasCaption?a.element:a.parts.image}var z='<img alt="" src="" />',K=new CKEDITOR.template('<figure class="{captionedClass}">'+z+"<figcaption>{captionPlaceholder}</figcaption></figure>"), +n={left:0,center:1,right:2},G=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")}, +init:function(a){var b=a.config,e=a.lang.image2,f=A(a);b.filebrowserImage2BrowseUrl=b.filebrowserImageBrowseUrl;b.filebrowserImage2UploadUrl=b.filebrowserImageUploadUrl;f.pathName=e.pathName;f.editables.caption.pathName=e.pathNameCaption;a.widgets.add("image",f);a.ui.addButton&&a.ui.addButton("Image",{label:a.lang.common.image,command:"image",toolbar:"insert,10"});a.contextMenu&&(a.addMenuGroup("image",10),a.addMenuItem("image",{label:e.menu,command:"image",group:"image"}));CKEDITOR.dialog.add("image2", +this.path+"dialogs/image2.js")},afterInit:function(a){var b={left:1,right:1,center:1,block:1},e=I(a),f;for(f in b)e(f);J(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,b){var c={};g?c.attributes={"class":g[1]}:c.styles={"text-align":"center"};c=f.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",c);e(c,b);b.move(c);return c}function e(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();c.insertElementIntoRange(b, +e)}else b.replace(d)}var f=a.document,g=a.config.image2_alignClasses,d=a.config.image2_captionedClass,c=a.editable(),h=["hasCaption","align","link"],i={align:function(c,d,e){var f=c.element;if(c.changed.align){if(!c.newData.hasCaption&&("center"==e&&(c.deflate(),c.element=b(a,f)),!c.changed.hasCaption&&"center"==d&&"center"!=e))c.deflate(),d=f.findOne("a,img"),d.replace(f),c.element=d}else"center"==e&&(c.changed.hasCaption&&!c.newData.hasCaption)&&(c.deflate(),c.element=b(a,f));!g&&f.is("figure")&& +("center"==e?f.setStyle("display","inline-block"):f.removeStyle("display"))},hasCaption:function(b,c,g){b.changed.hasCaption&&(c=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(K.output({captionedClass:d,captionPlaceholder:a.lang.image2.captionPlaceholder}),f),e(g,b.element),c.replace(g.findOne("img")),b.element=g):(c.replace(b.element),b.element=c))},link:function(b,c,d){if(b.changed.link){var e=b.element.is("img")?b.element:b.element.findOne("img"), +g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!d||b.element.is("img")&&d,i;h&&b.deflate();d?(c||(i=f.createElement("a",{attributes:{href:b.newData.link.url}}),i.replace(e),e.move(i)),d=CKEDITOR.plugins.link.getLinkAttributes(a,d),CKEDITOR.tools.isEmpty(d.set)||(i||g).setAttributes(d.set),d.removed.length&&(i||g).removeAttributes(d.removed)):(d=g.findOne("img"),d.replace(g),i=d);h&&(b.element=i)}}};return function(a){var b,c;a.changed={};for(c=0;c<h.length;c++)b=h[c],a.changed[b]= +a.oldData?a.oldData[b]!==a.newData[b]:!1;for(c=0;c<h.length;c++)b=h[c],i[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$,a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=a.getAttribute("src");a={width:b.width,height:b.height}}return a}}})(); +CKEDITOR.config.image2_captionedClass="image"; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/indentblock/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/indentblock/plugin.js new file mode 100644 index 00000000..ab69d14c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/indentblock/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,f=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=f?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{var c=i(b,a),a=parseInt(b.getStyle(c),10),g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(f?1:-1)*g;if(0>a)return;a=Math.max(a, +0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function i(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var j=CKEDITOR.dtd.$listItem,l=CKEDITOR.dtd.$list,f=CKEDITOR.TRISTATE_DISABLED,k=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(b,c){a.specificDefinition.apply(this, +arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:!d?"margin-left,margin-right":null,classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(e.is(j))e=e.getParent();else if(e.getAscendant(j))return f;if(!this.enterBr&&!this.getContext(b))return f;if(d){var c;c=d;var e=e.$.className.match(this.classNameRegex), +g=this.isIndent;c=e?g?e[1]!=c.slice(-1):true:g;return c?k:f}return this.isIndent?k:e?CKEDITOR[(parseInt(e.getStyle(i(e)),10)||0)<=0?"TRISTATE_DISABLED":"TRISTATE_OFF"]:f},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(l))h.call(this,c,d);else{b=b.createIterator();a=a.config.enterMode;b.enforceRealBlocks=true;for(b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||h.call(this,c,d)}return true}}}}var a= +CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?RegExp("(?:^|\\s+)("+d.join("|")+")(?=$|\\s)"):null})}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png new file mode 100644 index 00000000..7209fd41 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png new file mode 100644 index 00000000..365e3205 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png new file mode 100644 index 00000000..75308c12 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png new file mode 100644 index 00000000..de7c3d45 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyblock.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyblock.png new file mode 100644 index 00000000..a507be1b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyblock.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifycenter.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifycenter.png new file mode 100644 index 00000000..f758bc42 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifycenter.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyleft.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyleft.png new file mode 100644 index 00000000..542ddee3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyleft.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyright.png b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyright.png new file mode 100644 index 00000000..71a983c9 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/justify/icons/justifyright.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/af.js new file mode 100644 index 00000000..b3bd6aeb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","af",{block:"Uitvul",center:"Sentreer",left:"Links oplyn",right:"Regs oplyn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ar.js new file mode 100644 index 00000000..39f7a34f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ar",{block:"ضبط",center:"توسيط",left:"محاذاة إلى اليسار",right:"محاذاة إلى اليمين"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bg.js new file mode 100644 index 00000000..d4a30cba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bg",{block:"Двустранно подравняване",center:"Център",left:"Подравни в ляво",right:"Подравни в дясно"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bn.js new file mode 100644 index 00000000..c58ead92 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bn",{block:"ব্লক জাস্টিফাই",center:"মাঝ বরাবর ঘেষা",left:"বা দিকে ঘেঁষা",right:"ডান দিকে ঘেঁষা"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bs.js new file mode 100644 index 00000000..9b8553c5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bs",{block:"Puno poravnanje",center:"Centralno poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ca.js new file mode 100644 index 00000000..b97f2a6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ca",{block:"Justificat",center:"Centrat",left:"Alinea a l'esquerra",right:"Alinea a la dreta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/cs.js new file mode 100644 index 00000000..4c9bbb0d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cs",{block:"Zarovnat do bloku",center:"Zarovnat na střed",left:"Zarovnat vlevo",right:"Zarovnat vpravo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/cy.js new file mode 100644 index 00000000..0a6b4ff7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cy",{block:"Unioni",center:"Alinio i'r Canol",left:"Alinio i'r Chwith",right:"Alinio i'r Dde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/da.js new file mode 100644 index 00000000..0da8f69e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","da",{block:"Lige margener",center:"Centreret",left:"Venstrestillet",right:"Højrestillet"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/de.js new file mode 100644 index 00000000..97fe58cc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","de",{block:"Blocksatz",center:"Zentriert",left:"Linksbündig",right:"Rechtsbündig"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/el.js new file mode 100644 index 00000000..9941eb60 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","el",{block:"Πλήρης Στοίχιση",center:"Στο Κέντρο",left:"Στοίχιση Αριστερά",right:"Στοίχιση Δεξιά"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-au.js new file mode 100644 index 00000000..bb4e7c5c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-au",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-ca.js new file mode 100644 index 00000000..46a2d72d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-ca",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-gb.js new file mode 100644 index 00000000..9ebe888b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-gb",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en.js new file mode 100644 index 00000000..20b7ff5e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/eo.js new file mode 100644 index 00000000..17c15c0d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eo",{block:"Ĝisrandigi Ambaŭflanke",center:"Centrigi",left:"Ĝisrandigi maldekstren",right:"Ĝisrandigi dekstren"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/es.js new file mode 100644 index 00000000..287fa690 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","es",{block:"Justificado",center:"Centrar",left:"Alinear a Izquierda",right:"Alinear a Derecha"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/et.js new file mode 100644 index 00000000..5e2eeecc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","et",{block:"Rööpjoondus",center:"Keskjoondus",left:"Vasakjoondus",right:"Paremjoondus"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/eu.js new file mode 100644 index 00000000..3f4f3493 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eu",{block:"Justifikatu",center:"Lerrokatu Erdian",left:"Lerrokatu Ezkerrean",right:"Lerrokatu Eskuman"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fa.js new file mode 100644 index 00000000..6a027abe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fa",{block:"بلوک چین",center:"میان چین",left:"چپ چین",right:"راست چین"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fi.js new file mode 100644 index 00000000..c309b712 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fi",{block:"Tasaa molemmat reunat",center:"Keskitä",left:"Tasaa vasemmat reunat",right:"Tasaa oikeat reunat"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fo.js new file mode 100644 index 00000000..cd960d1c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fo",{block:"Javnir tekstkantar",center:"Miðsett",left:"Vinstrasett",right:"Høgrasett"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fr-ca.js new file mode 100644 index 00000000..6abd477d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr-ca",{block:"Justifié",center:"Centré",left:"Aligner à gauche",right:"Aligner à Droite"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fr.js new file mode 100644 index 00000000..41d84c06 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr",{block:"Justifier",center:"Centrer",left:"Aligner à gauche",right:"Aligner à droite"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/gl.js new file mode 100644 index 00000000..1d06021e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gl",{block:"Xustificado",center:"Centrado",left:"Aliñar á esquerda",right:"Aliñar á dereita"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/gu.js new file mode 100644 index 00000000..10ec3045 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gu",{block:"બ્લૉક, અંતરાય જસ્ટિફાઇ",center:"સંકેંદ્રણ/સેંટરિંગ",left:"ડાબી બાજુએ/બાજુ તરફ",right:"જમણી બાજુએ/બાજુ તરફ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/he.js new file mode 100644 index 00000000..93e075d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","he",{block:"יישור לשוליים",center:"מרכוז",left:"יישור לשמאל",right:"יישור לימין"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hi.js new file mode 100644 index 00000000..5e7f955e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hi",{block:"ब्लॉक जस्टीफ़ाई",center:"बीच में",left:"बायीं तरफ",right:"दायीं तरफ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hr.js new file mode 100644 index 00000000..a9100975 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hr",{block:"Blok poravnanje",center:"Središnje poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hu.js new file mode 100644 index 00000000..00069c6f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hu",{block:"Sorkizárt",center:"Középre",left:"Balra",right:"Jobbra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/id.js new file mode 100644 index 00000000..f1aa2e86 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","id",{block:"Rata kiri-kanan",center:"Pusat",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/is.js new file mode 100644 index 00000000..f5f891e9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","is",{block:"Jafna báðum megin",center:"Miðja texta",left:"Vinstrijöfnun",right:"Hægrijöfnun"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/it.js new file mode 100644 index 00000000..188a0f81 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","it",{block:"Giustifica",center:"Centra",left:"Allinea a sinistra",right:"Allinea a destra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ja.js new file mode 100644 index 00000000..24552e0f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ja",{block:"両端揃え",center:"中央揃え",left:"左揃え",right:"右揃え"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ka.js new file mode 100644 index 00000000..8ddd27e9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ka",{block:"გადასწორება",center:"შუაში სწორება",left:"მარცხნივ სწორება",right:"მარჯვნივ სწორება"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/km.js new file mode 100644 index 00000000..62a049bb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","km",{block:"តម្រឹម​ពេញ",center:"កណ្ដាល",left:"តម្រឹម​ឆ្វេង",right:"តម្រឹម​ស្ដាំ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ko.js new file mode 100644 index 00000000..bfcbaf02 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ko",{block:"양쪽 맞춤",center:"가운데 정렬",left:"왼쪽 정렬",right:"오른쪽 정렬"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ku.js new file mode 100644 index 00000000..a27e9e13 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ku",{block:"هاوستوونی",center:"ناوەڕاست",left:"بەهێڵ کردنی چەپ",right:"بەهێڵ کردنی ڕاست"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/lt.js new file mode 100644 index 00000000..d9731e46 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lt",{block:"Lygiuoti abi puses",center:"Centruoti",left:"Lygiuoti kairę",right:"Lygiuoti dešinę"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/lv.js new file mode 100644 index 00000000..7a49b357 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lv",{block:"Izlīdzināt malas",center:"Izlīdzināt pret centru",left:"Izlīdzināt pa kreisi",right:"Izlīdzināt pa labi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/mk.js new file mode 100644 index 00000000..aabf8ca2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mk",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/mn.js new file mode 100644 index 00000000..2eb717ce --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mn",{block:"Тэгшлэх",center:"Голлуулах",left:"Зүүн талд тулгах",right:"Баруун талд тулгах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ms.js new file mode 100644 index 00000000..fb6d5ea1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ms",{block:"Jajaran Blok",center:"Jajaran Tengah",left:"Jajaran Kiri",right:"Jajaran Kanan"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/nb.js new file mode 100644 index 00000000..9b8ed082 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nb",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/nl.js new file mode 100644 index 00000000..1b0f8ae3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nl",{block:"Uitvullen",center:"Centreren",left:"Links uitlijnen",right:"Rechts uitlijnen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/no.js new file mode 100644 index 00000000..49f6c800 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","no",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pl.js new file mode 100644 index 00000000..104c04f5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pl",{block:"Wyjustuj",center:"Wyśrodkuj",left:"Wyrównaj do lewej",right:"Wyrównaj do prawej"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pt-br.js new file mode 100644 index 00000000..05e293e2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt-br",{block:"Justificado",center:"Centralizar",left:"Alinhar Esquerda",right:"Alinhar Direita"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pt.js new file mode 100644 index 00000000..e641019f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt",{block:"Justificado",center:"Alinhar ao Centro",left:"Alinhar à Esquerda",right:"Alinhar à Direita"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ro.js new file mode 100644 index 00000000..d1da4cc9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ro",{block:"Aliniere în bloc (Block Justify)",center:"Aliniere centrală",left:"Aliniere la stânga",right:"Aliniere la dreapta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ru.js new file mode 100644 index 00000000..4dfc2e40 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ru",{block:"По ширине",center:"По центру",left:"По левому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/si.js new file mode 100644 index 00000000..8d85db57 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","si",{block:"Justify",center:"මධ්‍ය",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sk.js new file mode 100644 index 00000000..6d4de70f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sk",{block:"Zarovnať do bloku",center:"Zarovnať na stred",left:"Zarovnať vľavo",right:"Zarovnať vpravo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sl.js new file mode 100644 index 00000000..cda22d1c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sl",{block:"Obojestranska poravnava",center:"Sredinska poravnava",left:"Leva poravnava",right:"Desna poravnava"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sq.js new file mode 100644 index 00000000..5ec58c62 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sq",{block:"Zgjero",center:"Qendër",left:"Rreshto majtas",right:"Rreshto Djathtas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sr-latn.js new file mode 100644 index 00000000..320d6972 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr-latn",{block:"Obostrano ravnanje",center:"Centriran tekst",left:"Levo ravnanje",right:"Desno ravnanje"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sr.js new file mode 100644 index 00000000..f6654964 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr",{block:"Обострано равнање",center:"Центриран текст",left:"Лево равнање",right:"Десно равнање"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sv.js new file mode 100644 index 00000000..9054d4f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sv",{block:"Justera till marginaler",center:"Centrera",left:"Vänsterjustera",right:"Högerjustera"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/th.js new file mode 100644 index 00000000..fb1d15f9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","th",{block:"จัดพอดีหน้ากระดาษ",center:"จัดกึ่งกลาง",left:"จัดชิดซ้าย",right:"จัดชิดขวา"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/tr.js new file mode 100644 index 00000000..177d9add --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tr",{block:"İki Kenara Yaslanmış",center:"Ortalanmış",left:"Sola Dayalı",right:"Sağa Dayalı"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/tt.js new file mode 100644 index 00000000..b0999da7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tt",{block:"Киңлеккә карап тигезләү",center:"Үзәккә тигезләү",left:"Сул як кырыйдан тигезләү",right:"Уң як кырыйдан тигезләү"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ug.js new file mode 100644 index 00000000..a1112522 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ug",{block:"ئىككى تەرەپتىن توغرىلا",center:"ئوتتۇرىغا توغرىلا",left:"سولغا توغرىلا",right:"ئوڭغا توغرىلا"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/uk.js new file mode 100644 index 00000000..ba2baba0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","uk",{block:"По ширині",center:"По центру",left:"По лівому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/vi.js new file mode 100644 index 00000000..30395d21 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","vi",{block:"Canh đều",center:"Canh giữa",left:"Canh trái",right:"Canh phải"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/zh-cn.js new file mode 100644 index 00000000..9132cf5e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh-cn",{block:"两端对齐",center:"居中",left:"左对齐",right:"右对齐"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/zh.js new file mode 100644 index 00000000..405907b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh",{block:"左右對齊",center:"置中",left:"靠左對齊",right:"靠右對齊"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/justify/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/justify/plugin.js new file mode 100644 index 00000000..82fe3301 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/justify/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function g(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";var c=a.config.justifyClasses,h=a.config.enterMode== +CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?=$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName|| +null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0]))); +e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}g.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,g,f,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){g=d[k].createIterator();for(g.enlargeBr=b!=CKEDITOR.ENTER_BR;f=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!f.isReadOnly()){f.removeAttribute("align");f.removeStyle("text-align"); +var j=e&&(f.$.className=CKEDITOR.tools.ltrim(f.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(f,!0)!=this.value);e?m?f.addClass(e):j||f.removeAttribute("class"):m&&f.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify", +{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"justifyblock,justifycenter,justifyleft,justifyright",hidpi:!0,init:function(a){if(!a.blockless){var c=new g(a,"justifyleft","left"),b=new g(a,"justifycenter","center"),h=new g(a,"justifyright","right"),d=new g(a,"justifyblock","justify");a.addCommand("justifyleft", +c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock", +toolbar:"align,40"}));a.on("dirChanged",j)}}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/icons/hidpi/language.png b/platforms/android/assets/www/lib/ckeditor/plugins/language/icons/hidpi/language.png new file mode 100644 index 00000000..3908a6ae Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/language/icons/hidpi/language.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/icons/language.png b/platforms/android/assets/www/lib/ckeditor/plugins/language/icons/language.png new file mode 100644 index 00000000..eb680d42 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/language/icons/language.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ar.js new file mode 100644 index 00000000..781a80b4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ar",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ca.js new file mode 100644 index 00000000..b954027f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ca",{button:"Definir l'idioma",remove:"Eliminar idioma"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/cs.js new file mode 100644 index 00000000..672a1a68 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cs",{button:"Nastavit jazyk",remove:"Odstranit jazyk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/cy.js new file mode 100644 index 00000000..79d8d0e5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cy",{button:"Gosod iaith",remove:"Tynnu iaith"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/de.js new file mode 100644 index 00000000..5adda832 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","de",{button:"Sprache stellen",remove:"Sprache entfernen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/el.js new file mode 100644 index 00000000..2b0c17aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","el",{button:"Θέση γλώσσας",remove:"Αφαίρεση γλώσσας"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/en-gb.js new file mode 100644 index 00000000..73cd1a5d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en-gb",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/en.js new file mode 100644 index 00000000..acb83453 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/eo.js new file mode 100644 index 00000000..49335695 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","eo",{button:"Instali lingvon",remove:"Forigi lingvon"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/es.js new file mode 100644 index 00000000..cd91eff8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","es",{button:"Fijar lenguaje",remove:"Quitar lenguaje"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fa.js new file mode 100644 index 00000000..572f4c64 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fa",{button:"تعیین زبان",remove:"حذف زبان"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fi.js new file mode 100644 index 00000000..f0276d16 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fi",{button:"Aseta kieli",remove:"Poista kieli"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fr.js new file mode 100644 index 00000000..0b8602a0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fr",{button:"Définir la langue",remove:"Supprimer la langue"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/gl.js new file mode 100644 index 00000000..58ce1323 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","gl",{button:"Estabelezer o idioma",remove:"Retirar o idioma"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/he.js new file mode 100644 index 00000000..334788e9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","he",{button:"צור שפה",remove:"הסר שפה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/hr.js new file mode 100644 index 00000000..911103dd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hr",{button:"Namjesti jezik",remove:"Makni jezik"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/hu.js new file mode 100644 index 00000000..92cc653c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hu",{button:"Nyelv beállítása",remove:"Nyelv eltávolítása"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/it.js new file mode 100644 index 00000000..32e54319 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","it",{button:"Imposta lingua",remove:"Rimuovi lingua"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ja.js new file mode 100644 index 00000000..e00999d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ja",{button:"言語を設定",remove:"言語を削除"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/km.js new file mode 100644 index 00000000..f146a6fd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","km",{button:"កំណត់​ភាសា",remove:"លុប​ភាសា"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/nb.js new file mode 100644 index 00000000..a0ed5b12 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nb",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/nl.js new file mode 100644 index 00000000..49c7d1ae --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nl",{button:"Taal instellen",remove:"Taal verwijderen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/no.js new file mode 100644 index 00000000..87b4e066 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","no",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pl.js new file mode 100644 index 00000000..6de4bc48 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pl",{button:"Ustaw język",remove:"Usuń język"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pt-br.js new file mode 100644 index 00000000..fbb3df1e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt-br",{button:"Configure o Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pt.js new file mode 100644 index 00000000..d63076b6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt",{button:"Definir Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ru.js new file mode 100644 index 00000000..60316fe7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ru",{button:"Установка языка",remove:"Удалить язык"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sk.js new file mode 100644 index 00000000..2a6896ae --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sk",{button:"Nastaviť jazyk",remove:"Odstrániť jazyk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sl.js new file mode 100644 index 00000000..3d0c585e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sl",{button:"Nastavi jezik",remove:"Odstrani jezik"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sv.js new file mode 100644 index 00000000..061b5b75 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sv",{button:"Sätt språk",remove:"Ta bort språk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/tr.js new file mode 100644 index 00000000..ae38d58c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tr",{button:"Dili seç",remove:"Dili kaldır"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/tt.js new file mode 100644 index 00000000..a651f7bb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tt",{button:"Тел сайлау",remove:"Телне бетерү"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/uk.js new file mode 100644 index 00000000..15a7cf06 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","uk",{button:"Установити мову",remove:"Вилучити мову"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/vi.js new file mode 100644 index 00000000..631df086 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","vi",{button:"Thiết lập ngôn ngữ",remove:"Loại bỏ ngôn ngữ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/zh-cn.js new file mode 100644 index 00000000..a03c73a8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh-cn",{button:"设置语言",remove:"移除语言"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/zh.js new file mode 100644 index 00000000..6676d954 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh",{button:"設定語言",remove:"移除語言"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/language/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/language/plugin.js new file mode 100644 index 00000000..fe302883 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/language/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("language",{requires:"menubutton",lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",icons:"language",hidpi:!0,init:function(a){var b=a.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],c=this,d=a.lang.language,e={},g,h,i,f;a.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(a,b){var c=e["language_"+b];if(c)a[c.style.checkActive(a.elementPath(), +a)?"removeStyle":"applyStyle"](c.style)},refresh:function(a){this.setState(c.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(f=0;f<b.length;f++)g=b[f].split(":"),h=g[0],i="language_"+h,e[i]={label:g[1],langId:h,group:"language",order:f,ltr:"rtl"!=(""+g[2]).toLowerCase(),onClick:function(){a.execCommand("language",this.langId)},role:"menuitemcheckbox"},e[i].style=new CKEDITOR.style({element:"span",attributes:{lang:h,dir:e[i].ltr?"ltr":"rtl"}});e.language_remove={label:d.remove, +group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,order:e.length,onClick:function(){var b=c.getCurrentLangElement(a);b&&a.execCommand("language",b.getAttribute("lang"))}};a.addMenuGroup("language",1);a.addMenuGroup("language_remove");a.addMenuItems(e);a.ui.add("Language",CKEDITOR.UI_MENUBUTTON,{label:d.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var b={},d=c.getCurrentLangElement(a),f;for(f in e)b[f]=CKEDITOR.TRISTATE_OFF; +b.language_remove=d?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;d&&(b["language_"+d.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return b}})},getCurrentLangElement:function(a){var b=a.elementPath(),a=b&&b.elements,c;if(b)for(var d=0;d<a.length;d++)b=a[d],!c&&("span"==b.getName()&&b.hasAttribute("dir")&&b.hasAttribute("lang"))&&(c=b);return c}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/lineutils/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/lineutils/plugin.js new file mode 100644 index 00000000..aa93527f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/lineutils/plugin.js @@ -0,0 +1,21 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function k(a,d){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},d,!0);this.frame=this.win.getFrame();this.inline=this.editable.isInline();this.target=this[this.inline?"editable":"doc"]}function l(a,d){CKEDITOR.tools.extend(this,d,{editor:a},!0)}function m(a,d){var b=a.editable();CKEDITOR.tools.extend(this,{editor:a,editable:b,doc:a.document,win:a.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},d,!0);this.hidden= +{};this.visible={};this.inline=b.isInline();this.inline||(this.frame=this.win.getFrame());this.queryViewport();var c=CKEDITOR.tools.bind(this.queryViewport,this),e=CKEDITOR.tools.bind(this.hideVisible,this),g=CKEDITOR.tools.bind(this.removeAll,this);b.attachListener(this.winTop,"resize",c);b.attachListener(this.winTop,"scroll",c);b.attachListener(this.winTop,"resize",e);b.attachListener(this.win,"scroll",e);b.attachListener(this.inline?b:this.frame,"mouseout",function(a){var c=a.data.$.clientX,a= +a.data.$.clientY;this.queryViewport();(c<=this.rect.left||c>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(c<=0||c>=this.winTopPane.width||a<=0||a>=this.winTopPane.height)&&this.hideVisible()},this);b.attachListener(a,"resize",c);b.attachListener(a,"mode",g);a.on("destroy",g);this.lineTpl=(new CKEDITOR.template(p)).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({}, +n,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},n,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function i(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&!(o[a.getComputedStyle("float")]||o[a.getAttribute("align")])&&!r[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1; +CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;k.prototype={start:function(a){var d=this,b=this.editor,c=this.doc,e,g,f,h=CKEDITOR.tools.eventsBuffer(50,function(){b.readOnly||"wysiwyg"!=b.mode||(d.relations={},e=new CKEDITOR.dom.element(c.$.elementFromPoint(g,f)),d.traverseSearch(e),isNaN(g+f)||d.pixelSearch(e,g,f),a&&a(d.relations,g,f))});this.listener=this.editable.attachListener(this.target,"mousemove",function(a){g=a.data.$.clientX;f=a.data.$.clientY;h.input()});this.editable.attachListener(this.inline? +this.editable:this.frame,"mouseout",function(){h.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(d){var b=this.editor.createRange();b.moveToPosition(this.relations[d.uid].element,a[d.type]);return b}}(),store:function(){function a(a,b,c){var e=a.getUniqueId(); +e in c?c[e].type|=b:c[e]={element:a,type:b}}return function(d,b){var c;if(b&CKEDITOR.LINEUTILS_AFTER&&i(c=d.getNext())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_AFTER;if(b&CKEDITOR.LINEUTILS_INSIDE&&i(c=d.getFirst())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_INSIDE;a(d,b,this.relations)}}(),traverseSearch:function(a){var d,b,c;do if(c=a.$["data-cke-expando"],!(c&&c in this.relations)){if(a.equals(this.editable))break; +if(i(a))for(d in this.lookups)(b=this.lookups[d](a))&&this.store(a,b)}while(!(a&&a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(a,c,e,g,f){for(var h=0,j;f(e);){e+=g;if(25==++h)break;if(j=this.doc.$.elementFromPoint(c,e))if(j==a)h=0;else if(d(a,j)&&(h=0,i(j=new CKEDITOR.dom.element(j))))return j}}var d=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,c){return a.contains(c)}:function(a,c){return!!(a.compareDocumentPosition(c)& +16)};return function(b,c,d){var g=this.win.getViewPaneSize().height,f=a.call(this,b.$,c,d,-1,function(a){return 0<a}),c=a.call(this,b.$,c,d,1,function(a){return a<g});if(f)for(this.traverseSearch(f);!f.getParent().equals(b);)f=f.getParent();if(c)for(this.traverseSearch(c);!c.getParent().equals(b);)c=c.getParent();for(;f||c;){f&&(f=f.getNext(i));if(!f||f.equals(c))break;this.traverseSearch(f);c&&(c=c.getPrevious(i));if(!c||c.equals(f))break;this.traverseSearch(c)}}}(),greedySearch:function(){this.relations= +{};for(var a=this.editable.getElementsByTag("*"),d=0,b,c,e;b=a.getItem(d++);)if(!b.equals(this.editable)&&(b.hasAttribute("contenteditable")||!b.isReadOnly())&&i(b)&&b.isVisible())for(e in this.lookups)(c=this.lookups[e](b))&&this.store(b,c);return this.relations}};l.prototype={locate:function(){function a(a,b){var d=a.element[b===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return d&&i(d)?(a.siblingRect=d.getClientRect(),b==CKEDITOR.LINEUTILS_BEFORE?(a.siblingRect.bottom+a.elementRect.top)/ +2:(a.elementRect.bottom+a.siblingRect.top)/2):b==CKEDITOR.LINEUTILS_BEFORE?a.elementRect.top:a.elementRect.bottom}var d,b;return function(c){this.locations={};for(b in c)d=c[b],d.elementRect=d.element.getClientRect(),d.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(b,CKEDITOR.LINEUTILS_BEFORE,a(d,CKEDITOR.LINEUTILS_BEFORE)),d.type&CKEDITOR.LINEUTILS_AFTER&&this.store(b,CKEDITOR.LINEUTILS_AFTER,a(d,CKEDITOR.LINEUTILS_AFTER)),d.type&CKEDITOR.LINEUTILS_INSIDE&&this.store(b,CKEDITOR.LINEUTILS_INSIDE,(d.elementRect.top+ +d.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,d,b,c,e,g;return function(f,h){a=this.locations;d=[];for(c in a)for(e in a[c])if(b=Math.abs(f-a[c][e]),d.length){for(g=0;g<d.length;g++)if(b<d[g].dist){d.splice(g,0,{uid:+c,type:e,dist:b});break}g==d.length&&d.push({uid:+c,type:e,dist:b})}else d.push({uid:+c,type:e,dist:b});return"undefined"!=typeof h?d.slice(0,h):d}}(),store:function(a,d,b){this.locations[a]||(this.locations[a]={});this.locations[a][d]=b}};var n={display:"block", +width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},q={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999},p='<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}"><span style="{tipLeftStyle}"> </span><span style="{tipRightStyle}"> </span></div>';m.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(), +delete this.visible[a]},hideLine:function(a){var d=a.getUniqueId();a.hide();this.hidden[d]=a;delete this.visible[d]},showLine:function(a){var d=a.getUniqueId();a.show();this.visible[d]=a;delete this.hidden[d]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,d){var b,c,e;if(b=this.getStyle(a.uid,a.type)){for(e in this.visible)if(this.visible[e].getCustomData("hash")!==this.hash){c=this.visible[e];break}if(!c)for(e in this.hidden)if(this.hidden[e].getCustomData("hash")!== +this.hash){this.showLine(c=this.hidden[e]);break}c||this.showLine(c=this.addLine());c.setCustomData("hash",this.hash);this.visible[c.getUniqueId()]=c;c.setStyles(b);d&&d(c)}},getStyle:function(a,d){var b=this.relations[a],c=this.locations[a][d],e={};e.width=b.siblingRect?Math.max(b.siblingRect.width,b.elementRect.width):b.elementRect.width;e.top=this.inline?c+this.winTopScroll.y:this.rect.top+this.winTopScroll.y+c;if(e.top-this.winTopScroll.y<this.rect.top||e.top-this.winTopScroll.y>this.rect.bottom)return!1; +if(this.inline)e.left=b.elementRect.left;else if(0<b.elementRect.left?e.left=this.rect.left+b.elementRect.left:(e.width+=b.elementRect.left,e.left=this.rect.left),0<(b=e.left+e.width-(this.rect.left+this.winPane.width)))e.width-=b;e.left+=this.winTopScroll.x;for(var g in e)e[g]=CKEDITOR.tools.cssLength(e[g]);return e},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,d){this.relations=a;this.locations=d;this.hash=Math.random()}, +cleanup:function(){var a,d;for(d in this.visible)a=this.visible[d],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.inline?this.editable.getClientRect():this.frame.getClientRect()}};var o={left:1,right:1,center:1},r={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:k,locator:l,liner:m}})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/link/dialogs/anchor.js b/platforms/android/assets/www/lib/ckeditor/plugins/link/dialogs/anchor.js new file mode 100644 index 00000000..e0192b27 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/link/dialogs/anchor.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)): +this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c); +e&&(this._.selectedElement=e,this.setValueOf("info","txtName",e.data("cke-saved-name")||""),!d&&a.selectElement(e),b&&(this._.selectedElement=b));this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/link/dialogs/link.js b/platforms/android/assets/www/lib/ckeditor/plugins/link/dialogs/link.js new file mode 100644 index 00000000..312fb7bc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/link/dialogs/link.js @@ -0,0 +1,26 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.dialog.add("link",function(g){var l=CKEDITOR.plugins.link,m=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),k=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),k){case "frame":a.setLabel(g.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(g.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(k),a.getElement().hide()}}, +f=function(a){a.target&&this.setValue(a.target[this.id]||"")},h=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},i=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},j=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},c=g.lang.common,b=g.lang.link,d;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"], +[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],k=this.getValue(),e=a.definition.getContents("upload"),e=e&&e.hidden;"url"==k?(g.config.linkShowTargetTab&&a.showPage("target"),e||a.showPage("upload")):(a.hidePage("target"),e||a.hidePage("upload"));for(e=0;e<b.length;e++){var c=a.getContentElement("info",b[e]);c&&(c=c.getElement().getParent().getParent(),b[e]==k+"Options"?c.show():c.hide())}a.layout()},setup:function(a){this.setValue(a.type|| +"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:c.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:c.url,required:!0,onLoad:function(){this.allowOnChange= +!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),k=/^((javascript:)|[#\/\.\?])/i,c=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);c?(this.setValue(b.substr(c[0].length)),a.setValue(c[0].toLowerCase())):k.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")? +!0:!g.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(c.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button", +id:"browse",hidden:"true",filebrowser:"info:url",label:c.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(){d=l.getEditorAnchors(g);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b= +0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor|| +(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"</div>",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress", +label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return!a.getContentElement("info","linkType")||"email"!=a.getValueOf("info","linkType")?!0:CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this)},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject, +setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target, +elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:c.target,"default":"notSet",style:"width : 100%;",items:[[c.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[c.targetNew,"_blank"],[c.targetTop,"_top"],[c.targetSelf,"_self"],[c.targetParent,"_parent"]],onChange:m,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");m.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName", +label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/\W/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:f,commit:i},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:f,commit:i}]},{type:"hbox", +children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:f,commit:i},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:f,commit:i},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:f,commit:i},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:f,commit:i}]},{type:"hbox", +children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:c.width,id:"width",setup:f,commit:i},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:f,commit:i}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:c.height,id:"height",setup:f,commit:i},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:f,commit:i}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0, +filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:c.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:c.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:h,commit:j},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir, +"default":"",style:"width:110px",items:[[c.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:h,commit:j},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:h,commit:j}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:h,commit:j},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:h,commit:j},{type:"text", +label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:h,commit:j}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:h,commit:j},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)", +"default":"",id:"advCSSClasses",setup:h,commit:j},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:h,commit:j},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(g.lang.common.invalidInlineStyle),setup:h,commit:j}]}]}]}],onShow:function(){var a= +this.getParentEditor(),b=a.getSelection(),c=null;(c=l.getSelectedLink(a))&&c.hasAttribute("href")?b.getSelectedElement()||b.selectElement(c):c=null;a=l.parseLinkAttributes(a,c);this._.selectedElement=c;this.setupContent(a)},onOk:function(){var a={};this.commitContent(a);var b=g.getSelection(),c=l.getLinkAttributes(g,a);if(this._.selectedElement){var e=this._.selectedElement,d=e.data("cke-saved-href"),f=e.getHtml();e.setAttributes(c.set);e.removeAttributes(c.removed);if(d==f||"email"==a.type&&-1!= +f.indexOf("@"))e.setHtml("email"==a.type?a.email.address:c.set["data-cke-saved-href"]),b.selectElement(e);delete this._.selectedElement}else b=b.getRanges()[0],b.collapsed&&(a=new CKEDITOR.dom.text("email"==a.type?a.email.address:c.set["data-cke-saved-href"],g.document),b.insertNode(a),b.selectNodeContents(a)),c=new CKEDITOR.style({element:"a",attributes:c.set}),c.type=CKEDITOR.STYLE_INLINE,c.applyToRange(b,g),b.select()},onLoad:function(){g.config.linkShowAdvancedTab||this.hidePage("advanced");g.config.linkShowTargetTab|| +this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/link/images/anchor.png b/platforms/android/assets/www/lib/ckeditor/plugins/link/images/anchor.png new file mode 100644 index 00000000..6d861a0e Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/link/images/anchor.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png b/platforms/android/assets/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png new file mode 100644 index 00000000..f5048430 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js new file mode 100644 index 00000000..2b130e71 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){this.setValue(a.getStyle("list-style-type")|| +h[a.getAttribute("type")]||a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.commitContent(a)}};if("numberedListStyle"==e){var g=[[b.notset,""],[b.lowerRoman,"lower-roman"],[b.upperRoman,"upper-roman"],[b.lowerAlpha,"lower-alpha"],[b.upperAlpha,"upper-alpha"], +[b.decimal,"decimal"]];(!CKEDITOR.env.ie||7<CKEDITOR.env.version)&&g.concat([[b.armenian,"armenian"],[b.decimalLeadingZero,"decimal-leading-zero"],[b.georgian,"georgian"],[b.lowerGreek,"lower-greek"]]);return{title:b.numberedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"hbox",widths:["25%","75%"],children:[{label:b.start,type:"text",id:"start",validate:CKEDITOR.dialog.validate.integer(b.validateStartNumber),setup:function(a){this.setValue(a.getFirst(f).getAttribute("value")|| +a.getAttribute("start")||1)},commit:function(a){var b=a.getFirst(f),c=b.getAttribute("value")||a.getAttribute("start")||1;a.getFirst(f).removeAttribute("value");var d=parseInt(this.getValue(),10);isNaN(d)?a.removeAttribute("start"):a.setAttribute("start",d);a=b;b=c;for(d=isNaN(d)?1:d;(a=a.getNext(f))&&b++;)a.getAttribute("value")==b&&a.setAttribute("value",d+b-c)}},{type:"select",label:b.type,id:"type",style:"width: 100%;",items:g,setup:function(a){this.setValue(a.getStyle("list-style-type")||h[a.getAttribute("type")]|| +a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.commitContent(a)}}}}var f=function(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")},h={a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman",1:"decimal",disc:"disc",circle:"circle",square:"square"}; +CKEDITOR.dialog.add("numberedListStyle",function(c){return e(c,"numberedListStyle")});CKEDITOR.dialog.add("bulletedListStyle",function(c){return e(c,"bulletedListStyle")})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/af.js new file mode 100644 index 00000000..972e936b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","af",{armenian:"Armeense nommering",bulletedTitle:"Eienskappe van ongenommerde lys",circle:"Sirkel",decimal:"Desimale syfers (1, 2, 3, ens.)",decimalLeadingZero:"Desimale syfers met voorloopnul (01, 02, 03, ens.)",disc:"Skyf",georgian:"Georgiese nommering (an, ban, gan, ens.)",lowerAlpha:"Kleinletters (a, b, c, d, e, ens.)",lowerGreek:"Griekse kleinletters (alpha, beta, gamma, ens.)",lowerRoman:"Romeinse kleinletters (i, ii, iii, iv, v, ens.)",none:"Geen",notset:"<nie ingestel nie>", +numberedTitle:"Eienskappe van genommerde lys",square:"Vierkant",start:"Begin",type:"Tipe",upperAlpha:"Hoofletters (A, B, C, D, E, ens.)",upperRoman:"Romeinse hoofletters (I, II, III, IV, V, ens.)",validateStartNumber:"Beginnommer van lys moet 'n heelgetal wees."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ar.js new file mode 100644 index 00000000..72b9f52a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ar",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bg.js new file mode 100644 index 00000000..5cc312a2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bg.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bg",{armenian:"Арменско номериране",bulletedTitle:"Bulleted List Properties",circle:"Кръг",decimal:"Числа (1, 2, 3 и др.)",decimalLeadingZero:"Числа с водеща нула (01, 02, 03 и т.н.)",disc:"Диск",georgian:"Грузинско номериране (an, ban, gan, и т.н.)",lowerAlpha:"Малки букви (а, б, в, г, д и т.н.)",lowerGreek:"Малки гръцки букви (алфа, бета, гама и т.н.)",lowerRoman:"Малки римски числа (i, ii, iii, iv, v и т.н.)",none:"Няма",notset:"<не е указано>",numberedTitle:"Numbered List Properties", +square:"Квадрат",start:"Старт",type:"Тип",upperAlpha:"Големи букви (А, Б, В, Г, Д и т.н.)",upperRoman:"Големи римски числа (I, II, III, IV, V и т.н.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bn.js new file mode 100644 index 00000000..d002bafc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bs.js new file mode 100644 index 00000000..af72e359 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bs",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ca.js new file mode 100644 index 00000000..42455a34 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/cs.js new file mode 100644 index 00000000..d3abb5c8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/cs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cs",{armenian:"Arménské",bulletedTitle:"Vlastnosti odrážek",circle:"Kroužky",decimal:"Arabská čísla (1, 2, 3, atd.)",decimalLeadingZero:"Arabská čísla uvozená nulou (01, 02, 03, atd.)",disc:"Kolečka",georgian:"Gruzínské (an, ban, gan, atd.)",lowerAlpha:"Malá latinka (a, b, c, d, e, atd.)",lowerGreek:"Malé řecké (alpha, beta, gamma, atd.)",lowerRoman:"Malé římské (i, ii, iii, iv, v, atd.)",none:"Nic",notset:"<nenastaveno>",numberedTitle:"Vlastnosti číslování", +square:"Čtverce",start:"Počátek",type:"Typ",upperAlpha:"Velká latinka (A, B, C, D, E, atd.)",upperRoman:"Velké římské (I, II, III, IV, V, atd.)",validateStartNumber:"Číslování musí začínat celým číslem."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/cy.js new file mode 100644 index 00000000..a5d6cc5f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cy",{armenian:"Rhifo Armeneg",bulletedTitle:"Priodweddau Rhestr Fwled",circle:"Cylch",decimal:"Degol (1, 2, 3, ayyb.)",decimalLeadingZero:"Degol â sero arweiniol (01, 02, 03, ayyb.)",disc:"Disg",georgian:"Rhifau Sioraidd (an, ban, gan, ayyb.)",lowerAlpha:"Alffa Is (a, b, c, d, e, ayyb.)",lowerGreek:"Groeg Is (alpha, beta, gamma, ayyb.)",lowerRoman:"Rhufeinig Is (i, ii, iii, iv, v, ayyb.)",none:"Dim",notset:"<heb osod>",numberedTitle:"Priodweddau Rhestr Rifol", +square:"Sgwâr",start:"Dechrau",type:"Math",upperAlpha:"Alffa Uwch (A, B, C, D, E, ayyb.)",upperRoman:"Rhufeinig Uwch (I, II, III, IV, V, ayyb.)",validateStartNumber:"Rhaid bod y rhif cychwynnol yn gyfanrif."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/da.js new file mode 100644 index 00000000..d09c455e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/da.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","da",{armenian:"Armensk nummering",bulletedTitle:"Værdier for cirkelpunktopstilling",circle:"Cirkel",decimal:"Decimal (1, 2, 3, osv.)",decimalLeadingZero:"Decimaler med 0 først (01, 02, 03, etc.)",disc:"Værdier for diskpunktopstilling",georgian:"Georgiansk nummering (an, ban, gan, etc.)",lowerAlpha:"Små alfabet (a, b, c, d, e, etc.)",lowerGreek:"Små græsk (alpha, beta, gamma, etc.)",lowerRoman:"Små romerske (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ikke defineret>", +numberedTitle:"Egenskaber for nummereret liste",square:"Firkant",start:"Start",type:"Type",upperAlpha:"Store alfabet (A, B, C, D, E, etc.)",upperRoman:"Store romerske (I, II, III, IV, V, etc.)",validateStartNumber:"Den nummererede liste skal starte med et rundt nummer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/de.js new file mode 100644 index 00000000..30038e82 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/de.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","de",{armenian:"Armenisch Nummerierung",bulletedTitle:"Listen-Eigenschaften",circle:"Ring",decimal:"Dezimal (1, 2, 3, etc.)",decimalLeadingZero:"Dezimal mit führende Null (01, 02, 03, etc.)",disc:"Kreis",georgian:"Georgisch Nummerierung (an, ban, gan, etc.)",lowerAlpha:"Klein alpha (a, b, c, d, e, etc.)",lowerGreek:"Klein griechisch (alpha, beta, gamma, etc.)",lowerRoman:"Klein römisch (i, ii, iii, iv, v, etc.)",none:"Keine",notset:"<nicht gesetzt>",numberedTitle:"Nummerierte Listen-Eigenschaften", +square:"Quadrat",start:"Start",type:"Typ",upperAlpha:"Groß alpha (A, B, C, D, E, etc.)",upperRoman:"Groß römisch (I, II, III, IV, V, etc.)",validateStartNumber:"List Startnummer muss eine ganze Zahl sein."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/el.js new file mode 100644 index 00000000..d077c8e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/el.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","el",{armenian:"Αρμενική αρίθμηση",bulletedTitle:"Ιδιότητες Λίστας Σημείων",circle:"Κύκλος",decimal:"Δεκαδική (1, 2, 3, κτλ)",decimalLeadingZero:"Δεκαδική με αρχικό μηδεν (01, 02, 03, κτλ)",disc:"Δίσκος",georgian:"Γεωργιανή αρίθμηση (ა, ბ, გ, κτλ)",lowerAlpha:"Μικρά Λατινικά (a, b, c, d, e, κτλ.)",lowerGreek:"Μικρά Ελληνικά (α, β, γ, κτλ)",lowerRoman:"Μικρά Ρωμαϊκά (i, ii, iii, iv, v, κτλ)",none:"Καμία",notset:"<δεν έχει οριστεί>",numberedTitle:"Ιδιότητες Αριθμημένης Λίστας ", +square:"Τετράγωνο",start:"Εκκίνηση",type:"Τύπος",upperAlpha:"Κεφαλαία Λατινικά (A, B, C, D, E, κτλ)",upperRoman:"Κεφαλαία Ρωμαϊκά (I, II, III, IV, V, κτλ)",validateStartNumber:"Ο αριθμός εκκίνησης της αρίθμησης πρέπει να είναι ακέραιος αριθμός."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-au.js new file mode 100644 index 00000000..41e685fa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-au",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js new file mode 100644 index 00000000..633ecd9b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js new file mode 100644 index 00000000..6f1ca2a5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-gb",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en.js new file mode 100644 index 00000000..6bba5a29 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/eo.js new file mode 100644 index 00000000..6ef97acc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/eo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eo",{armenian:"Armena nombrado",bulletedTitle:"Atributoj de Bula Listo",circle:"Cirklo",decimal:"Dekumaj Nombroj (1, 2, 3, ktp.)",decimalLeadingZero:"Dekumaj Nombroj malantaŭ nulo (01, 02, 03, ktp.)",disc:"Disko",georgian:"Gruza nombrado (an, ban, gan, ktp.)",lowerAlpha:"Minusklaj Literoj (a, b, c, d, e, ktp.)",lowerGreek:"Grekaj Minusklaj Literoj (alpha, beta, gamma, ktp.)",lowerRoman:"Minusklaj Romanaj Nombroj (i, ii, iii, iv, v, ktp.)",none:"Neniu",notset:"<Defaŭlta>", +numberedTitle:"Atributoj de Numera Listo",square:"kvadrato",start:"Komenco",type:"Tipo",upperAlpha:"Majusklaj Literoj (A, B, C, D, E, ktp.)",upperRoman:"Majusklaj Romanaj Nombroj (I, II, III, IV, V, ktp.)",validateStartNumber:"La unua listero devas esti entjera nombro."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/es.js new file mode 100644 index 00000000..06ed01a5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","es",{armenian:"Numeración armenia",bulletedTitle:"Propiedades de viñetas",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero inicial (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeración georgiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Letras griegas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ninguno",notset:"<sin establecer>", +numberedTitle:"Propiedades de lista numerada",square:"Cuadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en mayúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en mayúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"El Inicio debe ser un número entero."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/et.js new file mode 100644 index 00000000..9212207b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/et.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","et",{armenian:"Armeenia numbrid",bulletedTitle:"Punktloendi omadused",circle:"Ring",decimal:"Numbrid (1, 2, 3, jne)",decimalLeadingZero:"Numbrid algusnulliga (01, 02, 03, jne)",disc:"Täpp",georgian:"Gruusia numbrid (an, ban, gan, jne)",lowerAlpha:"Väiketähed (a, b, c, d, e, jne)",lowerGreek:"Kreeka väiketähed (alpha, beta, gamma, jne)",lowerRoman:"Väiksed rooma numbrid (i, ii, iii, iv, v, jne)",none:"Puudub",notset:"<pole määratud>",numberedTitle:"Numberloendi omadused", +square:"Ruut",start:"Algus",type:"Liik",upperAlpha:"Suurtähed (A, B, C, D, E, jne)",upperRoman:"Suured rooma numbrid (I, II, III, IV, V, jne)",validateStartNumber:"Loendi algusnumber peab olema täisarv."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/eu.js new file mode 100644 index 00000000..dc0d63a7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/eu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eu",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fa.js new file mode 100644 index 00000000..5a588c04 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fa",{armenian:"شماره‌گذاری ارمنی",bulletedTitle:"خصوصیات فهرست نقطه‌ای",circle:"دایره",decimal:"ده‌دهی (۱، ۲، ۳، ...)",decimalLeadingZero:"دهدهی همراه با صفر (۰۱، ۰۲، ۰۳، ...)",disc:"صفحه گرد",georgian:"شمارهگذاری گریگورین (an, ban, gan, etc.)",lowerAlpha:"پانویس الفبایی (a, b, c, d, e, etc.)",lowerGreek:"پانویس یونانی (alpha, beta, gamma, etc.)",lowerRoman:"پانویس رومی (i, ii, iii, iv, v, etc.)",none:"هیچ",notset:"<تنظیم نشده>",numberedTitle:"ویژگیهای فهرست شمارهدار", +square:"چهارگوش",start:"شروع",type:"نوع",upperAlpha:"بالانویس الفبایی (A, B, C, D, E, etc.)",upperRoman:"بالانویس رومی (I, II, III, IV, V, etc.)",validateStartNumber:"فهرست شماره شروع باید یک عدد صحیح باشد."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fi.js new file mode 100644 index 00000000..2e55ab99 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fi",{armenian:"Armeenialainen numerointi",bulletedTitle:"Numeroimattoman listan ominaisuudet",circle:"Ympyrä",decimal:"Desimaalit (1, 2, 3, jne.)",decimalLeadingZero:"Desimaalit, alussa nolla (01, 02, 03, jne.)",disc:"Levy",georgian:"Georgialainen numerointi (an, ban, gan, etc.)",lowerAlpha:"Pienet aakkoset (a, b, c, d, e, jne.)",lowerGreek:"Pienet kreikkalaiset (alpha, beta, gamma, jne.)",lowerRoman:"Pienet roomalaiset (i, ii, iii, iv, v, jne.)",none:"Ei mikään", +notset:"<ei asetettu>",numberedTitle:"Numeroidun listan ominaisuudet",square:"Neliö",start:"Alku",type:"Tyyppi",upperAlpha:"Isot aakkoset (A, B, C, D, E, jne.)",upperRoman:"Isot roomalaiset (I, II, III, IV, V, jne.)",validateStartNumber:"Listan ensimmäisen numeron tulee olla kokonaisluku."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fo.js new file mode 100644 index 00000000..c7861be7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fo",{armenian:"Armensk talskipan",bulletedTitle:"Eginleikar fyri lista við prikkum",circle:"Sirkul",decimal:"Vanlig tøl (1, 2, 3, etc.)",decimalLeadingZero:"Tøl við null frammanfyri (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgisk talskipan (an, ban, gan, osv.)",lowerAlpha:"Lítlir bókstavir (a, b, c, d, e, etc.)",lowerGreek:"Grikskt við lítlum (alpha, beta, gamma, etc.)",lowerRoman:"Lítil rómaratøl (i, ii, iii, iv, v, etc.)",none:"Einki",notset:"<ikki sett>", +numberedTitle:"Eginleikar fyri lista við tølum",square:"Fýrkantur",start:"Byrjan",type:"Slag",upperAlpha:"Stórir bókstavir (A, B, C, D, E, etc.)",upperRoman:"Stór rómaratøl (I, II, III, IV, V, etc.)",validateStartNumber:"Byrjunartalið fyri lista má vera eitt heiltal."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js new file mode 100644 index 00000000..1c2925a8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr-ca",{armenian:"Numération arménienne",bulletedTitle:"Propriété de liste à puce",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal avec zéro (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscule (a, b, c, d, e, etc.)",lowerGreek:"Grecque minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Romain minuscule (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<non défini>", +numberedTitle:"Propriété de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscule (A, B, C, D, E, etc.)",upperRoman:"Romain Majuscule (I, II, III, IV, V, etc.)",validateStartNumber:"Le numéro de début de liste doit être un entier."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fr.js new file mode 100644 index 00000000..a787f638 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/fr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr",{armenian:"Numération arménienne",bulletedTitle:"Propriétés de la liste à puces",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal précédé par un 0 (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscules (a, b, c, d, e, etc.)",lowerGreek:"Grec minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Nombres romains minuscules (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<Non défini>", +numberedTitle:"Propriétés de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscules (A, B, C, D, E, etc.)",upperRoman:"Nombres romains majuscules (I, II, III, IV, V, etc.)",validateStartNumber:"Le premier élément de la liste doit être un nombre entier."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/gl.js new file mode 100644 index 00000000..f4e986fa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/gl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gl",{armenian:"Numeración armenia",bulletedTitle:"Propiedades da lista viñeteada",circle:"Circulo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero á esquerda (01, 02, 03, etc.)",disc:"Disc",georgian:"Numeración xeorxiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Grego en minúsculas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ningún", +notset:"<sen estabelecer>",numberedTitle:"Propiedades da lista numerada",square:"Cadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en maiúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en maiúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"O número de inicio da lista debe ser un número enteiro."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/gu.js new file mode 100644 index 00000000..48995fbc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gu",{armenian:"અરમેનિયન આંકડા પદ્ધતિ",bulletedTitle:"બુલેટેડ લીસ્ટના ગુણ",circle:"વર્તુળ",decimal:"આંકડા (1, 2, 3, etc.)",decimalLeadingZero:"સુન્ય આગળ આંકડા (01, 02, 03, etc.)",disc:"ડિસ્ક",georgian:"ગેઓર્ગિયન આંકડા પદ્ધતિ (an, ban, gan, etc.)",lowerAlpha:"આલ્ફા નાના (a, b, c, d, e, etc.)",lowerGreek:"ગ્રીક નાના (alpha, beta, gamma, etc.)",lowerRoman:"રોમન નાના (i, ii, iii, iv, v, etc.)",none:"કસુ ",notset:"<સેટ નથી>",numberedTitle:"આંકડાના લીસ્ટના ગુણ",square:"ચોરસ", +start:"શરુ કરવું",type:"પ્રકાર",upperAlpha:"આલ્ફા મોટા (A, B, C, D, E, etc.)",upperRoman:"રોમન મોટા (I, II, III, IV, V, etc.)",validateStartNumber:"લીસ્ટના સરુઆતનો આંકડો પુરો હોવો જોઈએ."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/he.js new file mode 100644 index 00000000..ba746516 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","he",{armenian:"ספרות ארמניות",bulletedTitle:"תכונות רשימת תבליטים",circle:"עיגול ריק",decimal:"ספרות (1, 2, 3 וכו')",decimalLeadingZero:"ספרות עם 0 בהתחלה (01, 02, 03 וכו')",disc:"עיגול מלא",georgian:"ספרות גיאורגיות (an, ban, gan וכו')",lowerAlpha:"אותיות אנגליות קטנות (a, b, c, d, e וכו')",lowerGreek:"אותיות יווניות קטנות (alpha, beta, gamma וכו')",lowerRoman:"ספירה רומית באותיות קטנות (i, ii, iii, iv, v וכו')",none:"ללא",notset:"<לא נקבע>",numberedTitle:"תכונות רשימה ממוספרת", +square:"ריבוע",start:"תחילת מספור",type:"סוג",upperAlpha:"אותיות אנגליות גדולות (A, B, C, D, E וכו')",upperRoman:"ספירה רומיות באותיות גדולות (I, II, III, IV, V וכו')",validateStartNumber:"שדה תחילת המספור חייב להכיל מספר שלם."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hi.js new file mode 100644 index 00000000..23e5affe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hi",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hr.js new file mode 100644 index 00000000..66a47962 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hr",{armenian:"Armenijska numeracija",bulletedTitle:"Svojstva liste",circle:"Krug",decimal:"Decimalna numeracija (1, 2, 3, itd.)",decimalLeadingZero:"Decimalna s vodećom nulom (01, 02, 03, itd)",disc:"Disk",georgian:"Gruzijska numeracija(an, ban, gan, etc.)",lowerAlpha:"Znakovi mala slova (a, b, c, d, e, itd.)",lowerGreek:"Grčka numeracija mala slova (alfa, beta, gama, itd).",lowerRoman:"Romanska numeracija mala slova (i, ii, iii, iv, v, itd.)",none:"Bez",notset:"<nije određen>", +numberedTitle:"Svojstva brojčane liste",square:"Kvadrat",start:"Početak",type:"Vrsta",upperAlpha:"Znakovi velika slova (A, B, C, D, E, itd.)",upperRoman:"Romanska numeracija velika slova (I, II, III, IV, V, itd.)",validateStartNumber:"Početak brojčane liste mora biti cijeli broj."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hu.js new file mode 100644 index 00000000..d37d441f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/hu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hu",{armenian:"Örmény számozás",bulletedTitle:"Pontozott lista tulajdonságai",circle:"Kör",decimal:"Arab számozás (1, 2, 3, stb.)",decimalLeadingZero:"Számozás bevezető nullákkal (01, 02, 03, stb.)",disc:"Korong",georgian:"Grúz számozás (an, ban, gan, stb.)",lowerAlpha:"Kisbetűs (a, b, c, d, e, stb.)",lowerGreek:"Görög (alpha, beta, gamma, stb.)",lowerRoman:"Római kisbetűs (i, ii, iii, iv, v, stb.)",none:"Nincs",notset:"<Nincs beállítva>",numberedTitle:"Sorszámozott lista tulajdonságai", +square:"Négyzet",start:"Kezdőszám",type:"Típus",upperAlpha:"Nagybetűs (A, B, C, D, E, stb.)",upperRoman:"Római nagybetűs (I, II, III, IV, V, stb.)",validateStartNumber:"A kezdőszám nem lehet tört érték."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/id.js new file mode 100644 index 00000000..65d48510 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","id",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Lingkaran",decimal:"Desimal (1, 2, 3, dst.)",decimalLeadingZero:"Desimal diawali angka nol (01, 02, 03, dst.)",disc:"Cakram",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Huruf Kecil (a, b, c, d, e, dst.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Angka Romawi (i, ii, iii, iv, v, dst.)",none:"Tidak ada",notset:"<tidak diatur>",numberedTitle:"Numbered List Properties", +square:"Persegi",start:"Mulai",type:"Tipe",upperAlpha:"Huruf Besar (A, B, C, D, E, dst.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/is.js new file mode 100644 index 00000000..3f8cd1a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","is",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/it.js new file mode 100644 index 00000000..674c5e1b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/it.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","it",{armenian:"Numerazione Armena",bulletedTitle:"Proprietà liste puntate",circle:"Cerchio",decimal:"Decimale (1, 2, 3, ecc.)",decimalLeadingZero:"Decimale preceduto da 0 (01, 02, 03, ecc.)",disc:"Disco",georgian:"Numerazione Georgiana (an, ban, gan, ecc.)",lowerAlpha:"Alfabetico minuscolo (a, b, c, d, e, ecc.)",lowerGreek:"Greco minuscolo (alpha, beta, gamma, ecc.)",lowerRoman:"Numerazione Romana minuscola (i, ii, iii, iv, v, ecc.)",none:"Nessuno",notset:"<non impostato>", +numberedTitle:"Proprietà liste numerate",square:"Quadrato",start:"Inizio",type:"Tipo",upperAlpha:"Alfabetico maiuscolo (A, B, C, D, E, ecc.)",upperRoman:"Numerazione Romana maiuscola (I, II, III, IV, V, ecc.)",validateStartNumber:"Il numero di inizio di una lista numerata deve essere un numero intero."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ja.js new file mode 100644 index 00000000..934cc98c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ja",{armenian:"アルメニア数字",bulletedTitle:"箇条書きのプロパティ",circle:"白丸",decimal:"数字 (1, 2, 3, etc.)",decimalLeadingZero:"0付きの数字 (01, 02, 03, etc.)",disc:"黒丸",georgian:"グルジア数字 (an, ban, gan, etc.)",lowerAlpha:"小文字アルファベット (a, b, c, d, e, etc.)",lowerGreek:"小文字ギリシャ文字 (alpha, beta, gamma, etc.)",lowerRoman:"小文字ローマ数字 (i, ii, iii, iv, v, etc.)",none:"なし",notset:"<なし>",numberedTitle:"番号付きリストのプロパティ",square:"四角",start:"開始",type:"種類",upperAlpha:"大文字アルファベット (A, B, C, D, E, etc.)", +upperRoman:"大文字ローマ数字 (I, II, III, IV, V, etc.)",validateStartNumber:"リストの開始番号は数値で入力してください。"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ka.js new file mode 100644 index 00000000..f820e66a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ka.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ka",{armenian:"სომხური გადანომრვა",bulletedTitle:"ღილებიანი სიის პარამეტრები",circle:"წრეწირი",decimal:"რიცხვებით (1, 2, 3, ..)",decimalLeadingZero:"ნულით დაწყებული რიცხვებით (01, 02, 03, ..)",disc:"წრე",georgian:"ქართული გადანომრვა (ან, ბან, გან, ..)",lowerAlpha:"პატარა ლათინური ასოებით (a, b, c, d, e, ..)",lowerGreek:"პატარა ბერძნული ასოებით (ალფა, ბეტა, გამა, ..)",lowerRoman:"რომაული გადანომრვცა პატარა ციფრებით (i, ii, iii, iv, v, ..)",none:"არაფერი",notset:"<არაფერი>", +numberedTitle:"გადანომრილი სიის პარამეტრები",square:"კვადრატი",start:"საწყისი",type:"ტიპი",upperAlpha:"დიდი ლათინური ასოებით (A, B, C, D, E, ..)",upperRoman:"რომაული გადანომრვა დიდი ციფრებით (I, II, III, IV, V, etc.)",validateStartNumber:"სიის საწყისი მთელი რიცხვი უნდა იყოს."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/km.js new file mode 100644 index 00000000..181efe3d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","km",{armenian:"លេខ​អារមេនី",bulletedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​ចំណុច",circle:"រង្វង់​មូល",decimal:"លេខ​ទសភាគ (1, 2, 3, ...)",decimalLeadingZero:"ទសភាគ​ចាប់​ផ្ដើម​ពី​សូន្យ (01, 02, 03, ...)",disc:"ថាស",georgian:"លេខ​ចចជា (an, ban, gan, ...)",lowerAlpha:"ព្យញ្ជនៈ​តូច (a, b, c, d, e, ...)",lowerGreek:"លេខ​ក្រិក​តូច (alpha, beta, gamma, ...)",lowerRoman:"លេខ​រ៉ូម៉ាំង​តូច (i, ii, iii, iv, v, ...)",none:"គ្មាន",notset:"<not set>",numberedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​លេខ", +square:"ការេ",start:"ចាប់​ផ្ដើម",type:"ប្រភេទ",upperAlpha:"អក្សរ​ធំ (A, B, C, D, E, ...)",upperRoman:"លេខ​រ៉ូម៉ាំង​ធំ (I, II, III, IV, V, ...)",validateStartNumber:"លេខ​ចាប់​ផ្ដើម​បញ្ជី ត្រូវ​តែ​ជា​តួ​លេខ​ពិត​ប្រាកដ។"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ko.js new file mode 100644 index 00000000..1be0697f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ko",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ku.js new file mode 100644 index 00000000..ccb7e195 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ku.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ku",{armenian:"ئاراستەی ژمارەی ئەرمەنی",bulletedTitle:"خاسیەتی لیستی خاڵی",circle:"بازنه",decimal:"ژمارە (1, 2, 3, وە هیتر.)",decimalLeadingZero:"ژمارە سفڕی لەپێشەوه (01, 02, 03, وە هیتر.)",disc:"پەپکە",georgian:"ئاراستەی ژمارەی جۆڕجی (an, ban, gan, وە هیتر.)",lowerAlpha:"ئەلفابێی بچووك (a, b, c, d, e, وە هیتر.)",lowerGreek:"یۆنانی بچووك (alpha, beta, gamma, وە هیتر.)",lowerRoman:"ژمارەی ڕۆمی بچووك (i, ii, iii, iv, v, وە هیتر.)",none:"هیچ",notset:"<دانەندراوه>", +numberedTitle:"خاسیەتی لیستی ژمارەیی",square:"چووراگۆشە",start:"دەستپێکردن",type:"جۆر",upperAlpha:"ئەلفابێی گەوره (A, B, C, D, E, وە هیتر.)",upperRoman:"ژمارەی ڕۆمی گەوره (I, II, III, IV, V, وە هیتر.)",validateStartNumber:"دەستپێکەری لیستی ژمارەیی دەبێت تەنها ژمارە بێت."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/lt.js new file mode 100644 index 00000000..c563c96d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/lt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lt",{armenian:"Armėniški skaitmenys",bulletedTitle:"Ženklelinio sąrašo nustatymai",circle:"Apskritimas",decimal:"Dešimtainis (1, 2, 3, t.t)",decimalLeadingZero:"Dešimtainis su nuliu priekyje (01, 02, 03, t.t)",disc:"Diskas",georgian:"Gruziniški skaitmenys (an, ban, gan, t.t)",lowerAlpha:"Mažosios Alpha (a, b, c, d, e, t.t)",lowerGreek:"Mažosios Graikų (alpha, beta, gamma, t.t)",lowerRoman:"Mažosios Romėnų (i, ii, iii, iv, v, t.t)",none:"Niekas",notset:"<nenurodytas>", +numberedTitle:"Skaitmeninio sąrašo nustatymai",square:"Kvadratas",start:"Pradžia",type:"Rūšis",upperAlpha:"Didžiosios Alpha (A, B, C, D, E, t.t)",upperRoman:"Didžiosios Romėnų (I, II, III, IV, V, t.t)",validateStartNumber:"Sąrašo pradžios skaitmuo turi būti sveikas skaičius."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/lv.js new file mode 100644 index 00000000..94c41888 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/lv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lv",{armenian:"Armēņu skaitļi",bulletedTitle:"Vienkārša saraksta uzstādījumi",circle:"Aplis",decimal:"Decimālie (1, 2, 3, utt)",decimalLeadingZero:"Decimālie ar nulli (01, 02, 03, utt)",disc:"Disks",georgian:"Gruzīņu skaitļi (an, ban, gan, utt)",lowerAlpha:"Mazie alfabēta (a, b, c, d, e, utt)",lowerGreek:"Mazie grieķu (alfa, beta, gamma, utt)",lowerRoman:"Mazie romāņu (i, ii, iii, iv, v, utt)",none:"Nekas",notset:"<nav norādīts>",numberedTitle:"Numurēta saraksta uzstādījumi", +square:"Kvadrāts",start:"Sākt",type:"Tips",upperAlpha:"Lielie alfabēta (A, B, C, D, E, utt)",upperRoman:"Lielie romāņu (I, II, III, IV, V, utt)",validateStartNumber:"Saraksta sākuma numuram jābūt veselam skaitlim"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/mk.js new file mode 100644 index 00000000..36966219 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mk",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/mn.js new file mode 100644 index 00000000..895d754e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Төрөл",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ms.js new file mode 100644 index 00000000..ffe91b8b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ms",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/nb.js new file mode 100644 index 00000000..cd9b38db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nb",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/nl.js new file mode 100644 index 00000000..4fc950ab --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/nl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nl",{armenian:"Armeense nummering",bulletedTitle:"Eigenschappen lijst met opsommingstekens",circle:"Cirkel",decimal:"Cijfers (1, 2, 3, etc.)",decimalLeadingZero:"Cijfers beginnen met nul (01, 02, 03, etc.)",disc:"Schijf",georgian:"Georgische nummering (an, ban, gan, etc.)",lowerAlpha:"Kleine letters (a, b, c, d, e, etc.)",lowerGreek:"Grieks kleine letters (alpha, beta, gamma, etc.)",lowerRoman:"Romeins kleine letters (i, ii, iii, iv, v, etc.)",none:"Geen",notset:"<niet gezet>", +numberedTitle:"Eigenschappen genummerde lijst",square:"Vierkant",start:"Start",type:"Type",upperAlpha:"Hoofdletters (A, B, C, D, E, etc.)",upperRoman:"Romeinse hoofdletters (I, II, III, IV, V, etc.)",validateStartNumber:"Startnummer van de lijst moet een heel nummer zijn."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/no.js new file mode 100644 index 00000000..f753bd6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","no",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pl.js new file mode 100644 index 00000000..85da585d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pl",{armenian:"Numerowanie armeńskie",bulletedTitle:"Właściwości list wypunktowanych",circle:"Koło",decimal:"Liczby (1, 2, 3 itd.)",decimalLeadingZero:"Liczby z początkowym zerem (01, 02, 03 itd.)",disc:"Okrąg",georgian:"Numerowanie gruzińskie (an, ban, gan itd.)",lowerAlpha:"Małe litery (a, b, c, d, e itd.)",lowerGreek:"Małe litery greckie (alpha, beta, gamma itd.)",lowerRoman:"Małe cyfry rzymskie (i, ii, iii, iv, v itd.)",none:"Brak",notset:"<nie ustawiono>", +numberedTitle:"Właściwości list numerowanych",square:"Kwadrat",start:"Początek",type:"Typ punktora",upperAlpha:"Duże litery (A, B, C, D, E itd.)",upperRoman:"Duże cyfry rzymskie (I, II, III, IV, V itd.)",validateStartNumber:"Listę musi rozpoczynać liczba całkowita."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js new file mode 100644 index 00000000..190c8937 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt-br",{armenian:"Numeração Armêna",bulletedTitle:"Propriedades da Lista sem Numeros",circle:"Círculo",decimal:"Numeração Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Numeração Decimal com zeros (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeração da Geórgia (an, ban, gan, etc.)",lowerAlpha:"Numeração Alfabética minúscula (a, b, c, d, e, etc.)",lowerGreek:"Numeração Grega minúscula (alpha, beta, gamma, etc.)",lowerRoman:"Numeração Romana minúscula (i, ii, iii, iv, v, etc.)", +none:"Nenhum",notset:"<não definido>",numberedTitle:"Propriedades da Lista Numerada",square:"Quadrado",start:"Início",type:"Tipo",upperAlpha:"Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)",upperRoman:"Numeração Romana maiúscula (I, II, III, IV, V, etc.)",validateStartNumber:"O número inicial da lista deve ser um número inteiro."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pt.js new file mode 100644 index 00000000..2b0f85a2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/pt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt",{armenian:"Numeração armênia",bulletedTitle:"Bulleted List Properties",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disco",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Nenhum",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Quadrado",start:"Iniciar",type:"Tipo",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ro.js new file mode 100644 index 00000000..d76923bf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ro.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ro",{armenian:"Numerotare armeniană",bulletedTitle:"Proprietățile listei cu simboluri",circle:"Cerc",decimal:"Decimale (1, 2, 3, etc.)",decimalLeadingZero:"Decimale cu zero în față (01, 02, 03, etc.)",disc:"Disc",georgian:"Numerotare georgiană (an, ban, gan, etc.)",lowerAlpha:"Litere mici (a, b, c, d, e, etc.)",lowerGreek:"Litere grecești mici (alpha, beta, gamma, etc.)",lowerRoman:"Cifre romane mici (i, ii, iii, iv, v, etc.)",none:"Nimic",notset:"<nesetat>", +numberedTitle:"Proprietățile listei numerotate",square:"Pătrat",start:"Start",type:"Tip",upperAlpha:"Litere mari (A, B, C, D, E, etc.)",upperRoman:"Cifre romane mari (I, II, III, IV, V, etc.)",validateStartNumber:"Începutul listei trebuie să fie un număr întreg."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ru.js new file mode 100644 index 00000000..421fd606 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ru.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ru",{armenian:"Армянская нумерация",bulletedTitle:"Свойства маркированного списка",circle:"Круг",decimal:"Десятичные (1, 2, 3, и т.д.)",decimalLeadingZero:"Десятичные с ведущим нулём (01, 02, 03, и т.д.)",disc:"Окружность",georgian:"Грузинская нумерация (ани, бани, гани, и т.д.)",lowerAlpha:"Строчные латинские (a, b, c, d, e, и т.д.)",lowerGreek:"Строчные греческие (альфа, бета, гамма, и т.д.)",lowerRoman:"Строчные римские (i, ii, iii, iv, v, и т.д.)",none:"Нет", +notset:"<не указано>",numberedTitle:"Свойства нумерованного списка",square:"Квадрат",start:"Начиная с",type:"Тип",upperAlpha:"Заглавные латинские (A, B, C, D, E, и т.д.)",upperRoman:"Заглавные римские (I, II, III, IV, V, и т.д.)",validateStartNumber:"Первый номер списка должен быть задан обычным целым числом."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/si.js new file mode 100644 index 00000000..c2253a52 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","si",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"කිසිවක්ම නොවේ",notset:"<යොදා >",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"වර්ගය",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sk.js new file mode 100644 index 00000000..817dab04 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sk",{armenian:"Arménske číslovanie",bulletedTitle:"Vlastnosti odrážkového zoznamu",circle:"Kruh",decimal:"Číselné (1, 2, 3, atď.)",decimalLeadingZero:"Číselné s nulou (01, 02, 03, atď.)",disc:"Disk",georgian:"Gregoriánske číslovanie (an, ban, gan, atď.)",lowerAlpha:"Malé latinské (a, b, c, d, e, atď.)",lowerGreek:"Malé grécke (alfa, beta, gama, atď.)",lowerRoman:"Malé rímske (i, ii, iii, iv, v, atď.)",none:"Nič",notset:"<nenastavené>",numberedTitle:"Vlastnosti číselného zoznamu", +square:"Štvorec",start:"Začiatok",type:"Typ",upperAlpha:"Veľké latinské (A, B, C, D, E, atď.)",upperRoman:"Veľké rímske (I, II, III, IV, V, atď.)",validateStartNumber:"Začiatočné číslo číselného zoznamu musí byť celé číslo."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sl.js new file mode 100644 index 00000000..f147fe2e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sl",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sq.js new file mode 100644 index 00000000..586b7d40 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sq.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sq",{armenian:"Numërim armenian",bulletedTitle:"Karakteristikat e Listës me Pulla",circle:"Rreth",decimal:"Decimal (1, 2, 3, etj.)",decimalLeadingZero:"Decimal me zerro udhëheqëse (01, 02, 03, etj.)",disc:"Disk",georgian:"Numërim gjeorgjian (an, ban, gan, etj.)",lowerAlpha:"Të vogla alfa (a, b, c, d, e, etj.)",lowerGreek:"Të vogla greke (alpha, beta, gamma, etj.)",lowerRoman:"Të vogla romake (i, ii, iii, iv, v, etj.)",none:"Asnjë",notset:"<e pazgjedhur>",numberedTitle:"Karakteristikat e Listës me Numra", +square:"Katror",start:"Fillimi",type:"LLoji",upperAlpha:"Të mëdha alfa (A, B, C, D, E, etj.)",upperRoman:"Të mëdha romake (I, II, III, IV, V, etj.)",validateStartNumber:"Numri i fillimit të listës duhet të është numër i plotë."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js new file mode 100644 index 00000000..df10d830 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr-latn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sr.js new file mode 100644 index 00000000..1864935a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sv.js new file mode 100644 index 00000000..8a5f9392 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sv",{armenian:"Armenisk numrering",bulletedTitle:"Egenskaper för punktlista",circle:"Cirkel",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal nolla (01, 02, 03, etc.)",disc:"Disk",georgian:"Georgisk numrering (an, ban, gan, etc.)",lowerAlpha:"Alpha gemener (a, b, c, d, e, etc.)",lowerGreek:"Grekiska gemener (alpha, beta, gamma, etc.)",lowerRoman:"Romerska gemener (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ej angiven>",numberedTitle:"Egenskaper för punktlista", +square:"Fyrkant",start:"Start",type:"Typ",upperAlpha:"Alpha versaler (A, B, C, D, E, etc.)",upperRoman:"Romerska versaler (I, II, III, IV, V, etc.)",validateStartNumber:"Listans startnummer måste vara ett heltal."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/th.js new file mode 100644 index 00000000..7ffb3ebd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/th.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","th",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/tr.js new file mode 100644 index 00000000..a19f7c73 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tr",{armenian:"Ermenice sayılandırma",bulletedTitle:"Simgeli Liste Özellikleri",circle:"Daire",decimal:"Ondalık (1, 2, 3, vs.)",decimalLeadingZero:"Başı sıfırlı ondalık (01, 02, 03, vs.)",disc:"Disk",georgian:"Gürcüce numaralandırma (an, ban, gan, vs.)",lowerAlpha:"Küçük Alpha (a, b, c, d, e, vs.)",lowerGreek:"Küçük Greek (alpha, beta, gamma, vs.)",lowerRoman:"Küçük Roman (i, ii, iii, iv, v, vs.)",none:"Yok",notset:"<ayarlanmamış>",numberedTitle:"Sayılandırılmış Liste Özellikleri", +square:"Kare",start:"Başla",type:"Tipi",upperAlpha:"Büyük Alpha (A, B, C, D, E, vs.)",upperRoman:"Büyük Roman (I, II, III, IV, V, vs.)",validateStartNumber:"Liste başlangıcı tam sayı olmalıdır."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/tt.js new file mode 100644 index 00000000..07fadad3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tt",{armenian:"Armenian numbering",bulletedTitle:"Маркерлы тезмә үзлекләре",circle:"Түгәрәк",decimal:"Унарлы (1, 2, 3, ...)",decimalLeadingZero:"Ноль белән башланган унарлы (01, 02, 03, ...)",disc:"Диск",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Һичбер",notset:"<билгеләнмәгән>",numberedTitle:"Numbered List Properties", +square:"Шакмак",start:"Башлау",type:"Төр",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ug.js new file mode 100644 index 00000000..d278f60d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/ug.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ug",{armenian:"قەدىمكى ئەرمىنىيە تەرتىپ نومۇرى شەكلى",bulletedTitle:"تۈر بەلگە تىزىم خاسلىقى",circle:"بوش چەمبەر",decimal:"سان (1, 2, 3 قاتارلىق)",decimalLeadingZero:"نۆلدىن باشلانغان سان بەلگە (01, 02, 03 قاتارلىق)",disc:"تولدۇرۇلغان چەمبەر",georgian:"قەدىمكى جورجىيە تەرتىپ نومۇرى شەكلى (an, ban, gan قاتارلىق)",lowerAlpha:"ئىنگلىزچە كىچىك ھەرپ (a, b, c, d, e قاتارلىق)",lowerGreek:"گرېكچە كىچىك ھەرپ (alpha, beta, gamma قاتارلىق)",lowerRoman:"كىچىك ھەرپلىك رىم رەقىمى (i, ii, iii, iv, v قاتارلىق)", +none:"بەلگە يوق",notset:"‹تەڭشەلمىگەن›",numberedTitle:"تەرتىپ نومۇر تىزىم خاسلىقى",square:"تولدۇرۇلغان تۆت چاسا",start:"باشلىنىش نومۇرى",type:"بەلگە تىپى",upperAlpha:"ئىنگلىزچە چوڭ ھەرپ (A, B, C, D, E قاتارلىق)",upperRoman:"چوڭ ھەرپلىك رىم رەقىمى (I, II, III, IV, V قاتارلىق)",validateStartNumber:"تىزىم باشلىنىش تەرتىپ نومۇرى چوقۇم پۈتۈن سان پىچىمىدا بولۇشى لازىم"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/uk.js new file mode 100644 index 00000000..de577116 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/uk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","uk",{armenian:"Вірменська нумерація",bulletedTitle:"Опції маркованого списку",circle:"Кільце",decimal:"Десяткові (1, 2, 3 і т.д.)",decimalLeadingZero:"Десяткові з нулем (01, 02, 03 і т.д.)",disc:"Кружечок",georgian:"Грузинська нумерація (an, ban, gan і т.д.)",lowerAlpha:"Малі лат. букви (a, b, c, d, e і т.д.)",lowerGreek:"Малі гр. букви (альфа, бета, гамма і т.д.)",lowerRoman:"Малі римські (i, ii, iii, iv, v і т.д.)",none:"Нема",notset:"<не вказано>",numberedTitle:"Опції нумерованого списку", +square:"Квадратик",start:"Почати з...",type:"Тип",upperAlpha:"Великі лат. букви (A, B, C, D, E і т.д.)",upperRoman:"Великі римські (I, II, III, IV, V і т.д.)",validateStartNumber:"Початковий номер списку повинен бути цілим числом."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/vi.js new file mode 100644 index 00000000..bd56db2b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/vi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","vi",{armenian:"Số theo kiểu Armenian",bulletedTitle:"Thuộc tính danh sách không thứ tự",circle:"Khuyên tròn",decimal:"Kiểu số (1, 2, 3 ...)",decimalLeadingZero:"Kiểu số (01, 02, 03...)",disc:"Hình đĩa",georgian:"Số theo kiểu Georgian (an, ban, gan...)",lowerAlpha:"Kiểu abc thường (a, b, c, d, e...)",lowerGreek:"Kiểu Hy Lạp (alpha, beta, gamma...)",lowerRoman:"Số La Mã kiểu thường (i, ii, iii, iv, v...)",none:"Không gì cả",notset:"<không thiết lập>",numberedTitle:"Thuộc tính danh sách có thứ tự", +square:"Hình vuông",start:"Bắt đầu",type:"Kiểu loại",upperAlpha:"Kiểu ABC HOA (A, B, C, D, E...)",upperRoman:"Số La Mã kiểu HOA (I, II, III, IV, V...)",validateStartNumber:"Số bắt đầu danh sách phải là một số nguyên."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js new file mode 100644 index 00000000..a27132cf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh-cn",{armenian:"传统的亚美尼亚编号方式",bulletedTitle:"项目列表属性",circle:"空心圆",decimal:"数字 (1, 2, 3, 等)",decimalLeadingZero:"0开头的数字标记(01, 02, 03, 等)",disc:"实心圆",georgian:"传统的乔治亚编号方式(an, ban, gan, 等)",lowerAlpha:"小写英文字母(a, b, c, d, e, 等)",lowerGreek:"小写希腊字母(alpha, beta, gamma, 等)",lowerRoman:"小写罗马数字(i, ii, iii, iv, v, 等)",none:"无标记",notset:"<没有设置>",numberedTitle:"编号列表属性",square:"实心方块",start:"开始序号",type:"标记类型",upperAlpha:"大写英文字母(A, B, C, D, E, 等)",upperRoman:"大写罗马数字(I, II, III, IV, V, 等)", +validateStartNumber:"列表开始序号必须为整数格式"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/zh.js new file mode 100644 index 00000000..566f075e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh",{armenian:"亞美尼亞數字",bulletedTitle:"項目符號清單屬性",circle:"圓圈",decimal:"小數點 (1, 2, 3, etc.)",decimalLeadingZero:"前綴 0 十位數字 (01, 02, 03, 等)",disc:"圓點",georgian:"喬治王時代數字 (an, ban, gan, 等)",lowerAlpha:"小寫字母 (a, b, c, d, e 等)",lowerGreek:"小寫希臘字母 (alpha, beta, gamma, 等)",lowerRoman:"小寫羅馬數字 (i, ii, iii, iv, v 等)",none:"無",notset:"<未設定>",numberedTitle:"編號清單屬性",square:"方塊",start:"開始",type:"類型",upperAlpha:"大寫字母 (A, B, C, D, E 等)",upperRoman:"大寫羅馬數字 (I, II, III, IV, V 等)", +validateStartNumber:"清單起始號碼須為一完整數字。"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/plugin.js new file mode 100644 index 00000000..22087218 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/liststyle/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b); +CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list", +command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png new file mode 100644 index 00000000..4a8d2bfd Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png new file mode 100644 index 00000000..b981bb5c Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png new file mode 100644 index 00000000..55b5b5f9 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/icon.png b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/icon.png new file mode 100644 index 00000000..e0634336 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/magicline/images/icon.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js new file mode 100644 index 00000000..25c3dff2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("mathjax",function(d){var c,b=d.lang.mathjax;return{title:b.title,minWidth:350,minHeight:100,contents:[{id:"info",elements:[{id:"equation",type:"textarea",label:b.dialogInput,onLoad:function(){var a=this;if(!(CKEDITOR.env.ie&&8==CKEDITOR.env.version))this.getInputElement().on("keyup",function(){c.setValue("\\("+a.getInputElement().getValue()+"\\)")})},setup:function(a){this.setValue(CKEDITOR.plugins.mathjax.trim(a.data.math))},commit:function(a){a.setData("math","\\("+this.getValue()+ +"\\)")}},{id:"documentation",type:"html",html:'<div style="width:100%;text-align:right;margin:-8px 0 10px"><a class="cke_mathjax_doc" href="'+b.docUrl+'" target="_black" style="cursor:pointer;color:#00B2CE;text-decoration:underline">'+b.docLabel+"</a></div>"},!(CKEDITOR.env.ie&&8==CKEDITOR.env.version)&&{id:"preview",type:"html",html:'<div style="width:100%;text-align:center;"><iframe style="border:0;width:0;height:0;font-size:20px" scrolling="no" frameborder="0" allowTransparency="true" src="'+CKEDITOR.plugins.mathjax.fixSrc+ +'"></iframe></div>',onLoad:function(){var a=CKEDITOR.document.getById(this.domId).getChild(0);c=new CKEDITOR.plugins.mathjax.frameWrapper(a,d)},setup:function(a){c.setValue(a.data.math)}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png new file mode 100644 index 00000000..85b8e11d Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png new file mode 100644 index 00000000..d25081be Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/images/loader.gif b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/images/loader.gif new file mode 100644 index 00000000..3ffb1811 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/images/loader.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ar.js new file mode 100644 index 00000000..64212f69 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ar",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"تحميل",pathName:"math"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ca.js new file mode 100644 index 00000000..33a353dc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ca",{title:"Matemàtiques a TeX",button:"Matemàtiques",dialogInput:"Escriu el TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentació TeX",loading:"carregant...",pathName:"matemàtiques"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/cs.js new file mode 100644 index 00000000..e2e0b510 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cs",{title:"Matematika v TeXu",button:"Matematika",dialogInput:"Zde napište TeXový kód",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentace k TeXu",loading:"Nahrává se...",pathName:"Matematika"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/cy.js new file mode 100644 index 00000000..bd919ba0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cy",{title:"Mathemateg mewn TeX",button:"Math",dialogInput:"Ysgrifennwch eich TeX yma",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dogfennaeth TeX",loading:"llwytho...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/de.js new file mode 100644 index 00000000..5cf71687 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","de",{title:"Mathematik in Tex",button:"Rechnung",dialogInput:"Schreiben Sie hier in Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tex Dokumentation",loading:"lädt...",pathName:"rechnen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/el.js new file mode 100644 index 00000000..affcd0e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","el",{title:"Μαθηματικά με τη γλώσσα TeX",button:"Μαθηματικά",dialogInput:"Γράψτε κώδικα TeX εδώ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Τεκμηρίωση TeX",loading:"γίνεται φόρτωση...",pathName:"μαθηματικά"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js new file mode 100644 index 00000000..d9f0cbde --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en-gb",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write you TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/en.js new file mode 100644 index 00000000..9e66c845 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/eo.js new file mode 100644 index 00000000..4aa7cb49 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","eo",{title:"Matematiko en TeX",button:"Matematiko",dialogInput:"Skribu vian TeX tien",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentado",loading:"estas ŝarganta",pathName:"matematiko"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/es.js new file mode 100644 index 00000000..6ec9e4dc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","es",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escribe tu TeX aquí",docUrl:"http://es.wikipedia.org/wiki/TeX",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fa.js new file mode 100644 index 00000000..d638a840 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fa",{title:"ریاضیات در تک",button:"ریاضی",dialogInput:"فرمول خود را اینجا بنویسید",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"مستندسازی فرمول نویسی",loading:"بارگیری",pathName:"ریاضی"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fi.js new file mode 100644 index 00000000..bd5140c1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fi",{title:"Matematiikkaa TeX:llä",button:"Matematiikka",dialogInput:"Kirjoita TeX:iä tähän",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentaatio",loading:"lataa...",pathName:"matematiikka"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fr.js new file mode 100644 index 00000000..bf1cb479 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fr",{title:"Mathématiques au format TeX",button:"Math",dialogInput:"Saisir la formule TeX ici",docUrl:"http://fr.wikibooks.org/wiki/LaTeX/Math%C3%A9matiques",docLabel:"Documentation du format TeX",loading:"chargement...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/gl.js new file mode 100644 index 00000000..0657f1f9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","gl",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escriba o seu TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/he.js new file mode 100644 index 00000000..9e5c21dc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","he",{title:"מתמטיקה בTeX",button:"מתמטיקה",dialogInput:"כתוב את הTeX שלך כאן",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"תיעוד TeX",loading:"טוען...",pathName:"מתמטיקה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/hr.js new file mode 100644 index 00000000..6e90bd5b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hr",{title:"Matematika u TeXu",button:"Matematika",dialogInput:"Napiši svoj TeX ovdje",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"učitavanje...",pathName:"matematika"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/hu.js new file mode 100644 index 00000000..3ab4b748 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hu",{title:"Matematika a TeX-ben",button:"Matek",dialogInput:"Írd a TeX-ed ide",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentáció",loading:"töltés...",pathName:"matek"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/it.js new file mode 100644 index 00000000..a91094a0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","it",{title:"Formule in TeX",button:"Formule",dialogInput:"Scrivere qui il proprio TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentazione TeX",loading:"caricamento…",pathName:"formula"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ja.js new file mode 100644 index 00000000..0141ecd7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ja",{title:"TeX形式の数式",button:"数式",dialogInput:"TeX形式の数式を入力してください",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeXの解説",loading:"読み込み中…",pathName:"math"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/km.js new file mode 100644 index 00000000..d68d998f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","km",{title:"គណិត​វិទ្យា​ក្នុង TeX",button:"គណិត",dialogInput:"សរសេរ TeX របស់​អ្នក​នៅ​ទីនេះ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"ឯកសារ​អត្ថបទ​ពី ​TeX",loading:"កំពុង​ផ្ទុក..",pathName:"គណិត"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/nb.js new file mode 100644 index 00000000..7b3588e2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nb",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/nl.js new file mode 100644 index 00000000..fe9cf316 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nl",{title:"Wiskunde in TeX",button:"Wiskunde",dialogInput:"Typ hier uw TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentatie",loading:"laden...",pathName:"wiskunde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/no.js new file mode 100644 index 00000000..33e87aba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","no",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pl.js new file mode 100644 index 00000000..70f2be53 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pl",{title:"Wzory matematyczne w TeX",button:"Wzory matematyczne",dialogInput:"Wpisz wyrażenie w TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentacja TeX",loading:"ładowanie...",pathName:"matematyka"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js new file mode 100644 index 00000000..6b9620d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt-br",{title:"Matemática em TeX",button:"Matemática",dialogInput:"Escreva seu TeX aqui",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"carregando...",pathName:"Matemática"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pt.js new file mode 100644 index 00000000..1f83fefa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt",{title:"Matemáticas em TeX",button:"Matemática",dialogInput:"Escreva aqui o seu Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"a carregar ...",pathName:"matemática"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ro.js new file mode 100644 index 00000000..72c606cb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ro",{title:"Matematici in TeX",button:"Matematici",dialogInput:"Scrie TeX-ul aici",docUrl:"http://ro.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentatie TeX",loading:"încarcă...",pathName:"matematici"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ru.js new file mode 100644 index 00000000..a48da75f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ru",{title:"Математика в TeX-системе",button:"Математика",dialogInput:"Введите здесь TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX документация",loading:"загрузка...",pathName:"мат."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sk.js new file mode 100644 index 00000000..1a54159d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sk",{title:"Matematika v TeX",button:"Matika",dialogInput:"Napíšte svoj TeX sem",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentácia TeX",loading:"načítavanie...",pathName:"matika"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sl.js new file mode 100644 index 00000000..c8df95b5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sl",{title:"Matematika v TeX",button:"Matematika",dialogInput:"Napišite svoj TeX tukaj",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"nalaganje...",pathName:"matematika"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sv.js new file mode 100644 index 00000000..7508fef7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sv",{title:"Mattematik i TeX",button:"Matte",dialogInput:"Skriv din TeX här",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentation",loading:"laddar",pathName:"matte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/tr.js new file mode 100644 index 00000000..a2925f17 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tr",{title:"TeX ile Matematik",button:"Matematik",dialogInput:"TeX kodunuzu buraya yazın",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX yardım dökümanı",loading:"yükleniyor...",pathName:"matematik"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/tt.js new file mode 100644 index 00000000..44003bdc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tt",{title:"TeX'та математика",button:"Математика",dialogInput:"Биредә TeX форматында аңлатмагызны языгыз",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX турыдна документлар",loading:"йөкләнә...",pathName:"математика"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/uk.js new file mode 100644 index 00000000..77875f4e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","uk",{title:"Математика у TeX",button:"Математика",dialogInput:"Наберіть тут на TeX'у",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Документація про TeX",loading:"завантажується…",pathName:"математика"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/vi.js new file mode 100644 index 00000000..66961038 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","vi",{title:"Toán học bằng TeX",button:"Toán",dialogInput:"Nhập mã TeX ở đây",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tài liệu TeX",loading:"đang nạp...",pathName:"toán"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js new file mode 100644 index 00000000..ea9ad35e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh-cn",{title:"TeX 语法的数学公式编辑器",button:"数学公式",dialogInput:"在此编写您的 TeX 指令",docUrl:"http://zh.wikipedia.org/wiki/TeX",docLabel:"TeX 语法(可以参考维基百科自身关于数学公式显示方式的帮助)",loading:"正在加载...",pathName:"数字公式"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/zh.js new file mode 100644 index 00000000..84cdab1c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh",{title:"以 TeX 表示數學",button:"數學",dialogInput:"請輸入 TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX 說明文件",loading:"載入中…",pathName:"數學"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/plugin.js new file mode 100644 index 00000000..44964b88 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/mathjax/plugin.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h="http://cdn.mathjax.org/mathjax/2.2-latest/MathJax.js?config=TeX-AMS_HTML";CKEDITOR.plugins.add("mathjax",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ro,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"mathjax",hidpi:!0,init:function(b){var c=b.config.mathJaxClass||"math-tex";b.widgets.add("mathjax",{inline:!0,dialog:"mathjax",button:b.lang.mathjax.button,mask:!0,allowedContent:"span(!"+c+")",styleToAllowedContentRules:function(a){a= +a.getClassesArray();if(!a)return null;a.push("!"+c);return"span("+a.join(",")+")"},pathName:b.lang.mathjax.pathName,template:'<span class="'+c+'" style="display:inline-block" data-cke-survive=1></span>',parts:{span:"span"},defaults:{math:"\\(x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}\\)"},init:function(){var a=this.parts.span.getChild(0);if(!a||a.type!=CKEDITOR.NODE_ELEMENT||!a.is("iframe"))a=new CKEDITOR.dom.element("iframe"),a.setAttributes({style:"border:0;width:0;height:0",scrolling:"no",frameborder:0, +allowTransparency:!0,src:CKEDITOR.plugins.mathjax.fixSrc}),this.parts.span.append(a);this.once("ready",function(){CKEDITOR.env.ie&&a.setAttribute("src",CKEDITOR.plugins.mathjax.fixSrc);this.frameWrapper=new CKEDITOR.plugins.mathjax.frameWrapper(a,b);this.frameWrapper.setValue(this.data.math)})},data:function(){this.frameWrapper&&this.frameWrapper.setValue(this.data.math)},upcast:function(a,b){if("span"==a.name&&a.hasClass(c)&&!(1<a.children.length||a.children[0].type!=CKEDITOR.NODE_TEXT)){b.math= +CKEDITOR.tools.htmlDecode(a.children[0].value);var d=a.attributes;d.style=d.style?d.style+";display:inline-block":"display:inline-block";d["data-cke-survive"]=1;a.children[0].remove();return a}},downcast:function(a){a.children[0].replaceWith(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.math)));var b=a.attributes;b.style=b.style.replace(/display:\s?inline-block;?\s?/,"");""===b.style&&delete b.style;return a}});CKEDITOR.dialog.add("mathjax",this.path+"dialogs/mathjax.js");b.on("contentPreview", +function(a){a.data.dataValue=a.data.dataValue.replace(/<\/head>/,'<script src="'+(b.config.mathJaxLib?CKEDITOR.getUrl(b.config.mathJaxLib):h)+'"><\/script></head>')});b.on("paste",function(a){a.data.dataValue=a.data.dataValue.replace(RegExp("<span[^>]*?"+c+".*?</span>","ig"),function(a){return a.replace(/(<iframe.*?\/iframe>)/i,"")})})}});CKEDITOR.plugins.mathjax={};CKEDITOR.plugins.mathjax.fixSrc=CKEDITOR.env.gecko?"javascript:true":CKEDITOR.env.ie?"javascript:void((function(){"+encodeURIComponent("document.open();("+ +CKEDITOR.tools.fixDomain+")();document.close();")+"})())":"javascript:void(0)";CKEDITOR.plugins.mathjax.loadingIcon=CKEDITOR.plugins.get("mathjax").path+"images/loader.gif";CKEDITOR.plugins.mathjax.copyStyles=function(b,c){for(var a="color font-family font-style font-weight font-variant font-size".split(" "),e=0;e<a.length;e++){var d=a[e],g=b.getComputedStyle(d);g&&c.setStyle(d,g)}};CKEDITOR.plugins.mathjax.trim=function(b){var c=b.indexOf("\\(")+2,a=b.lastIndexOf("\\)");return b.substring(c,a)}; +CKEDITOR.plugins.mathjax.frameWrapper=CKEDITOR.env.ie&&8==CKEDITOR.env.version?function(b,c){b.getFrameDocument().write('<!DOCTYPE html><html><head><meta charset="utf-8"></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span style="white-space:nowrap;" id="tex"></span></body></html>');return{setValue:function(a){var e=b.getFrameDocument(),d=e.getById("tex");d.setHtml(CKEDITOR.plugins.mathjax.trim(CKEDITOR.tools.htmlEncode(a)));CKEDITOR.plugins.mathjax.copyStyles(b,d); +c.fire("lockSnapshot");b.setStyles({width:Math.min(250,d.$.offsetWidth)+"px",height:e.$.body.offsetHeight+"px",display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot")}}}:function(b,c){function a(){f=b.getFrameDocument();f.getById("preview")||(CKEDITOR.env.ie&&b.removeAttribute("src"),f.write('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="text/x-mathjax-config">MathJax.Hub.Config( {showMathMenu: false,messageStyle: "none"} );function getCKE() {if ( typeof window.parent.CKEDITOR == \'object\' ) {return window.parent.CKEDITOR;} else {return window.parent.parent.CKEDITOR;}}function update() {MathJax.Hub.Queue([ \'Typeset\', MathJax.Hub, this.buffer ],function() {getCKE().tools.callFunction( '+ +m+" );});}MathJax.Hub.Queue( function() {getCKE().tools.callFunction("+n+');} );<\/script><script src="'+(c.config.mathJaxLib||h)+'"><\/script></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span id="preview"></span><span id="buffer" style="display:none"></span></body></html>'))}function e(){k=!0;i=j;c.fire("lockSnapshot");d.setHtml(i);g.setHtml("<img src="+CKEDITOR.plugins.mathjax.loadingIcon+" alt="+c.lang.mathjax.loading+">");b.setStyles({height:"16px",width:"16px", +display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot");f.getWindow().$.update(i)}var d,g,i,j,f=b.getFrameDocument(),l=!1,k=!1,n=CKEDITOR.tools.addFunction(function(){g=f.getById("preview");d=f.getById("buffer");l=!0;j&&e();CKEDITOR.fire("mathJaxLoaded",b)}),m=CKEDITOR.tools.addFunction(function(){CKEDITOR.plugins.mathjax.copyStyles(b,g);g.setHtml(d.getHtml());c.fire("lockSnapshot");b.setStyles({height:0,width:0});var a=Math.max(f.$.body.offsetHeight,f.$.documentElement.offsetHeight), +h=Math.max(g.$.offsetWidth,f.$.body.scrollWidth);b.setStyles({height:a+"px",width:h+"px"});c.fire("unlockSnapshot");CKEDITOR.fire("mathJaxUpdateDone",b);i!=j?e():k=!1});b.on("load",a);a();return{setValue:function(a){j=CKEDITOR.tools.htmlEncode(a);l&&!k&&e()}}}})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png new file mode 100644 index 00000000..1a7551c2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png new file mode 100644 index 00000000..8cbe2230 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png new file mode 100644 index 00000000..2c8ef7fe Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/newpage.png b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/newpage.png new file mode 100644 index 00000000..8e18c8a2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/icons/newpage.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/af.js new file mode 100644 index 00000000..2fd4a604 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","af",{toolbar:"Nuwe bladsy"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ar.js new file mode 100644 index 00000000..04f45c5c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ar",{toolbar:"صفحة جديدة"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bg.js new file mode 100644 index 00000000..b40fbf54 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bg",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bn.js new file mode 100644 index 00000000..aaedacbe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bn",{toolbar:"নতুন পেজ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bs.js new file mode 100644 index 00000000..f8a0c44e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bs",{toolbar:"Novi dokument"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ca.js new file mode 100644 index 00000000..4efb6079 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ca",{toolbar:"Nova pàgina"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/cs.js new file mode 100644 index 00000000..02960680 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cs",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/cy.js new file mode 100644 index 00000000..09e8b6fa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cy",{toolbar:"Tudalen Newydd"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/da.js new file mode 100644 index 00000000..22d0d6b1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","da",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/de.js new file mode 100644 index 00000000..8d323f87 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","de",{toolbar:"Neue Seite"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/el.js new file mode 100644 index 00000000..7f989b1a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","el",{toolbar:"Νέα Σελίδα"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-au.js new file mode 100644 index 00000000..6e38a28b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-au",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-ca.js new file mode 100644 index 00000000..327aa5d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-ca",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-gb.js new file mode 100644 index 00000000..3f7ab3e9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-gb",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en.js new file mode 100644 index 00000000..4402b73d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/eo.js new file mode 100644 index 00000000..671a107d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eo",{toolbar:"Nova Paĝo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/es.js new file mode 100644 index 00000000..ca54ae0d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","es",{toolbar:"Nueva Página"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/et.js new file mode 100644 index 00000000..59a58061 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","et",{toolbar:"Uus leht"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/eu.js new file mode 100644 index 00000000..82808efd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eu",{toolbar:"Orrialde Berria"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fa.js new file mode 100644 index 00000000..6986ba6d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fa",{toolbar:"برگهٴ تازه"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fi.js new file mode 100644 index 00000000..cc1e63df --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fi",{toolbar:"Tyhjennä"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fo.js new file mode 100644 index 00000000..778091e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fo",{toolbar:"Nýggj síða"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js new file mode 100644 index 00000000..de7bb951 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr-ca",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fr.js new file mode 100644 index 00000000..2de51702 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/gl.js new file mode 100644 index 00000000..96b7ea77 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gl",{toolbar:"Páxina nova"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/gu.js new file mode 100644 index 00000000..f4c3306c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gu",{toolbar:"નવુ પાનું"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/he.js new file mode 100644 index 00000000..460262b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","he",{toolbar:"דף חדש"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hi.js new file mode 100644 index 00000000..afed2e28 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hi",{toolbar:"नया पेज"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hr.js new file mode 100644 index 00000000..fc09d5af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hr",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hu.js new file mode 100644 index 00000000..6053528b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hu",{toolbar:"Új oldal"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/id.js new file mode 100644 index 00000000..391bdad6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","id",{toolbar:"Halaman Baru"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/is.js new file mode 100644 index 00000000..cee7f357 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","is",{toolbar:"Ný síða"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/it.js new file mode 100644 index 00000000..d484977e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","it",{toolbar:"Nuova pagina"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ja.js new file mode 100644 index 00000000..3954e55b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ja",{toolbar:"新しいページ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ka.js new file mode 100644 index 00000000..ee1bd799 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ka",{toolbar:"ახალი გვერდი"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/km.js new file mode 100644 index 00000000..0dcae481 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","km",{toolbar:"ទំព័រ​ថ្មី"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ko.js new file mode 100644 index 00000000..3ac6b6b6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ko",{toolbar:"새 문서"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ku.js new file mode 100644 index 00000000..b5d99596 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ku",{toolbar:"پەڕەیەکی نوێ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/lt.js new file mode 100644 index 00000000..a9572d6f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lt",{toolbar:"Naujas puslapis"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/lv.js new file mode 100644 index 00000000..d05d3900 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lv",{toolbar:"Jauna lapa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/mk.js new file mode 100644 index 00000000..0b4261c7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mk",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/mn.js new file mode 100644 index 00000000..7ea8f845 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mn",{toolbar:"Шинэ хуудас"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ms.js new file mode 100644 index 00000000..a6544940 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ms",{toolbar:"Helaian Baru"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/nb.js new file mode 100644 index 00000000..7d8addd9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nb",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/nl.js new file mode 100644 index 00000000..20ab5057 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nl",{toolbar:"Nieuwe pagina"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/no.js new file mode 100644 index 00000000..551cb365 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","no",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pl.js new file mode 100644 index 00000000..c2dd7686 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pl",{toolbar:"Nowa strona"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pt-br.js new file mode 100644 index 00000000..31120f06 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt-br",{toolbar:"Novo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pt.js new file mode 100644 index 00000000..556a89b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt",{toolbar:"Nova Página"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ro.js new file mode 100644 index 00000000..87336458 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ro",{toolbar:"Pagină nouă"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ru.js new file mode 100644 index 00000000..bdac86ef --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ru",{toolbar:"Новая страница"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/si.js new file mode 100644 index 00000000..166e5505 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","si",{toolbar:"නව පිටුවක්"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sk.js new file mode 100644 index 00000000..2ff850fd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sk",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sl.js new file mode 100644 index 00000000..b8bdbdb3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sl",{toolbar:"Nova stran"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sq.js new file mode 100644 index 00000000..eb508027 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sq",{toolbar:"Faqe e Re"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js new file mode 100644 index 00000000..1758d5c4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr-latn",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sr.js new file mode 100644 index 00000000..9289d01f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sv.js new file mode 100644 index 00000000..ce4099d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sv",{toolbar:"Ny sida"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/th.js new file mode 100644 index 00000000..f1647f27 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","th",{toolbar:"สร้างหน้าเอกสารใหม่"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/tr.js new file mode 100644 index 00000000..afba1bd6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tr",{toolbar:"Yeni Sayfa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/tt.js new file mode 100644 index 00000000..2c9e06ab --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tt",{toolbar:"Яңа бит"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ug.js new file mode 100644 index 00000000..739429ab --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ug",{toolbar:"يېڭى بەت"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/uk.js new file mode 100644 index 00000000..518a63ac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","uk",{toolbar:"Нова сторінка"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/vi.js new file mode 100644 index 00000000..16dffe6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","vi",{toolbar:"Trang mới"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js new file mode 100644 index 00000000..9868d6b1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh-cn",{toolbar:"新建"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/zh.js new file mode 100644 index 00000000..cd365f40 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh",{toolbar:"新增網頁"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/newpage/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/plugin.js new file mode 100644 index 00000000..c5d88b96 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/newpage/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("newpage",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"newpage,newpage-rtl",hidpi:!0,init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage", +command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png new file mode 100644 index 00000000..4a5418cb Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png new file mode 100644 index 00000000..8d3930bb Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png new file mode 100644 index 00000000..b5b342b0 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png new file mode 100644 index 00000000..5280a6e9 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif new file mode 100644 index 00000000..8d1cffd6 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/af.js new file mode 100644 index 00000000..3db5e2e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","af",{alt:"Bladsy-einde",toolbar:"Bladsy-einde invoeg"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ar.js new file mode 100644 index 00000000..6c795815 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ar",{alt:"فاصل الصفحة",toolbar:"إدخال صفحة جديدة"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bg.js new file mode 100644 index 00000000..32ea86b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bg",{alt:"Разделяне на страници",toolbar:"Вмъкване на нова страница при печат"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bn.js new file mode 100644 index 00000000..69bcc5d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bn",{alt:"Page Break",toolbar:"পেজ ব্রেক"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bs.js new file mode 100644 index 00000000..e33eb612 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bs",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ca.js new file mode 100644 index 00000000..8d1732ce --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ca",{alt:"Salt de pàgina",toolbar:"Insereix salt de pàgina"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/cs.js new file mode 100644 index 00000000..c2753103 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cs",{alt:"Konec stránky",toolbar:"Vložit konec stránky"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/cy.js new file mode 100644 index 00000000..b3f86a44 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cy",{alt:"Toriad Tudalen",toolbar:"Mewnosod Toriad Tudalen i Argraffu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/da.js new file mode 100644 index 00000000..206f3a63 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","da",{alt:"Sideskift",toolbar:"Indsæt sideskift"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/de.js new file mode 100644 index 00000000..06449421 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","de",{alt:"Seitenumbruch einfügen",toolbar:"Seitenumbruch einfügen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/el.js new file mode 100644 index 00000000..1b9c8728 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","el",{alt:"Αλλαγή Σελίδας",toolbar:"Εισαγωγή Τέλους Σελίδας για Εκτύπωση"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js new file mode 100644 index 00000000..ca24e8e9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-au",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js new file mode 100644 index 00000000..d4731567 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-ca",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js new file mode 100644 index 00000000..d17f8b0f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-gb",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en.js new file mode 100644 index 00000000..4b680ef1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/eo.js new file mode 100644 index 00000000..cb664749 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eo",{alt:"Paĝavanco",toolbar:"Enmeti Paĝavancon por Presado"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/es.js new file mode 100644 index 00000000..17379550 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","es",{alt:"Salto de página",toolbar:"Insertar Salto de Página"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/et.js new file mode 100644 index 00000000..463b200d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","et",{alt:"Lehevahetuskoht",toolbar:"Lehevahetuskoha sisestamine"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/eu.js new file mode 100644 index 00000000..42c24112 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eu",{alt:"Orrialde-jauzia",toolbar:"Txertatu Orrialde-jauzia Inprimatzean"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fa.js new file mode 100644 index 00000000..c8b8e186 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fa",{alt:"شکستن صفحه",toolbar:"گنجاندن شکستگی پایان برگه"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fi.js new file mode 100644 index 00000000..5dc52bd6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fi",{alt:"Sivunvaihto",toolbar:"Lisää sivunvaihto"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fo.js new file mode 100644 index 00000000..ba9b9dca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fo",{alt:"Síðuskift",toolbar:"Ger síðuskift"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js new file mode 100644 index 00000000..e5ec2329 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr-ca",{alt:"Saut de page",toolbar:"Insérer un saut de page à l'impression"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fr.js new file mode 100644 index 00000000..941c0b16 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr",{alt:"Saut de page",toolbar:"Saut de page"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/gl.js new file mode 100644 index 00000000..fd239f3f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gl",{alt:"Quebra de páxina",toolbar:"Inserir quebra de páxina"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/gu.js new file mode 100644 index 00000000..cd6a24e4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gu",{alt:"નવું પાનું",toolbar:"ઇન્સર્ટ પેજબ્રેક/પાનાને અલગ કરવું/દાખલ કરવું"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/he.js new file mode 100644 index 00000000..e5b8124e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","he",{alt:"שבירת דף",toolbar:"הוספת שבירת דף"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hi.js new file mode 100644 index 00000000..940a28fe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hi",{alt:"पेज ब्रेक",toolbar:"पेज ब्रेक इन्सर्ट् करें"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hr.js new file mode 100644 index 00000000..6f86601d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hr",{alt:"Prijelom stranice",toolbar:"Ubaci prijelom stranice"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hu.js new file mode 100644 index 00000000..6b9fd0e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hu",{alt:"Oldaltörés",toolbar:"Oldaltörés beillesztése"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/id.js new file mode 100644 index 00000000..71865adb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","id",{alt:"Halaman Istirahat",toolbar:"Sisip Halaman Istirahat untuk Pencetakan "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/is.js new file mode 100644 index 00000000..27f20878 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","is",{alt:"Page Break",toolbar:"Setja inn síðuskil"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/it.js new file mode 100644 index 00000000..1308ec6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","it",{alt:"Interruzione di pagina",toolbar:"Inserisci interruzione di pagina per la stampa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ja.js new file mode 100644 index 00000000..cc1574f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ja",{alt:"改ページ",toolbar:"印刷の為に改ページ挿入"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ka.js new file mode 100644 index 00000000..6c999ff4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ka",{alt:"გვერდის წყვეტა",toolbar:"გვერდის წყვეტა ბეჭდვისთვის"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/km.js new file mode 100644 index 00000000..ab157e3d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","km",{alt:"បំបែក​ទំព័រ",toolbar:"បន្ថែម​ការ​បំបែក​ទំព័រ​មុន​បោះពុម្ព"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ko.js new file mode 100644 index 00000000..c83c5e63 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ko",{alt:"패이지 나누기",toolbar:"인쇄시 페이지 나누기 삽입"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ku.js new file mode 100644 index 00000000..d9897842 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ku",{alt:"پشووی پەڕە",toolbar:"دانانی پشووی پەڕە بۆ چاپکردن"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/lt.js new file mode 100644 index 00000000..5879e3ca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lt",{alt:"Puslapio skirtukas",toolbar:"Įterpti puslapių skirtuką"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/lv.js new file mode 100644 index 00000000..d594489b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lv",{alt:"Lapas pārnesums",toolbar:"Ievietot lapas pārtraukumu drukai"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/mk.js new file mode 100644 index 00000000..5fdce2f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mk",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/mn.js new file mode 100644 index 00000000..272ffaf7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mn",{alt:"Page Break",toolbar:"Хуудас тусгаарлагч оруулах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ms.js new file mode 100644 index 00000000..e0988eec --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ms",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/nb.js new file mode 100644 index 00000000..15f45eeb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nb",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/nl.js new file mode 100644 index 00000000..5c05b168 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nl",{alt:"Pagina-einde",toolbar:"Pagina-einde invoegen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/no.js new file mode 100644 index 00000000..ec64c6bc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","no",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pl.js new file mode 100644 index 00000000..79861f98 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pl",{alt:"Wstaw podział strony",toolbar:"Wstaw podział strony"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js new file mode 100644 index 00000000..31d256d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt-br",{alt:"Quebra de Página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pt.js new file mode 100644 index 00000000..17ed211a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt",{alt:"Quebra de página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ro.js new file mode 100644 index 00000000..91833bac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ro",{alt:"Page Break",toolbar:"Inserează separator de pagină (Page Break)"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ru.js new file mode 100644 index 00000000..621682c1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ru",{alt:"Разрыв страницы",toolbar:"Вставить разрыв страницы для печати"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/si.js new file mode 100644 index 00000000..a232df64 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","si",{alt:"පිටු බිදුම",toolbar:"මුද්‍රණය සඳහා පිටු බිදුමක් ඇතුලත් කරන්න"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sk.js new file mode 100644 index 00000000..b465e98f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sk",{alt:"Zalomenie strany",toolbar:"Vložiť oddeľovač stránky pre tlač"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sl.js new file mode 100644 index 00000000..d07e9040 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sl",{alt:"Prelom Strani",toolbar:"Vstavi prelom strani"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sq.js new file mode 100644 index 00000000..3b570e03 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sq",{alt:"Thyerja e Faqes",toolbar:"Vendos Thyerje Faqeje për Shtyp"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js new file mode 100644 index 00000000..55877bac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr-latn",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sr.js new file mode 100644 index 00000000..9c6d9aff --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sv.js new file mode 100644 index 00000000..a2210ceb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sv",{alt:"Sidbrytning",toolbar:"Infoga sidbrytning för utskrift"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/th.js new file mode 100644 index 00000000..55a25317 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","th",{alt:"ตัวแบ่งหน้า",toolbar:"แทรกตัวแบ่งหน้า Page Break"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/tr.js new file mode 100644 index 00000000..d5e64a52 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tr",{alt:"Sayfa Sonu",toolbar:"Sayfa Sonu Ekle"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/tt.js new file mode 100644 index 00000000..df0ae8fb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tt",{alt:"Бит бүлгече",toolbar:"Бастыру өчен бит бүлгечен өстәү"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ug.js new file mode 100644 index 00000000..10404349 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ug",{alt:"بەت ئايرىغۇچ",toolbar:"بەت ئايرىغۇچ قىستۇر"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/uk.js new file mode 100644 index 00000000..0abba674 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","uk",{alt:"Розрив Сторінки",toolbar:"Вставити розрив сторінки"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/vi.js new file mode 100644 index 00000000..5787cb65 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","vi",{alt:"Ngắt trang",toolbar:"Chèn ngắt trang"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js new file mode 100644 index 00000000..39ec7add --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh-cn",{alt:"分页符",toolbar:"插入打印分页符"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/zh.js new file mode 100644 index 00000000..9b5a14c6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh",{alt:"換頁",toolbar:"插入換頁符號以便列印"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/plugin.js new file mode 100644 index 00000000..f9a7c3df --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pagebreak/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(a){return{"aria-label":a,"class":"cke_pagebreak",contenteditable:"false","data-cke-display-name":"pagebreak","data-cke-pagebreak":1,style:"page-break-after: always",title:a}}CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"pagebreak,pagebreak-rtl", +hidpi:!0,onLoad:function(){var a=("background:url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;clear:both;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;padding:0;height:5px;cursor:default;").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak{"+a+"}")},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak", +toolbar:"insert,70"}),CKEDITOR.env.webkit&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){function b(f){CKEDITOR.tools.extend(f.attributes,e(a.lang.pagebreak.alt),!0);f.children.length=0}var c=a.dataProcessor,g=c&&c.dataFilter,c=c&&c.htmlFilter,h=/page-break-after\s*:\s*always/i,i=/display\s*:\s*none/i;c&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak", +"");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>').children[0];b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},{applyToAll:!0,priority:5});g&&g.addRules({elements:{div:function(a){if(a.attributes["data-cke-pagebreak"])b(a);else if(h.test(a.attributes.style)){var c=a.children[0];c&&("span"==c.name&&i.test(c.attributes.style))&&b(a)}}}})}});CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b= +a.document.createElement("div",{attributes:e(a.lang.pagebreak.alt)});a.insertElement(b)},context:"div",allowedContent:{div:{styles:"!page-break-after"},span:{match:function(a){return(a=a.parent)&&"div"==a.name&&a.styles&&a.styles["page-break-after"]},styles:"display"}},requiredContent:"div{page-break-after}"}})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/panelbutton/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/panelbutton/plugin.js new file mode 100644 index 00000000..18adde8c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/panelbutton/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated= +!0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()}; +d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}}); +CKEDITOR.UI_PANELBUTTON="panelbutton"; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/pastefromword/filter/default.js b/platforms/android/assets/www/lib/ckeditor/plugins/pastefromword/filter/default.js new file mode 100644 index 00000000..899ed21b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/pastefromword/filter/default.js @@ -0,0 +1,31 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(a){for(var a=a.toUpperCase(),c=z.length,b=0,f=0;f<c;++f)for(var d=z[f],e=d[1].length;a.substr(0,e)==d[1];a=a.substr(e))b+=d[0];return b}function A(a){for(var a=a.toUpperCase(),c=B.length,b=1,f=1;0<a.length;f*=c)b+=B.indexOf(a.charAt(a.length-1))*f,a=a.substr(0,a.length-1);return b}var C=CKEDITOR.htmlParser.fragment.prototype,o=CKEDITOR.htmlParser.element.prototype;C.onlyChild=o.onlyChild=function(){var a=this.children;return 1==a.length&&a[0]||null};o.removeAnyChildWithName= +function(a){for(var c=this.children,b=[],f,d=0;d<c.length;d++)f=c[d],f.name&&(f.name==a&&(b.push(f),c.splice(d--,1)),b=b.concat(f.removeAnyChildWithName(a)));return b};o.getAncestor=function(a){for(var c=this.parent;c&&(!c.name||!c.name.match(a));)c=c.parent;return c};C.firstChild=o.firstChild=function(a){for(var c,b=0;b<this.children.length;b++)if(c=this.children[b],a(c)||c.name&&(c=c.firstChild(a)))return c;return null};o.addStyle=function(a,c,b){var f="";if("string"==typeof c)f+=a+":"+c+";";else{if("object"== +typeof a)for(var d in a)a.hasOwnProperty(d)&&(f+=d+":"+a[d]+";");else f+=a;b=c}this.attributes||(this.attributes={});a=this.attributes.style||"";a=(b?[f,a]:[a,f]).join(";");this.attributes.style=a.replace(/^;+|;(?=;)/g,"")};o.getStyle=function(a){var c=this.attributes.style;if(c)return c=CKEDITOR.tools.parseCssText(c,1),c[a]};CKEDITOR.dtd.parentOf=function(a){var c={},b;for(b in this)-1==b.indexOf("$")&&this[b][a]&&(c[b]=1);return c};var H=/^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i, +D=/^(?:\b0[^\s]*\s*){1,4}$/,x={ol:{decimal:/\d+/,"lower-roman":/^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/,"upper-roman":/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"lower-alpha":/^[a-z]+$/,"upper-alpha":/^[A-Z]+$/},ul:{disc:/[l\u00B7\u2002]/,circle:/[\u006F\u00D8]/,square:/[\u006E\u25C6]/}},z=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],B="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=0,t=null,w,E=CKEDITOR.plugins.pastefromword= +{utils:{createListBulletMarker:function(a,c){var b=new CKEDITOR.htmlParser.element("cke:listbullet");b.attributes={"cke:listsymbol":a[0]};b.add(new CKEDITOR.htmlParser.text(c));return b},isListBulletIndicator:function(a){if(/mso-list\s*:\s*Ignore/i.test(a.attributes&&a.attributes.style))return!0},isContainingOnlySpaces:function(a){var c;return(c=a.onlyChild())&&/^(:?\s| )+$/.test(c.value)},resolveList:function(a){var c=a.attributes,b;if((b=a.removeAnyChildWithName("cke:listbullet"))&&b.length&& +(b=b[0]))return a.name="cke:li",c.style&&(c.style=E.filters.stylesFilter([["text-indent"],["line-height"],[/^margin(:?-left)?$/,null,function(a){a=a.split(" ");a=CKEDITOR.tools.convertToPx(a[3]||a[1]||a[0]);!s&&(null!==t&&a>t)&&(s=a-t);t=a;c["cke:indent"]=s&&Math.ceil(a/s)+1||1}],[/^mso-list$/,null,function(a){var a=a.split(" "),b=Number(a[0].match(/\d+/)),a=Number(a[1].match(/\d+/));1==a&&(b!==w&&(c["cke:reset"]=1),w=b);c["cke:indent"]=a}]])(c.style,a)||""),c["cke:indent"]||(t=0,c["cke:indent"]= +1),CKEDITOR.tools.extend(c,b.attributes),!0;w=t=s=null;return!1},getStyleComponents:function(){var a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(a);return function(c,b,f){a.setStyle(c,b);for(var c={},b=f.length,d=0;d<b;d++)c[f[d]]=a.getStyle(f[d]);return c}}(),listDtdParents:CKEDITOR.dtd.parentOf("ol")},filters:{flattenList:function(a,c){var c="number"==typeof c?c:1,b=a.attributes,f;switch(b.type){case "a":f= +"lower-alpha";break;case "1":f="decimal"}for(var d=a.children,e,h=0;h<d.length;h++)if(e=d[h],e.name in CKEDITOR.dtd.$listItem){var j=e.attributes,g=e.children,m=g[g.length-1];m.name in CKEDITOR.dtd.$list&&(a.add(m,h+1),--g.length||d.splice(h--,1));e.name="cke:li";b.start&&!h&&(j.value=b.start);E.filters.stylesFilter([["tab-stops",null,function(a){(a=a.split(" ")[1].match(H))&&(t=CKEDITOR.tools.convertToPx(a[0]))}],1==c?["mso-list",null,function(a){a=a.split(" ");a=Number(a[0].match(/\d+/));a!==w&& +(j["cke:reset"]=1);w=a}]:null])(j.style);j["cke:indent"]=c;j["cke:listtype"]=a.name;j["cke:list-style-type"]=f}else if(e.name in CKEDITOR.dtd.$list){arguments.callee.apply(this,[e,c+1]);d=d.slice(0,h).concat(e.children).concat(d.slice(h+1));a.children=[];e=0;for(g=d.length;e<g;e++)a.add(d[e]);d=a.children}delete a.name;b["cke:list"]=1},assembleList:function(a){for(var c=a.children,b,f,d,e,h,j,a=[],g,m,i,l,k,p,n=0;n<c.length;n++)if(b=c[n],"cke:li"==b.name)if(b.name="li",f=b.attributes,i=(i=f["cke:listsymbol"])&& +i.match(/^(?:[(]?)([^\s]+?)([.)]?)$/),l=k=p=null,f["cke:ignored"])c.splice(n--,1);else{f["cke:reset"]&&(j=e=h=null);d=Number(f["cke:indent"]);d!=e&&(m=g=null);if(i){if(m&&x[m][g].test(i[1]))l=m,k=g;else for(var q in x)for(var u in x[q])if(x[q][u].test(i[1]))if("ol"==q&&/alpha|roman/.test(u)){if(g=/roman/.test(u)?y(i[1]):A(i[1]),!p||g<p)p=g,l=q,k=u}else{l=q;k=u;break}!l&&(l=i[2]?"ol":"ul")}else l=f["cke:listtype"]||"ol",k=f["cke:list-style-type"];m=l;g=k||("ol"==l?"decimal":"disc");k&&k!=("ol"==l? +"decimal":"disc")&&b.addStyle("list-style-type",k);if("ol"==l&&i){switch(k){case "decimal":p=Number(i[1]);break;case "lower-roman":case "upper-roman":p=y(i[1]);break;case "lower-alpha":case "upper-alpha":p=A(i[1])}b.attributes.value=p}if(j){if(d>e)a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),h.add(j);else{if(d<e){e-=d;for(var r;e--&&(r=j.parent);)j=r.parent}j.add(b)}c.splice(n--,1)}else a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),c[n]=j;h=b;e=d}else j&&(j=e=h=null);for(n=0;n<a.length;n++)if(j= +a[n],q=j.children,g=g=void 0,u=j.children.length,r=g=void 0,c=/list-style-type:(.*?)(?:;|$)/,e=CKEDITOR.plugins.pastefromword.filters.stylesFilter,g=j.attributes,!c.exec(g.style)){for(h=0;h<u;h++)if(g=q[h],g.attributes.value&&Number(g.attributes.value)==h+1&&delete g.attributes.value,g=c.exec(g.attributes.style))if(g[1]==r||!r)r=g[1];else{r=null;break}if(r){for(h=0;h<u;h++)g=q[h].attributes,g.style&&(g.style=e([["list-style-type"]])(g.style)||"");j.addStyle("list-style-type",r)}}w=t=s=null},falsyFilter:function(){return!1}, +stylesFilter:function(a,c){return function(b,f){var d=[];(b||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(b,e,g){e=e.toLowerCase();"font-family"==e&&(g=g.replace(/["']/g,""));for(var m,i,l,k=0;k<a.length;k++)if(a[k]&&(b=a[k][0],m=a[k][1],i=a[k][2],l=a[k][3],e.match(b)&&(!m||g.match(m)))){e=l||e;c&&(i=i||g);"function"==typeof i&&(i=i(g,f,e));i&&i.push&&(e=i[0],i=i[1]);"string"==typeof i&&d.push([e,i]);return}!c&&d.push([e,g])});for(var e=0;e<d.length;e++)d[e]= +d[e].join(":");return d.length?d.join(";")+";":!1}},elementMigrateFilter:function(a,c){return a?function(b){var f=c?(new CKEDITOR.style(a,c))._.definition:a;b.name=f.element;CKEDITOR.tools.extend(b.attributes,CKEDITOR.tools.clone(f.attributes));b.addStyle(CKEDITOR.style.getStyleText(f))}:function(){}},styleMigrateFilter:function(a,c){var b=this.elementMigrateFilter;return a?function(f,d){var e=new CKEDITOR.htmlParser.element(null),h={};h[c]=f;b(a,h)(e);e.children=d.children;d.children=[e];e.filter= +function(){};e.parent=d}:function(){}},bogusAttrFilter:function(a,c){if(-1==c.name.indexOf("cke:"))return!1},applyStyleFilter:null},getRules:function(a,c){var b=CKEDITOR.dtd,f=CKEDITOR.tools.extend({},b.$block,b.$listItem,b.$tableContent),d=a.config,e=this.filters,h=e.falsyFilter,j=e.stylesFilter,g=e.elementMigrateFilter,m=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),i=this.utils.createListBulletMarker,l=e.flattenList,k=e.assembleList,p=this.utils.isListBulletIndicator,n=this.utils.isContainingOnlySpaces, +q=this.utils.resolveList,u=function(a){a=CKEDITOR.tools.convertToPx(a);return isNaN(a)?a:a+"px"},r=this.utils.getStyleComponents,t=this.utils.listDtdParents,o=!1!==d.pasteFromWordRemoveFontStyles,s=!1!==d.pasteFromWordRemoveStyles;return{elementNames:[[/meta|link|script/,""]],root:function(a){a.filterChildren(c);k(a)},elements:{"^":function(a){var c;CKEDITOR.env.gecko&&(c=e.applyStyleFilter)&&c(a)},$:function(a){var v=a.name||"",e=a.attributes;v in f&&e.style&&(e.style=j([[/^(:?width|height)$/,null, +u]])(e.style)||"");if(v.match(/h\d/)){a.filterChildren(c);if(q(a))return;g(d["format_"+v])(a)}else if(v in b.$inline)a.filterChildren(c),n(a)&&delete a.name;else if(-1!=v.indexOf(":")&&-1==v.indexOf("cke")){a.filterChildren(c);if("v:imagedata"==v){if(v=a.attributes["o:href"])a.attributes.src=v;a.name="img";return}delete a.name}v in t&&(a.filterChildren(c),k(a))},style:function(a){if(CKEDITOR.env.gecko){var a=(a=a.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/))&&a[1],c={};a&& +(a.replace(/[\n\r]/g,"").replace(/(.+?)\{(.+?)\}/g,function(a,b,F){for(var b=b.split(","),a=b.length,d=0;d<a;d++)CKEDITOR.tools.trim(b[d]).replace(/^(\w+)(\.[\w-]+)?$/g,function(a,b,d){b=b||"*";d=d.substring(1,d.length);d.match(/MsoNormal/)||(c[b]||(c[b]={}),d?c[b][d]=F:c[b]=F)})}),e.applyStyleFilter=function(a){var b=c["*"]?"*":a.name,d=a.attributes&&a.attributes["class"];b in c&&(b=c[b],"object"==typeof b&&(b=b[d]),b&&a.addStyle(b,!0))})}return!1},p:function(a){if(/MsoListParagraph/i.exec(a.attributes["class"])|| +a.getStyle("mso-list")){var b=a.firstChild(function(a){return a.type==CKEDITOR.NODE_TEXT&&!n(a.parent)});(b=b&&b.parent)&&b.addStyle("mso-list","Ignore")}a.filterChildren(c);q(a)||(d.enterMode==CKEDITOR.ENTER_BR?(delete a.name,a.add(new CKEDITOR.htmlParser.element("br"))):g(d["format_"+(d.enterMode==CKEDITOR.ENTER_P?"p":"div")])(a))},div:function(a){var c=a.onlyChild();if(c&&"table"==c.name){var b=a.attributes;c.attributes=CKEDITOR.tools.extend(c.attributes,b);b.style&&c.addStyle(b.style);c=new CKEDITOR.htmlParser.element("div"); +c.addStyle("clear","both");a.add(c);delete a.name}},td:function(a){a.getAncestor("thead")&&(a.name="th")},ol:l,ul:l,dl:l,font:function(a){if(p(a.parent))delete a.name;else{a.filterChildren(c);var b=a.attributes,d=b.style,e=a.parent;"font"==e.name?(CKEDITOR.tools.extend(e.attributes,a.attributes),d&&e.addStyle(d),delete a.name):(d=(d||"").split(";"),b.color&&("#000000"!=b.color&&d.push("color:"+b.color),delete b.color),b.face&&(d.push("font-family:"+b.face),delete b.face),b.size&&(d.push("font-size:"+ +(3<b.size?"large":3>b.size?"small":"medium")),delete b.size),a.name="span",a.addStyle(d.join(";")))}},span:function(a){if(p(a.parent))return!1;a.filterChildren(c);if(n(a))return delete a.name,null;if(p(a)){var b=a.firstChild(function(a){return a.value||"img"==a.name}),e=(b=b&&(b.value||"l."))&&b.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);if(e)return b=i(e,b),(a=a.getAncestor("span"))&&/ mso-hide:\s*all|display:\s*none /.test(a.attributes.style)&&(b.attributes["cke:ignored"]=1),b}if(e=(b=a.attributes)&&b.style)b.style= +j([["line-height"],[/^font-family$/,null,!o?m(d.font_style,"family"):null],[/^font-size$/,null,!o?m(d.fontSize_style,"size"):null],[/^color$/,null,!o?m(d.colorButton_foreStyle,"color"):null],[/^background-color$/,null,!o?m(d.colorButton_backStyle,"color"):null]])(e,a)||"";b.style||delete b.style;CKEDITOR.tools.isEmpty(b)&&delete a.name;return null},b:g(d.coreStyles_bold),i:g(d.coreStyles_italic),u:g(d.coreStyles_underline),s:g(d.coreStyles_strike),sup:g(d.coreStyles_superscript),sub:g(d.coreStyles_subscript), +a:function(a){a=a.attributes;a.href&&a.href.match(/^file:\/\/\/[\S]+#/i)&&(a.href=a.href.replace(/^file:\/\/\/[^#]+/i,""))},"cke:listbullet":function(a){a.getAncestor(/h\d/)&&!d.pasteFromWordNumberedHeadingToList&&delete a.name}},attributeNames:[[/^onmouse(:?out|over)/,""],[/^onload$/,""],[/(?:v|o):\w+/,""],[/^lang/,""]],attributes:{style:j(s?[[/^list-style-type$/,null],[/^margin$|^margin-(?!bottom|top)/,null,function(a,b,c){if(b.name in{p:1,div:1}){b="ltr"==d.contentsLangDirection?"margin-left": +"margin-right";if("margin"==c)a=r(c,a,[b])[b];else if(c!=b)return null;if(a&&!D.test(a))return[b,a]}return null}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(a,b){if("img"==b.name)return a}],[/^width|height$/,null,function(a,b){if(b.name in{table:1,td:1,th:1,img:1})return a}]]:[[/^mso-/],[/-color$/,null,function(a){if("transparent"==a)return!1;if(CKEDITOR.env.gecko)return a.replace(/-moz-use-text-color/g,"transparent")}],[/^margin$/,D],["text-indent","0cm"],["page-break-before"], +["tab-stops"],["display","none"],o?[/font-?/]:null],s),width:function(a,c){if(c.name in b.$tableContent)return!1},border:function(a,c){if(c.name in b.$tableContent)return!1},"class":h,bgcolor:h,valign:s?h:function(a,b){b.addStyle("vertical-align",a);return!1}},comment:!CKEDITOR.env.ie?function(a,b){var c=a.match(/<img.*?>/),d=a.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);return d?(d=(c=d[1]||c&&"l.")&&c.match(/>(?:[(]?)([^\s]+?)([.)]?)</),i(d,c)):CKEDITOR.env.gecko&&c?(c=CKEDITOR.htmlParser.fragment.fromHtml(c[0]).children[0], +(d=(d=(d=b.previous)&&d.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/))&&d[1])&&(c.attributes.src=d),c):!1}:h}}},G=function(){this.dataFilter=new CKEDITOR.htmlParser.filter};G.prototype={toHtml:function(a){var a=CKEDITOR.htmlParser.fragment.fromHtml(a),c=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(c,this.dataFilter);return c.getHtml(!0)}};CKEDITOR.cleanWord=function(a,c){CKEDITOR.env.gecko&&(a=a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi,"$1$2$3"));CKEDITOR.env.webkit&& +(a=a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi,"$1<span>$2</span>$3"));var b=new G,f=b.dataFilter;f.addRules(CKEDITOR.plugins.pastefromword.getRules(c,f));c.fire("beforeCleanWord",{filter:f});try{a=b.toHtml(a)}catch(d){alert(c.lang.pastefromword.error)}a=a.replace(/cke:.*?".*?"/g,"");a=a.replace(/style=""/g,"");return a=a.replace(/<span>/g,"")}})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js new file mode 100644 index 00000000..f41e86d1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("placeholder",function(a){var b=a.lang.placeholder,a=a.lang.common.generalTab;return{title:b.title,minWidth:300,minHeight:80,contents:[{id:"info",label:a,title:a,elements:[{id:"name",type:"text",style:"width: 100%;",label:b.name,"default":"",required:!0,validate:CKEDITOR.dialog.validate.regex(/^[^\[\]\<\>]+$/,b.invalidName),setup:function(a){this.setValue(a.data.name)},commit:function(a){a.setData("name",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png new file mode 100644 index 00000000..0b7abcec Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png new file mode 100644 index 00000000..cb12b481 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ar.js new file mode 100644 index 00000000..2ca7673e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ar",{title:"خصائص الربط الموضعي",toolbar:"الربط الموضعي",name:"اسم الربط الموضعي",invalidName:"لا يمكن ترك الربط الموضعي فارغا و لا أن يحتوي على الرموز التالية [, ], <, >",pathName:"الربط الموضعي"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/bg.js new file mode 100644 index 00000000..78bd6649 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","bg",{title:"Настройки на контейнера",toolbar:"Нов контейнер",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ca.js new file mode 100644 index 00000000..f4115f16 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ca",{title:"Propietats del marcador de posició",toolbar:"Marcador de posició",name:"Nom del marcador de posició",invalidName:"El marcador de posició no pot estar en blanc ni pot contenir cap dels caràcters següents: [,],<,>",pathName:"marcador de posició"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/cs.js new file mode 100644 index 00000000..3c24a677 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cs",{title:"Vlastnosti vyhrazeného prostoru",toolbar:"Vytvořit vyhrazený prostor",name:"Název vyhrazeného prostoru",invalidName:"Vyhrazený prostor nesmí být prázdný či obsahovat následující znaky: [, ], <, >",pathName:"Vyhrazený prostor"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/cy.js new file mode 100644 index 00000000..55022779 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cy",{title:"Priodweddau'r Daliwr Geiriau",toolbar:"Daliwr Geiriau",name:"Enw'r Daliwr Geiriau",invalidName:"Dyw'r daliwr geiriau methu â bod yn wag ac na all gynnyws y nodau [, ], <, > ",pathName:"daliwr geiriau"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/da.js new file mode 100644 index 00000000..dcbee5b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","da",{title:"Egenskaber for pladsholder",toolbar:"Opret pladsholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/de.js new file mode 100644 index 00000000..be828cda --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","de",{title:"Platzhalter Einstellungen",toolbar:"Platzhalter erstellen",name:"Platzhalter Name",invalidName:"Der Platzhalter darf nicht leer sein und folgende Zeichen nicht enthalten: [, ], <, >",pathName:"Platzhalter"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/el.js new file mode 100644 index 00000000..af6b7526 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","el",{title:"Ιδιότητες Υποκαθιστόμενου Κειμένου",toolbar:"Δημιουργία Υποκαθιστόμενου Κειμένου",name:"Όνομα Υποκαθιστόμενου Κειμένου",invalidName:"Το υποκαθιστόμενου κειμένο πρέπει να μην είναι κενό και να μην έχει κανέναν από τους ακόλουθους χαρακτήρες: [, ], <, >",pathName:"υποκαθιστόμενο κείμενο"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js new file mode 100644 index 00000000..38006937 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en-gb",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of the following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/en.js new file mode 100644 index 00000000..d91d35e0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/eo.js new file mode 100644 index 00000000..7027a1ed --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eo",{title:"Atributoj de la rezervita spaco",toolbar:"Rezervita Spaco",name:"Nomo de la rezervita spaco",invalidName:"La rezervita spaco ne povas esti malplena kaj ne povas enteni la sekvajn signojn : [, ], <, >",pathName:"rezervita spaco"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/es.js new file mode 100644 index 00000000..1a9162d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","es",{title:"Propiedades del Marcador de Posición",toolbar:"Crear Marcador de Posición",name:"Nombre del Marcador de Posición",invalidName:"El marcador de posición no puede estar vacío y no puede contener ninguno de los siguientes caracteres: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/et.js new file mode 100644 index 00000000..f6f3dac6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","et",{title:"Kohahoidja omadused",toolbar:"Kohahoidja loomine",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/eu.js new file mode 100644 index 00000000..663ac7a3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eu",{title:"Leku-marka Aukerak",toolbar:"Leku-marka sortu",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fa.js new file mode 100644 index 00000000..967e55d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fa",{title:"ویژگی‌های محل نگهداری",toolbar:"ایجاد یک محل نگهداری",name:"نام مکان نگهداری",invalidName:"مکان نگهداری نمی‌تواند خالی باشد و همچنین نمی‌تواند محتوی نویسه‌های مقابل باشد: [, ], <, >",pathName:"مکان نگهداری"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fi.js new file mode 100644 index 00000000..5c3e1562 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fi",{title:"Paikkamerkin ominaisuudet",toolbar:"Luo paikkamerkki",name:"Paikkamerkin nimi",invalidName:"Paikkamerkki ei voi olla tyhjä eikä sisältää seuraavia merkkejä: [, ], <, >",pathName:"paikkamerkki"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js new file mode 100644 index 00000000..e803e71a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr-ca",{title:"Propriétés de l'espace réservé",toolbar:"Créer un espace réservé",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fr.js new file mode 100644 index 00000000..b4c39c95 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr",{title:"Propriétés de l'Espace réservé",toolbar:"Créer l'Espace réservé",name:"Nom de l'espace réservé",invalidName:"L'espace réservé ne peut pas être vide ni contenir l'un de ses caractères : [, ], <, >",pathName:"espace réservé"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/gl.js new file mode 100644 index 00000000..e4fff775 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","gl",{title:"Propiedades do marcador de posición",toolbar:"Crear un marcador de posición",name:"Nome do marcador de posición",invalidName:"O marcador de posición non pode estar baleiro e non pode conter ningún dos caracteres seguintes: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/he.js new file mode 100644 index 00000000..5202f509 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","he",{title:"מאפייני שומר מקום",toolbar:"צור שומר מקום",name:"שם שומר מקום",invalidName:"שומר מקום לא יכול להיות ריק ולא יכול להכיל את הסימנים: [, ], <, >",pathName:"שומר מקום"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/hr.js new file mode 100644 index 00000000..866a110e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hr",{title:"Svojstva rezerviranog mjesta",toolbar:"Napravi rezervirano mjesto",name:"Ime rezerviranog mjesta",invalidName:"Rezervirano mjesto ne može biti prazno niti može sadržavati ijedan od sljedećih znakova: [, ], <, >",pathName:"rezervirano mjesto"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/hu.js new file mode 100644 index 00000000..a8e58e71 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hu",{title:"Helytartó beállítások",toolbar:"Helytartó készítése",name:"Helytartó neve",invalidName:"A helytartó nem lehet üres, és nem tartalmazhatja a következő karaktereket:[, ], <, > ",pathName:"helytartó"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/id.js new file mode 100644 index 00000000..c22f138e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","id",{title:"Properti isian sementara",toolbar:"Buat isian sementara",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/it.js new file mode 100644 index 00000000..c4ade199 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","it",{title:"Proprietà segnaposto",toolbar:"Crea segnaposto",name:"Nome segnaposto",invalidName:"Il segnaposto non può essere vuoto e non può contenere nessuno dei seguenti caratteri: [, ], <, >",pathName:"segnaposto"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ja.js new file mode 100644 index 00000000..c1ed5b5f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ja",{title:"プレースホルダのプロパティ",toolbar:"プレースホルダを作成",name:"プレースホルダ名",invalidName:"プレースホルダは空欄にできません。また、[, ], <, > の文字は使用できません。",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/km.js new file mode 100644 index 00000000..0ae3e81b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","km",{title:"លក្ខណៈ Placeholder",toolbar:"បង្កើត Placeholder",name:"ឈ្មោះ Placeholder",invalidName:"Placeholder មិន​អាច​ទទេរ ហើយក៏​មិន​អាច​មាន​តួ​អក្សរ​ទាំង​នេះ​ទេ៖ [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ko.js new file mode 100644 index 00000000..2974ee2c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ko",{title:"플레이스홀도 속성",toolbar:"플레이스홀더 생성",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ku.js new file mode 100644 index 00000000..8f62811f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ku",{title:"خاسیەتی شوێن هەڵگر",toolbar:"درووستکردنی شوێن هەڵگر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/lv.js new file mode 100644 index 00000000..b2ba800e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","lv",{title:"Viettura uzstādījumi",toolbar:"Izveidot vietturi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/nb.js new file mode 100644 index 00000000..b379e52a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nb",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/nl.js new file mode 100644 index 00000000..2c743ed6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nl",{title:"Eigenschappen placeholder",toolbar:"Placeholder aanmaken",name:"Naam placeholder",invalidName:"De placeholder mag niet leeg zijn, en mag niet een van de volgende tekens bevatten: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/no.js new file mode 100644 index 00000000..e2192cd8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","no",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pl.js new file mode 100644 index 00000000..df0c3aee --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pl",{title:"Właściwości wypełniacza",toolbar:"Utwórz wypełniacz",name:"Nazwa wypełniacza",invalidName:"Wypełniacz nie może być pusty ani nie może zawierać żadnego z następujących znaków: [, ], < oraz >",pathName:"wypełniacz"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js new file mode 100644 index 00000000..e438cc16 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt-br",{title:"Propriedades do Espaço Reservado",toolbar:"Criar Espaço Reservado",name:"Nome do Espaço Reservado",invalidName:"O espaço reservado não pode estar vazio e não pode conter nenhum dos seguintes caracteres: [, ], <, >",pathName:"Espaço Reservado"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pt.js new file mode 100644 index 00000000..b6dc1150 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt",{title:"Propriedades dos Símbolos",toolbar:"Símbolo",name:"Nome do Símbolo",invalidName:"O símbolo não pode estar em branco e não pode conter qualquer dos seguintes carateres: [, ], <, >",pathName:"símbolo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ru.js new file mode 100644 index 00000000..11572b14 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ru",{title:"Свойства плейсхолдера",toolbar:"Создать плейсхолдер",name:"Имя плейсхолдера",invalidName:'Плейсхолдер не может быть пустым и содержать один из следующих символов: "[, ], <, >"',pathName:"плейсхолдер"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/si.js new file mode 100644 index 00000000..3fe4e3d1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","si",{title:"ස්ථාන හීම්කරුගේ ",toolbar:"ස්ථාන හීම්කරු නිර්මාණය කිරීම",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sk.js new file mode 100644 index 00000000..88800a99 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sk",{title:"Vlastnosti placeholdera",toolbar:"Vytvoriť placeholder",name:"Názov placeholdera",invalidName:"Placeholder nemôže byť prázdny a nemôže obsahovať žiadny z nasledujúcich znakov: [,],<,>",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sl.js new file mode 100644 index 00000000..60114c35 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sl",{title:"Lastnosti Ograde",toolbar:"Ustvari Ogrado",name:"Placeholder Ime",invalidName:"Placeholder ne more biti prazen in ne sme vsebovati katerega od naslednjih znakov: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sq.js new file mode 100644 index 00000000..6f54e135 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sq",{title:"Karakteristikat e Mbajtësit të Vendit",toolbar:"Krijo Mabjtës Vendi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sv.js new file mode 100644 index 00000000..66a19562 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sv",{title:"Innehållsrutans egenskaper",toolbar:"Skapa innehållsruta",name:"Innehållsrutans namn",invalidName:"Innehållsrutan får inte vara tom och får inte innehålla någon av följande tecken: [,],<,>",pathName:"innehållsruta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/th.js new file mode 100644 index 00000000..41198f94 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/th.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","th",{title:"คุณสมบัติเกี่ยวกับตัวยึด",toolbar:"สร้างตัวยึด",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/tr.js new file mode 100644 index 00000000..fc0d27dd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tr",{title:"Yer tutucu özellikleri",toolbar:"Yer tutucu oluşturun",name:"Yer Tutucu Adı",invalidName:"Yer tutucu adı boş bırakılamaz ve şu karakterleri içeremez: [, ], <, >",pathName:"yertutucu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/tt.js new file mode 100644 index 00000000..d636866f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tt",{title:"Тутырма үзлекләре",toolbar:"Тутырма",name:"Тутырма исеме",invalidName:"Тутырма буш булмаска тиеш һәм эчендә алдагы символлар булмаска тиеш: [, ], <, >",pathName:"тутырма"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ug.js new file mode 100644 index 00000000..db0ad2ce --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ug",{title:"ئورۇن بەلگە خاسلىقى",toolbar:"ئورۇن بەلگە قۇر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/uk.js new file mode 100644 index 00000000..015a82a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","uk",{title:"Налаштування Заповнювача",toolbar:"Створити Заповнювач",name:"Назва заповнювача",invalidName:"Заповнювач не може бути порожнім і не може містити наступні символи: [, ], <, >",pathName:"заповнювач"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/vi.js new file mode 100644 index 00000000..5875e467 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","vi",{title:"Thuộc tính đặt chỗ",toolbar:"Tạo đặt chỗ",name:"Tên giữ chỗ",invalidName:"Giữ chỗ không thể để trống và không thể chứa bất kỳ ký tự sau: [,], <, >",pathName:"giữ chỗ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js new file mode 100644 index 00000000..bd67dfa8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh-cn",{title:"占位符属性",toolbar:"占位符",name:"占位符名称",invalidName:"占位符名称不能为空,并且不能包含以下字符:[、]、<、>",pathName:"占位符"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/zh.js new file mode 100644 index 00000000..c400c26d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh",{title:"預留位置屬性",toolbar:"建立預留位置",name:"Placeholder 名稱",invalidName:"「預留位置」不可為空白且不可包含以下字元:[, ], <, >",pathName:"預留位置"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/plugin.js new file mode 100644 index 00000000..39dfb472 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/placeholder/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("placeholder",{requires:"widget,dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"placeholder",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_placeholder{background-color:#ff0}")},init:function(a){var b=a.lang.placeholder;CKEDITOR.dialog.add("placeholder",this.path+"dialogs/placeholder.js");a.widgets.add("placeholder",{dialog:"placeholder", +pathName:b.pathName,template:'<span class="cke_placeholder">[[]]</span>',downcast:function(){return new CKEDITOR.htmlParser.text("[["+this.data.name+"]]")},init:function(){this.setData("name",this.element.getText().slice(2,-2))},data:function(){this.element.setText("[["+this.data.name+"]]")}});a.ui.addButton&&a.ui.addButton("CreatePlaceholder",{label:b.toolbar,command:"placeholder",toolbar:"insert,5",icon:"placeholder"})},afterInit:function(a){var b=/\[\[([^\[\]])+\]\]/g;a.dataProcessor.dataFilter.addRules({text:function(f, +d){var e=d.parent&&CKEDITOR.dtd[d.parent.name];if(!e||e.span)return f.replace(b,function(b){var c=null,c=new CKEDITOR.htmlParser.element("span",{"class":"cke_placeholder"});c.add(new CKEDITOR.htmlParser.text(b));c=a.widgets.wrapElement(c,"placeholder");return c.getOuterHtml()})}})}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png new file mode 100644 index 00000000..cd64e19a Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png new file mode 100644 index 00000000..402db20e Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png new file mode 100644 index 00000000..1c9d9787 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/preview.png b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/preview.png new file mode 100644 index 00000000..162b44b8 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/preview/icons/preview.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/af.js new file mode 100644 index 00000000..97a16944 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","af",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ar.js new file mode 100644 index 00000000..a128ad1b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ar",{preview:"معاينة الصفحة"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bg.js new file mode 100644 index 00000000..5b88c365 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bg",{preview:"Преглед"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bn.js new file mode 100644 index 00000000..b95a1b55 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bn",{preview:"প্রিভিউ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bs.js new file mode 100644 index 00000000..1418f764 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bs",{preview:"Prikaži"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ca.js new file mode 100644 index 00000000..73458dd2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ca",{preview:"Visualització prèvia"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/cs.js new file mode 100644 index 00000000..f00d6eee --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cs",{preview:"Náhled"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/cy.js new file mode 100644 index 00000000..071c8d8d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cy",{preview:"Rhagolwg"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/da.js new file mode 100644 index 00000000..01f18bc8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","da",{preview:"Vis eksempel"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/de.js new file mode 100644 index 00000000..7c57cba3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","de",{preview:"Vorschau"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/el.js new file mode 100644 index 00000000..4aaeeb4b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","el",{preview:"Προεπισκόπιση"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-au.js new file mode 100644 index 00000000..f10aa05e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-au",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-ca.js new file mode 100644 index 00000000..3a7244b2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-ca",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-gb.js new file mode 100644 index 00000000..78d19abd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-gb",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en.js new file mode 100644 index 00000000..c1901ef8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/eo.js new file mode 100644 index 00000000..5fa3dd6b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eo",{preview:"Vidigi Aspekton"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/es.js new file mode 100644 index 00000000..d507847e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","es",{preview:"Vista Previa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/et.js new file mode 100644 index 00000000..a47ea46c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","et",{preview:"Eelvaade"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/eu.js new file mode 100644 index 00000000..ac83687c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eu",{preview:"Aurrebista"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fa.js new file mode 100644 index 00000000..ad85c381 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fa",{preview:"پیشنمایش"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fi.js new file mode 100644 index 00000000..6785c5b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fi",{preview:"Esikatsele"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fo.js new file mode 100644 index 00000000..779ef877 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fo",{preview:"Frumsýning"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fr-ca.js new file mode 100644 index 00000000..3731a101 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr-ca",{preview:"Prévisualiser"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fr.js new file mode 100644 index 00000000..ca8852b4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr",{preview:"Aperçu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/gl.js new file mode 100644 index 00000000..ab8a82a2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gl",{preview:"Vista previa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/gu.js new file mode 100644 index 00000000..e7b298b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gu",{preview:"પૂર્વદર્શન"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/he.js new file mode 100644 index 00000000..420a9340 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","he",{preview:"תצוגה מקדימה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hi.js new file mode 100644 index 00000000..397d2786 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hi",{preview:"प्रीव्यू"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hr.js new file mode 100644 index 00000000..5a85fc9c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hr",{preview:"Pregledaj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hu.js new file mode 100644 index 00000000..b96a4360 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hu",{preview:"Előnézet"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/id.js new file mode 100644 index 00000000..8c7819d2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","id",{preview:"Pratinjau"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/is.js new file mode 100644 index 00000000..5fac3cd4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","is",{preview:"Forskoða"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/it.js new file mode 100644 index 00000000..a9453f97 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","it",{preview:"Anteprima"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ja.js new file mode 100644 index 00000000..6b7cd82f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ja",{preview:"プレビュー"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ka.js new file mode 100644 index 00000000..bc1590db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ka",{preview:"გადახედვა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/km.js new file mode 100644 index 00000000..68ab55fa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","km",{preview:"មើល​ជា​មុន"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ko.js new file mode 100644 index 00000000..ac824da1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ko",{preview:"미리보기"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ku.js new file mode 100644 index 00000000..19594b66 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ku",{preview:"پێشبینین"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/lt.js new file mode 100644 index 00000000..814a9213 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lt",{preview:"Peržiūra"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/lv.js new file mode 100644 index 00000000..7a27eb2b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lv",{preview:"Priekšskatīt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/mk.js new file mode 100644 index 00000000..b0beed9c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mk",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/mn.js new file mode 100644 index 00000000..6f2448c2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mn",{preview:"Уридчлан харах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ms.js new file mode 100644 index 00000000..f3c596ea --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ms",{preview:"Prebiu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/nb.js new file mode 100644 index 00000000..ea20b380 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nb",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/nl.js new file mode 100644 index 00000000..ed67f978 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nl",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/no.js new file mode 100644 index 00000000..0c13be89 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","no",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pl.js new file mode 100644 index 00000000..11f306e5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pl",{preview:"Podgląd"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pt-br.js new file mode 100644 index 00000000..e7f58261 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt-br",{preview:"Visualizar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pt.js new file mode 100644 index 00000000..92e354db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt",{preview:"Pré-visualizar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ro.js new file mode 100644 index 00000000..646e2319 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ro",{preview:"Previzualizare"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ru.js new file mode 100644 index 00000000..11c59a41 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ru",{preview:"Предварительный просмотр"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/si.js new file mode 100644 index 00000000..a205a154 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","si",{preview:"නැවත "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sk.js new file mode 100644 index 00000000..abee94b1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sk",{preview:"Náhľad"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sl.js new file mode 100644 index 00000000..a5ba8ba7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sl",{preview:"Predogled"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sq.js new file mode 100644 index 00000000..ef5e65b6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sq",{preview:"Parashiko"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sr-latn.js new file mode 100644 index 00000000..8c50b69d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr-latn",{preview:"Izgled stranice"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sr.js new file mode 100644 index 00000000..c01f9362 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr",{preview:"Изглед странице"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sv.js new file mode 100644 index 00000000..f5a3f5aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sv",{preview:"Förhandsgranska"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/th.js new file mode 100644 index 00000000..047e25f1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","th",{preview:"ดูหน้าเอกสารตัวอย่าง"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/tr.js new file mode 100644 index 00000000..dd331bd1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tr",{preview:"Ön İzleme"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/tt.js new file mode 100644 index 00000000..9b5e62ce --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tt",{preview:"Карап алу"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ug.js new file mode 100644 index 00000000..06549fd1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ug",{preview:"ئالدىن كۆزەت"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/uk.js new file mode 100644 index 00000000..8d45b877 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","uk",{preview:"Попередній перегляд"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/vi.js new file mode 100644 index 00000000..ba28bcc9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","vi",{preview:"Xem trước"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/zh-cn.js new file mode 100644 index 00000000..69445d04 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh-cn",{preview:"预览"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/zh.js new file mode 100644 index 00000000..2ebf415a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh",{preview:"預覽"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/preview/plugin.js new file mode 100644 index 00000000..a21212c8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h,i={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var g,b=a.config,f=b.baseHref?'<base href="'+b.baseHref+'"/>':"";if(b.fullPage)g=a.getData().replace(/<head>/,"$&"+f).replace(/[^>]*(?=<\/title>)/,"$& — "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));g=a.config.docType+'<html dir="'+a.config.contentsLangDirection+ +'"><head>'+f+"<title>"+a.lang.preview.preview+""+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+""+(b+">")+a.getData()+""}f=640;b=420;d=80;try{var c=window.screen,f=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(i){}if(!1===a.fire("contentPreview",a={dataValue:g}))return!1;var c="",e;CKEDITOR.env.ie&&(window._cke_htmlToLoad=a.dataValue,e="javascript:void( (function(){document.open();"+("("+CKEDITOR.tools.fixDomain+")();").replace(/\/\/.*?\n/g, +"").replace(/parent\./g,"window.opener.")+"document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )",c="");CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a.dataValue,c=CKEDITOR.getUrl(h+"preview.html"));c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+f+",height="+b+",left="+d);CKEDITOR.env.ie&&c&&(c.location=e);!CKEDITOR.env.ie&&!CKEDITOR.env.gecko&&(e=c.document,e.open(),e.write(a.dataValue), +e.close());return!0}};CKEDITOR.plugins.add("preview",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"preview,preview-rtl",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(h=this.path,a.addCommand("preview",i),a.ui.addButton&&a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview", +toolbar:"document,40"}))}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/preview/preview.html b/platforms/android/assets/www/lib/ckeditor/plugins/preview/preview.html new file mode 100644 index 00000000..8c028262 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/preview/preview.html @@ -0,0 +1,13 @@ + diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/icons/hidpi/print.png b/platforms/android/assets/www/lib/ckeditor/plugins/print/icons/hidpi/print.png new file mode 100644 index 00000000..4b72460d Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/print/icons/hidpi/print.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/icons/print.png b/platforms/android/assets/www/lib/ckeditor/plugins/print/icons/print.png new file mode 100644 index 00000000..06f797dc Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/print/icons/print.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/af.js new file mode 100644 index 00000000..61185ef1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","af",{toolbar:"Druk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ar.js new file mode 100644 index 00000000..b61c0946 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ar",{toolbar:"طباعة"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bg.js new file mode 100644 index 00000000..6d929a8f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bg",{toolbar:"Печат"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bn.js new file mode 100644 index 00000000..005dfd28 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bn",{toolbar:"প্রিন্ট"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bs.js new file mode 100644 index 00000000..a6399186 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bs",{toolbar:"Štampaj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ca.js new file mode 100644 index 00000000..76f7145f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ca",{toolbar:"Imprimeix"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/cs.js new file mode 100644 index 00000000..8927afb8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cs",{toolbar:"Tisk"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/cy.js new file mode 100644 index 00000000..173df74e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cy",{toolbar:"Argraffu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/da.js new file mode 100644 index 00000000..d816585f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","da",{toolbar:"Udskriv"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/de.js new file mode 100644 index 00000000..a429f6cd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","de",{toolbar:"Drucken"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/el.js new file mode 100644 index 00000000..d5623ebd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","el",{toolbar:"Εκτύπωση"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-au.js new file mode 100644 index 00000000..191384e6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-au",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-ca.js new file mode 100644 index 00000000..aff5850e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-ca",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-gb.js new file mode 100644 index 00000000..84a26bdf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-gb",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en.js new file mode 100644 index 00000000..17461f29 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/eo.js new file mode 100644 index 00000000..b0580c1c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eo",{toolbar:"Presi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/es.js new file mode 100644 index 00000000..5549ced6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","es",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/et.js new file mode 100644 index 00000000..cd192d60 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","et",{toolbar:"Printimine"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/eu.js new file mode 100644 index 00000000..6690c535 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eu",{toolbar:"Inprimatu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fa.js new file mode 100644 index 00000000..2445e39e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fa",{toolbar:"چاپ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fi.js new file mode 100644 index 00000000..2547e349 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fi",{toolbar:"Tulosta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fo.js new file mode 100644 index 00000000..1c93841a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fo",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fr-ca.js new file mode 100644 index 00000000..ecedc161 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr-ca",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fr.js new file mode 100644 index 00000000..1ae9a1d2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/gl.js new file mode 100644 index 00000000..47ef182c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gl",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/gu.js new file mode 100644 index 00000000..a6c1366f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gu",{toolbar:"પ્રિન્ટ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/he.js new file mode 100644 index 00000000..a9e047af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","he",{toolbar:"הדפסה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hi.js new file mode 100644 index 00000000..06ae5981 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hi",{toolbar:"प्रिन्ट"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hr.js new file mode 100644 index 00000000..ffbd7f74 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hr",{toolbar:"Ispiši"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hu.js new file mode 100644 index 00000000..1b1fb4e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hu",{toolbar:"Nyomtatás"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/id.js new file mode 100644 index 00000000..4df05eb7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","id",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/is.js new file mode 100644 index 00000000..0fb61680 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","is",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/it.js new file mode 100644 index 00000000..f8a79668 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","it",{toolbar:"Stampa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ja.js new file mode 100644 index 00000000..dbfd00bc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ja",{toolbar:"印刷"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ka.js new file mode 100644 index 00000000..86dc40f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ka",{toolbar:"ბეჭდვა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/km.js new file mode 100644 index 00000000..35450b4c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","km",{toolbar:"បោះពុម្ព"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ko.js new file mode 100644 index 00000000..9657b437 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ko",{toolbar:"인쇄하기"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ku.js new file mode 100644 index 00000000..fce60ec7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ku",{toolbar:"چاپکردن"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/lt.js new file mode 100644 index 00000000..1829455b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lt",{toolbar:"Spausdinti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/lv.js new file mode 100644 index 00000000..e03d0b5d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lv",{toolbar:"Drukāt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/mk.js new file mode 100644 index 00000000..63fd4d06 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mk",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/mn.js new file mode 100644 index 00000000..8df85cf9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mn",{toolbar:"Хэвлэх"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ms.js new file mode 100644 index 00000000..ca8734bd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ms",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/nb.js new file mode 100644 index 00000000..e65fcfd9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nb",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/nl.js new file mode 100644 index 00000000..41ecffd4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nl",{toolbar:"Afdrukken"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/no.js new file mode 100644 index 00000000..afb031f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","no",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pl.js new file mode 100644 index 00000000..1bdbdebb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pl",{toolbar:"Drukuj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pt-br.js new file mode 100644 index 00000000..9246c27d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt-br",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pt.js new file mode 100644 index 00000000..a72195ba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ro.js new file mode 100644 index 00000000..2f331d22 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ro",{toolbar:"Printează"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ru.js new file mode 100644 index 00000000..458a9c14 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ru",{toolbar:"Печать"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/si.js new file mode 100644 index 00000000..68d3f56d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","si",{toolbar:"මුද්‍රණය කරන්න"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sk.js new file mode 100644 index 00000000..7762bb2e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sk",{toolbar:"Tlač"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sl.js new file mode 100644 index 00000000..9f401ddb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sl",{toolbar:"Natisni"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sq.js new file mode 100644 index 00000000..bfb05a47 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sq",{toolbar:"Shtype"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sr-latn.js new file mode 100644 index 00000000..62cdc718 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr-latn",{toolbar:"Štampa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sr.js new file mode 100644 index 00000000..74f6430e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr",{toolbar:"Штампа"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sv.js new file mode 100644 index 00000000..14181ba8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sv",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/th.js new file mode 100644 index 00000000..e87d3ac2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","th",{toolbar:"สั่งพิมพ์"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/tr.js new file mode 100644 index 00000000..82f81f05 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tr",{toolbar:"Yazdır"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/tt.js new file mode 100644 index 00000000..db8ff025 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tt",{toolbar:"Бастыру"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ug.js new file mode 100644 index 00000000..6c270318 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ug",{toolbar:"باس "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/uk.js new file mode 100644 index 00000000..dfde34dc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","uk",{toolbar:"Друк"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/vi.js new file mode 100644 index 00000000..56573948 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","vi",{toolbar:"In"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/zh-cn.js new file mode 100644 index 00000000..d7c2643d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh-cn",{toolbar:"打印"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/zh.js new file mode 100644 index 00000000..65b8840d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh",{toolbar:"列印"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/print/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/print/plugin.js new file mode 100644 index 00000000..0b802e39 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/print/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("print",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"print,",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}}); +CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print")},canUndo:!1,readOnly:1,modes:{wysiwyg:1}}; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/icons/hidpi/save.png b/platforms/android/assets/www/lib/ckeditor/plugins/save/icons/hidpi/save.png new file mode 100644 index 00000000..fc59f677 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/save/icons/hidpi/save.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/icons/save.png b/platforms/android/assets/www/lib/ckeditor/plugins/save/icons/save.png new file mode 100644 index 00000000..51b8f6ee Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/save/icons/save.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/af.js new file mode 100644 index 00000000..aa5b37e3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","af",{toolbar:"Bewaar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ar.js new file mode 100644 index 00000000..eb09ee54 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ar",{toolbar:"حفظ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bg.js new file mode 100644 index 00000000..ecdf23c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bg",{toolbar:"Запис"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bn.js new file mode 100644 index 00000000..b4e2d6c8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bn",{toolbar:"সংরক্ষন কর"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bs.js new file mode 100644 index 00000000..d94efe89 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bs",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ca.js new file mode 100644 index 00000000..8704f585 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ca",{toolbar:"Desa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/cs.js new file mode 100644 index 00000000..e337b9e4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cs",{toolbar:"Uložit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/cy.js new file mode 100644 index 00000000..1f8eb814 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cy",{toolbar:"Cadw"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/da.js new file mode 100644 index 00000000..1ff06c69 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","da",{toolbar:"Gem"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/de.js new file mode 100644 index 00000000..603359ba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","de",{toolbar:"Speichern"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/el.js new file mode 100644 index 00000000..1aaf9ef2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","el",{toolbar:"Αποθήκευση"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-au.js new file mode 100644 index 00000000..0ace64e5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-au",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-ca.js new file mode 100644 index 00000000..993a86e4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-ca",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-gb.js new file mode 100644 index 00000000..19c382db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-gb",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en.js new file mode 100644 index 00000000..1ee67693 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/eo.js new file mode 100644 index 00000000..dd7a1940 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eo",{toolbar:"Konservi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/es.js new file mode 100644 index 00000000..b07eea63 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","es",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/et.js new file mode 100644 index 00000000..5bfb76ca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","et",{toolbar:"Salvestamine"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/eu.js new file mode 100644 index 00000000..fec1f853 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eu",{toolbar:"Gorde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fa.js new file mode 100644 index 00000000..fb3f2a39 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fa",{toolbar:"ذخیره"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fi.js new file mode 100644 index 00000000..93d4db54 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fi",{toolbar:"Tallenna"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fo.js new file mode 100644 index 00000000..4b452683 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fo",{toolbar:"Goym"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fr-ca.js new file mode 100644 index 00000000..eacb6ea5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr-ca",{toolbar:"Sauvegarder"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fr.js new file mode 100644 index 00000000..8df018d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr",{toolbar:"Enregistrer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/gl.js new file mode 100644 index 00000000..1bd43328 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gl",{toolbar:"Gardar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/gu.js new file mode 100644 index 00000000..683842a8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gu",{toolbar:"સેવ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/he.js new file mode 100644 index 00000000..de52496b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","he",{toolbar:"שמירה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hi.js new file mode 100644 index 00000000..36e3a750 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hi",{toolbar:"सेव"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hr.js new file mode 100644 index 00000000..cd0d6f42 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hr",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hu.js new file mode 100644 index 00000000..e2de2005 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hu",{toolbar:"Mentés"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/id.js new file mode 100644 index 00000000..7f1760b6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","id",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/is.js new file mode 100644 index 00000000..5f985898 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","is",{toolbar:"Vista"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/it.js new file mode 100644 index 00000000..fdfe51a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","it",{toolbar:"Salva"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ja.js new file mode 100644 index 00000000..41801c4e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ja",{toolbar:"保存"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ka.js new file mode 100644 index 00000000..d3d0456c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ka",{toolbar:"ჩაწერა"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/km.js new file mode 100644 index 00000000..82f44957 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","km",{toolbar:"រក្សាទុក"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ko.js new file mode 100644 index 00000000..f1a4191c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ko",{toolbar:"저장하기"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ku.js new file mode 100644 index 00000000..649a8cc1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ku",{toolbar:"پاشکەوتکردن"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/lt.js new file mode 100644 index 00000000..ea89ceee --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lt",{toolbar:"Išsaugoti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/lv.js new file mode 100644 index 00000000..6d8c0c83 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lv",{toolbar:"Saglabāt"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/mk.js new file mode 100644 index 00000000..0405ba87 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mk",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/mn.js new file mode 100644 index 00000000..ed1d40aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mn",{toolbar:"Хадгалах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ms.js new file mode 100644 index 00000000..8b557e7a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ms",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/nb.js new file mode 100644 index 00000000..0bce93de --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nb",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/nl.js new file mode 100644 index 00000000..46110539 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nl",{toolbar:"Opslaan"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/no.js new file mode 100644 index 00000000..d58f02e4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","no",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pl.js new file mode 100644 index 00000000..8214669e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pl",{toolbar:"Zapisz"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pt-br.js new file mode 100644 index 00000000..64c537a2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt-br",{toolbar:"Salvar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pt.js new file mode 100644 index 00000000..a30393be --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ro.js new file mode 100644 index 00000000..05329bcd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ro",{toolbar:"Salvează"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ru.js new file mode 100644 index 00000000..9c755418 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ru",{toolbar:"Сохранить"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/si.js new file mode 100644 index 00000000..6305fe65 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","si",{toolbar:"ආරක්ෂා කරන්න"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sk.js new file mode 100644 index 00000000..f3ea59bd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sk",{toolbar:"Uložiť"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sl.js new file mode 100644 index 00000000..e8ff1758 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sl",{toolbar:"Shrani"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sq.js new file mode 100644 index 00000000..493dca31 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sq",{toolbar:"Ruaje"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sr-latn.js new file mode 100644 index 00000000..fe27f2b8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr-latn",{toolbar:"Sačuvaj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sr.js new file mode 100644 index 00000000..3fa9e1ca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr",{toolbar:"Сачувај"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sv.js new file mode 100644 index 00000000..a2e40dda --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sv",{toolbar:"Spara"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/th.js new file mode 100644 index 00000000..8e1c28dd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","th",{toolbar:"บันทึก"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/tr.js new file mode 100644 index 00000000..bb638ac3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tr",{toolbar:"Kaydet"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/tt.js new file mode 100644 index 00000000..757f3f71 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tt",{toolbar:"Саклау"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ug.js new file mode 100644 index 00000000..27dbe124 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ug",{toolbar:"ساقلا"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/uk.js new file mode 100644 index 00000000..c1abf921 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","uk",{toolbar:"Зберегти"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/vi.js new file mode 100644 index 00000000..986883b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","vi",{toolbar:"Lưu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/zh-cn.js new file mode 100644 index 00000000..a2de754d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh-cn",{toolbar:"保存"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/zh.js new file mode 100644 index 00000000..6e810611 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh",{toolbar:"儲存"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/save/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/save/plugin.js new file mode 100644 index 00000000..75f29058 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/save/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var b={readOnly:1,exec:function(a){if(a.fire("save")&&(a=a.element.$.form))try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"save",hidpi:!0,init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save", +b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/scayt/LICENSE.md b/platforms/android/assets/www/lib/ckeditor/plugins/scayt/LICENSE.md new file mode 100644 index 00000000..844ab4de --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/scayt/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor SCAYT Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/scayt/dialogs/options.js b/platforms/android/assets/www/lib/ckeditor/plugins/scayt/dialogs/options.js new file mode 100644 index 00000000..aec9a1c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/scayt/dialogs/options.js @@ -0,0 +1,17 @@ +CKEDITOR.dialog.add("scaytDialog",function(f){var g=f.scayt,k='

'+g.getLocal("version")+g.getVersion()+"

"+g.getLocal("text_copyrights")+"

",l=CKEDITOR.document,i={isChanged:function(){return null===this.newLang||this.currentLang===this.newLang?!1:!0},currentLang:g.getLang(),newLang:null,reset:function(){this.currentLang=g.getLang();this.newLang=null},id:"lang"},k=[{id:"options",label:g.getLocal("tab_options"),onShow:function(){},elements:[{type:"vbox", +id:"scaytOptions",children:function(){var a=g.getApplicationConfig(),e=[],b={"ignore-all-caps-words":"label_allCaps","ignore-domain-names":"label_ignoreDomainNames","ignore-words-with-mixed-cases":"label_mixedCase","ignore-words-with-numbers":"label_mixedWithDigits"},d;for(d in a){var c={type:"checkbox"};c.id=d;c.label=g.getLocal(b[d]);e.push(c)}return e}(),onShow:function(){this.getChild();for(var a=f.scayt,e=0;e
',onShow:function(){var a=f.scayt.getLang();l.getById("scaytLang_"+a).$.checked=!0}}]}]},{id:"dictionaries",label:g.getLocal("tab_dictionaries"), +elements:[{type:"vbox",id:"rightCol_col__left",children:[{type:"html",id:"dictionaryNote",html:""},{type:"text",id:"dictionaryName",label:g.getLocal("label_fieldNameDic")||"Dictionary name",onShow:function(a){var e=a.sender,b=f.scayt;setTimeout(function(){e.getContentElement("dictionaries","dictionaryNote").getElement().setText("");null!=b.getUserDictionaryName()&&""!=b.getUserDictionaryName()&&e.getContentElement("dictionaries","dictionaryName").setValue(b.getUserDictionaryName())},0)}},{type:"hbox", +id:"notExistDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"createDic",label:g.getLocal("btn_createDic"),title:g.getLocal("btn_createDic"),onClick:function(){var a=this.getDialog(),e=j,b=f.scayt,d=a.getContentElement("dictionaries","dictionaryName").getValue();b.createUserDictionary(d,function(c){c.error||e.toggleDictionaryButtons.call(a,!0);c.dialog=a;c.command="create";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="create"; +c.name=d;f.fire("scaytUserDictionaryActionError",c)})}},{type:"button",id:"restoreDic",label:g.getLocal("btn_restoreDic"),title:g.getLocal("btn_restoreDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName").getValue();e.restoreUserDictionary(d,function(c){c.dialog=a;c.error||b.toggleDictionaryButtons.call(a,!0);c.command="restore";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="restore";c.name=d;f.fire("scaytUserDictionaryActionError", +c)})}}]},{type:"hbox",id:"existDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"removeDic",label:g.getLocal("btn_deleteDic"),title:g.getLocal("btn_deleteDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName"),c=d.getValue();e.removeUserDictionary(c,function(e){d.setValue("");e.error||b.toggleDictionaryButtons.call(a,!1);e.dialog=a;e.command="remove";e.name=c;f.fire("scaytUserDictionaryAction",e)},function(b){b.dialog= +a;b.command="remove";b.name=c;f.fire("scaytUserDictionaryActionError",b)})}},{type:"button",id:"renameDic",label:g.getLocal("btn_renameDic"),title:g.getLocal("btn_renameDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=a.getContentElement("dictionaries","dictionaryName").getValue();e.renameUserDictionary(b,function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryAction",d)},function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryActionError",d)})}}]}, +{type:"html",id:"dicInfo",html:'
'+g.getLocal("text_descriptionDic")+"
"}]}]},{id:"about",label:g.getLocal("tab_about"),elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
'+k+"
"}]}];f.on("scaytUserDictionaryAction",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;void 0===a.data.error?(c=d.getLocal("message_success_"+ +a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c),SCAYT.$(b.$).css({color:"blue"})):(""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c)),SCAYT.$(b.$).css({color:"red"}),null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()):e.getContentElement("dictionaries","dictionaryName").setValue(""))}); +f.on("scaytUserDictionaryActionError",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c));SCAYT.$(b.$).css({color:"red"});null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()): +e.getContentElement("dictionaries","dictionaryName").setValue("")});var j={title:g.getLocal("text_title"),resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:340,minHeight:260,onLoad:function(){if(0!=f.config.scayt_uiTabs[1]){var a=j,e=a.getLangBoxes.call(this);e.getParent().setStyle("white-space","normal");a.renderLangList(e);this.definition.minWidth=this.getSize().width;this.resize(this.definition.minWidth,this.definition.minHeight)}},onCancel:function(){i.reset()},onHide:function(){f.unlockSelection()}, +onShow:function(){f.fire("scaytDialogShown",this);if(0!=f.config.scayt_uiTabs[2]){var a=f.scayt,e=this.getContentElement("dictionaries","dictionaryName"),b=this.getContentElement("dictionaries","existDic").getElement().getParent(),d=this.getContentElement("dictionaries","notExistDic").getElement().getParent();b.hide();d.hide();null!=a.getUserDictionaryName()&&""!=a.getUserDictionaryName()?(this.getContentElement("dictionaries","dictionaryName").setValue(a.getUserDictionaryName()),b.show()):(e.setValue(""), +d.show())}},onOk:function(){var a=j,e=f.scayt;this.getContentElement("options","scaytOptions");a=a.getChangedOption.call(this);e.commitOption({changedOptions:a})},toggleDictionaryButtons:function(a){var e=this.getContentElement("dictionaries","existDic").getElement().getParent(),b=this.getContentElement("dictionaries","notExistDic").getElement().getParent();a?(e.show(),b.hide()):(e.hide(),b.show())},getChangedOption:function(){var a={};if(1==f.config.scayt_uiTabs[0])for(var e=this.getContentElement("options", +"scaytOptions").getChild(),b=0;b'),g=new CKEDITOR.dom.element("label"),h=f.scayt;b.setStyles({"white-space":"normal",position:"relative"}); +c.on("click",function(a){i.newLang=a.sender.getValue()});g.appendText(a);g.setAttribute("for",d);b.append(c);b.append(g);e===h.getLang()&&(c.setAttribute("checked",!0),c.setAttribute("defaultChecked","defaultChecked"));return b},renderLangList:function(a){var e=a.find("#left-col-"+f.name).getItem(0),a=a.find("#right-col-"+f.name).getItem(0),b=g.getLangList(),d={},c=[],i=0,h;for(h in b.ltr)d[h]=b.ltr[h];for(h in b.rtl)d[h]=b.rtl[h];for(h in d)c.push([h,d[h]]);c.sort(function(a,b){var c=0;a[1]>b[1]? +c=1:a[1]
'); +CKEDITOR.plugins.add("sharedspace",{init:function(a){a.on("loaded",function(){var b=a.config.sharedSpaces;if(b)for(var c in b)f(a,c,b[c])},null,null,9)}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png new file mode 100644 index 00000000..c88abcb6 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png new file mode 100644 index 00000000..a776fcc1 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png new file mode 100644 index 00000000..cd87d3e2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png new file mode 100644 index 00000000..41b5f346 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_address.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_address.png new file mode 100644 index 00000000..5abdae12 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_address.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png new file mode 100644 index 00000000..a8f49735 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_div.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_div.png new file mode 100644 index 00000000..87b3c171 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_div.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h1.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h1.png new file mode 100644 index 00000000..3933325c Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h1.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h2.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h2.png new file mode 100644 index 00000000..c99894c2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h2.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h3.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h3.png new file mode 100644 index 00000000..cb73d679 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h3.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h4.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h4.png new file mode 100644 index 00000000..7af6bb49 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h4.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h5.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h5.png new file mode 100644 index 00000000..ce5bec16 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h5.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h6.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h6.png new file mode 100644 index 00000000..e67b9829 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_h6.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_p.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_p.png new file mode 100644 index 00000000..63a58202 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_p.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_pre.png b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_pre.png new file mode 100644 index 00000000..955a8689 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/images/block_pre.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/af.js new file mode 100644 index 00000000..f54ef175 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","af",{toolbar:"Toon blokke"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ar.js new file mode 100644 index 00000000..a3b135a9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ar",{toolbar:"مخطط تفصيلي"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bg.js new file mode 100644 index 00000000..ec8b4f9c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bg",{toolbar:"Показва блокове"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bn.js new file mode 100644 index 00000000..8f38cf2c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bs.js new file mode 100644 index 00000000..91d8620a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bs",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ca.js new file mode 100644 index 00000000..4a23bd67 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ca",{toolbar:"Mostra els blocs"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/cs.js new file mode 100644 index 00000000..e935394c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cs",{toolbar:"Ukázat bloky"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/cy.js new file mode 100644 index 00000000..4fea60e5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cy",{toolbar:"Dangos Blociau"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/da.js new file mode 100644 index 00000000..1c077f17 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","da",{toolbar:"Vis afsnitsmærker"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/de.js new file mode 100644 index 00000000..730add99 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","de",{toolbar:"Blöcke anzeigen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/el.js new file mode 100644 index 00000000..67fc843d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","el",{toolbar:"Προβολή Τμημάτων"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-au.js new file mode 100644 index 00000000..02fd8d37 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-au",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js new file mode 100644 index 00000000..2ddff41c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-ca",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js new file mode 100644 index 00000000..6398feaa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-gb",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en.js new file mode 100644 index 00000000..2457fa4b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/eo.js new file mode 100644 index 00000000..42775ae7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eo",{toolbar:"Montri la blokojn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/es.js new file mode 100644 index 00000000..eae41486 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","es",{toolbar:"Mostrar bloques"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/et.js new file mode 100644 index 00000000..18f1c0d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","et",{toolbar:"Blokkide näitamine"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/eu.js new file mode 100644 index 00000000..0efa1bea --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eu",{toolbar:"Blokeak erakutsi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fa.js new file mode 100644 index 00000000..e290b63d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fa",{toolbar:"نمایش بلوک‌ها"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fi.js new file mode 100644 index 00000000..a2e20e26 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fi",{toolbar:"Näytä elementit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fo.js new file mode 100644 index 00000000..cea7058d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fo",{toolbar:"Vís blokkar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js new file mode 100644 index 00000000..be37ca35 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr-ca",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fr.js new file mode 100644 index 00000000..49bf9394 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/gl.js new file mode 100644 index 00000000..b9f240c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gl",{toolbar:"Amosar os bloques"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/gu.js new file mode 100644 index 00000000..a8e7fd6c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gu",{toolbar:"બ્લૉક બતાવવું"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/he.js new file mode 100644 index 00000000..7d128462 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","he",{toolbar:"הצגת בלוקים"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hi.js new file mode 100644 index 00000000..68904f2d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hi",{toolbar:"ब्लॉक दिखायें"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hr.js new file mode 100644 index 00000000..d6af592d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hr",{toolbar:"Prikaži blokove"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hu.js new file mode 100644 index 00000000..cda541b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hu",{toolbar:"Blokkok megjelenítése"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/id.js new file mode 100644 index 00000000..96c293cc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","id",{toolbar:"Perlihatkan Blok"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/is.js new file mode 100644 index 00000000..88a3ff5a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","is",{toolbar:"Sýna blokkir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/it.js new file mode 100644 index 00000000..38e578fd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","it",{toolbar:"Visualizza Blocchi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ja.js new file mode 100644 index 00000000..a9c9736a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ja",{toolbar:"ブロック表示"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ka.js new file mode 100644 index 00000000..908e8002 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ka",{toolbar:"არეების ჩვენება"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/km.js new file mode 100644 index 00000000..d6ca8298 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","km",{toolbar:"បង្ហាញ​ប្លក់"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ko.js new file mode 100644 index 00000000..67187345 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ko",{toolbar:"블록 보기"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ku.js new file mode 100644 index 00000000..2a3a1282 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ku",{toolbar:"نیشاندانی بەربەستەکان"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/lt.js new file mode 100644 index 00000000..66368a41 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lt",{toolbar:"Rodyti blokus"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/lv.js new file mode 100644 index 00000000..12c328c1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lv",{toolbar:"Parādīt blokus"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/mk.js new file mode 100644 index 00000000..a34e8a23 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mk",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/mn.js new file mode 100644 index 00000000..778ad5d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mn",{toolbar:"Хавтангуудыг харуулах"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ms.js new file mode 100644 index 00000000..c6ab5f2d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ms",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/nb.js new file mode 100644 index 00000000..8bfdf0e1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nb",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/nl.js new file mode 100644 index 00000000..22190dbd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nl",{toolbar:"Toon blokken"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/no.js new file mode 100644 index 00000000..75702788 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","no",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pl.js new file mode 100644 index 00000000..3168b3c5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pl",{toolbar:"Pokaż bloki"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js new file mode 100644 index 00000000..3ac0ef74 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt-br",{toolbar:"Mostrar blocos de código"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pt.js new file mode 100644 index 00000000..5afaf8e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt",{toolbar:"Exibir blocos"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ro.js new file mode 100644 index 00000000..e4dadf0a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ro",{toolbar:"Arată blocurile"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ru.js new file mode 100644 index 00000000..9620b9d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ru",{toolbar:"Отображать блоки"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/si.js new file mode 100644 index 00000000..f67dff30 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","si",{toolbar:"කොටස පෙන්නන්න"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sk.js new file mode 100644 index 00000000..dee77c9a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sk",{toolbar:"Ukázať bloky"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sl.js new file mode 100644 index 00000000..52fca0bb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sl",{toolbar:"Prikaži ograde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sq.js new file mode 100644 index 00000000..88405f28 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sq",{toolbar:"Shfaq Blloqet"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js new file mode 100644 index 00000000..3c1551b9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr-latn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sr.js new file mode 100644 index 00000000..127878d5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sv.js new file mode 100644 index 00000000..a05b6ccb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sv",{toolbar:"Visa block"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/th.js new file mode 100644 index 00000000..9b3951cc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","th",{toolbar:"แสดงบล็อคข้อมูล"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/tr.js new file mode 100644 index 00000000..060da3aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tr",{toolbar:"Blokları Göster"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/tt.js new file mode 100644 index 00000000..519e6f7b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tt",{toolbar:"Блокларны күрсәтү"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ug.js new file mode 100644 index 00000000..c44b6605 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ug",{toolbar:"بۆلەكنى كۆرسەت"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/uk.js new file mode 100644 index 00000000..ca9f51c4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","uk",{toolbar:"Показувати блоки"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/vi.js new file mode 100644 index 00000000..43566240 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","vi",{toolbar:"Hiển thị các khối"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js new file mode 100644 index 00000000..abee734d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh-cn",{toolbar:"显示区块"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/zh.js new file mode 100644 index 00000000..84c1e7eb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh",{toolbar:"顯示區塊"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/plugin.js new file mode 100644 index 00000000..48060bcb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/showblocks/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var i={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var c=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[c]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn", +icons:"showblocks,showblocks-rtl",hidpi:!0,onLoad:function(){var a="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),c,b,e,f,i=CKEDITOR.getUrl(this.path),j=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),g=j?":not([contenteditable=false]):not(.cke_show_blocks_off)":"",d,h;for(c=b=e=f="";d=a.pop();)h=a.length?",":"",c+=".cke_show_blocks "+d+g+h,e+=".cke_show_blocks.cke_contents_ltr "+d+g+h,f+=".cke_show_blocks.cke_contents_rtl "+d+g+h,b+=".cke_show_blocks "+d+g+"{background-image:url("+CKEDITOR.getUrl(i+ +"images/block_"+d+".png")+")}";CKEDITOR.addCss((c+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(b,e+"{background-position:top left;padding-left:8px}",f+"{background-position:top right;padding-right:8px}"));j||CKEDITOR.addCss(".cke_show_blocks [contenteditable=false],.cke_show_blocks .cke_show_blocks_off{border:none;padding-top:0;background-image:none}.cke_show_blocks.cke_contents_rtl [contenteditable=false],.cke_show_blocks.cke_contents_rtl .cke_show_blocks_off{padding-right:0}.cke_show_blocks.cke_contents_ltr [contenteditable=false],.cke_show_blocks.cke_contents_ltr .cke_show_blocks_off{padding-left:0}")}, +init:function(a){function c(){b.refresh(a)}if(!a.blockless){var b=a.addCommand("showblocks",i);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(a.on("focus",c),a.on("blur",c));a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&& +b.refresh(a)})}}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js new file mode 100644 index 00000000..b202d3ee --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,i,k=function(j){var c=j.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);i.hide();j.data.preventDefault()},n=CKEDITOR.tools.addFunction(function(a,c){var a= +new CKEDITOR.dom.event(a),c=new CKEDITOR.dom.element(c),b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:if(b=c.getParent().getParent().getNext())(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:k({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0); +else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['
'+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
"); +e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png new file mode 100644 index 00000000..bad62eed Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/icons/smiley.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/icons/smiley.png new file mode 100644 index 00000000..9fafa28a Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/icons/smiley.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif new file mode 100644 index 00000000..21f81a2f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angel_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angel_smile.png new file mode 100644 index 00000000..559e5e71 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angel_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif new file mode 100644 index 00000000..c912d99b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angry_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angry_smile.png new file mode 100644 index 00000000..c05d2be3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/angry_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif new file mode 100644 index 00000000..4162a7b2 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/broken_heart.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/broken_heart.png new file mode 100644 index 00000000..a711c0d8 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/broken_heart.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif new file mode 100644 index 00000000..0e420cba Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/confused_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/confused_smile.png new file mode 100644 index 00000000..e0b8e5c6 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/confused_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif new file mode 100644 index 00000000..b5133427 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/cry_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/cry_smile.png new file mode 100644 index 00000000..a1891a34 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/cry_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif new file mode 100644 index 00000000..9b2a1005 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/devil_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/devil_smile.png new file mode 100644 index 00000000..53247a88 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/devil_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png new file mode 100644 index 00000000..34904b66 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/envelope.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/envelope.gif new file mode 100644 index 00000000..5294ec48 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/envelope.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/envelope.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/envelope.png new file mode 100644 index 00000000..44398ad1 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/envelope.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/heart.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/heart.gif new file mode 100644 index 00000000..160be8ef Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/heart.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/heart.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/heart.png new file mode 100644 index 00000000..df409e62 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/heart.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/kiss.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/kiss.gif new file mode 100644 index 00000000..ffb23db0 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/kiss.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/kiss.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/kiss.png new file mode 100644 index 00000000..a4f2f363 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/kiss.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif new file mode 100644 index 00000000..ceb6e2d9 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/lightbulb.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/lightbulb.png new file mode 100644 index 00000000..0c4a9240 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/lightbulb.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif new file mode 100644 index 00000000..3177355f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/omg_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/omg_smile.png new file mode 100644 index 00000000..abc4e2d0 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/omg_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif new file mode 100644 index 00000000..fdcf5c33 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/regular_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/regular_smile.png new file mode 100644 index 00000000..0f2649b7 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/regular_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif new file mode 100644 index 00000000..cca0729d Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/sad_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/sad_smile.png new file mode 100644 index 00000000..f20f3bf3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/sad_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif new file mode 100644 index 00000000..7d93474c Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/shades_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/shades_smile.png new file mode 100644 index 00000000..fdaa28b7 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/shades_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif new file mode 100644 index 00000000..44c37996 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png new file mode 100644 index 00000000..5e63785e Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif new file mode 100644 index 00000000..5c8bee30 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png new file mode 100644 index 00000000..1823481f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif new file mode 100644 index 00000000..9cc37029 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png new file mode 100644 index 00000000..d4e8b22a Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png new file mode 100644 index 00000000..56553fbe Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif new file mode 100644 index 00000000..eef4fc00 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png new file mode 100644 index 00000000..f9714d1b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif new file mode 100644 index 00000000..6d3d64bd Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/wink_smile.png b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/wink_smile.png new file mode 100644 index 00000000..7c99c3fc Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/images/wink_smile.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/af.js new file mode 100644 index 00000000..dd63a1c7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","af",{options:"Lagbekkie opsies",title:"Voeg lagbekkie by",toolbar:"Lagbekkie"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ar.js new file mode 100644 index 00000000..83a8dfa1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ar",{options:"خصائص الإبتسامات",title:"إدراج ابتسامات",toolbar:"ابتسامات"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bg.js new file mode 100644 index 00000000..f8bf7119 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bg",{options:"Опции за усмивката",title:"Вмъкване на усмивка",toolbar:"Усмивка"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bn.js new file mode 100644 index 00000000..61de3df3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bn",{options:"Smiley Options",title:"স্মাইলী যুক্ত কর",toolbar:"স্মাইলী"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bs.js new file mode 100644 index 00000000..422fb8b5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bs",{options:"Smiley Options",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ca.js new file mode 100644 index 00000000..5164077f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ca",{options:"Opcions d'emoticones",title:"Insereix una icona",toolbar:"Icona"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/cs.js new file mode 100644 index 00000000..aa0d7fa2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cs",{options:"Nastavení smajlíků",title:"Vkládání smajlíků",toolbar:"Smajlíci"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/cy.js new file mode 100644 index 00000000..79164f5c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cy",{options:"Opsiynau Gwenogluniau",title:"Mewnosod Gwenoglun",toolbar:"Gwenoglun"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/da.js new file mode 100644 index 00000000..cfc0db19 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","da",{options:"Smileymuligheder",title:"Vælg smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/de.js new file mode 100644 index 00000000..573e4946 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","de",{options:"Smiley Optionen",title:"Smiley auswählen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/el.js new file mode 100644 index 00000000..af8f2605 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","el",{options:"Επιλογές Φατσούλων",title:"Εισάγετε μια Φατσούλα",toolbar:"Φατσούλα"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-au.js new file mode 100644 index 00000000..8dd27c36 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-au",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-ca.js new file mode 100644 index 00000000..01b27019 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-ca",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-gb.js new file mode 100644 index 00000000..9967ebfc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-gb",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en.js new file mode 100644 index 00000000..aa2b1e29 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/eo.js new file mode 100644 index 00000000..b84cd509 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eo",{options:"Opcioj pri mienvinjetoj",title:"Enmeti Mienvinjeton",toolbar:"Mienvinjeto"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/es.js new file mode 100644 index 00000000..0a64de63 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","es",{options:"Opciones de emoticonos",title:"Insertar un Emoticon",toolbar:"Emoticonos"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/et.js new file mode 100644 index 00000000..b3acbc88 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","et",{options:"Emotikonide valikud",title:"Sisesta emotikon",toolbar:"Emotikon"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/eu.js new file mode 100644 index 00000000..d5eb0d03 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eu",{options:"Aurpegiera Aukerak",title:"Aurpegiera Sartu",toolbar:"Aurpegierak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fa.js new file mode 100644 index 00000000..536b9343 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fa",{options:"گزینه​های خندانک",title:"گنجاندن خندانک",toolbar:"خندانک"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fi.js new file mode 100644 index 00000000..cdc06b98 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fi",{options:"Hymiön ominaisuudet",title:"Lisää hymiö",toolbar:"Hymiö"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fo.js new file mode 100644 index 00000000..1758e873 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fo",{options:"Møguleikar fyri Smiley",title:"Vel Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js new file mode 100644 index 00000000..efef5640 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr-ca",{options:"Options d'émoticônes",title:"Insérer un émoticône",toolbar:"Émoticône"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fr.js new file mode 100644 index 00000000..56b9c488 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr",{options:"Options des émoticones",title:"Insérer un émoticone",toolbar:"Émoticones"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/gl.js new file mode 100644 index 00000000..47060596 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gl",{options:"Opcións de emoticonas",title:"Inserir unha emoticona",toolbar:"Emoticona"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/gu.js new file mode 100644 index 00000000..15a08c68 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gu",{options:"સમ્ય્લી વિકલ્પો",title:"સ્માઇલી પસંદ કરો",toolbar:"સ્માઇલી"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/he.js new file mode 100644 index 00000000..db6c4acd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","he",{options:"אפשרויות סמיילים",title:"הוספת סמיילי",toolbar:"סמיילי"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hi.js new file mode 100644 index 00000000..2aaa0813 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hi",{options:"Smiley Options",title:"स्माइली इन्सर्ट करें",toolbar:"स्माइली"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hr.js new file mode 100644 index 00000000..65116ab7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hr",{options:"Opcije smješka",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hu.js new file mode 100644 index 00000000..823e1d53 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hu",{options:"Hangulatjel opciók",title:"Hangulatjel beszúrása",toolbar:"Hangulatjelek"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/id.js new file mode 100644 index 00000000..07b5be16 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","id",{options:"Opsi Smiley",title:"Sisip sebuah Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/is.js new file mode 100644 index 00000000..dbb52568 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","is",{options:"Smiley Options",title:"Velja svip",toolbar:"Svipur"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/it.js new file mode 100644 index 00000000..df131f8e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","it",{options:"Opzioni Smiley",title:"Inserisci emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ja.js new file mode 100644 index 00000000..dab5662f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ja",{options:"絵文字オプション",title:"顔文字挿入",toolbar:"絵文字"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ka.js new file mode 100644 index 00000000..78218e0a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ka",{options:"სიცილაკის პარამეტრები",title:"სიცილაკის ჩასმა",toolbar:"სიცილაკები"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/km.js new file mode 100644 index 00000000..2b603406 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","km",{options:"ជម្រើស​រូប​សញ្ញា​អារម្មណ៍",title:"បញ្ចូល​រូប​សញ្ញា​អារម្មណ៍",toolbar:"រូប​សញ្ញ​អារម្មណ៍"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ko.js new file mode 100644 index 00000000..cb3986a0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ko",{options:"이모티콘 옵션",title:"아이콘 삽입",toolbar:"아이콘"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ku.js new file mode 100644 index 00000000..9d1b8bd2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ku",{options:"هەڵبژاردەی زەردەخەنه",title:"دانانی زەردەخەنەیەك",toolbar:"زەردەخەنه"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/lt.js new file mode 100644 index 00000000..49573bec --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lt",{options:"Šypsenėlių nustatymai",title:"Įterpti veidelį",toolbar:"Veideliai"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/lv.js new file mode 100644 index 00000000..b8299e52 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lv",{options:"Smaidiņu uzstādījumi",title:"Ievietot smaidiņu",toolbar:"Smaidiņi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/mk.js new file mode 100644 index 00000000..e7e241b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mk",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/mn.js new file mode 100644 index 00000000..6f8cd095 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mn",{options:"Smiley Options",title:"Тодорхойлолт оруулах",toolbar:"Тодорхойлолт"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ms.js new file mode 100644 index 00000000..0df42a59 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ms",{options:"Smiley Options",title:"Masukkan Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/nb.js new file mode 100644 index 00000000..db957dcb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nb",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/nl.js new file mode 100644 index 00000000..1b3ac44e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nl",{options:"Smiley opties",title:"Smiley invoegen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/no.js new file mode 100644 index 00000000..87f8534d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","no",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pl.js new file mode 100644 index 00000000..eb1938ab --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pl",{options:"Opcje emotikonów",title:"Wstaw emotikona",toolbar:"Emotikony"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pt-br.js new file mode 100644 index 00000000..e41f5442 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt-br",{options:"Opções de Emoticons",title:"Inserir Emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pt.js new file mode 100644 index 00000000..c9103e76 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt",{options:"Opções de Emoticons",title:"Inserir um Emoticon",toolbar:"Emoticons"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ro.js new file mode 100644 index 00000000..1f6b89af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ro",{options:"Opțiuni figuri expresive",title:"Inserează o figură expresivă (Emoticon)",toolbar:"Figură expresivă (Emoticon)"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ru.js new file mode 100644 index 00000000..b8f1d619 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ru",{options:"Выбор смайла",title:"Вставить смайл",toolbar:"Смайлы"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/si.js new file mode 100644 index 00000000..da884cf6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","si",{options:"හාස්‍ය විකල්ප",title:"හාස්‍යන් ඇතුලත් කිරීම",toolbar:"හාස්‍යන්"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sk.js new file mode 100644 index 00000000..c1ce5970 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sk",{options:"Možnosti smajlíkov",title:"Vložiť smajlíka",toolbar:"Smajlíky"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sl.js new file mode 100644 index 00000000..ef64a7a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sl",{options:"Možnosti Smeška",title:"Vstavi smeška",toolbar:"Smeško"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sq.js new file mode 100644 index 00000000..d870960e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sq",{options:"Opsionet e Ikonave",title:"Vendos Ikonë",toolbar:"Ikona"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js new file mode 100644 index 00000000..4e46a4d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr-latn",{options:"Smiley Options",title:"Unesi smajlija",toolbar:"Smajli"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sr.js new file mode 100644 index 00000000..d321eba3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr",{options:"Smiley Options",title:"Унеси смајлија",toolbar:"Смајли"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sv.js new file mode 100644 index 00000000..29e4c575 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sv",{options:"Smileyinställningar",title:"Infoga smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/th.js new file mode 100644 index 00000000..e4e12770 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","th",{options:"ตัวเลือกไอคอนแสดงอารมณ์",title:"แทรกสัญลักษณ์สื่ออารมณ์",toolbar:"รูปสื่ออารมณ์"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/tr.js new file mode 100644 index 00000000..90481db7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tr",{options:"İfade Seçenekleri",title:"İfade Ekle",toolbar:"İfade"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/tt.js new file mode 100644 index 00000000..7f1c8d3e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tt",{options:"Смайл көйләүләре",title:"Смайл өстәү",toolbar:"Смайл"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ug.js new file mode 100644 index 00000000..5d8ec4eb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ug",{options:"چىراي ئىپادە سىنبەلگە تاللانمىسى",title:"چىراي ئىپادە سىنبەلگە قىستۇر",toolbar:"چىراي ئىپادە"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/uk.js new file mode 100644 index 00000000..f6c59ee1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","uk",{options:"Опції смайликів",title:"Вставити смайлик",toolbar:"Смайлик"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/vi.js new file mode 100644 index 00000000..f5d1a665 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","vi",{options:"Tùy chọn hình biểu lộ cảm xúc",title:"Chèn hình biểu lộ cảm xúc (mặt cười)",toolbar:"Hình biểu lộ cảm xúc (mặt cười)"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js new file mode 100644 index 00000000..daea8579 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh-cn",{options:"表情图标选项",title:"插入表情图标",toolbar:"表情符"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/zh.js new file mode 100644 index 00000000..dffc3f0a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh",{options:"表情符號選項",title:"插入表情符號",toolbar:"表情符號"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/smiley/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/plugin.js new file mode 100644 index 00000000..426cb09b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/smiley/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("smiley",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"smiley",hidpi:!0,init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley",{allowedContent:"img[alt,height,!src,title,width]",requiredContent:"img"})); +a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.png sad_smile.png wink_smile.png teeth_smile.png confused_smile.png tongue_smile.png embarrassed_smile.png omg_smile.png whatchutalkingabout_smile.png angry_smile.png angel_smile.png shades_smile.png devil_smile.png cry_smile.png lightbulb.png thumbs_down.png thumbs_up.png heart.png broken_heart.png kiss.png envelope.png".split(" "); +CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";"); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js new file mode 100644 index 00000000..d0728c38 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("sourcedialog",function(a){var b=CKEDITOR.document.getWindow().getViewPaneSize(),e=Math.min(b.width-70,800),b=b.height/1.5,d;return{title:a.lang.sourcedialog.title,minWidth:100,minHeight:100,onShow:function(){this.setValueOf("main","data",d=a.getData())},onOk:function(){function b(f,c){a.focus();a.setData(c,function(){f.hide();var b=a.createRange();b.moveToElementEditStart(a.editable());b.select()})}return function(){var a=this.getValueOf("main","data").replace(/\r/g,""),c=this; +if(a===d)return!0;setTimeout(function(){b(c,a)});return!1}}(),contents:[{id:"main",label:a.lang.sourcedialog.title,elements:[{type:"textarea",id:"data",dir:"ltr",inputStyle:"cursor:auto;width:"+e+"px;height:"+b+"px;tab-size:4;text-align:left;","class":"cke_source"}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png new file mode 100644 index 00000000..adf4af3c Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png new file mode 100644 index 00000000..b4d0a15a Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png new file mode 100644 index 00000000..27d1ba88 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png new file mode 100644 index 00000000..e44db379 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/af.js new file mode 100644 index 00000000..f1491d1f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","af",{toolbar:"Bron",title:"Bron"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js new file mode 100644 index 00000000..b755d750 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ar",{toolbar:"المصدر",title:"المصدر"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js new file mode 100644 index 00000000..1d8c6dca --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bg",{toolbar:"Източник",title:"Източник"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js new file mode 100644 index 00000000..fd41806f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bn",{toolbar:"সোর্স",title:"সোর্স"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js new file mode 100644 index 00000000..9cd03930 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bs",{toolbar:"HTML kôd",title:"HTML kôd"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js new file mode 100644 index 00000000..24193350 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ca",{toolbar:"Codi font",title:"Codi font"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js new file mode 100644 index 00000000..acd14e8d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cs",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js new file mode 100644 index 00000000..d61bd35e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cy",{toolbar:"HTML",title:"HTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/da.js new file mode 100644 index 00000000..7c21ca42 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","da",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/de.js new file mode 100644 index 00000000..49f7c610 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","de",{toolbar:"Quellcode",title:"Quellcode"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/el.js new file mode 100644 index 00000000..58f9dd6c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","el",{toolbar:"Κώδικας",title:"Κώδικας"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js new file mode 100644 index 00000000..9dede838 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-au",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js new file mode 100644 index 00000000..244ef5ff --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js new file mode 100644 index 00000000..9381cd0e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-gb",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en.js new file mode 100644 index 00000000..20b116ed --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js new file mode 100644 index 00000000..902480da --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eo",{toolbar:"Fonto",title:"Fonto"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/es.js new file mode 100644 index 00000000..e7f85510 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","es",{toolbar:"Fuente HTML",title:"Fuente HTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/et.js new file mode 100644 index 00000000..9c3848b2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","et",{toolbar:"Lähtekood",title:"Lähtekood"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js new file mode 100644 index 00000000..dc75afe0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eu",{toolbar:"HTML Iturburua",title:"HTML Iturburua"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js new file mode 100644 index 00000000..65b63062 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fa",{toolbar:"منبع",title:"منبع"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js new file mode 100644 index 00000000..b7630ff0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fi",{toolbar:"Koodi",title:"Koodi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js new file mode 100644 index 00000000..ab4e5570 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fo",{toolbar:"Kelda",title:"Kelda"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js new file mode 100644 index 00000000..23148f8e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js new file mode 100644 index 00000000..8bc19780 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js new file mode 100644 index 00000000..8a3bcbcd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gl",{toolbar:"Orixe",title:"Orixe"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js new file mode 100644 index 00000000..2241ec60 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gu",{toolbar:"મૂળ કે પ્રાથમિક દસ્તાવેજ",title:"મૂળ કે પ્રાથમિક દસ્તાવેજ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/he.js new file mode 100644 index 00000000..4f255502 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","he",{toolbar:"מקור",title:"מקור"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js new file mode 100644 index 00000000..41ebe9b1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hi",{toolbar:"सोर्स",title:"सोर्स"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js new file mode 100644 index 00000000..51d2d4db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hr",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js new file mode 100644 index 00000000..5e80c1e7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hu",{toolbar:"Forráskód",title:"Forráskód"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/id.js new file mode 100644 index 00000000..e5af768e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","id",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/is.js new file mode 100644 index 00000000..fa21def4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","is",{toolbar:"Kóði",title:"Kóði"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/it.js new file mode 100644 index 00000000..0a6c8c04 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","it",{toolbar:"Sorgente",title:"Sorgente"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js new file mode 100644 index 00000000..81832591 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ja",{toolbar:"ソース",title:"ソース"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js new file mode 100644 index 00000000..201586a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ka",{toolbar:"კოდები",title:"კოდები"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/km.js new file mode 100644 index 00000000..421b42c8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","km",{toolbar:"អក្សរ​កូដ",title:"អក្សរ​កូដ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js new file mode 100644 index 00000000..64aa7004 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ko",{toolbar:"소스",title:"소스"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js new file mode 100644 index 00000000..61faf97b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ku",{toolbar:"سەرچاوە",title:"سەرچاوە"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js new file mode 100644 index 00000000..4b297dd3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lt",{toolbar:"Šaltinis",title:"Šaltinis"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js new file mode 100644 index 00000000..1f454578 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lv",{toolbar:"HTML kods",title:"HTML kods"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js new file mode 100644 index 00000000..d1d2b635 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","mn",{toolbar:"Код",title:"Код"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js new file mode 100644 index 00000000..69e7e9fb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ms",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js new file mode 100644 index 00000000..224b0855 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nb",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js new file mode 100644 index 00000000..47d692d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nl",{toolbar:"Broncode",title:"Broncode"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/no.js new file mode 100644 index 00000000..02cadbac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","no",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js new file mode 100644 index 00000000..80d4f44b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pl",{toolbar:"Źródło dokumentu",title:"Źródło dokumentu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js new file mode 100644 index 00000000..358cfd18 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt-br",{toolbar:"Código-Fonte",title:"Código-Fonte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js new file mode 100644 index 00000000..f924ce8d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt",{toolbar:"Fonte",title:"Fonte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js new file mode 100644 index 00000000..cc82c71d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ro",{toolbar:"Sursa",title:"Sursa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js new file mode 100644 index 00000000..fbf6efb7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ru",{toolbar:"Исходник",title:"Источник"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/si.js new file mode 100644 index 00000000..f869386e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","si",{toolbar:"මුලාශ්‍රය",title:"මුලාශ්‍රය"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js new file mode 100644 index 00000000..18dcae92 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sk",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js new file mode 100644 index 00000000..85cfe161 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sl",{toolbar:"Izvorna koda",title:"Izvorna koda"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js new file mode 100644 index 00000000..1266a7fd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sq",{toolbar:"Burimi",title:"Burimi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js new file mode 100644 index 00000000..4f0736c2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr-latn",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js new file mode 100644 index 00000000..84073825 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr",{toolbar:"Kôд",title:"Kôд"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js new file mode 100644 index 00000000..2fec89c7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sv",{toolbar:"Källa",title:"Källa"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/th.js new file mode 100644 index 00000000..03e48901 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","th",{toolbar:"ดูรหัส HTML",title:"ดูรหัส HTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js new file mode 100644 index 00000000..31ac46b5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tr",{toolbar:"Kaynak",title:"Kaynak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js new file mode 100644 index 00000000..a4c7d5eb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tt",{toolbar:"Чыганак",title:"Чыганак"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js new file mode 100644 index 00000000..efcc9d79 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ug",{toolbar:"مەنبە",title:"مەنبە"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js new file mode 100644 index 00000000..ca9afc2e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","uk",{toolbar:"Джерело",title:"Джерело"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js new file mode 100644 index 00000000..65c47d61 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","vi",{toolbar:"Mã HTML",title:"Mã HTML"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js new file mode 100644 index 00000000..fc5bb0d8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh-cn",{toolbar:"源码",title:"源码"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js new file mode 100644 index 00000000..c49aa82e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh",{toolbar:"原始碼",title:"原始碼"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/plugin.js new file mode 100644 index 00000000..b7cc6875 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/sourcedialog/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("sourcedialog",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"sourcedialog,sourcedialog-rtl",hidpi:!0,init:function(a){a.addCommand("sourcedialog",new CKEDITOR.dialogCommand("sourcedialog"));CKEDITOR.dialog.add("sourcedialog",this.path+"dialogs/sourcedialog.js");a.ui.addButton&&a.ui.addButton("Sourcedialog", +{label:a.lang.sourcedialog.toolbar,command:"sourcedialog",toolbar:"mode,10"})}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt new file mode 100644 index 00000000..baadd2b7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -0,0 +1,20 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +cs.js Found: 118 Missing: 0 +cy.js Found: 118 Missing: 0 +de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 +eo.js Found: 118 Missing: 0 +et.js Found: 31 Missing: 87 +fa.js Found: 24 Missing: 94 +fi.js Found: 23 Missing: 95 +fr.js Found: 118 Missing: 0 +hr.js Found: 23 Missing: 95 +it.js Found: 118 Missing: 0 +nb.js Found: 118 Missing: 0 +nl.js Found: 118 Missing: 0 +no.js Found: 118 Missing: 0 +tr.js Found: 118 Missing: 0 +ug.js Found: 39 Missing: 79 +zh-cn.js Found: 118 Missing: 0 diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js new file mode 100644 index 00000000..acb6c923 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js new file mode 100644 index 00000000..0bf8749e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js new file mode 100644 index 00000000..e6504372 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", +laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", +Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", +Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", +Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", +aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", +igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", +divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", +374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", +asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js new file mode 100644 index 00000000..c2b38f0f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", +not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", +Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", +Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", +Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", +acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", +icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", +uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", +8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js new file mode 100644 index 00000000..77f59f61 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", +reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", +Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", +Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", +Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", +aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", +euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", +otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", +OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", +diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js new file mode 100644 index 00000000..6b3ce87e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", +reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", +Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", +Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", +Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", +aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", +eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", +ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", +sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js new file mode 100644 index 00000000..e7c2a219 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", +ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", +iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", +Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", +Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", +acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", +icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", +uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", +sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js new file mode 100644 index 00000000..5a147863 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js new file mode 100644 index 00000000..26f61c2e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js new file mode 100644 index 00000000..d44b0d2e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", +sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", +Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", +Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", +szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", +igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", +uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", +bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js new file mode 100644 index 00000000..79d437f9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", +not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", +Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", +Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", +times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", +acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", +iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", +ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", +373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js new file mode 100644 index 00000000..22c90561 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", +bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js new file mode 100644 index 00000000..e0b27c59 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", +macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", +Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", +Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", +aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", +iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", +thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", +asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js new file mode 100644 index 00000000..6d701e3c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js new file mode 100644 index 00000000..d19e2e42 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", +Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", +Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", +eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", +373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js new file mode 100644 index 00000000..2d1ad096 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", +Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", +Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", +auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", +ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", +373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js new file mode 100644 index 00000000..f16d3667 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", +not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", +Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", +Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", +times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", +acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", +iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", +ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", +373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js new file mode 100644 index 00000000..dcfc50f0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", +macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", +Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", +ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", +Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", +ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", +divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", +373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js new file mode 100644 index 00000000..af10255d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", +reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js new file mode 100644 index 00000000..79483051 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", +reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", +Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", +Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", +agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", +icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", +uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", +9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js new file mode 100644 index 00000000..4928f400 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js new file mode 100644 index 00000000..894b56ce --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", +not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", +Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", +Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", +Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", +agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", +ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", +ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", +yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", +trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js new file mode 100644 index 00000000..84fb8fa2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", +frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", +times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", +ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", +rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js new file mode 100644 index 00000000..65a7518d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js new file mode 100644 index 00000000..4917d4ad --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", +ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", +Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", +Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", +times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", +atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", +icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", +uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", +375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js new file mode 100644 index 00000000..50a77d36 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", +laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", +Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", +Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", +times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", +acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", +icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", +uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", +sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js new file mode 100644 index 00000000..0cdcde20 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js new file mode 100644 index 00000000..68edf37f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", +reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", +Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", +Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", +Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", +aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", +iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", +uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", +375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js new file mode 100644 index 00000000..eecc56c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js new file mode 100644 index 00000000..f21a09db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", +laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", +Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", +Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", +Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", +eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", +divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", +375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka w lewo",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js new file mode 100644 index 00000000..e3f78319 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", +macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", +Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", +Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", +aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", +otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", +373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js new file mode 100644 index 00000000..11ef746a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", +laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", +Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", +Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", +times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", +atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", +icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", +uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", +sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa Duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js new file mode 100644 index 00000000..866e8659 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", +not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", +Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", +Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", +Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", +aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", +ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", +uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", +bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js new file mode 100644 index 00000000..1255a350 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", +macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js new file mode 100644 index 00000000..2d226d06 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", +reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", +Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", +Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", +Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", +aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", +oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", +OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", +hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js new file mode 100644 index 00000000..84759b62 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", +macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", +Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", +ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", +Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", +ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", +divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", +373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js new file mode 100644 index 00000000..c7098005 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", +Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", +Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", +times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", +acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", +iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", +ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", +373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js new file mode 100644 index 00000000..8f741b93 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", +not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", +Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", +Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", +ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", +ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", +trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js new file mode 100644 index 00000000..ae0b00e5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js new file mode 100644 index 00000000..3dd220a3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", +not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", +Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", +ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", +THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", +igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", +uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", +bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js new file mode 100644 index 00000000..2eadb9f7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Section sign",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", +not:"Not sign",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Middle dot",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе", +Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе", +Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе", +Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе", +ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе", +ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе", +oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow", +diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js new file mode 100644 index 00000000..51f4c1d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", +deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", +Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", +ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", +oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", +yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js new file mode 100644 index 00000000..845e7524 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", +not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", +Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", +Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", +Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", +igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", +ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", +hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js new file mode 100644 index 00000000..d4e4d37a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", +reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", +Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", +Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", +times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", +atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", +iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", +divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", +372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", +asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js new file mode 100644 index 00000000..6896e912 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", +Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", +Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", +iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", +373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js new file mode 100644 index 00000000..7bc2b556 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", +frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", +Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", +times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", +auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", +eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", +uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js new file mode 100644 index 00000000..c4d1696b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); +var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), +j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); +break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): +d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
 ');f.push("
",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, +title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", +align:"top",children:[{type:"html",html:"
"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
 
"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", +html:"
 
"}]}]}]}]}]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/stylesheetparser/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/stylesheetparser/plugin.js new file mode 100644 index 00000000..25ddd8f6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/stylesheetparser/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,e,c){var i=[],g=[],a;for(a=0;a|\+|~)/g," ");a=a.replace(/\[[^\]]*/g,"");a=a.replace(/#[^\s]*/g,"");a=a.replace(/\:{1,2}[^\s]*/g,"");a=a.replace(/\s+/g," ");a=a.split(" ");b=[];for(g=0;gl&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& +a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); +a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", +this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", +html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0b.indexOf("px")&&(b=b in j&&"none"!=a.getComputedStyle("border-style")?j[b]:0);return parseInt(b,10)}function w(a){var h=[],b=-1,j="rtl"==a.getComputedStyle("direction"),c;c=a.$.rows;for(var p=0,g,d,e,i=0,o=c.length;ip&&(p=g,d=e);c=d;p=new CKEDITOR.dom.element(a.$.tBodies[0]); +g=p.getDocumentPosition();d=0;for(e=c.cells.length;d',d);a.on("destroy",function(){e.remove()});s||d.getDocumentElement().append(e);this.attachTo=function(a){i|| +(s&&(d.getBody().append(e),k=0),g=a,e.setStyles({width:f(a.width),height:f(a.height),left:f(a.x),top:f(a.y)}),s&&e.setOpacity(0.25),e.on("mousedown",j,this),d.getBody().setStyle("cursor","col-resize"),e.show())};var r=this.move=function(a){if(!g)return 0;if(!i&&(ag.x+g.width))return g=null,i=k=0,d.removeListener("mouseup",c),e.removeListener("mousedown",j),e.removeListener("mousemove",p),d.getBody().setStyle("cursor","auto"),s?e.remove():e.hide(),0;a-=Math.round(e.$.offsetWidth/2);if(i){if(a== +y||a==z)return 1;a=Math.max(a,y);a=Math.min(a,z);k=a-o}e.setStyle("left",f(a));return 1}}function r(a){var h=a.data.getTarget();if("mouseout"==a.name){if(!h.is("table"))return;for(var b=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);b&&b.$&&!b.equals(h)&&!b.is("body");)b=b.getParent();if(!b||b.equals(h))return}h.getAscendant("table",1).removeCustomData("_cke_table_pillars");a.removeListener()}var f=CKEDITOR.tools.cssLength,s=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks); +CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(a){a.on("contentDom",function(){var h,b=a.editable();b.attachListener(b.isInline()?b:a.document,"mousemove",function(b){var b=b.data,c=b.getTarget();if(c.type==CKEDITOR.NODE_ELEMENT){var f=b.getPageOffset().x;if(h&&h.move(f))u(b);else if(c.is("table")||c.getAscendant("tbody",1)){c=c.getAscendant("table",1);if(!(b=c.getCustomData("_cke_table_pillars")))c.setCustomData("_cke_table_pillars",b=w(c)),c.on("mouseout",r),c.on("mousedown", +r);a:{for(var c=0,g=b.length;c=d.x&&f<=d.x+d.width){f=d;break a}}f=null}f&&(!h&&(h=new A(a)),h.attachTo(f))}}})})}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js b/platforms/android/assets/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js new file mode 100644 index 00000000..fb8e99ad --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js @@ -0,0 +1,17 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("cellProperties",function(g){function d(a){return function(b){for(var c=a(b[0]),d=1;d"+h.widthPx}]},f,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:d(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")|| +b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},f,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.alignLeft,"left"],[e.alignCenter,"center"],[e.alignRight,"right"],[e.alignJustify,"justify"]],setup:d(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align"); +a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:d(function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]}, +f,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:d(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},f,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:i.integer(c.invalidRowSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()): +a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:i.integer(c.invalidColSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},f,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:d(function(a){var b=a.getAttribute("bgColor"); +return a.getStyle("background-color")||b}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}},k?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:f]},f, +{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:d(function(a){var b=a.getAttribute("borderColor");return a.getStyle("border-color")||b}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},k?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(m?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align", +"bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}}:f]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d
'),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), +c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, +minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
'+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, +"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d'+f.emptyListMsg+"")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/templates.png b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/templates.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/icons/templates.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/af.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/af.js new file mode 100644 index 00000000..3d31c9f5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","af",{button:"Sjablone",emptyListMsg:"(Geen sjablone gedefineer nie)",insertOption:"Vervang huidige inhoud",options:"Sjabloon opsies",selectPromptMsg:"Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):",title:"Inhoud Sjablone"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ar.js new file mode 100644 index 00000000..b4d6e742 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ar",{button:"القوالب",emptyListMsg:"(لم يتم تعريف أي قالب)",insertOption:"استبدال المحتوى",options:"خصائص القوالب",selectPromptMsg:"اختر القالب الذي تود وضعه في المحرر",title:"قوالب المحتوى"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bg.js new file mode 100644 index 00000000..766b87ac --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bg",{button:"Шаблони",emptyListMsg:"(Няма дефинирани шаблони)",insertOption:"Препокрива актуалното съдържание",options:"Опции за шаблона",selectPromptMsg:"Изберете шаблон
(текущото съдържание на редактора ще бъде загубено):",title:"Шаблони"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bn.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bn.js new file mode 100644 index 00000000..d8faf6f4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bn",{button:"টেমপ্লেট",emptyListMsg:"(কোন টেমপ্লেট ডিফাইন করা নেই)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন
(আসল কনটেন্ট হারিয়ে যাবে):",title:"কনটেন্ট টেমপ্লেট"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bs.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bs.js new file mode 100644 index 00000000..09cfcd7e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bs",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ca.js new file mode 100644 index 00000000..5aec5ba9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ca",{button:"Plantilles",emptyListMsg:"(No hi ha plantilles definides)",insertOption:"Reemplaça el contingut actual",options:"Opcions de plantilla",selectPromptMsg:"Seleccioneu una plantilla per usar a l'editor
(per defecte s'elimina el contingut actual):",title:"Plantilles de contingut"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/cs.js new file mode 100644 index 00000000..0ceb5a01 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cs",{button:"Šablony",emptyListMsg:"(Není definována žádná šablona)",insertOption:"Nahradit aktuální obsah",options:"Nastavení šablon",selectPromptMsg:"Prosím zvolte šablonu pro otevření v editoru
(aktuální obsah editoru bude ztracen):",title:"Šablony obsahu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/cy.js new file mode 100644 index 00000000..86896b0e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cy",{button:"Templedi",emptyListMsg:"(Dim templedi wedi'u diffinio)",insertOption:"Amnewid y cynnwys go iawn",options:"Opsiynau Templedi",selectPromptMsg:"Dewiswch dempled i'w agor yn y golygydd",title:"Templedi Cynnwys"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/da.js new file mode 100644 index 00000000..a7505cc7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","da",{button:"Skabeloner",emptyListMsg:"(Der er ikke defineret nogen skabelon)",insertOption:"Erstat det faktiske indhold",options:"Skabelon muligheder",selectPromptMsg:"Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):",title:"Indholdsskabeloner"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/de.js new file mode 100644 index 00000000..de5a7619 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","de",{button:"Vorlagen",emptyListMsg:"(keine Vorlagen definiert)",insertOption:"Aktuellen Inhalt ersetzen",options:"Vorlagen Optionen",selectPromptMsg:"Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",title:"Vorlagen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/el.js new file mode 100644 index 00000000..ca7464d9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","el",{button:"Πρότυπα",emptyListMsg:"(Δεν έχουν καθοριστεί πρότυπα)",insertOption:"Αντικατάσταση υπάρχοντων περιεχομένων",options:"Επιλογές Προτύπου",selectPromptMsg:"Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα",title:"Πρότυπα Περιεχομένου"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-au.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-au.js new file mode 100644 index 00000000..65e54336 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-au",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-ca.js new file mode 100644 index 00000000..5472454f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-ca",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-gb.js new file mode 100644 index 00000000..ec9a7fd7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-gb",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en.js new file mode 100644 index 00000000..c5fef88d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/eo.js new file mode 100644 index 00000000..5d5afe6c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eo",{button:"Ŝablonoj",emptyListMsg:"(Neniu ŝablono difinita)",insertOption:"Anstataŭigi la nunan enhavon",options:"Opcioj pri ŝablonoj",selectPromptMsg:"Bonvolu selekti la ŝablonon por malfermi ĝin en la redaktilo",title:"Enhavo de ŝablonoj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/es.js new file mode 100644 index 00000000..c541e307 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","es",{button:"Plantillas",emptyListMsg:"(No hay plantillas definidas)",insertOption:"Reemplazar el contenido actual",options:"Opciones de plantillas",selectPromptMsg:"Por favor selecciona la plantilla a abrir en el editor
(el contenido actual se perderá):",title:"Contenido de Plantillas"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/et.js new file mode 100644 index 00000000..7e5e5855 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","et",{button:"Mall",emptyListMsg:"(Ühtegi malli ei ole defineeritud)",insertOption:"Praegune sisu asendatakse",options:"Malli valikud",selectPromptMsg:"Palun vali mall, mis avada redaktoris
(praegune sisu läheb kaotsi):",title:"Sisumallid"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/eu.js new file mode 100644 index 00000000..25b36ae1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eu",{button:"Txantiloiak",emptyListMsg:"(Ez dago definitutako txantiloirik)",insertOption:"Ordeztu oraingo edukiak",options:"Txantiloi Aukerak",selectPromptMsg:"Mesedez txantiloia aukeratu editorean kargatzeko
(orain dauden edukiak galduko dira):",title:"Eduki Txantiloiak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fa.js new file mode 100644 index 00000000..b7a94ba4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fa",{button:"الگوها",emptyListMsg:"(الگوئی تعریف نشده است)",insertOption:"محتویات کنونی جایگزین شوند",options:"گزینه‌های الگو",selectPromptMsg:"لطفاً الگوی مورد نظر را برای بازکردن در ویرایشگر انتخاب کنید",title:"الگوهای محتویات"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fi.js new file mode 100644 index 00000000..e58e9e46 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fi",{button:"Pohjat",emptyListMsg:"(Ei määriteltyjä pohjia)",insertOption:"Korvaa koko sisältö",options:"Sisältöpohjan ominaisuudet",selectPromptMsg:"Valitse editoriin avattava pohja",title:"Sisältöpohjat"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fo.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fo.js new file mode 100644 index 00000000..9ef42b39 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fo",{button:"Skabelónir",emptyListMsg:"(Ongar skabelónir tøkar)",insertOption:"Yvirskriva núverandi innihald",options:"Møguleikar fyri Template",selectPromptMsg:"Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum
(Hetta yvirskrivar núverandi innihald):",title:"Innihaldsskabelónir"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fr-ca.js new file mode 100644 index 00000000..91003fc7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr-ca",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer tout le contenu actuel",options:"Options de modèles",selectPromptMsg:"Sélectionner le modèle à ouvrir dans l'éditeur",title:"Modèles de contenu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fr.js new file mode 100644 index 00000000..48cb6d3d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer le contenu actuel",options:"Options des modèles",selectPromptMsg:"Veuillez sélectionner le modèle pour l'ouvrir dans l'éditeur",title:"Contenu des modèles"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/gl.js new file mode 100644 index 00000000..24483d1a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gl",{button:"Modelos",emptyListMsg:"(Non hai modelos definidos)",insertOption:"Substituír o contido actual",options:"Opcións de modelos",selectPromptMsg:"Seleccione o modelo a abrir no editor",title:"Modelos de contido"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/gu.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/gu.js new file mode 100644 index 00000000..ae121968 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gu",{button:"ટેમ્પ્લેટ",emptyListMsg:"(કોઈ ટેમ્પ્લેટ ડિફાઇન નથી)",insertOption:"મૂળ શબ્દને બદલો",options:"ટેમ્પ્લેટના વિકલ્પો",selectPromptMsg:"એડિટરમાં ઓપન કરવા ટેમ્પ્લેટ પસંદ કરો (વર્તમાન કન્ટેન્ટ સેવ નહીં થાય):",title:"કન્ટેન્ટ ટેમ્પ્લેટ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/he.js new file mode 100644 index 00000000..0e970ca5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","he",{button:"תבניות",emptyListMsg:"(לא הוגדרו תבניות)",insertOption:"החלפת תוכן ממשי",options:"אפשרויות התבניות",selectPromptMsg:"יש לבחור תבנית לפתיחה בעורך.
התוכן המקורי ימחק:",title:"תביות תוכן"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hi.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hi.js new file mode 100644 index 00000000..246bfe04 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hi",{button:"टॅम्प्लेट",emptyListMsg:"(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",insertOption:"मूल शब्दों को बदलें",options:"Template Options",selectPromptMsg:"ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",title:"कन्टेन्ट टॅम्प्लेट"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hr.js new file mode 100644 index 00000000..3bc52ea0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hr",{button:"Predlošci",emptyListMsg:"(Nema definiranih predložaka)",insertOption:"Zamijeni trenutne sadržaje",options:"Opcije predložaka",selectPromptMsg:"Molimo odaberite predložak koji želite otvoriti
(stvarni sadržaj će biti izgubljen):",title:"Predlošci sadržaja"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hu.js new file mode 100644 index 00000000..90ccbb66 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hu",{button:"Sablonok",emptyListMsg:"(Nincs sablon megadva)",insertOption:"Kicseréli a jelenlegi tartalmat",options:"Sablon opciók",selectPromptMsg:"Válassza ki melyik sablon nyíljon meg a szerkesztőben
(a jelenlegi tartalom elveszik):",title:"Elérhető sablonok"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/id.js new file mode 100644 index 00000000..8dc86b0b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","id",{button:"Contoh",emptyListMsg:"(Tidak ada contoh didefinisikan)",insertOption:"Ganti konten sebenarnya",options:"Opsi Contoh",selectPromptMsg:"Mohon pilih contoh untuk dibuka di editor",title:"Contoh Konten"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/is.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/is.js new file mode 100644 index 00000000..13e0736d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","is",{button:"Sniðmát",emptyListMsg:"(Ekkert sniðmát er skilgreint!)",insertOption:"Skipta út raunverulegu innihaldi",options:"Template Options",selectPromptMsg:"Veldu sniðmát til að opna í ritlinum.
(Núverandi innihald víkur fyrir því!):",title:"Innihaldssniðmát"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/it.js new file mode 100644 index 00000000..c3303ce1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","it",{button:"Modelli",emptyListMsg:"(Nessun modello definito)",insertOption:"Cancella il contenuto corrente",options:"Opzioni del Modello",selectPromptMsg:"Seleziona il modello da aprire nell'editor",title:"Contenuto dei modelli"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ja.js new file mode 100644 index 00000000..dbf519c3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ja",{button:"テンプレート",emptyListMsg:"(テンプレートが定義されていません)",insertOption:"現在のエディタの内容と置き換えます",options:"テンプレートオプション",selectPromptMsg:"エディターで使用するテンプレートを選択してください。
(現在のエディタの内容は失われます):",title:"内容テンプレート"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ka.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ka.js new file mode 100644 index 00000000..5864b757 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ka",{button:"თარგები",emptyListMsg:"(თარგი არაა განსაზღვრული)",insertOption:"მიმდინარე შეგთავსის შეცვლა",options:"თარგების პარამეტრები",selectPromptMsg:"აირჩიეთ თარგი რედაქტორისთვის",title:"თარგები"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/km.js new file mode 100644 index 00000000..14a0cf02 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","km",{button:"ពុម្ព​គំរូ",emptyListMsg:"(មិន​មាន​ពុម្ព​គំរូ​ត្រូវ​បាន​កំណត់)",insertOption:"ជំនួស​ក្នុង​មាតិកា​បច្ចុប្បន្ន",options:"ជម្រើស​ពុម្ព​គំរូ",selectPromptMsg:"សូម​រើស​ពុម្ព​គំរូ​ដើម្បី​បើក​ក្នុង​កម្មវិធី​សរសេរ​អត្ថបទ",title:"ពុម្ព​គំរូ​មាតិកា"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ko.js new file mode 100644 index 00000000..99c4f608 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ko",{button:"템플릿",emptyListMsg:"(템플릿이 없습니다.)",insertOption:"현재 내용 바꾸기",options:"템플릿 옵션",selectPromptMsg:"에디터에서 사용할 템플릿을 선택하십시요.
(지금까지 작성된 내용은 사라집니다.):",title:"내용 템플릿"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ku.js new file mode 100644 index 00000000..a5bda7d0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ku",{button:"ڕووکار",emptyListMsg:"(هیچ ڕووکارێك دیارینەکراوە)",insertOption:"لە شوێن دانانی ئەم پێکهاتانەی ئێستا",options:"هەڵبژاردەکانی ڕووکار",selectPromptMsg:"ڕووکارێك هەڵبژێره بۆ کردنەوەی له سەرنووسەر:",title:"پێکهاتەی ڕووکار"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/lt.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/lt.js new file mode 100644 index 00000000..ebbf213c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lt",{button:"Šablonai",emptyListMsg:"(Šablonų sąrašas tuščias)",insertOption:"Pakeisti dabartinį turinį pasirinktu šablonu",options:"Template Options",selectPromptMsg:"Pasirinkite norimą šabloną
(Dėmesio! esamas turinys bus prarastas):",title:"Turinio šablonai"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/lv.js new file mode 100644 index 00000000..a08ad5b4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lv",{button:"Sagataves",emptyListMsg:"(Nav norādītas sagataves)",insertOption:"Aizvietot pašreizējo saturu",options:"Sagataves uzstādījumi",selectPromptMsg:"Lūdzu, norādiet sagatavi, ko atvērt editorā
(patreizējie dati tiks zaudēti):",title:"Satura sagataves"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/mk.js new file mode 100644 index 00000000..ade20ea2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mk",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/mn.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/mn.js new file mode 100644 index 00000000..768bce5a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mn",{button:"Загварууд",emptyListMsg:"(Загвар тодорхойлогдоогүй байна)",insertOption:"Одоогийн агууллагыг дарж бичих",options:"Template Options",selectPromptMsg:"Загварыг нээж editor-рүү сонгож оруулна уу
(Одоогийн агууллагыг устаж магадгүй):",title:"Загварын агуулга"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ms.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ms.js new file mode 100644 index 00000000..5bf40cdf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ms",{button:"Templat",emptyListMsg:"(Tiada Templat Disimpan)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Sila pilih templat untuk dibuka oleh editor
(kandungan sebenar akan hilang):",title:"Templat Kandungan"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/nb.js new file mode 100644 index 00000000..5260dc85 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nb",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/nl.js new file mode 100644 index 00000000..a752e4bc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nl",{button:"Sjablonen",emptyListMsg:"(Geen sjablonen gedefinieerd)",insertOption:"Vervang de huidige inhoud",options:"Template opties",selectPromptMsg:"Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",title:"Inhoud sjablonen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/no.js new file mode 100644 index 00000000..cf5948b3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","no",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pl.js new file mode 100644 index 00000000..537d93c6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pl",{button:"Szablony",emptyListMsg:"(Brak zdefiniowanych szablonów)",insertOption:"Zastąp obecną zawartość",options:"Opcje szablonów",selectPromptMsg:"Wybierz szablon do otwarcia w edytorze
(obecna zawartość okna edytora zostanie utracona):",title:"Szablony zawartości"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pt-br.js new file mode 100644 index 00000000..65949501 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt-br",{button:"Modelos de layout",emptyListMsg:"(Não foram definidos modelos de layout)",insertOption:"Substituir o conteúdo atual",options:"Opções de Template",selectPromptMsg:"Selecione um modelo de layout para ser aberto no editor
(o conteúdo atual será perdido):",title:"Modelo de layout de conteúdo"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pt.js new file mode 100644 index 00000000..829299eb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt",{button:"Modelos",emptyListMsg:"(Sem modelos definidos)",insertOption:"Substituir conteúdos actuais",options:"Opções do Modelo",selectPromptMsg:"Por favor, selecione o modelo para abrir no editor",title:"Conteúdo dos Modelos"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ro.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ro.js new file mode 100644 index 00000000..8ef5d355 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ro",{button:"Template-uri (şabloane)",emptyListMsg:"(Niciun template (şablon) definit)",insertOption:"Înlocuieşte cuprinsul actual",options:"Opțiuni șabloane",selectPromptMsg:"Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor
(conţinutul actual va fi pierdut):",title:"Template-uri (şabloane) de conţinut"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ru.js new file mode 100644 index 00000000..201fa65b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ru",{button:"Шаблоны",emptyListMsg:"(не определено ни одного шаблона)",insertOption:"Заменить текущее содержимое",options:"Параметры шаблона",selectPromptMsg:"Пожалуйста, выберите, какой шаблон следует открыть в редакторе",title:"Шаблоны содержимого"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/si.js new file mode 100644 index 00000000..dc4ea690 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","si",{button:"අච්චුව",emptyListMsg:"කිසිම අච්චුවක් කලින් තීරණය කර ",insertOption:"සත්‍ය අන්තර්ගතයන් ප්‍රතිස්ථාපනය කරන්න",options:"අච්චු ",selectPromptMsg:"කරුණාකර සංස්කරණය සදහා අච්චුවක් ",title:"අන්තර්ගත් අච්චුන්"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sk.js new file mode 100644 index 00000000..60f33664 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sk",{button:"Šablóny",emptyListMsg:"(Žiadne šablóny nedefinované)",insertOption:"Nahradiť aktuálny obsah",options:"Možnosti šablóny",selectPromptMsg:"Prosím vyberte šablónu na otvorenie v editore",title:"Šablóny obsahu"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sl.js new file mode 100644 index 00000000..db33ea9a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sl",{button:"Predloge",emptyListMsg:"(Ni pripravljenih predlog)",insertOption:"Zamenjaj trenutno vsebino",options:"Možnosti Predloge",selectPromptMsg:"Izberite predlogo, ki jo želite odpreti v urejevalniku
(trenutna vsebina bo izgubljena):",title:"Vsebinske predloge"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sq.js new file mode 100644 index 00000000..f10c387e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sq",{button:"Shabllonet",emptyListMsg:"(Asnjë shabllon nuk është paradefinuar)",insertOption:"Zëvendëso përmbajtjen aktuale",options:"Opsionet e Shabllonit",selectPromptMsg:"Përzgjidhni shabllonin për të hapur tek redaktuesi",title:"Përmbajtja e Shabllonit"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sr-latn.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sr-latn.js new file mode 100644 index 00000000..96498838 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr-latn",{button:"Obrasci",emptyListMsg:"(Nema definisanih obrazaca)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",title:"Obrasci za sadržaj"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sr.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sr.js new file mode 100644 index 00000000..fea8b5ea --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr",{button:"Обрасци",emptyListMsg:"(Нема дефинисаних образаца)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",title:"Обрасци за садржај"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sv.js new file mode 100644 index 00000000..78e82de7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sv",{button:"Sidmallar",emptyListMsg:"(Ingen mall är vald)",insertOption:"Ersätt aktuellt innehåll",options:"Inställningar för mall",selectPromptMsg:"Var god välj en mall att använda med editorn
(allt nuvarande innehåll raderas):",title:"Sidmallar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/th.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/th.js new file mode 100644 index 00000000..e9d8e6b0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","th",{button:"เทมเพลต",emptyListMsg:"(ยังไม่มีการกำหนดเทมเพลต)",insertOption:"แทนที่เนื้อหาเว็บไซต์ที่เลือก",options:"ตัวเลือกเกี่ยวกับเทมเพลท",selectPromptMsg:"กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์
(เนื้อหาส่วนนี้จะหายไป):",title:"เทมเพลตของส่วนเนื้อหาเว็บไซต์"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/tr.js new file mode 100644 index 00000000..bd550faa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tr",{button:"Şablonlar",emptyListMsg:"(Belirli bir şablon seçilmedi)",insertOption:"Mevcut içerik ile değiştir",options:"Şablon Seçenekleri",selectPromptMsg:"Düzenleyicide açmak için lütfen bir şablon seçin.
(hali hazırdaki içerik kaybolacaktır.):",title:"İçerik Şablonları"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/tt.js new file mode 100644 index 00000000..04f0c93c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tt",{button:"Шаблоннар",emptyListMsg:"(Шаблоннар билгеләнмәгән)",insertOption:"Әлеге эчтәлекне алмаштыру",options:"Шаблон үзлекләре",selectPromptMsg:"Please select the template to open in the editor",title:"Эчтәлек шаблоннары"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ug.js new file mode 100644 index 00000000..bb66471e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ug",{button:"قېلىپ",emptyListMsg:"(قېلىپ يوق)",insertOption:"نۆۋەتتىكى مەزمۇننى ئالماشتۇر",options:"قېلىپ تاللانمىسى",selectPromptMsg:"تەھرىرلىگۈچنىڭ مەزمۇن قېلىپىنى تاللاڭ:",title:"مەزمۇن قېلىپى"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/uk.js new file mode 100644 index 00000000..9e543981 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","uk",{button:"Шаблони",emptyListMsg:"(Не знайдено жодного шаблону)",insertOption:"Замінити поточний вміст",options:"Опції шаблону",selectPromptMsg:"Оберіть, будь ласка, шаблон для відкриття в редакторі
(поточний зміст буде втрачено):",title:"Шаблони змісту"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/vi.js new file mode 100644 index 00000000..3c182f47 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","vi",{button:"Mẫu dựng sẵn",emptyListMsg:"(Không có mẫu dựng sẵn nào được định nghĩa)",insertOption:"Thay thế nội dung hiện tại",options:"Tùy chọn mẫu dựng sẵn",selectPromptMsg:"Hãy chọn mẫu dựng sẵn để mở trong trình biên tập
(nội dung hiện tại sẽ bị mất):",title:"Nội dung Mẫu dựng sẵn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/zh-cn.js new file mode 100644 index 00000000..f0216481 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh-cn",{button:"模板",emptyListMsg:"(没有模板)",insertOption:"替换当前内容",options:"模板选项",selectPromptMsg:"请选择要在编辑器中使用的模板:",title:"内容模板"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/zh.js new file mode 100644 index 00000000..dd974dff --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh",{button:"範本",emptyListMsg:"(尚未定義任何範本)",insertOption:"替代實際內容",options:"範本選項",selectPromptMsg:"請選擇要在編輯器中開啟的範本。",title:"內容範本"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/templates/plugin.js new file mode 100644 index 00000000..a5f6d642 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/templates/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"templates,templates-rtl",hidpi:!0,init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&& +a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=[],b=0,c=a.length;bType the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template1.gif b/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template1.gif new file mode 100644 index 00000000..efdabbeb Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template1.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template2.gif b/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template2.gif new file mode 100644 index 00000000..d1cebb3a Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template2.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template3.gif b/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template3.gif new file mode 100644 index 00000000..db41cb4f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/templates/templates/images/template3.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js new file mode 100644 index 00000000..adc1cfb3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("uicolor",function(b){function f(a){/^#/.test(a)&&(a=window.YAHOO.util.Color.hex2rgb(a.substr(1)));c.setValue(a,!0);c.refresh(e)}function g(a){b.setUiColor(a);d._.contents.tab1.configBox.setValue('config.uiColor = "#'+c.get("hex")+'"')}var d,c,h=b.getUiColor(),e="cke_uicolor_picker"+CKEDITOR.tools.getNextNumber();return{title:b.lang.uicolor.title,minWidth:360,minHeight:320,onLoad:function(){d=this;this.setupContent();CKEDITOR.env.ie7Compat&&d.parts.contents.setStyle("overflow", +"hidden")},contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{id:"yuiColorPicker",type:"html",html:"
",onLoad:function(){var a=CKEDITOR.getUrl("plugins/uicolor/yui/");this.picker=c=new window.YAHOO.widget.ColorPicker(e,{showhsvcontrols:!0,showhexcontrols:!0,images:{PICKER_THUMB:a+"assets/picker_thumb.png",HUE_THUMB:a+"assets/hue_thumb.png"}});h&&f(h);c.on("rgbChange",function(){d._.contents.tab1.predefined.setValue(""); +g("#"+c.get("hex"))});for(var a=new CKEDITOR.dom.nodeList(c.getElementsByTagName("input")),b=0;b
 
'}]},{id:"configBox",type:"text",label:b.lang.uicolor.config,onShow:function(){var a=b.getUiColor();a&&this.setValue('config.uiColor = "'+a+'"')}}]}]}],buttons:[CKEDITOR.dialog.okButton]}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png new file mode 100644 index 00000000..e6efa4a3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png new file mode 100644 index 00000000..d5739dff Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt new file mode 100644 index 00000000..2af2d324 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 4 Missing: 0 +cs.js Found: 4 Missing: 0 +cy.js Found: 4 Missing: 0 +da.js Found: 4 Missing: 0 +de.js Found: 4 Missing: 0 +el.js Found: 4 Missing: 0 +eo.js Found: 4 Missing: 0 +et.js Found: 4 Missing: 0 +fa.js Found: 4 Missing: 0 +fi.js Found: 4 Missing: 0 +fr.js Found: 4 Missing: 0 +he.js Found: 4 Missing: 0 +hr.js Found: 4 Missing: 0 +it.js Found: 4 Missing: 0 +mk.js Found: 4 Missing: 0 +nb.js Found: 4 Missing: 0 +nl.js Found: 4 Missing: 0 +no.js Found: 4 Missing: 0 +pl.js Found: 4 Missing: 0 +tr.js Found: 4 Missing: 0 +ug.js Found: 4 Missing: 0 +uk.js Found: 4 Missing: 0 +vi.js Found: 4 Missing: 0 +zh-cn.js Found: 4 Missing: 0 diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ar.js new file mode 100644 index 00000000..6dcf6470 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ar",{title:"منتقي الألوان",preview:"معاينة مباشرة",config:"قص السطر إلى الملف config.js",predefined:"مجموعات ألوان معرفة مسبقا"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/bg.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/bg.js new file mode 100644 index 00000000..6c58885a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","bg",{title:"ПИ избор на цвят",preview:"Преглед",config:"Вмъкнете този низ във Вашия config.js fajl",predefined:"Предефинирани цветови палитри"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ca.js new file mode 100644 index 00000000..6f97e2a7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ca",{title:"UI Color Picker",preview:"Vista prèvia",config:"Enganxa aquest text dins el fitxer config.js",predefined:"Conjunts de colors predefinits"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/cs.js new file mode 100644 index 00000000..ef0e2e0b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cs",{title:"Výběr barvy rozhraní",preview:"Živý náhled",config:"Vložte tento řetězec do vašeho souboru config.js",predefined:"Přednastavené sady barev"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/cy.js new file mode 100644 index 00000000..45634661 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cy",{title:"Dewisydd Lliwiau'r UI",preview:"Rhagolwg Byw",config:"Gludwch y llinyn hwn i'ch ffeil config.js",predefined:"Setiau lliw wedi'u cyn-ddiffinio"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/da.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/da.js new file mode 100644 index 00000000..d05bbe87 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","da",{title:"Brugerflade på farvevælger",preview:"Vis liveeksempel",config:"Indsæt denne streng i din config.js fil",predefined:"Prædefinerede farveskemaer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/de.js new file mode 100644 index 00000000..dfb3f1a4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","de",{title:"UI Pipette",preview:"Live-Vorschau",config:"Fügen Sie diese Zeichenfolge in die 'config.js' Datei.",predefined:"Vordefinierte Farbsätze"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/el.js new file mode 100644 index 00000000..3cb51681 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","el",{title:"Διεπαφή Επιλογής Χρωμάτων",preview:"Ζωντανή Προεπισκόπηση",config:"Επικολλήστε αυτό το κείμενο στο αρχείο config.js",predefined:"Προκαθορισμένα σύνολα χρωμάτων"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js new file mode 100644 index 00000000..ce29dcdd --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en-gb",{title:"UI Colour Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined colour sets"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/en.js new file mode 100644 index 00000000..b43a201d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en",{title:"UI Color Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined color sets"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/eo.js new file mode 100644 index 00000000..2498f670 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eo",{title:"UI Kolorselektilo",preview:"Vidigi la aspekton",config:"Gluu tiun signoĉenon en vian dosieron config.js",predefined:"Antaŭdifinita koloraro"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/es.js new file mode 100644 index 00000000..ef68b1d4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","es",{title:"Recolector de Color de Interfaz de Usuario",preview:"Vista previa en vivo",config:"Pega esta cadena en tu archivo config.js",predefined:"Conjuntos predefinidos de colores"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/et.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/et.js new file mode 100644 index 00000000..7ebe8364 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","et",{title:"Värvivalija kasutajaliides",preview:"Automaatne eelvaade",config:"Aseta see sõne oma config.js faili.",predefined:"Eelmääratud värvikomplektid"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/eu.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/eu.js new file mode 100644 index 00000000..52e479f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eu",{title:"EI Kolore Hautatzailea",preview:"Zuzeneko aurreikuspena",config:"Itsatsi karaktere kate hau zure config.js fitxategian.",predefined:"Aurredefinitutako kolore multzoak"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fa.js new file mode 100644 index 00000000..7d62b4cc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fa",{title:"انتخاب رنگ رابط کاربری",preview:"پیش‌نمایش زنده",config:"این رشته را در پروندهٔ config.js خود رونوشت کنید.",predefined:"مجموعه رنگ از پیش تعریف شده"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fi.js new file mode 100644 index 00000000..724ff5ad --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fi",{title:"Käyttöliittymän väripaletti",preview:"Esikatsele heti",config:"Liitä tämä merkkijono config.js tiedostoosi",predefined:"Esimääritellyt värijoukot"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js new file mode 100644 index 00000000..75791374 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr-ca",{title:"Sélecteur de couleur",preview:"Aperçu",config:"Insérez cette ligne dans votre fichier config.js",predefined:"Ensemble de couleur prédéfinies"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fr.js new file mode 100644 index 00000000..457a953d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr",{title:"UI Sélecteur de couleur",preview:"Aperçu",config:"Collez cette chaîne de caractères dans votre fichier config.js",predefined:"Palettes de couleurs prédéfinies"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/gl.js new file mode 100644 index 00000000..6151989e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","gl",{title:"Recolledor de cor da interface de usuario",preview:"Vista previa en vivo",config:"Pegue esta cadea no seu ficheiro config.js",predefined:"Conxuntos predefinidos de cores"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/he.js new file mode 100644 index 00000000..e210e039 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","he",{title:"בחירת צבע ממשק משתמש",preview:"תצוגה מקדימה",config:"הדבק את הטקסט הבא לתוך הקובץ config.js",predefined:"קבוצות צבעים מוגדרות מראש"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/hr.js new file mode 100644 index 00000000..1495ab04 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hr",{title:"UI odabir boja",preview:"Pregled uživo",config:"Zalijepite ovaj tekst u Vašu config.js datoteku.",predefined:"Već postavljeni setovi boja"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/hu.js new file mode 100644 index 00000000..2c4a5e55 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hu",{title:"UI Színválasztó",preview:"Élő előnézet",config:"Illessze be ezt a szöveget a config.js fájlba",predefined:"Előre definiált színbeállítások"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/id.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/id.js new file mode 100644 index 00000000..b2af0502 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","id",{title:"Pengambil Warna UI",preview:"Pratinjau",config:"Tempel string ini ke arsip config.js anda.",predefined:"Set warna belum terdefinisi."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/it.js new file mode 100644 index 00000000..3c294a76 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","it",{title:"Selettore Colore UI",preview:"Anteprima Live",config:"Incolla questa stringa nel tuo file config.js",predefined:"Set di colori predefiniti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ja.js new file mode 100644 index 00000000..55b1f9c2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ja",{title:"UIカラーピッカー",preview:"ライブプレビュー",config:"この文字列を config.js ファイルへ貼り付け",predefined:"既定カラーセット"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/km.js new file mode 100644 index 00000000..c38c5be9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","km",{title:"ប្រដាប់​រើស​ពណ៌",preview:"មើល​ជាមុន​ផ្ទាល់",config:"បិទ​ភ្ជាប់​ខ្សែ​អក្សរ​នេះ​ទៅ​ក្នុង​ឯកសារ config.js របស់​អ្នក",predefined:"ឈុត​ពណ៌​កំណត់​រួច​ស្រេច"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ko.js new file mode 100644 index 00000000..af9199f4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ko",{title:"UI 색상 선택기",preview:"미리보기",config:"이 문자열을 config.js 에 붙여넣으세요",predefined:"미리 정의된 색깔들"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ku.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ku.js new file mode 100644 index 00000000..11b7fd1c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ku",{title:"هەڵگری ڕەنگ بۆ ڕووکاری بەکارهێنەر",preview:"پێشبینین بە زیندوویی",config:"ئەم دەقانە بلکێنە بە پەڕگەی config.js-fil",predefined:"کۆمەڵە ڕەنگە دیاریکراوەکانی پێشوو"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/lv.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/lv.js new file mode 100644 index 00000000..5655b659 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","lv",{title:"UI krāsas izvēle",preview:"Priekšskatījums",config:"Ielīmējiet šo rindu jūsu config.js failā",predefined:"Predefinēti krāsu komplekti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/mk.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/mk.js new file mode 100644 index 00000000..b219d766 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/mk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","mk",{title:"Палета со бои",preview:"Преглед",config:"Залепи го овој текст во config.js датотеката",predefined:"Предефинирани множества на бои"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/nb.js new file mode 100644 index 00000000..84ae603b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nb",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/nl.js new file mode 100644 index 00000000..8a62e469 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nl",{title:"UI Kleurenkiezer",preview:"Live voorbeeld",config:"Plak deze tekst in jouw config.js bestand",predefined:"Voorgedefinieerde kleurensets"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/no.js new file mode 100644 index 00000000..b51a6994 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","no",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pl.js new file mode 100644 index 00000000..38b0c2aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pl",{title:"Wybór koloru interfejsu",preview:"Podgląd na żywo",config:"Wklej poniższy łańcuch znaków do pliku config.js:",predefined:"Predefiniowane zestawy kolorów"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js new file mode 100644 index 00000000..be6aa759 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt-br",{title:"Paleta de Cores",preview:"Visualização ao vivo",config:"Cole o texto no seu arquivo config.js",predefined:"Conjuntos de cores predefinidos"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pt.js new file mode 100644 index 00000000..f96f758b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt",{title:"Seleção da Cor da IU",preview:"Pré-visualização Live ",config:"Colar este item no seu ficheiro config.js",predefined:"Conjuntos de cor predefinidos"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ru.js new file mode 100644 index 00000000..133e6dd4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ru",{title:"Выбор цвета интерфейса",preview:"Предпросмотр в реальном времени",config:"Вставьте эту строку в файл config.js",predefined:"Предопределенные цветовые схемы"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/si.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/si.js new file mode 100644 index 00000000..2c9755a1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","si",{title:"වර්ණ ",preview:"සජීව නැවත නරභීම",config:"මෙම අක්ෂර පේලිය ගෙන config.js ලිපිගොනුව මතින් තබන්න",predefined:"කලින් වෙන්කරගත් පරිදි ඇති වර්ණ"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sk.js new file mode 100644 index 00000000..2456d281 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sk",{title:"UI výber farby",preview:"Živý náhľad",config:"Vložte tento reťazec do vášho config.js súboru",predefined:"Preddefinované sady farieb"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sl.js new file mode 100644 index 00000000..62dda984 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sl",{title:"UI Izbiralec Barve",preview:"Živi predogled",config:"Prilepite ta niz v vašo config.js datoteko",predefined:"Vnaprej določeni barvni kompleti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sq.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sq.js new file mode 100644 index 00000000..56ebe486 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sq",{title:"UI Mbledhës i Ngjyrave",preview:"Parapamje direkte",config:"Hidhni këtë varg në skedën tuaj config.js",predefined:"Setet e paradefinuara të ngjyrave"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sv.js new file mode 100644 index 00000000..9b3e7231 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sv",{title:"UI Färgväljare",preview:"Live förhandsgranskning",config:"Klistra in den här strängen i din config.js-fil",predefined:"Fördefinierade färguppsättningar"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/tr.js new file mode 100644 index 00000000..ec553d0d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tr",{title:"UI Renk Seçici",preview:"Canlı ön izleme",config:"Bu yazıyı config.js dosyasının içine yapıştırın",predefined:"Önceden tanımlı renk seti"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/tt.js new file mode 100644 index 00000000..66990c45 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tt",{title:"Интерфейс төсләрен сайлау",preview:"Тере карап алу",config:"Бу юлны config.js файлына языгыз",predefined:"Баштан билгеләнгән төсләр җыелмасы"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ug.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ug.js new file mode 100644 index 00000000..4cadfee2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ug",{title:"ئىشلەتكۈچى ئارايۈزى رەڭ تاللىغۇچ",preview:"شۇئان ئالدىن كۆزىتىش",config:"بۇ ھەرپ تىزىقىنى config.js ھۆججەتكە چاپلايدۇ",predefined:"ئالدىن بەلگىلەنگەن رەڭلەر"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/uk.js new file mode 100644 index 00000000..acd28a19 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","uk",{title:"Color Picker Інтерфейс",preview:"Перегляд наживо",config:"Вставте цей рядок у файл config.js",predefined:"Стандартний набір кольорів"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/vi.js new file mode 100644 index 00000000..bd02f062 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","vi",{title:"Giao diện người dùng Color Picker",preview:"Xem trước trực tiếp",config:"Dán chuỗi này vào tập tin config.js của bạn",predefined:"Tập màu định nghĩa sẵn"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js new file mode 100644 index 00000000..552dc689 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh-cn",{title:"用户界面颜色选择器",preview:"即时预览",config:"粘贴此字符串到您的 config.js 文件",predefined:"预定义颜色集"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/zh.js new file mode 100644 index 00000000..cff7a9a9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh",{title:"UI 色彩選擇器",preview:"即時預覽",config:"請將此段字串複製到您的 config.js 檔案中。",predefined:"設定預先定義的色彩"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/plugin.js new file mode 100644 index 00000000..fc402d0a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("uicolor",{requires:"dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,mk,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",icons:"uicolor",hidpi:!0,init:function(a){CKEDITOR.env.ie6Compat||(a.addCommand("uicolor",new CKEDITOR.dialogCommand("uicolor")),a.ui.addButton&&a.ui.addButton("UIColor",{label:a.lang.uicolor.title,command:"uicolor",toolbar:"tools,1"}),CKEDITOR.dialog.add("uicolor",this.path+"dialogs/uicolor.js"), +CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("plugins/uicolor/yui/yui.js")),CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl("plugins/uicolor/yui/assets/yui.css")))}}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png new file mode 100644 index 00000000..d9bcdeb5 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png new file mode 100644 index 00000000..14d5db48 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png new file mode 100644 index 00000000..f8d91932 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png new file mode 100644 index 00000000..78445a2f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css new file mode 100644 index 00000000..2e10cb69 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css @@ -0,0 +1,7 @@ +/* +Copyright (c) 2009, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.7.0 +*/ +.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/yui.js b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/yui.js new file mode 100644 index 00000000..cb187ddc --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/uicolor/yui/yui.js @@ -0,0 +1,225 @@ +if("undefined"==typeof YAHOO||!YAHOO)var YAHOO={};YAHOO.namespace=function(){var c=arguments,e=null,b,d,a;for(b=0;b "),c.isObject(a[d])?i.push(0h)break;i=a.indexOf("}",h);if(h+1>=i)break;k=n=a.substring(h+1,i);l=null;j=k.indexOf(" ");-1b.ie&&(j=g=2,h=e.compatMode,m=o(e.documentElement,"borderLeftWidth"),e=o(e.documentElement,"borderTopWidth"),6===b.ie&&"BackCompat"!==h&&(j=g=0),"BackCompat"==h&&("medium"!==m&& +(g=parseInt(m,10)),"medium"!==e&&(j=parseInt(e,10))),f[0]-=g,f[1]-=j);if(d||a)f[0]+=a,f[1]+=d;f[0]=k(f[0]);f[1]=k(f[1])}return f}:function(a){var d,f,e,g=!1,j=a;if(c.Dom._canPosition(a)){g=[a.offsetLeft,a.offsetTop];d=c.Dom.getDocumentScrollLeft(a.ownerDocument);f=c.Dom.getDocumentScrollTop(a.ownerDocument);for(e=m||519=this.left&&c.right<=this.right&&c.top>=this.top&&c.bottom<=this.bottom};YAHOO.util.Region.prototype.getArea=function(){return(this.bottom-this.top)*(this.right-this.left)};YAHOO.util.Region.prototype.intersect=function(c){var e=Math.max(this.top,c.top),b=Math.min(this.right,c.right),d=Math.min(this.bottom,c.bottom),c=Math.max(this.left,c.left);return d>=e&&b>=c?new YAHOO.util.Region(e,b,d,c):null}; +YAHOO.util.Region.prototype.union=function(c){var e=Math.min(this.top,c.top),b=Math.max(this.right,c.right),d=Math.max(this.bottom,c.bottom),c=Math.min(this.left,c.left);return new YAHOO.util.Region(e,b,d,c)};YAHOO.util.Region.prototype.toString=function(){return"Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}"}; +YAHOO.util.Region.getRegion=function(c){var e=YAHOO.util.Dom.getXY(c);return new YAHOO.util.Region(e[1],e[0]+c.offsetWidth,e[1]+c.offsetHeight,e[0])};YAHOO.util.Point=function(c,e){YAHOO.lang.isArray(c)&&(e=c[1],c=c[0]);YAHOO.util.Point.superclass.constructor.call(this,e,c,e,c)};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region); +(function(){var c=YAHOO.util,e=/^width|height$/,b=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,d={get:function(a,d){var e="",e=a.currentStyle[d];return e="opacity"===d?c.Dom.getStyle(a,"opacity"):!e||e.indexOf&&-1d&&(c=d-(a[j]-d)),a.style[b]="auto")):(!a.style[k]&&!a.style[b]&&(a.style[b]=d),c=a.style[k]);return c+"px"},getBorderWidth:function(a,b){var d=null;a.currentStyle.hasLayout||(a.style.zoom=1);switch(b){case "borderTopWidth":d=a.clientTop;break;case "borderBottomWidth":d=a.offsetHeight-a.clientHeight-a.clientTop;break;case "borderLeftWidth":d=a.clientLeft;break;case "borderRightWidth":d=a.offsetWidth-a.clientWidth-a.clientLeft}return d+"px"},getPixel:function(a, +b){var d=null,c=a.currentStyle.right;a.style.right=a.currentStyle[b];d=a.style.pixelRight;a.style.right=c;return d+"px"},getMargin:function(a,b){return"auto"==a.currentStyle[b]?"0px":c.Dom.IE.ComputedStyle.getPixel(a,b)},getVisibility:function(a,b){for(var d;(d=a.currentStyle)&&"inherit"==d[b];)a=a.parentNode;return d?d[b]:"visible"},getColor:function(a,b){return c.Dom.Color.toRGB(a.currentStyle[b])||"transparent"},getBorderColor:function(a,b){var d=a.currentStyle;return c.Dom.Color.toRGB(c.Dom.Color.toHex(d[b]|| +d.color))}},a={};a.top=a.right=a.bottom=a.left=a.width=a.height=d.getOffset;a.color=d.getColor;a.borderTopWidth=a.borderRightWidth=a.borderBottomWidth=a.borderLeftWidth=d.getBorderWidth;a.marginTop=a.marginRight=a.marginBottom=a.marginLeft=d.getMargin;a.visibility=d.getVisibility;a.borderColor=a.borderTopColor=a.borderRightColor=a.borderBottomColor=a.borderLeftColor=d.getBorderColor;c.Dom.IE_COMPUTED=a;c.Dom.IE_ComputedStyle=d})(); +(function(){var c=parseInt,e=RegExp,b=YAHOO.util;b.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(d){b.Dom.Color.re_RGB.test(d)||(d=b.Dom.Color.toHex(d));b.Dom.Color.re_hex.exec(d)&& +(d="rgb("+[c(e.$1,16),c(e.$2,16),c(e.$3,16)].join(", ")+")");return d},toHex:function(d){d=b.Dom.Color.KEYWORDS[d]||d;if(b.Dom.Color.re_RGB.exec(d))var d=1===e.$2.length?"0"+e.$2:Number(e.$2),a=1===e.$3.length?"0"+e.$3:Number(e.$3),d=[(1===e.$1.length?"0"+e.$1:Number(e.$1)).toString(16),d.toString(16),a.toString(16)].join("");6>d.length&&(d=d.replace(b.Dom.Color.re_hex3,"$1$1"));"transparent"!==d&&0>d.indexOf("#")&&(d="#"+d);return d.toLowerCase()}}})(); +YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(c,e,b,d){this.type=c;this.scope=e||window;this.silent=b;this.signature=d||YAHOO.util.CustomEvent.LIST;this.subscribers=[];"_YUICEOnSubscribe"!==c&&(this.subscribeEvent=new YAHOO.util.CustomEvent("_YUICEOnSubscribe",this,!0));this.lastError=null};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1; +YAHOO.util.CustomEvent.prototype={subscribe:function(c,e,b){if(!c)throw Error("Invalid callback for subscriber to '"+this.type+"'");this.subscribeEvent&&this.subscribeEvent.fire(c,e,b);this.subscribers.push(new YAHOO.util.Subscriber(c,e,b))},unsubscribe:function(c,e){if(!c)return this.unsubscribeAll();for(var b=!1,d=0,a=this.subscribers.length;dthis.webkit&& +("click"==b||"dblclick"==b)},removeListener:function(d,c,f,g){var j,h,k;if("string"==typeof d)d=this.getEl(d);else if(this._isValidCollection(d)){g=!0;for(j=d.length-1;-1c.webkit?c._dri=setInterval(function(){var b=document.readyState;if("loaded"==b||"complete"==b)clearInterval(c._dri),c._dri=null,c._ready()},c.POLL_INTERVAL):c._simpleAdd(document,"DOMContentLoaded",c._ready);c._simpleAdd(window,"load",c._load);c._simpleAdd(window,"unload",c._unload);c._tryPreloadAttach()}());YAHOO.util.EventProvider=function(){}; +YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(c,e,b,d){this.__yui_events=this.__yui_events||{};var a=this.__yui_events[c];if(a)a.subscribe(e,b,d);else{a=this.__yui_subscribers=this.__yui_subscribers||{};a[c]||(a[c]=[]);a[c].push({fn:e,obj:b,overrideContext:d})}},unsubscribe:function(c,e,b){var d=this.__yui_events=this.__yui_events||{};if(c){if(d=d[c])return d.unsubscribe(e,b)}else{var c=true,a;for(a in d)YAHOO.lang.hasOwnProperty(d,a)&&(c=c&&d[a].unsubscribe(e, +b));return c}return false},unsubscribeAll:function(c){return this.unsubscribe(c)},createEvent:function(c,e){this.__yui_events=this.__yui_events||{};var b=e||{},d=this.__yui_events;if(!d[c]){var a=new YAHOO.util.CustomEvent(c,b.scope||this,b.silent,YAHOO.util.CustomEvent.FLAT);d[c]=a;b.onSubscribeCallback&&a.subscribeEvent.subscribe(b.onSubscribeCallback);this.__yui_subscribers=this.__yui_subscribers||{};if(b=this.__yui_subscribers[c])for(var f=0;fthis.clickPixelThresh||c>this.clickPixelThresh)&&this.startDrag(this.startX,this.startY)}if(this.dragThreshMet){if(d&& +d.events.b4Drag){d.b4Drag(b);d.fireEvent("b4DragEvent",{e:b})}if(d&&d.events.drag){d.onDrag(b);d.fireEvent("dragEvent",{e:b})}d&&this.fireEvents(b,false)}this.stopEvent(b)}},fireEvents:function(b,d){var a=this.dragCurrent;if(a&&!a.isLocked()&&!a.dragOnly){var c=YAHOO.util.Event.getPageX(b),e=YAHOO.util.Event.getPageY(b),h=new YAHOO.util.Point(c,e),e=a.getTargetCoord(h.x,h.y),i=a.getDragEl(),c=["out","over","drop","enter"],j=new YAHOO.util.Region(e.y,e.x+i.offsetWidth,e.y+i.offsetHeight,e.x),k=[], +l={},e=[],i={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]},m;for(m in this.dragOvers){var n=this.dragOvers[m];if(this.isTypeOfDD(n)){this.isOverTarget(h,n,this.mode,j)||i.outEvts.push(n);k[m]=true;delete this.dragOvers[m]}}for(var o in a.groups)if("string"==typeof o)for(m in this.ids[o]){n=this.ids[o][m];if(this.isTypeOfDD(n)&&n.isTarget&&(!n.isLocked()&&n!=a)&&this.isOverTarget(h,n,this.mode,j)){l[o]=true;if(d)i.dropEvts.push(n);else{k[n.id]?i.overEvts.push(n):i.enterEvts.push(n);this.dragOvers[n.id]= +n}}}this.interactionInfo={out:i.outEvts,enter:i.enterEvts,over:i.overEvts,drop:i.dropEvts,point:h,draggedRegion:j,sourceRegion:this.locationCache[a.id],validDrop:d};for(var r in l)e.push(r);if(d&&!i.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(b);a.fireEvent("invalidDropEvent",{e:b})}}for(m=0;m2E3)){setTimeout(b._addListeners,10);if(document&&document.body)b._timeoutCount=b._timeoutCount+1}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id))return true;for(var a=b.parentNode;a;){if(this.isHandle(d,a.id))return true;a=a.parentNode}return false}}}(), +YAHOO.util.DDM=YAHOO.util.DragDropMgr,YAHOO.util.DDM._addListeners()); +(function(){var c=YAHOO.util.Event,e=YAHOO.util.Dom;YAHOO.util.DragDrop=function(b,d,a){b&&this.init(b,d,a)};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments)},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},unlock:function(){this.locked=false},isTarget:true,padding:null,dragOnly:false,useShim:false, +_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(){},startDrag:function(){},b4Drag:function(){},onDrag:function(){},onDragEnter:function(){},b4DragOver:function(){},onDragOver:function(){},b4DragOut:function(){},onDragOut:function(){},b4DragDrop:function(){},onDragDrop:function(){}, +onInvalidDrop:function(){},b4EndDrag:function(){},endDrag:function(){},b4MouseDown:function(){},onMouseDown:function(){},onMouseUp:function(){},onAvailable:function(){},getEl:function(){if(!this._domRef)this._domRef=e.get(this.id);return this._domRef},getDragEl:function(){return e.get(this.dragElId)},init:function(b,d,a){this.initTarget(b,d,a);c.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var e in this.events)this.createEvent(e+"Event")},initTarget:function(b,d,a){this.config= +a||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof b!=="string"){this._domRef=b;b=e.generateId(b)}this.id=b;this.addToGroup(d?d:"default");this.handleElId=b;c.onAvailable(b,this.handleOnAvailable,this,true);this.setDragElId(b);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig()},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true, +b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events)for(var b in this.config.events)this.config.events[b]===false&&(this.events[b]=false);this.padding=this.config.padding||[0,0,0,0];this.isTarget=this.config.isTarget!==false;this.maintainOffset=this.config.maintainOffset;this.primaryButtonOnly=this.config.primaryButtonOnly!==false;this.dragOnly=this.config.dragOnly===true?true:false;this.useShim= +this.config.useShim===true?true:false},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(b,d,a,c){this.padding=!d&&0!==d?[b,b,b,b]:!a&&0!==a?[b,d,b,d]:[b,d,a,c]},setInitPosition:function(b,d){var a=this.getEl();if(this.DDM.verifyEl(a)){var c=b||0,g=d||0,a=e.getXY(a);this.initPageX=a[0]-c;this.initPageY=a[1]-g;this.lastPageX=a[0];this.lastPageY=a[1];this.setStartPosition(a)}},setStartPosition:function(b){b=b||e.getXY(this.getEl());this.deltaSetXY= +null;this.startPageX=b[0];this.startPageY=b[1]},addToGroup:function(b){this.groups[b]=true;this.DDM.regDragDrop(this,b)},removeFromGroup:function(b){this.groups[b]&&delete this.groups[b];this.DDM.removeDDFromGroup(this,b)},setDragElId:function(b){this.dragElId=b},setHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.handleElId=b;this.DDM.regHandle(this.id,b)},setOuterHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));c.on(b,"mousedown",this.handleMouseDown,this,true); +this.setHandleElId(b);this.hasOuterHandles=true},unreg:function(){c.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(b){var d=b.which||b.button;if(!(this.primaryButtonOnly&&d>1)&&!this.isLocked()){var d=this.b4MouseDown(b),a=true;this.events.b4MouseDown&&(a=this.fireEvent("b4MouseDownEvent",b));var e=this.onMouseDown(b),g=true;this.events.mouseDown&&(g=this.fireEvent("mouseDownEvent", +b));if(!(d===false||e===false||a===false||g===false)){this.DDM.refreshCache(this.groups);d=new YAHOO.util.Point(c.getPageX(b),c.getPageY(b));if((this.hasOuterHandles||this.DDM.isOverTarget(d,this))&&this.clickValidator(b)){this.setStartPosition();this.DDM.handleMouseDown(b,this);this.DDM.stopEvent(b)}}}},clickValidator:function(b){b=YAHOO.util.Event.getTarget(b);return this.isValidHandleChild(b)&&(this.id==this.handleElId||this.DDM.handleWasClicked(b,this.id))},getTargetCoord:function(b,d){var a= +b-this.deltaX,c=d-this.deltaY;if(this.constrainX){if(athis.maxX)a=this.maxX}if(this.constrainY){if(cthis.maxY)c=this.maxY}a=this.getTick(a,this.xTicks);c=this.getTick(c,this.yTicks);return{x:a,y:c}},addInvalidHandleType:function(b){b=b.toUpperCase();this.invalidHandleTypes[b]=b},addInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.invalidHandleIds[b]=b},addInvalidHandleClass:function(b){this.invalidHandleClasses.push(b)}, +removeInvalidHandleType:function(b){delete this.invalidHandleTypes[b.toUpperCase()]},removeInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));delete this.invalidHandleIds[b]},removeInvalidHandleClass:function(b){for(var d=0,a=this.invalidHandleClasses.length;d=this.minX;c=c-d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}for(c=this.initPageX;c<=this.maxX;c=c+d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(b,d){this.yTicks=[];this.yTickSize=d;for(var a={},c=this.initPageY;c>=this.minY;c= +c-d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}for(c=this.initPageY;c<=this.maxY;c=c+d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(b,d,a){this.leftConstraint=parseInt(b,10);this.rightConstraint=parseInt(d,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;a&&this.setXTicks(this.initPageX,a);this.constrainX=true},clearConstraints:function(){this.constrainY=this.constrainX= +false;this.clearTicks()},clearTicks:function(){this.yTicks=this.xTicks=null;this.yTickSize=this.xTickSize=0},setYConstraint:function(b,d,a){this.topConstraint=parseInt(b,10);this.bottomConstraint=parseInt(d,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;a&&this.setYTicks(this.initPageY,a);this.constrainY=true},resetConstraints:function(){this.initPageX||this.initPageX===0?this.setInitPosition(this.maintainOffset?this.lastPageX-this.initPageX:0,this.maintainOffset? +this.lastPageY-this.initPageY:0):this.setInitPosition();this.constrainX&&this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);this.constrainY&&this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)},getTick:function(b,d){if(d){if(d[0]>=b)return d[0];for(var a=0,c=d.length;a=b)return d[e]-b>b-d[a]?d[a]:d[e]}return d[d.length-1]}return b},toString:function(){return"DragDrop "+this.id}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider)})(); +YAHOO.util.DD=function(c,e,b){c&&this.init(c,e,b)}; +YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:!0,autoOffset:function(c,e){this.setDelta(c-this.startPageX,e-this.startPageY)},setDelta:function(c,e){this.deltaX=c;this.deltaY=e},setDragElPos:function(c,e){this.alignElWithMouse(this.getDragEl(),c,e)},alignElWithMouse:function(c,e,b){var d=this.getTargetCoord(e,b);if(this.deltaSetXY){YAHOO.util.Dom.setStyle(c,"left",d.x+this.deltaSetXY[0]+"px");YAHOO.util.Dom.setStyle(c,"top",d.y+this.deltaSetXY[1]+"px")}else{YAHOO.util.Dom.setXY(c,[d.x,d.y]); +e=parseInt(YAHOO.util.Dom.getStyle(c,"left"),10);b=parseInt(YAHOO.util.Dom.getStyle(c,"top"),10);this.deltaSetXY=[e-d.x,b-d.y]}this.cachePosition(d.x,d.y);var a=this;setTimeout(function(){a.autoScroll.call(a,d.x,d.y,c.offsetHeight,c.offsetWidth)},0)},cachePosition:function(c,e){if(c){this.lastPageX=c;this.lastPageY=e}else{var b=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=b[0];this.lastPageY=b[1]}},autoScroll:function(c,e,b,d){if(this.scroll){var a=this.DDM.getClientHeight(),f=this.DDM.getClientWidth(), +g=this.DDM.getScrollTop(),h=this.DDM.getScrollLeft(),d=d+c,i=a+g-e-this.deltaY,j=f+h-c-this.deltaX,k=document.all?80:30;b+e>a&&i<40&&window.scrollTo(h,g+k);e0&&e-g<40)&&window.scrollTo(h,g-k);d>f&&j<40&&window.scrollTo(h+k,g);c0&&c-h<40)&&window.scrollTo(h-k,g)}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=this.config.scroll!==false},b4MouseDown:function(c){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))}, +b4Drag:function(c){this.setDragElPos(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))},toString:function(){return"DD "+this.id}});YAHOO.util.DDProxy=function(c,e,b){if(c){this.init(c,e,b);this.initFrame()}};YAHOO.util.DDProxy.dragElId="ygddfdiv"; +YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:!0,centerFrame:!1,createFrame:function(){var c=this,e=document.body;if(!e||!e.firstChild)setTimeout(function(){c.createFrame()},50);else{var b=this.getDragEl(),d=YAHOO.util.Dom;if(!b){b=document.createElement("div");b.id=this.dragElId;var a=b.style;a.position="absolute";a.visibility="hidden";a.cursor="move";a.border="2px solid #aaa";a.zIndex=999;a.height="25px";a.width="25px";a=document.createElement("div");d.setStyle(a,"height","100%");d.setStyle(a, +"width","100%");d.setStyle(a,"background-color","#ccc");d.setStyle(a,"opacity","0");b.appendChild(a);e.insertBefore(b,e.firstChild)}}},initFrame:function(){this.createFrame()},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=this.config.resizeFrame!==false;this.centerFrame=this.config.centerFrame;this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId)},showFrame:function(c,e){this.getEl();var b=this.getDragEl(),d=b.style;this._resizeProxy(); +this.centerFrame&&this.setDelta(Math.round(parseInt(d.width,10)/2),Math.round(parseInt(d.height,10)/2));this.setDragElPos(c,e);YAHOO.util.Dom.setStyle(b,"visibility","visible")},_resizeProxy:function(){if(this.resizeFrame){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl(),d=parseInt(c.getStyle(b,"borderTopWidth"),10),a=parseInt(c.getStyle(b,"borderRightWidth"),10),f=parseInt(c.getStyle(b,"borderBottomWidth"),10),g=parseInt(c.getStyle(b,"borderLeftWidth"),10);isNaN(d)&&(d=0);isNaN(a)&&(a=0);isNaN(f)&& +(f=0);isNaN(g)&&(g=0);a=Math.max(0,e.offsetWidth-a-g);e=Math.max(0,e.offsetHeight-d-f);c.setStyle(b,"width",a+"px");c.setStyle(b,"height",e+"px")}},b4MouseDown:function(c){this.setStartPosition();var e=YAHOO.util.Event.getPageX(c),c=YAHOO.util.Event.getPageY(c);this.autoOffset(e,c)},b4StartDrag:function(c,e){this.showFrame(c,e)},b4EndDrag:function(){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden")},endDrag:function(){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl();c.setStyle(b, +"visibility","");c.setStyle(e,"visibility","hidden");YAHOO.util.DDM.moveToEl(e,b);c.setStyle(b,"visibility","hidden");c.setStyle(e,"visibility","")},toString:function(){return"DDProxy "+this.id}});YAHOO.util.DDTarget=function(c,e,b){c&&this.initTarget(c,e,b)};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return"DDTarget "+this.id}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.7.0",build:"1796"}); +(function(){function c(a,b,d,e){c.ANIM_AVAIL=!YAHOO.lang.isUndefined(YAHOO.util.Anim);if(a){this.init(a,b,true);this.initSlider(e);this.initThumb(d)}}var e=YAHOO.util.Dom.getXY,b=YAHOO.util.Event,d=Array.prototype.slice;YAHOO.lang.augmentObject(c,{getHorizSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,d,e,0,0,i),"horiz")},getVertSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,0,0,d,e,i),"vert")},getSliderRegion:function(a,b,d,e,i,j,k){return new c(a, +a,new YAHOO.widget.SliderThumb(b,a,d,e,i,j,k),"region")},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(c,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(a){this.type=a;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=c.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration= +0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0]},initThumb:function(a){var b=this;this.thumb=a;a.cacheBetweenDrags=true;if(a._isHoriz&&a.xTicks&&a.xTicks.length)this.tickPause=Math.round(360/a.xTicks.length);else if(a.yTicks&&a.yTicks.length)this.tickPause=Math.round(360/a.yTicks.length);a.onAvailable=function(){return b.setStartSliderState()};a.onMouseDown=function(){b._mouseDown=true;return b.focus()};a.startDrag=function(){b._slideStart()}; +a.onDrag=function(){b.fireEvents(true)};a.onMouseUp=function(){b.thumbMouseUp()}},onAvailable:function(){this._bindKeyEvents()},_bindKeyEvents:function(){b.on(this.id,"keydown",this.handleKeyDown,this,true);b.on(this.id,"keypress",this.handleKeyPress,this,true)},handleKeyPress:function(a){if(this.enableKeys)switch(b.getCharCode(a)){case 37:case 38:case 39:case 40:case 36:case 35:b.preventDefault(a)}},handleKeyDown:function(a){if(this.enableKeys){var d=b.getCharCode(a),e=this.thumb,h=this.getXValue(), +i=this.getYValue(),j=true;switch(d){case 37:h=h-this.keyIncrement;break;case 38:i=i-this.keyIncrement;break;case 39:h=h+this.keyIncrement;break;case 40:i=i+this.keyIncrement;break;case 36:h=e.leftConstraint;i=e.topConstraint;break;case 35:h=e.rightConstraint;i=e.bottomConstraint;break;default:j=false}if(j){e._isRegion?this._setRegionValue(c.SOURCE_KEY_EVENT,h,i,true):this._setValue(c.SOURCE_KEY_EVENT,e._isHoriz?h:i,true);b.stopEvent(a)}}},setStartSliderState:function(){this.setThumbCenterPoint(); +this.baselinePos=e(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion)if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null}else this.setRegionValue(0,0,true,true,true);else if(this.deferredSetValue){this._setValue.apply(this,this.deferredSetValue);this.deferredSetValue=null}else this.setValue(0,true,true,true)},setThumbCenterPoint:function(){var a=this.thumb.getEl(); +if(a)this.thumbCenterPoint={x:parseInt(a.offsetWidth/2,10),y:parseInt(a.offsetHeight/2,10)}},lock:function(){this.thumb.lock();this.locked=true},unlock:function(){this.thumb.unlock();this.locked=false},thumbMouseUp:function(){this._mouseDown=false;!this.isLocked()&&!this.moveComplete&&this.endMove()},onMouseUp:function(){this._mouseDown=false;this.backgroundEnabled&&(!this.isLocked()&&!this.moveComplete)&&this.endMove()},getThumb:function(){return this.thumb},focus:function(){this.valueChangeSource= +c.SOURCE_UI_EVENT;var a=this.getEl();if(a.focus)try{a.focus()}catch(b){}this.verifyOffset();return!this.isLocked()},onChange:function(){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue()},getXValue:function(){return this.thumb.getXValue()},getYValue:function(){return this.thumb.getYValue()},setValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setValue.apply(this,a)},_setValue:function(a,b,d,e,i){var j=this.thumb,k; +if(!j.available){this.deferredSetValue=arguments;return false}if(this.isLocked()&&!e||isNaN(b)||j._isRegion)return false;this._silent=i;this.valueChangeSource=a||c.SOURCE_SET_VALUE;j.lastOffset=[b,b];this.verifyOffset(true);this._slideStart();if(j._isHoriz){k=j.initPageX+b+this.thumbCenterPoint.x;this.moveThumb(k,j.initPageY,d)}else{k=j.initPageY+b+this.thumbCenterPoint.y;this.moveThumb(j.initPageX,k,d)}return true},setRegionValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setRegionValue.apply(this, +a)},_setRegionValue:function(a,b,d,e,i,j){var k=this.thumb;if(!k.available){this.deferredSetRegionValue=arguments;return false}if(this.isLocked()&&!i||isNaN(b)||!k._isRegion)return false;this._silent=j;this.valueChangeSource=a||c.SOURCE_SET_VALUE;k.lastOffset=[b,d];this.verifyOffset(true);this._slideStart();this.moveThumb(k.initPageX+b+this.thumbCenterPoint.x,k.initPageY+d+this.thumbCenterPoint.y,e);return true},verifyOffset:function(){var a=e(this.getEl()),b=this.thumb;(!this.thumbCenterPoint||!this.thumbCenterPoint.x)&& +this.setThumbCenterPoint();if(a&&(a[0]!=this.baselinePos[0]||a[1]!=this.baselinePos[1])){this.setInitPosition();this.baselinePos=a;b.initPageX=this.initPageX+b.startOffset[0];b.initPageY=this.initPageY+b.startOffset[1];b.deltaSetXY=null;this.resetThumbConstraints();return false}return true},moveThumb:function(a,b,d,h){var i=this.thumb,j=this,k,l;if(i.available){i.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);l=i.getTargetCoord(a,b);k=[Math.round(l.x),Math.round(l.y)];if(this.animate&& +i._graduated&&!d){this.lock();this.curCoord=e(this.thumb.getEl());this.curCoord=[Math.round(this.curCoord[0]),Math.round(this.curCoord[1])];setTimeout(function(){j.moveOneTick(k)},this.tickPause)}else if(this.animate&&c.ANIM_AVAIL&&!d){this.lock();a=new YAHOO.util.Motion(i.id,{points:{to:k}},this.animationDuration,YAHOO.util.Easing.easeOut);a.onComplete.subscribe(function(){j.unlock();j._mouseDown||j.endMove()});a.animate()}else{i.setDragElPos(a,b);!h&&!this._mouseDown&&this.endMove()}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart(); +this.fireEvent("slideStart")}this._sliding=true}},_slideEnd:function(){if(this._sliding&&this.moveComplete){var a=this._silent;this.moveComplete=this._silent=this._sliding=false;if(!a){this.onSlideEnd();this.fireEvent("slideEnd")}}},moveOneTick:function(a){var b=this.thumb,d=this,c=null,e;if(b._isRegion){c=this._getNextX(this.curCoord,a);e=c!==null?c[0]:this.curCoord[0];c=this._getNextY(this.curCoord,a);c=c!==null?c[1]:this.curCoord[1];c=e!==this.curCoord[0]||c!==this.curCoord[1]?[e,c]:null}else c= +b._isHoriz?this._getNextX(this.curCoord,a):this._getNextY(this.curCoord,a);if(c){this.curCoord=c;this.thumb.alignElWithMouse(b.getEl(),c[0]+this.thumbCenterPoint.x,c[1]+this.thumbCenterPoint.y);if(c[0]==a[0]&&c[1]==a[1]){this.unlock();this._mouseDown||this.endMove()}else setTimeout(function(){d.moveOneTick(a)},this.tickPause)}else{this.unlock();this._mouseDown||this.endMove()}},_getNextX:function(a,b){var d=this.thumb,c;c=[];c=null;if(a[0]>b[0]){c=d.tickSize-this.thumbCenterPoint.x;c=d.getTargetCoord(a[0]- +c,a[1]);c=[c.x,c.y]}else if(a[0]b[1]){c=d.tickSize-this.thumbCenterPoint.y;c=d.getTargetCoord(a[0],a[1]-c);c=[c.x,c.y]}else if(a[1]1)this._graduated=true;this._isHoriz=c||e;this._isVert=b||d;this._isRegion=this._isHoriz&&this._isVert},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); +this.tickSize=0;this._graduated=false},getValue:function(){return this._isHoriz?this.getXValue():this.getYValue()},getXValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[0])){this.lastOffset=c;return c[0]-this.startOffset[0]}return this.lastOffset[0]-this.startOffset[0]},getYValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[1])){this.lastOffset=c;return c[1]-this.startOffset[1]}return this.lastOffset[1]- +this.startOffset[1]},toString:function(){return"SliderThumb "+this.id},onChange:function(){}}); +(function(){function c(b,a,c,e){var h=this,i=false,j=false,k,l;this.minSlider=b;this.maxSlider=a;this.activeSlider=b;this.isHoriz=b.thumb._isHoriz;k=this.minSlider.thumb.onMouseDown;l=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){h.activeSlider=h.minSlider;k.apply(this,arguments)};this.maxSlider.thumb.onMouseDown=function(){h.activeSlider=h.maxSlider;l.apply(this,arguments)};this.minSlider.thumb.onAvailable=function(){b.setStartSliderState();i=true;j&&h.fireEvent("ready", +h)};this.maxSlider.thumb.onAvailable=function(){a.setStartSliderState();j=true;i&&h.fireEvent("ready",h)};b.onMouseDown=a.onMouseDown=function(a){return this.backgroundEnabled&&h._handleMouseDown(a)};b.onDrag=a.onDrag=function(a){h._handleDrag(a)};b.onMouseUp=a.onMouseUp=function(a){h._handleMouseUp(a)};b._bindKeyEvents=function(){h._bindKeyEvents(this)};a._bindKeyEvents=function(){};b.subscribe("change",this._handleMinChange,b,this);b.subscribe("slideStart",this._handleSlideStart,b,this);b.subscribe("slideEnd", +this._handleSlideEnd,b,this);a.subscribe("change",this._handleMaxChange,a,this);a.subscribe("slideStart",this._handleSlideStart,a,this);a.subscribe("slideEnd",this._handleSlideEnd,a,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);e=YAHOO.lang.isArray(e)?e:[0,c];e[0]=Math.min(Math.max(parseInt(e[0],10)|0,0),c);e[1]=Math.max(Math.min(parseInt(e[1],10)|0,c),0);e[0]>e[1]&&e.splice(0,2,e[1],e[0]);this.minVal=e[0]; +this.maxVal=e[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true)}var e=YAHOO.util.Event,b=YAHOO.widget;c.prototype={minVal:-1,maxVal:-1,minRange:0,_handleSlideStart:function(b,a){this.fireEvent("slideStart",a)},_handleSlideEnd:function(b,a){this.fireEvent("slideEnd",a)},_handleDrag:function(d){b.Slider.prototype.onDrag.call(this.activeSlider,d)},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue()},_handleMaxChange:function(){this.activeSlider= +this.maxSlider;this.updateValue()},_bindKeyEvents:function(b){e.on(b.id,"keydown",this._handleKeyDown,this,true);e.on(b.id,"keypress",this._handleKeyPress,this,true)},_handleKeyDown:function(b){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments)},_handleKeyPress:function(b){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments)},setValues:function(b,a,c,e,h){var i=this.minSlider,j=this.maxSlider,k=i.thumb,l=j.thumb,m=this,n=false,o=false;if(k._isHoriz){k.setXConstraint(k.leftConstraint, +l.rightConstraint,k.tickSize);l.setXConstraint(k.leftConstraint,l.rightConstraint,l.tickSize)}else{k.setYConstraint(k.topConstraint,l.bottomConstraint,k.tickSize);l.setYConstraint(k.topConstraint,l.bottomConstraint,l.tickSize)}this._oneTimeCallback(i,"slideEnd",function(){n=true;if(o){m.updateValue(h);setTimeout(function(){m._cleanEvent(i,"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});this._oneTimeCallback(j,"slideEnd",function(){o=true;if(n){m.updateValue(h);setTimeout(function(){m._cleanEvent(i, +"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});i.setValue(b,c,e,false);j.setValue(a,c,e,false)},setMinValue:function(b,a,c,e){var h=this.minSlider,i=this;this.activeSlider=h;i=this;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")},0)});h.setValue(b,a,c)},setMaxValue:function(b,a,c,e){var h=this.maxSlider,i=this;this.activeSlider=h;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")}, +0)});h.setValue(b,a,c)},updateValue:function(b){var a=this.minSlider.getValue(),c=this.maxSlider.getValue(),e=false,h,i,j,k;if(a!=this.minVal||c!=this.maxVal){e=true;h=this.minSlider.thumb;i=this.maxSlider.thumb;j=this.isHoriz?"x":"y";k=this.minSlider.thumbCenterPoint[j]+this.maxSlider.thumbCenterPoint[j];j=Math.max(c-k-this.minRange,0);k=Math.min(-a-k-this.minRange,0);if(this.isHoriz){j=Math.min(j,i.rightConstraint);h.setXConstraint(h.leftConstraint,j,h.tickSize);i.setXConstraint(k,i.rightConstraint, +i.tickSize)}else{j=Math.min(j,i.bottomConstraint);h.setYConstraint(h.leftConstraint,j,h.tickSize);i.setYConstraint(k,i.bottomConstraint,i.tickSize)}}this.minVal=a;this.maxVal=c;e&&!b&&this.fireEvent("change",this)},selectActiveSlider:function(b){var a=this.minSlider,c=this.maxSlider,e=a.isLocked()||!a.backgroundEnabled,h=c.isLocked()||!a.backgroundEnabled,i=YAHOO.util.Event;if(e||h)this.activeSlider=e?c:a;else{b=this.isHoriz?i.getPageX(b)-a.thumb.initPageX-a.thumbCenterPoint.x:i.getPageY(b)-a.thumb.initPageY- +a.thumbCenterPoint.y;this.activeSlider=b*2>c.getValue()+a.getValue()?c:a}},_handleMouseDown:function(d){if(d._handled)return false;d._handled=true;this.selectActiveSlider(d);return b.Slider.prototype.onMouseDown.call(this.activeSlider,d)},_handleMouseUp:function(d){b.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments)},_oneTimeCallback:function(b,a,c){b.subscribe(a,function(){b.unsubscribe(a,arguments.callee);c.apply({},[].slice.apply(arguments))})},_cleanEvent:function(b,a){var c,e,h,i, +j,k;if(b.__yui_events&&b.events[a]){for(e=b.__yui_events.length;e>=0;--e)if(b.__yui_events[e].type===a){c=b.__yui_events[e];break}if(c){j=c.subscribers;k=[];e=i=0;for(h=j.length;e255||b<0?0:b).toString(16)).slice(-2).toUpperCase()}, +hex2dec:function(b){return parseInt(b,16)},hex2rgb:function(b){var c=this.hex2dec;return[c(b.slice(0,2)),c(b.slice(2,4)),c(b.slice(4,6))]},websafe:function(b,d,a){if(c(b))return this.websafe.apply(this,b);var f=function(a){if(e(a)){var a=Math.min(Math.max(0,a),255),b,c;for(b=0;b<256;b=b+51){c=b+51;if(a>=b&&a<=c)return a-b>25?c:b}}return a};return[f(b),f(d),f(a)]}}}(); +(function(){function c(a,b){e=e+1;b=b||{};if(arguments.length===1&&!YAHOO.lang.isString(a)&&!a.nodeName){b=a;a=b.element||null}!a&&!b.element&&(a=this._createHostElement(b));c.superclass.constructor.call(this,a,b);this.initPicker()}var e=0,b=YAHOO.util,d=YAHOO.lang,a=YAHOO.widget.Slider,f=b.Color,g=b.Dom,h=b.Event,i=d.substitute;YAHOO.extend(c,YAHOO.util.Element,{ID:{R:"yui-picker-r",R_HEX:"yui-picker-rhex",G:"yui-picker-g",G_HEX:"yui-picker-ghex",B:"yui-picker-b",B_HEX:"yui-picker-bhex",H:"yui-picker-h", +S:"yui-picker-s",V:"yui-picker-v",PICKER_BG:"yui-picker-bg",PICKER_THUMB:"yui-picker-thumb",HUE_BG:"yui-picker-hue-bg",HUE_THUMB:"yui-picker-hue-thumb",HEX:"yui-picker-hex",SWATCH:"yui-picker-swatch",WEBSAFE_SWATCH:"yui-picker-websafe-swatch",CONTROLS:"yui-picker-controls",RGB_CONTROLS:"yui-picker-rgb-controls",HSV_CONTROLS:"yui-picker-hsv-controls",HEX_CONTROLS:"yui-picker-hex-controls",HEX_SUMMARY:"yui-picker-hex-summary",CONTROLS_LABEL:"yui-picker-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered", +SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"°",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv", +RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var a=document.createElement("div");if(this.CSS.BASE)a.className=this.CSS.BASE;return a},_updateHueSlider:function(){var a= +this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.HUE),b=a-Math.round(b/360*a);b===a&&(b=0);this.hueSlider.setValue(b,this.skipAnim)},_updatePickerSlider:function(){var a=this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.SATURATION),c=this.get(this.OPT.VALUE),b=Math.round(b*a/100),c=Math.round(a-c*a/100);this.pickerSlider.setRegionValue(b,c,this.skipAnim)},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider()},setValue:function(a,b){this.set(this.OPT.RGB,a,b||false);this._updateSliders()}, +hueSlider:null,pickerSlider:null,_getH:function(){var a=this.get(this.OPT.PICKER_SIZE),a=(a-this.hueSlider.getValue())/a,a=Math.round(a*360);return a===360?0:a},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE)},_getV:function(){var a=this.get(this.OPT.PICKER_SIZE);return(a-this.pickerSlider.getYValue())/a},_updateSwatch:function(){var a=this.get(this.OPT.RGB),b=this.get(this.OPT.WEBSAFE),c=this.getElement(this.ID.SWATCH),a=a.join(","),d=this.get(this.OPT.TXT);g.setStyle(c, +"background-color","rgb("+a+")");c.title=i(d.CURRENT_COLOR,{rgb:"#"+this.get(this.OPT.HEX)});c=this.getElement(this.ID.WEBSAFE_SWATCH);a=b.join(",");g.setStyle(c,"background-color","rgb("+a+")");c.title=i(d.CLOSEST_WEBSAFE,{rgb:"#"+f.rgb2hex(b)})},_getValuesFromSliders:function(){this.set(this.OPT.RGB,f.hsv2rgb(this._getH(),this._getS(),this._getV()))},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION); +this.getElement(this.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=f.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=f.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=f.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX)}, +_onHueSliderChange:function(){var b=this._getH(),c="rgb("+f.hsv2rgb(b,1,1).join(",")+")";this.set(this.OPT.HUE,b,true);g.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",c);this.hueSlider.valueChangeSource!==a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_onPickerSliderChange:function(){var b=this._getS(),c=this._getV();this.set(this.OPT.SATURATION,Math.round(b*100),true);this.set(this.OPT.VALUE,Math.round(c*100),true);this.pickerSlider.valueChangeSource!== +a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_getCommand:function(a){var b=h.getCharCode(a);return b===38?3:b===13?6:b===40?4:b>=48&&b<=57?1:b>=97&&b<=102?2:b>=65&&b<=70?2:"8, 9, 13, 27, 37, 39".indexOf(b)>-1||a.ctrlKey||a.metaKey?5:0},_useFieldValue:function(a,b,c){a=b.value;c!==this.OPT.HEX&&(a=parseInt(a,10));a!==this.get(c)&&this.set(c,a)},_rgbFieldKeypress:function(a,b,c){var d=this._getCommand(a),e=a.shiftKey?10:1;switch(d){case 6:this._useFieldValue.apply(this, +arguments);break;case 3:this.set(c,Math.min(this.get(c)+e,255));this._updateFormFields();break;case 4:this.set(c,Math.max(this.get(c)-e,0));this._updateFormFields()}},_hexFieldKeypress:function(a,b,c){this._getCommand(a)===6&&this._useFieldValue.apply(this,arguments)},_hexOnly:function(a,b){switch(this._getCommand(a)){case 6:case 5:case 1:break;case 2:if(b!==true)break;default:h.stopEvent(a);return false}},_numbersOnly:function(a){return this._hexOnly(a,true)},getElement:function(a){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[a]]}, +_createElements:function(){var a,b,c,e,f=this.get(this.OPT.IDS),g=this.get(this.OPT.TXT),h=this.get(this.OPT.IMAGES),i=function(a,b){var c=document.createElement(a);b&&d.augmentObject(c,b,true);return c},q=function(a,b){var c=d.merge({autocomplete:"off",value:"0",size:3,maxlength:3},b);c.name=c.id;return new i(a,c)};e=this.get("element");a=new i("div",{id:f[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.PICKER_THUMB],className:"yui-picker-thumb"}); +c=new i("img",{src:h.PICKER_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"});c=new i("img",{src:h.HUE_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.CONTROLS],className:"yui-picker-controls"});e.appendChild(a);e=a;a=new i("div",{className:"hd"});b=new i("a",{id:f[this.ID.CONTROLS_LABEL], +href:"#"});a.appendChild(b);e.appendChild(a);a=new i("div",{className:"bd"});e.appendChild(a);e=a;a=new i("ul",{id:f[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});b=new i("li");b.appendChild(document.createTextNode(g.R+" "));c=new q("input",{id:f[this.ID.R],className:"yui-picker-r"});b.appendChild(c);a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.G+" "));c=new q("input",{id:f[this.ID.G],className:"yui-picker-g"});b.appendChild(c);a.appendChild(b);b=new i("li"); +b.appendChild(document.createTextNode(g.B+" "));c=new q("input",{id:f[this.ID.B],className:"yui-picker-b"});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls"});b=new i("li");b.appendChild(document.createTextNode(g.H+" "));c=new q("input",{id:f[this.ID.H],className:"yui-picker-h"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.DEG));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.S+" ")); +c=new q("input",{id:f[this.ID.S],className:"yui-picker-s"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.V+" "));c=new q("input",{id:f[this.ID.V],className:"yui-picker-v"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});b=new i("li",{id:f[this.ID.R_HEX]});a.appendChild(b); +b=new i("li",{id:f[this.ID.G_HEX]});a.appendChild(b);b=new i("li",{id:f[this.ID.B_HEX]});a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});a.appendChild(document.createTextNode(g.HEX+" "));b=new q("input",{id:f[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});a.appendChild(b);e.appendChild(a);e=this.get("element");a=new i("div",{id:f[this.ID.SWATCH],className:"yui-picker-swatch"});e.appendChild(a);a=new i("div",{id:f[this.ID.WEBSAFE_SWATCH], +className:"yui-picker-websafe-swatch"});e.appendChild(a)},_attachRGBHSV:function(a,b){h.on(this.getElement(a),"keydown",function(a,c){c._rgbFieldKeypress(a,this,b)},this);h.on(this.getElement(a),"keypress",this._numbersOnly,this,true);h.on(this.getElement(a),"blur",function(a,c){c._useFieldValue(a,this,b)},this)},_updateRGB:function(){this.set(this.OPT.RGB,[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)]);this._updateSliders()},_initElements:function(){var a=this.OPT,b=this.get(a.IDS), +a=this.get(a.ELEMENTS),c,e,f;for(c in this.ID)d.hasOwnProperty(this.ID,c)&&(b[this.ID[c]]=b[c]);(e=g.get(b[this.ID.PICKER_BG]))||this._createElements();for(c in b)if(d.hasOwnProperty(b,c)){e=g.get(b[c]);f=g.generateId(e);b[c]=f;b[b[c]]=f;a[f]=e}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true)},_initSliders:function(){var b=this.ID,c=this.get(this.OPT.PICKER_SIZE);this.hueSlider=a.getVertSlider(this.getElement(b.HUE_BG),this.getElement(b.HUE_THUMB),0,c);this.pickerSlider= +a.getSliderRegion(this.getElement(b.PICKER_BG),this.getElement(b.PICKER_THUMB),0,c,0,c);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE))},_bindUI:function(){var a=this.ID,b=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);h.on(this.getElement(a.WEBSAFE_SWATCH),"click",function(){this.setValue(this.get(b.WEBSAFE))},this,true);h.on(this.getElement(a.CONTROLS_LABEL),"click",function(a){this.set(b.SHOW_CONTROLS, +!this.get(b.SHOW_CONTROLS));h.preventDefault(a)},this,true);this._attachRGBHSV(a.R,b.RED);this._attachRGBHSV(a.G,b.GREEN);this._attachRGBHSV(a.B,b.BLUE);this._attachRGBHSV(a.H,b.HUE);this._attachRGBHSV(a.S,b.SATURATION);this._attachRGBHSV(a.V,b.VALUE);h.on(this.getElement(a.HEX),"keydown",function(a,c){c._hexFieldKeypress(a,this,b.HEX)},this);h.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);h.on(this.getElement(this.ID.HEX),"blur",function(a,c){c._useFieldValue(a,this,b.HEX)}, +this)},syncUI:function(a){this.skipAnim=a;this._updateRGB();this.skipAnim=false},_updateRGBFromHSV:function(){var a=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100];this.set(this.OPT.RGB,f.hsv2rgb(a));this._updateSliders()},_updateHex:function(){var a=this.get(this.OPT.HEX),b=a.length,c;if(b===3){a=a.split("");for(c=0;c1)for(h in b)d.hasOwnProperty(b,h)&&(b[h]=b[h]+e);this.setAttributeConfig(this.OPT.IDS,{value:b,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:a.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:a.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:d.isBoolean(a.showcontrols)?a.showcontrols:true, +method:function(a){this._hideShowEl(g.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0],a);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=a?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:d.isBoolean(a.showrgbcontrols)?a.showrgbcontrols:true,method:function(a){this._hideShowEl(this.ID.RGB_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:d.isBoolean(a.showhsvcontrols)? +a.showhsvcontrols:false,method:function(a){this._hideShowEl(this.ID.HSV_CONTROLS,a);a&&this.get(this.OPT.SHOW_HEX_SUMMARY)&&this.set(this.OPT.SHOW_HEX_SUMMARY,false)}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:d.isBoolean(a.showhexcontrols)?a.showhexcontrols:false,method:function(a){this._hideShowEl(this.ID.HEX_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:d.isBoolean(a.showwebsafe)?a.showwebsafe:true,method:function(a){this._hideShowEl(this.ID.WEBSAFE_SWATCH, +a)}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:d.isBoolean(a.showhexsummary)?a.showhexsummary:true,method:function(a){this._hideShowEl(this.ID.HEX_SUMMARY,a);a&&this.get(this.OPT.SHOW_HSV_CONTROLS)&&this.set(this.OPT.SHOW_HSV_CONTROLS,false)}});this.setAttributeConfig(this.OPT.ANIMATE,{value:d.isBoolean(a.animate)?a.animate:true,method:function(a){if(this.pickerSlider){this.pickerSlider.animate=a;this.hueSlider.animate=a}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this, +true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements()}});YAHOO.widget.ColorPicker=c})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.7.0",build:"1796"}); +(function(){var c=YAHOO.util,e=function(b,c,a,e){this.init(b,c,a,e)};e.NAME="Anim";e.prototype={toString:function(){var b=this.getEl()||{};return this.constructor.NAME+": "+(b.id||b.tagName)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(b,c,a){return this.method(this.currentFrame,c,a-c,this.totalFrames)},setAttribute:function(b, +d,a){var e=this.getEl();this.patterns.noNegatives.test(b)&&(d=d>0?d:0);"style"in e?c.Dom.setStyle(e,b,d+a):b in e&&(e[b]=d)},getAttribute:function(b){var d=this.getEl(),a=c.Dom.getStyle(d,b);if(a!=="auto"&&!this.patterns.offsetUnit.test(a))return parseFloat(a);var e=this.patterns.offsetAttribute.exec(b)||[],g=!!e[3],h=!!e[2];"style"in d?a=h||c.Dom.getStyle(d,"position")=="absolute"&&g?d["offset"+e[0].charAt(0).toUpperCase()+e[0].substr(1)]:0:b in d&&(a=d[b]);return a},getDefaultUnit:function(b){return this.patterns.defaultUnit.test(b)? +"px":""},setRuntimeAttribute:function(b){var c,a,e=this.attributes;this.runtimeAttributes[b]={};var g=function(a){return typeof a!=="undefined"};if(!g(e[b].to)&&!g(e[b].by))return false;c=g(e[b].from)?e[b].from:this.getAttribute(b);if(g(e[b].to))a=e[b].to;else if(g(e[b].by))if(c.constructor==Array){a=[];for(var h=0,i=c.length;h0&&isFinite(l)){g.currentFrame+l>=h&&(l=h-(i+1));g.currentFrame= +g.currentFrame+l}}c._onTween.fire()}else YAHOO.util.AnimMgr.stop(c,b)}}};YAHOO.util.Bezier=new function(){this.getPosition=function(c,e){for(var b=c.length,d=[],a=0;a0&&!(j[0]instanceof Array))j=[j];else{var n=[];l=0;for(m=j.length;l0&&(this.runtimeAttributes[c]=this.runtimeAttributes[c].concat(j)); +this.runtimeAttributes[c][this.runtimeAttributes[c].length]=k}else b.setRuntimeAttribute.call(this,c)};var a=function(a,b){var c=e.Dom.getXY(this.getEl());return a=[a[0]-c[0]+b[0],a[1]-c[1]+b[1]]},f=function(a){return typeof a!=="undefined"};e.Motion=c})(); +(function(){var c=function(a,b,d,e){a&&c.superclass.constructor.call(this,a,b,d,e)};c.NAME="Scroll";var e=YAHOO.util;YAHOO.extend(c,e.ColorAnim);var b=c.superclass,d=c.prototype;d.doMethod=function(a,c,d){var e=null;return e=a=="scroll"?[this.method(this.currentFrame,c[0],d[0]-c[0],this.totalFrames),this.method(this.currentFrame,c[1],d[1]-c[1],this.totalFrames)]:b.doMethod.call(this,a,c,d)};d.getAttribute=function(a){var c=null,c=this.getEl();return c=a=="scroll"?[c.scrollLeft,c.scrollTop]:b.getAttribute.call(this, +a)};d.setAttribute=function(a,c,d){var e=this.getEl();if(a=="scroll"){e.scrollLeft=c[0];e.scrollTop=c[1]}else b.setAttribute.call(this,a,c,d)};e.Scroll=c})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/images/handle.png b/platforms/android/assets/www/lib/ckeditor/plugins/widget/images/handle.png new file mode 100644 index 00000000..ba8cda5b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/plugins/widget/images/handle.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ar.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ar.js new file mode 100644 index 00000000..02901ca4 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ar",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ca.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ca.js new file mode 100644 index 00000000..bcee2d0a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ca",{move:"Clicar i arrossegar per moure"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/cs.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/cs.js new file mode 100644 index 00000000..2f2ab938 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cs",{move:"Klepněte a táhněte pro přesunutí"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/cy.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/cy.js new file mode 100644 index 00000000..19bc34b0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cy",{move:"Clcio a llusgo i symud"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/de.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/de.js new file mode 100644 index 00000000..0de3212c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","de",{move:"Zum verschieben anwählen und ziehen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/el.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/el.js new file mode 100644 index 00000000..9200420f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","el",{move:"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/en-gb.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/en-gb.js new file mode 100644 index 00000000..af267ba8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en-gb",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/en.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/en.js new file mode 100644 index 00000000..5b1d70a7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/eo.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/eo.js new file mode 100644 index 00000000..eb556143 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","eo",{move:"klaki kaj treni por movi"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/es.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/es.js new file mode 100644 index 00000000..d59696db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","es",{move:"Dar clic y arrastrar para mover"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fa.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fa.js new file mode 100644 index 00000000..cd7b4e08 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fa",{move:"کلیک و کشیدن برای جابجایی"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fi.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fi.js new file mode 100644 index 00000000..cd2fccef --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fi",{move:"Siirrä klikkaamalla ja raahaamalla"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fr.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fr.js new file mode 100644 index 00000000..4a07790c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fr",{move:"Cliquer et glisser pour déplacer"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/gl.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/gl.js new file mode 100644 index 00000000..4213bd7a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","gl",{move:"Prema e arrastre para mover"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/he.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/he.js new file mode 100644 index 00000000..aa9754ae --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","he",{move:"לחץ וגרור להזזה"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/hr.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/hr.js new file mode 100644 index 00000000..c58da39d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hr",{move:"Klikni i povuci da pomakneš"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/hu.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/hu.js new file mode 100644 index 00000000..03305f3b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hu",{move:"Kattints és húzd a mozgatáshoz"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/it.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/it.js new file mode 100644 index 00000000..d1a714e3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","it",{move:"Fare clic e trascinare per spostare"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ja.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ja.js new file mode 100644 index 00000000..33cdb9ef --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ja",{move:"ドラッグして移動"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/km.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/km.js new file mode 100644 index 00000000..bc46a96e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","km",{move:"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ko.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ko.js new file mode 100644 index 00000000..4bf733aa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ko",{move:"움직이려면 클릭 후 드래그 하세요"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/nb.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/nb.js new file mode 100644 index 00000000..b5bfd46d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nb",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/nl.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/nl.js new file mode 100644 index 00000000..a5bfea95 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nl",{move:"Klik en sleep om te verplaatsen"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/no.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/no.js new file mode 100644 index 00000000..92db9080 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","no",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pl.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pl.js new file mode 100644 index 00000000..a51890f2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pl",{move:"Kliknij i przeciągnij, by przenieść."}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pt-br.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pt-br.js new file mode 100644 index 00000000..e6387da3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt-br",{move:"Click e arraste para mover"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pt.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pt.js new file mode 100644 index 00000000..0a7f1171 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt",{move:"Clique e arraste para mover"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ru.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ru.js new file mode 100644 index 00000000..e3d4e3e6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ru",{move:"Нажмите и перетащите"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sk.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sk.js new file mode 100644 index 00000000..d26dab0c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sk",{move:"Kliknite a potiahnite pre presunutie"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sl.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sl.js new file mode 100644 index 00000000..f99d4e74 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sl",{move:"Kliknite in povlecite, da premaknete"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sv.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sv.js new file mode 100644 index 00000000..33f6f126 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sv",{move:"Klicka och drag för att flytta"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/tr.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/tr.js new file mode 100644 index 00000000..5f2ca8f1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tr",{move:"Taşımak için, tıklayın ve sürükleyin"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/tt.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/tt.js new file mode 100644 index 00000000..1b158207 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tt",{move:"Күчереп куер өчен басып шудырыгыз"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/uk.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/uk.js new file mode 100644 index 00000000..a07313c8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","uk",{move:"Клікніть і потягніть для переміщення"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/vi.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/vi.js new file mode 100644 index 00000000..785a5323 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","vi",{move:"Nhấp chuột và kéo để di chuyển"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/zh-cn.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/zh-cn.js new file mode 100644 index 00000000..690512a2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh-cn",{move:"点击并拖拽以移动"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/zh.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/zh.js new file mode 100644 index 00000000..e683c06c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh",{move:"拖曳以移動"}); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/widget/plugin.js b/platforms/android/assets/www/lib/ckeditor/plugins/widget/plugin.js new file mode 100644 index 00000000..a9cc00fb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/widget/plugin.js @@ -0,0 +1,58 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function o(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};I(this);J(this);this.on("checkWidgets",K);this.editor.on("contentDomInvalidated",this.checkWidgets,this);L(this);M(this);N(this);O(this);P(this)}function k(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({}, +"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:k.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);Q(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes", +this.getClasses());this.dataReady=!0;s(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function q(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function R(a,b){a.addCommand(b.name, +{exec:function(){function c(){a.widgets.finalizeCreation(g)}var d=a.widgets.focused;if(d&&d.name==b.name)d.edit();else if(b.insert)b.insert();else if(b.template){var d="function"==typeof b.defaults?b.defaults():b.defaults,d=CKEDITOR.dom.element.createFromHtml(b.template.output(d)),e,f=a.widgets.wrapElement(d,b.name),g=new CKEDITOR.dom.documentFragment(f.getDocument());g.append(f);(e=a.widgets.initOn(d,b))?(d=e.once("edit",function(b){if(b.data.dialog)e.once("dialog",function(b){var b=b.data,d,f;d= +b.once("ok",c,null,null,20);f=b.once("cancel",function(){a.widgets.destroy(e,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else c()},null,null,999),e.edit(),d.removeListener()):c()}},refresh:function(a,b){this.setState(l(a.editable(),b.blockLimit)?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF)},context:"div",allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function t(a,b){a.focused= +null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function K(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e;if(b){for(d in c)b.contains(c[d].wrapper)||this.destroy(c[d],!0);if(a&&a.initOnlyNew)b=this.initOnAll();else{var f=b.find(".cke_widget_wrapper"),b=[];d=0;for(c=f.count();dCKEDITOR.env.version||d.isInline()?d:b.document;d.attachListener(e, +"drop",function(c){var d=c.data.$.dataTransfer.getData("text"),e,h;if(d){try{e=JSON.parse(d)}catch(j){return}if("cke-widget"==e.type&&(c.data.preventDefault(),e.editor==b.name&&(h=a.instances[e.id]))){a:if(e=c.data.$,d=b.createRange(),c.data.testRange)d=c.data.testRange;else if(document.caretRangeFromPoint)c=b.document.$.caretRangeFromPoint(e.clientX,e.clientY),d.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),d.collapse(!0);else if(e.rangeParent)d.setStart(CKEDITOR.dom.node(e.rangeParent), +e.rangeOffset),d.collapse(!0);else if(document.body.createTextRange)c=b.document.getBody().$.createTextRange(),c.moveToPoint(e.clientX,e.clientY),e="cke-temp-"+(new Date).getTime(),c.pasteHTML(''),c=b.document.getById(e),d.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START),c.remove();else{d=null;break a}d&&(CKEDITOR.env.gecko?setTimeout(A,0,b,h,d):A(b,h,d))}}});CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(a){if(!a.is(CKEDITOR.dtd.$listItem)&&a.is(CKEDITOR.dtd.$block)){for(;a;){if(w(a))return; +a=a.getParent()}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function M(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var b=c.data.getTarget();if(!b.type)return!1;e=a.getByElement(b);f= +0;e&&(e.inline&&b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")?f=1:l(e.wrapper,b)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){e&&f&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){e&&setTimeout(function(){e.focus();e=null})})});b.on("doubleclick",function(c){var b=a.getByElement(c.data.element);if(b&&!l(b.wrapper,c.data.element))return b.fire("doubleclick",{element:c.data.element})}, +null,null,1)}function N(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e}, +null,null,1)}function P(a){function b(c){a.focused&&B(a.focused,"cut"==c.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function L(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=l(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;if(e){if(e!==d||!e.focusedEditable.equals(c))n(a, +e,null),d&&c&&n(a,d,c)}else d&&c&&n(a,d,c)});b.on("dataReady",function(){C(a).commit()});b.on("blur",function(){var c;(c=a.focused)&&t(a,c);(c=a.widgetHoldingFocusedEditable)&&n(a,c,null)})}function J(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(c){var b=c.attributes,d;if("data-cke-widget-id"in b){if(b=a.instances[b["data-cke-widget-id"]])d=c.getFirst(v),f.push({wrapper:c,element:d, +widget:b,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in b)return f[f.length-1].editables[b["data-cke-widget-editable"]]=c,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var a=c[a.data.downcastingSessionId],b,f,g,i,h,j;b=a.shift();){f=b.widget;g=b.element;i=f._.downcastFn&&f._.downcastFn.call(f,g);for(j in b.editables)h=b.editables[j],delete h.attributes.contenteditable, +h.setHtml(f.editables[j].getData());i||(i=g);b.wrapper.replaceWith(i)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function I(a){function b(){c.fire("lockSnapshot");a.checkWidgets({initOnlyNew:!0,focusInited:d});c.fire("unlockSnapshot")}var c=a.editor,d,e;c.on("toHtml",function(c){var b=T(a),e;for(c.data.dataValue.forEach(b.iterator,CKEDITOR.NODE_ELEMENT,!0);e=b.toBeWrapped.pop();){var h=e[0],j=h.parent;j.type==CKEDITOR.NODE_ELEMENT&&j.attributes["data-cke-widget-wrapper"]&& +j.replaceWith(h);a.wrapElement(e[0],e[1])}d=1==c.data.dataValue.children.length&&c.data.dataValue.children[0].type==CKEDITOR.NODE_ELEMENT&&c.data.dataValue.children[0].attributes["data-cke-widget-wrapper"]},null,null,8);c.on("dataReady",function(){if(e)for(var b=a,d=c.editable().find(".cke_widget_wrapper"),i,h,j=0,k=d.count();jCKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,i;a.editor.fire("lockSnapshot"); +for(f&&(g=a.focused)&&t(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(i=g.editor.checkDirty(),g.setSelected(!1),!i&&g.editor.resetDirty());f&&e&&(i=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!i&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function D(a,b,c){var d=0,b=E(b),e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f], +d=1);d&&a.setData("classes",e)}}function F(a){a.cancel()}function B(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),g=d.createElement(e),e=CKEDITOR.env.ie&&9>CKEDITOR.env.version;g.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?"left":"right","-5000px");f.setHtml(''+ +a.wrapper.getOuterHtml()+'');c.fire("saveSnapshot");c.fire("lockSnapshot");g.append(f);c.editable().append(g);var i=c.on("selectionChange",F,null,null,0),h=a.repository.on("checkSelection",F,null,null,0);if(e)var j=d.getDocumentElement().$,k=j.scrollTop;d=c.createRange();d.selectNodeContents(f);d.select();e&&(j.scrollTop=k);setTimeout(function(){b||a.focus();g.remove();i.removeListener();h.removeListener();c.fire("unlockSnapshot");if(b){a.repository.del(a);c.fire("saveSnapshot")}}, +100)}}function E(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function G(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function H(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function Y(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)(!a|| +!a[d])&&this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function Z(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(U),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1", +src:CKEDITOR.tools.transparentImageData,width:m,title:b.lang.widget.move,height:m}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(a.inline)d.on("dragstart",function(c){c.data.$.dataTransfer.setData("text",JSON.stringify({type:"cke-widget",editor:b.name,id:a.id}))});else d.on("mousedown",$,a);a.dragHandlerContainer=c}}function $(){function a(){var a; +for(j.reset();a=g.pop();)a.removeListener();var c=i,b=this.repository.finder;a=this.repository.liner;var d=this.editor,e=this.editor.editable();CKEDITOR.tools.isEmpty(a.visible)||(c=b.getRange(c[0]),this.focus(),d.fire("saveSnapshot"),d.fire("lockSnapshot",{dontUpdate:1}),d.getSelection().reset(),e.insertElementIntoRange(this.wrapper,c),this.focus(),d.fire("unlockSnapshot"),d.fire("saveSnapshot"));e.removeClass("cke_widget_dragging");a.hideVisible()}var b=this.repository.finder,c=this.repository.locator, +d=this.repository.liner,e=this.editor,f=e.editable(),g=[],i=[],h=b.greedySearch(),j=CKEDITOR.tools.eventsBuffer(50,function(){k=c.locate(h);i=c.sort(l,1);i.length&&(d.prepare(h,k),d.placeLine(i[0]),d.cleanup())}),k,l;f.addClass("cke_widget_dragging");g.push(f.on("mousemove",function(a){l=a.data.$.clientY;j.input()}));g.push(e.document.once("mouseup",a,this));g.push(CKEDITOR.document.once("mouseup",a,this))}function aa(a){var b,c,d=a.editables;a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b, +"string"==typeof c?{selector:c}:c)}function ba(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function ca(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function Q(a,b){da(a);ca(a);aa(a);ba(a);Z(a);Y(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart", +function(c){var b=c.data.getTarget();!l(a,b)&&(!a.inline||!(b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")))&&c.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){B(a,b==CKEDITOR.CTRL+88);return}if(b in ea||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&& +b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function da(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function s(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}var m=15;CKEDITOR.plugins.add("widget",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,ko,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"lineutils,clipboard",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover>.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:"+ +m+"px;height:0;left:-9999px;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{height:"+m+"px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:"+m+"px;height:"+m+"px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},beforeInit:function(a){a.widgets= +new o(a)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});V(a)}});o.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));R(this.editor,b);var c=b,d=c.upcast;if(d)if("string"==typeof d)for(d= +d.split(",");d.length;)this._.upcasts.push([c.upcasts[d.pop()],c.name]);else this._.upcasts.push([d,c.name]);return this.registered[a]=b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=C(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=r;b=a.next();)c.select(this.getByElement(b)); +c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,c=b.createRange(),d;if(!(d=c.moveToClosestEditablePosition(a.wrapper,!0)))d=c.moveToClosestEditablePosition(a.wrapper,!1);d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&n(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a){var b= +this.instances,c,d;for(d in b)c=b[d],this.destroy(c,a)},finalizeCreation:function(a){if((a=a.getFirst())&&r(a))this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus()},getByElement:function(){var a={div:1,span:1};return function(b,c){if(!b)return null;var d=b.is(a)&&b.data("cke-widget-id");if(!c&&!d){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(d=b.is(a)&&b.data("cke-widget-id")))}return this.instances[d]||null}}(),initOn:function(a,b,c){b? +"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new k(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){for(var a=(a||this.editor.editable()).find(".cke_widget_new"),b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(p)))&&b.push(c);return b},parseElementClasses:function(a){if(!a)return null;for(var a= +CKEDITOR.tools.trim(a).split(/\s+/),b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){d=this.registered[b||a.data("widget")];if(!d)return null;if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);b&&a.data("widget",b);e=z(d,a.getName());c=new CKEDITOR.dom.element(e? +"span":"div");c.setAttributes(x(e));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){d=this.registered[b||a.attributes["data-widget"]];if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]= +b);e=z(d,a.name);c=new CKEDITOR.htmlParser.element(e?"span":"div",x(e));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&y(d,f,c)}return c},_tests_getNestedEditable:l,_tests_createEditableFilter:u};CKEDITOR.event.implementOn(o.prototype);k.prototype={addClass:function(a){this.element.addClass(a)},applyStyle:function(a){D(this,a,1)},checkStyleActive:function(a){var a=E(a),b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1; +return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",H);c.removeListener("blur", +G);this.editor.focusManager.remove(c);b||(c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,e;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),e=a.on("ok",function(){var d,e=b.on("data", +function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);e.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();e.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this.wrapper.findOne(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)? +(c=new q(this.editor,c,{filter:u.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&c.data("cke-filter",c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",H,this),CKEDITOR.env.ie&&c.on("blur",G,this),c.setData(c.getHtml()),!0):!1},isInited:function(){return!(!this.wrapper|| +!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a)},removeStyle:function(a){D(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(s(this),this.fire("data", +c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-m};if(!c||!(b.x==c.x&&b.y==c.y))c=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+ +"px",left:b.x+"px"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b}};CKEDITOR.event.implementOn(k.prototype);q.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(), +filter:this.filter,enterMode:this.enterMode})}});var X=RegExp('^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?]*data-cke-copybin-start="1"[^>]*>.?([\\s\\S]+)]*data-cke-copybin-end="1"[^>]*>.?(?:)?(?:)?$'),ea={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}function b(a,b,e){return!e||!this.checkElement(a)?!1:(a=e.widgets.getByElement(a,!0))&&a.checkStyleActive(this)} +CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget},apply:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.applyStyle(this)},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return!(b instanceof CKEDITOR.editor)?!1:this.checkElement(a.lastElement)}, +checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return!r(a)?!1:(a=a.getFirst(p))&&a.data("widget")==this.widget},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;var a=a.widgets.registered[this.widget],b,e={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;e[a.styleableElements]={classes:b,propertiesOnly:!0};return e}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this): +null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=k;k.repository=o;k.nestedEditable=q})(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/wsc/LICENSE.md b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/LICENSE.md new file mode 100644 index 00000000..6096de23 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html new file mode 100644 index 00000000..8e0a10df --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -0,0 +1,66 @@ + + + + + + + + +

+ diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html new file mode 100644 index 00000000..61203e03 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css new file mode 100644 index 00000000..da2f1743 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css @@ -0,0 +1,82 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js new file mode 100644 index 00000000..443145c9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js @@ -0,0 +1,74 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function y(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString,f=a.fn||null,g=a.id||"",e=a.target||window,i=a.message||{id:g};a.message&&"[object Object]"== +b.call(a.message)&&(a.message.id||(a.message.id=g),i=a.message);a=window.JSON.stringify(i,f);e.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}, +misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){return!(0===a.offsetWidth||0==a.offsetHeight||"none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display))},hasClass:function(a,b){return!(!a.className||!a.className.match(RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(), +a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null, +text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var z=function(b){var c,d;for(d in b)c=b[d].instance.getElement().getFirst()|| +b[d].instance.getElement(),c.setText(a.LocalizationComing[d])},A=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}},j,q;a.framesetHtml=function(b){return"'};a.setIframe=function(b,c){var d;d=a.framesetHtml(c);var f=a.iframeNumber+"_"+c;b.getElement().setHtml(d); +d=document.getElementById(f);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('iframe
+ + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/api.html b/platforms/android/assets/www/lib/ckeditor/samples/api.html new file mode 100644 index 00000000..a957eed0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/api.html @@ -0,0 +1,207 @@ + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/appendto.html b/platforms/android/assets/www/lib/ckeditor/samples/appendto.html new file mode 100644 index 00000000..b8467702 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/appendto.html @@ -0,0 +1,56 @@ + + + + + + Append To Page Element Using JavaScript Code — CKEditor Sample + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace(), + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/assets/inlineall/logo.png b/platforms/android/assets/www/lib/ckeditor/samples/assets/inlineall/logo.png new file mode 100644 index 00000000..b4d5979e Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/samples/assets/inlineall/logo.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/platforms/android/assets/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css new file mode 100644 index 00000000..fa0ff379 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/platforms/android/assets/www/lib/ckeditor/samples/assets/posteddata.php b/platforms/android/assets/www/lib/ckeditor/samples/assets/posteddata.php new file mode 100644 index 00000000..6b26aae3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/assets/posteddata.php @@ -0,0 +1,59 @@ + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/assets/sample.jpg b/platforms/android/assets/www/lib/ckeditor/samples/assets/sample.jpg new file mode 100644 index 00000000..9498271c Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/samples/assets/sample.jpg differ diff --git a/platforms/android/assets/www/lib/ckeditor/samples/assets/uilanguages/languages.js b/platforms/android/assets/www/lib/ckeditor/samples/assets/uilanguages/languages.js new file mode 100644 index 00000000..3f7ff624 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/assets/uilanguages/languages.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese", +zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name + + + + + Data Filtering — CKEditor Sample + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/divreplace.html b/platforms/android/assets/www/lib/ckeditor/samples/divreplace.html new file mode 100644 index 00000000..873c8c2e --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/divreplace.html @@ -0,0 +1,141 @@ + + + + + + Replace DIV — CKEditor Sample + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/index.html b/platforms/android/assets/www/lib/ckeditor/samples/index.html new file mode 100644 index 00000000..5ae467f8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/index.html @@ -0,0 +1,170 @@ + + + + + + CKEditor Samples + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+ +
Create editors with jQuery
+
Creating standard and inline CKEditor instances with jQuery adapter.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ + +

Plugins

+
+
Code Snippet plugin New!
+
View and modify code using the Code Snippet plugin.
+ +
New Image plugin New!
+
Using the new Image plugin to insert captioned images and adjust their dimensions.
+ +
Mathematics plugin New!
+
Create mathematical equations in TeX and display them in visual form.
+ +
Editing source code in a dialog New!
+
Editing HTML content of both inline and classic editor instances.
+ +
AutoGrow plugin
+
Using the AutoGrow plugin in order to make the editor grow to fit the size of its content.
+ +
Output for BBCode
+
Configuring CKEditor to produce BBCode tags instead of HTML.
+ +
Developer Tools plugin
+
Using the Developer Tools plugin to display information about dialog window UI elements to allow for easier customization.
+ +
Document Properties plugin
+
Manage various page meta data with a dialog.
+ +
Magicline plugin
+
Using the Magicline plugin to access difficult focus spaces.
+ +
Placeholder plugin
+
Using the Placeholder plugin to create uneditable sections that can only be created and modified with a proper dialog window.
+ +
Shared-Space plugin
+
Having the toolbar and the bottom bar spaces shared by different editor instances.
+ +
Stylesheet Parser plugin
+
Using the Stylesheet Parser plugin to fill the Styles drop-down list based on the CSS classes available in the document stylesheet.
+ +
TableResize plugin
+
Using the TableResize plugin to enable table column resizing.
+ +
UIColor plugin
+
Using the UIColor plugin to pick up skin color.
+ +
Full page support
+
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
+
+
+
+

+ Inline Editing +

+
+
Massive inline editor creation
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ +
Replace textarea with inline editor New!
+
A form with a textarea that is replaced by an inline editor at runtime.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation
+
Navigating among editor instances with tab key.
+ + + +
Using the JavaScript API to customize dialog windows
+
Using the dialog windows API to customize dialog windows without changing the original editor code.
+ +
Replace Textarea with a "DIV-based" editor
+
Using div instead of iframe for rich editing.
+ +
Using the "Enter" key in CKEditor
+
Configuring the behavior of Enter and Shift+Enter keys.
+ +
Output for Flash
+
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+ +
Output HTML
+
Configuring CKEditor to produce legacy HTML 4 code.
+ +
Toolbar Configurations
+
Configuring CKEditor to display full or custom toolbar layout.
+ +
+
+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/inlineall.html b/platforms/android/assets/www/lib/ckeditor/samples/inlineall.html new file mode 100644 index 00000000..f82af1db --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/inlineall.html @@ -0,0 +1,311 @@ + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/inlinebycode.html b/platforms/android/assets/www/lib/ckeditor/samples/inlinebycode.html new file mode 100644 index 00000000..4e475367 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/inlinebycode.html @@ -0,0 +1,121 @@ + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/inlinetextarea.html b/platforms/android/assets/www/lib/ckeditor/samples/inlinetextarea.html new file mode 100644 index 00000000..fd27c0f1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/inlinetextarea.html @@ -0,0 +1,110 @@ + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea with Inline Editor +

+
+

+ You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+

This is a sample form with some fields

+

+ Title:
+

+

+ Article Body (Textarea converted to CKEditor):
+ +

+

+ +

+
+ + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/jquery.html b/platforms/android/assets/www/lib/ckeditor/samples/jquery.html new file mode 100644 index 00000000..380b8284 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/jquery.html @@ -0,0 +1,100 @@ + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Create Editors with jQuery +

+
+
+

+ This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

+ +
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckeditor/ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+ +

Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.

+ +
+$( document ).ready( function() {
+	$( 'textarea#editor1' ).ckeditor();
+} );
+
+
+ +

Inline Example

+ +
+

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +
+ +

Classic (iframe-based) Example

+ + + +

+ + + + + +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html new file mode 100644 index 00000000..39434152 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html @@ -0,0 +1,99 @@ + + + + + + AutoGrow Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using AutoGrow Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + AutoGrow (autogrow) plugin that lets the editor window expand + and shrink depending on the amount and size of content entered in the editing area. +

+

+ In its default implementation the AutoGrow feature can expand the + CKEditor window infinitely in order to avoid introducing scrollbars to the editing area. +

+

+ It is also possible to set a maximum height for the editor window. Once CKEditor + editing area reaches the value in pixels specified in the + autoGrow_maxHeight + configuration setting, scrollbars will be added and the editor window will no longer expand. +

+

+ To add a CKEditor instance using the autogrow plugin and its + autoGrow_maxHeight attribute, insert the following JavaScript call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'autogrow',
+	autoGrow_maxHeight: 800,
+
+	// Remove the Resize plugin as it does not make sense to use it in conjunction with the AutoGrow plugin.
+	removePlugins: 'resize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. The maximum height should + be given in pixels. +

+
+
+

+ + + +

+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html new file mode 100644 index 00000000..940d12c0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html @@ -0,0 +1,111 @@ + + + + + + BBCode Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » BBCode Plugin +

+
+

+ This sample shows how to configure CKEditor to output BBCode format instead of HTML. + Please note that the editor configuration was modified to reflect what is needed in a BBCode editing environment. + Smiley images, for example, were stripped to the emoticons that are commonly used in some BBCode dialects. +

+

+ Please note that currently there is no standard for the BBCode markup language, so its implementation + for different platforms (message boards, blogs etc.) can vary. This means that before using CKEditor to + output BBCode you may need to adjust the implementation to your own environment. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + a full definition: +

+
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'bbcode',
+	toolbar: [
+		[ 'Source', '-', 'Save', 'NewPage', '-', 'Undo', 'Redo' ],
+		[ 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat' ],
+		[ 'Link', 'Unlink', 'Image' ],
+		'/',
+		[ 'FontSize', 'Bold', 'Italic', 'Underline' ],
+		[ 'NumberedList', 'BulletedList', '-', 'Blockquote' ],
+		[ 'TextColor', '-', 'Smiley', 'SpecialChar', '-', 'Maximize' ]
+	],
+	... some other configurations omitted here
+});	
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html new file mode 100644 index 00000000..52588cf0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html @@ -0,0 +1,233 @@ + + + + + + Code Snippet — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Code Snippet Plugin +

+ +
+

+ This editor is using the Code Snippet plugin which introduces beautiful code snippets. + By default the codesnippet plugin depends on the built-in client-side syntax highlighting + library highlight.js. +

+

+ You can adjust the appearance of code snippets using the codeSnippet_theme configuration variable + (see available themes). +

+

+ Select theme: +

+

+ The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'codesnippet',
+	codeSnippet_theme: 'monokai_sublime'
+} );
+
+ +

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + +

Inline editor

+ +
+

+ The following sample shows the Code Snippet plugin running inside + an inline CKEditor instance. The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'codesnippet'
+} );
+
+ +

+ Note: The highlight.js themes + must be loaded manually to be applied inside an inline editor instance, as the + codeSnippet_theme setting will not work in that case. + You need to include the stylesheet in the <head> section of the page, for example: +

+ +
+<head>
+	...
+	<link href="path/to/highlight.js/styles/monokai_sublime.css" rel="stylesheet">
+</head>
+
+ +
+ +
+ +

JavaScript code:

+ +
function isEmpty( object ) {
+	for ( var i in object ) {
+		if ( object.hasOwnProperty( i ) )
+			return false;
+	}
+	return true;
+}
+ +

SQL query:

+ +
SELECT cust.id, cust.name, loc.city FROM cust LEFT JOIN loc ON ( cust.loc_id = loc.id ) WHERE cust.type IN ( 1, 2 );
+ +

Unknown markup:

+ +
 ________________
+/                \
+| How about moo? |  ^__^
+\________________/  (oo)\_______
+                  \ (__)\       )\/\
+                        ||----w |
+                        ||     ||
+
+
+ +

Server-side Highlighting and Custom Highlighting Engines

+ +

+ The Code Snippet GeSHi plugin is an + extension of the Code Snippet plugin which uses a server-side highligter. +

+ +

+ It also is possible to replace the default highlighter with any library using + the Highlighter API + and the editor.plugins.codesnippet.setHighlighter() method. +

+ + + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/devtools/devtools.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/devtools/devtools.html new file mode 100644 index 00000000..da3552ff --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/devtools/devtools.html @@ -0,0 +1,83 @@ + + + + + + Using DevTools Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the Developer Tools Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Developer Tools (devtools) plugin that displays + information about dialog window elements, including the name of the dialog window, + tab, and UI element. Please note that the tooltip also contains a link to the + CKEditor JavaScript API + documentation for each of the selected elements. +

+

+ This plugin is aimed at developers who would like to customize their CKEditor + instances and create their own plugins. By default it is turned off; it is + usually useful to only turn it on in the development phase. Note that it works with + all CKEditor dialog windows, including the ones that were created by custom plugins. +

+

+ To add a CKEditor instance using the devtools plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'devtools'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/platforms/android/assets/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js new file mode 100644 index 00000000..3edd0728 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/dialog/dialog.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/dialog/dialog.html new file mode 100644 index 00000000..df09d25b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/dialog/dialog.html @@ -0,0 +1,187 @@ + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/divarea/divarea.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/divarea/divarea.html new file mode 100644 index 00000000..d2880bd2 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/divarea/divarea.html @@ -0,0 +1,61 @@ + + + + + + Replace Textarea with a "DIV-based" editor — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Replace Textarea with a "DIV-based" editor +

+
+
+

+ This editor is using a <div> element-based editing area, provided by the Divarea plugin. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'divarea'
+});
+
+ + +

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/docprops/docprops.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/docprops/docprops.html new file mode 100644 index 00000000..fcea6468 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/docprops/docprops.html @@ -0,0 +1,78 @@ + + + + + + Document Properties — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Document Properties Plugin +

+
+

+ This sample shows how to configure CKEditor to use the Document Properties plugin. + This plugin allows you to set the metadata of the page, including the page encoding, margins, + meta tags, or background. +

+

Note: This plugin is to be used along with the fullPage configuration.

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	extraPlugins: 'docprops',
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html new file mode 100644 index 00000000..2d515012 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html @@ -0,0 +1,103 @@ + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla new file mode 100644 index 00000000..27e68ccd Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla differ diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf new file mode 100644 index 00000000..dbe17b6b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf differ diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js new file mode 100644 index 00000000..95fdf0a7 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -0,0 +1,18 @@ +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html new file mode 100644 index 00000000..f25697df --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -0,0 +1,221 @@ + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg b/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg new file mode 100644 index 00000000..ca491e39 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg differ diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg b/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg new file mode 100644 index 00000000..3dd6d61f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg differ diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/image2.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/image2.html new file mode 100644 index 00000000..34a5339a --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/image2/image2.html @@ -0,0 +1,65 @@ + + + + + + New Image plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » New Image plugin +

+ +
+

+ This editor is using the new Image (image2) plugin, which implements a dynamic click-and-drag resizing + and easy captioning of the images. +

+

+ To use the new plugin, extend config.extraPlugins: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'image2'
+} );
+
+
+ + + + + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/magicline/magicline.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/magicline/magicline.html new file mode 100644 index 00000000..800fbb3b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/magicline/magicline.html @@ -0,0 +1,206 @@ + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html new file mode 100644 index 00000000..bdccc158 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html @@ -0,0 +1,82 @@ + + + + + + Mathematical Formulas — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Mathematical Formulas +

+ +
+

+ This sample shows the usage of the CKEditor mathematical plugin that introduces a MathJax widget. You can now use it to create or modify equations using TeX. +

+

+ TeX content will be automatically replaced by a widget when you put it in a <span class="math-tex"> element. You can also add new equations by using the Math toolbar button and entering TeX content in the plugin dialog window. After you click OK, a widget will be inserted into the editor content. +

+

+ The output of the editor will be plain TeX with MathJax delimiters: \( and \), as in the code below: +

+
+<span class="math-tex">\( \sqrt{1} + (1)^2 = 2 \)</span>
+
+

+ To transform TeX into a visual equation, a page must include the MathJax script. +

+

+ In order to use the new plugin, include it in the config.extraPlugins configuration setting. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'mathjax'
+} );
+
+

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html new file mode 100644 index 00000000..5a09a8ef --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html @@ -0,0 +1,72 @@ + + + + + + Placeholder Plugin — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Using the Placeholder Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Placeholder plugin that lets you insert read-only elements + into your content. To enter and modify read-only text, use the + Create Placeholder   button and its matching dialog window. +

+

+ To add a CKEditor instance that uses the placeholder plugin and a related + Create Placeholder   toolbar button, insert the following JavaScript + call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'placeholder',
+	toolbar: [ [ 'Source', 'Bold' ], ['CreatePlaceholder'] ]
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html new file mode 100644 index 00000000..30ac7fcf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html @@ -0,0 +1,119 @@ + + + + + + Shared-Space Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Sharing Toolbar and Bottom-bar Spaces +

+
+

+ This sample shows several editor instances that share the very same spaces for both the toolbar and the bottom bar. +

+
+
+ +
+ +
+ +
+
+ +
+ +
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+ +
+ +
+ +
+ + + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html new file mode 100644 index 00000000..2b920dff --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html @@ -0,0 +1,118 @@ + + + + + + Editing source code in a dialog — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Editing source code in a dialog +

+
+

+ Sourcedialog plugin provides an easy way to edit raw HTML content + of an editor, similarly to what is possible with Sourcearea + plugin for classic (iframe-based) instances but using dialogs. Thanks to that, it's also possible + to manipulate raw content of inline editor instances. +

+

+ This plugin extends the toolbar with a button, + which opens a dialog window with a source code editor. It works with both classic + and inline instances. To enable this + plugin, basically add extraPlugins: 'sourcedialog' to editor's + config: +

+
+// Inline editor.
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'sourcedialog'
+});
+
+// Classic (iframe-based) editor.
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'sourcedialog',
+	removePlugins: 'sourcearea'
+});
+
+

+ Note that you may want to include removePlugins: 'sourcearea' + in your config when using Sourcedialog in classic editor instances. + This prevents feature redundancy. +

+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+ +
+

This is some sample text. You are using CKEditor.

+
+
+
+
+ + +
+ + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css b/platforms/android/assets/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css new file mode 100644 index 00000000..ce545eec --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css @@ -0,0 +1,70 @@ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 12px; + color: #222; + background-color: #fff; +} + +/* preserved spaces for rtl list item bullets. (#6249)*/ +ol,ul,dl +{ + padding-right:40px; +} + +h1,h2,h3,h4 +{ + font-family: Georgia, Times, serif; +} + +h1.lightBlue +{ + color: #00A6C7; + font-size: 1.8em; + font-weight:normal; +} + +h3.green +{ + color: #739E39; + font-weight:normal; +} + +span.markYellow { background-color: yellow; } +span.markGreen { background-color: lime; } + +img.left +{ + padding: 5px; + margin-right: 5px; + float:left; + border:2px solid #DDD; +} + +img.right +{ + padding: 5px; + margin-right: 5px; + float:right; + border:2px solid #DDD; +} + +a.green +{ + color:#739E39; +} + +table.grey +{ + background-color : #F5F5F5; +} + +table.grey th +{ + background-color : #DDD; +} + +ul.square +{ + list-style-type : square; +} diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html new file mode 100644 index 00000000..450bc11f --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html @@ -0,0 +1,82 @@ + + + + + + Using Stylesheet Parser Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using the Stylesheet Parser Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Stylesheet Parser (stylesheetparser) plugin that fills + the Styles drop-down list based on the CSS rules available in the document stylesheet. +

+

+ To add a CKEditor instance using the stylesheetparser plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'stylesheetparser'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html new file mode 100644 index 00000000..6dec40d6 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html @@ -0,0 +1,104 @@ + + + + + + Using TableResize Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the TableResize Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + TableResize (tableresize) plugin that allows + the user to edit table columns by using the mouse. +

+

+ The TableResize plugin makes it possible to modify table column width. Hover + your mouse over the column border to see the cursor change to indicate that + the column can be resized. Click and drag your mouse to set the desired width. +

+

+ By default the plugin is turned off. To add a CKEditor instance using the + TableResize plugin, insert the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'tableresize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html new file mode 100644 index 00000000..6cf2ddf1 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html @@ -0,0 +1,232 @@ + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html new file mode 100644 index 00000000..a6309be0 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html @@ -0,0 +1,103 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + + + + +

+ CKEditor Samples » UI Color Plugin +

+
+

+ This sample shows how to use the UI Color picker toolbar button to preview the skin color of the editor. + Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+
+

+ If the uicolor plugin along with the dedicated UIColor + toolbar button is added to CKEditor, the user will also be able to pick the color of the + UI from the color palette available in the UI Color Picker dialog window. +

+

+ To insert a CKEditor instance with the uicolor plugin enabled, + use the following JavaScript call: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'uicolor',
+	toolbar: [ [ 'Bold', 'Italic' ], [ 'UIColor' ] ]
+});
+

Used in themed instance

+

+ Click the UI Color Picker toolbar button to open up a color picker dialog. +

+

+ + +

+

Used in inline instance

+

+ Click the below editable region to display floating toolbar, then click UI Color Picker button. +

+
+

This is some sample text. You are using CKEditor.

+
+ +
+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/platforms/android/assets/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html new file mode 100644 index 00000000..174a25f3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -0,0 +1,77 @@ + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/readonly.html b/platforms/android/assets/www/lib/ckeditor/samples/readonly.html new file mode 100644 index 00000000..58f97069 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/readonly.html @@ -0,0 +1,73 @@ + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/replacebyclass.html b/platforms/android/assets/www/lib/ckeditor/samples/replacebyclass.html new file mode 100644 index 00000000..6fc3e6fe --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/replacebyclass.html @@ -0,0 +1,57 @@ + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/replacebycode.html b/platforms/android/assets/www/lib/ckeditor/samples/replacebycode.html new file mode 100644 index 00000000..e5a4c5ba --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/replacebycode.html @@ -0,0 +1,56 @@ + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/sample.css b/platforms/android/assets/www/lib/ckeditor/samples/sample.css new file mode 100644 index 00000000..8fd71aaa --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/sample.css @@ -0,0 +1,365 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre +{ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} + +.marker +{ + background-color: Yellow; +} diff --git a/platforms/android/assets/www/lib/ckeditor/samples/sample.js b/platforms/android/assets/www/lib/ckeditor/samples/sample.js new file mode 100644 index 00000000..b25482d3 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/sample.js @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/platforms/android/assets/www/lib/ckeditor/samples/sample_posteddata.php b/platforms/android/assets/www/lib/ckeditor/samples/sample_posteddata.php new file mode 100644 index 00000000..e4869b7c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/sample_posteddata.php @@ -0,0 +1,16 @@ +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.md or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/platforms/android/assets/www/lib/ckeditor/samples/tabindex.html b/platforms/android/assets/www/lib/ckeditor/samples/tabindex.html new file mode 100644 index 00000000..89521668 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/tabindex.html @@ -0,0 +1,75 @@ + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/uicolor.html b/platforms/android/assets/www/lib/ckeditor/samples/uicolor.html new file mode 100644 index 00000000..ce4b2a26 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/uicolor.html @@ -0,0 +1,69 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/uilanguages.html b/platforms/android/assets/www/lib/ckeditor/samples/uilanguages.html new file mode 100644 index 00000000..66acca43 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/uilanguages.html @@ -0,0 +1,119 @@ + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/samples/xhtmlstyle.html b/platforms/android/assets/www/lib/ckeditor/samples/xhtmlstyle.html new file mode 100644 index 00000000..f219d11d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/samples/xhtmlstyle.html @@ -0,0 +1,231 @@ + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog.css new file mode 100644 index 00000000..31152d4c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie.css new file mode 100644 index 00000000..359d4574 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie7.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie7.css new file mode 100644 index 00000000..3973bd10 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_single_page .cke_dialog_footer{margin-top:22px}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{top:33px}.cke_dialog_footer_buttons{position:static;margin-top:7px;margin-right:24px}.cke_rtl .cke_dialog_footer_buttons{margin-right:0;margin-left:24px}.cke_rtl .cke_dialog_close_button{margin-top:0;position:absolute;left:10px;top:5px}span.cke_dialog_ui_buttonm{margin:2px 0}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{position:absolute}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{height:14px;position:relative} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie8.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie8.css new file mode 100644 index 00000000..ddbd6012 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_rtl .cke_dialog_footer_buttons td{padding-left:2px}.cke_rtl .cke_dialog_close_button{left:8px} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_iequirks.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_iequirks.css new file mode 100644 index 00000000..04ba2ee5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_dialog_page_contents{position:absolute}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_dialog_close_button{top:27px;background-image:url(images/sprites_ie6.png)}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{display:block;top:33px;margin-top:33px}.cke_rtl .cke_dialog_ui_labeled_content{_width:95%}a.cke_dialog_ui_button{background:0;padding:0}a.cke_dialog_ui_button span{width:70px;padding:5px 15px;text-align:center;color:#3b3b1f;background:#53d9f0 none;display:inline-block;cursor:default}a.cke_dialog_ui_button_ok span{background-image:none;background-color:#b8e834;margin-right:0}a.cke_dialog_ui_button_cancel span{background-image:none;background-color:#f65d20;margin-right:0}a.cke_dialog_ui_button:hover span,a.cke_dialog_ui_button:focus span,a.cke_dialog_ui_button:active span{background-image:none;background:#f7a922}div.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{width:99%}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid red!important;filter:chroma(color=red)}.cke_dialog_ui_focused,.cke_btn_over{border:1px dotted #696969!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/editor.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor.css new file mode 100644 index 00000000..8ac84cbf --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie.css new file mode 100644 index 00000000..f9059430 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie7.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie7.css new file mode 100644 index 00000000..e47ea631 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:22px}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle;padding-bottom:8px}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:3px;height:5px;padding:0;position:absolute;right:8px;top:11px;background-position:0 -1411px}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -1390px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie8.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie8.css new file mode 100644 index 00000000..926a9ceb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_iequirks.css b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_iequirks.css new file mode 100644 index 00000000..809e90f5 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *{float:none}.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,.cke_rtl .cke_button_arrow{vertical-align:top;display:inline-block}.cke_toolgroup,.cke_combo_button,.cke_combo_arrow,.cke_button_arrow,.cke_toolbox_collapser,.cke_resizer{background-image:url(images/sprites_ie6.png)}.cke_toolgroup{background-color:#fff;display:inline-block;padding:2px}.cke_inner{padding-top:2px;background-color:#d3d3d3;background-image:none}.cke_toolbar{margin:2px 0}.cke_rtl .cke_toolbar{margin-bottom:-1px;margin-top:-1px}.cke_toolbar_separator{vertical-align:top}.cke_toolbox{width:100%;float:left;padding-bottom:4px}.cke_rtl .cke_toolbox{margin-top:2px;margin-bottom:-4px}.cke_combo_button{background-color:#fff}.cke_rtl .cke_combo_button{padding-right:6px;padding-left:0}.cke_combo_text{line-height:21px}.cke_ltr .cke_combo_open{margin-left:-3px}.cke_combo_arrow{background-position:2px -1467px;margin:2px 0 0;border:0;width:8px;height:13px}.cke_rtl .cke_button_arrow{background-position-x:0}.cke_toolbox_collapser .cke_arrow{display:block;visibility:hidden;font-size:0;color:transparent;border:0}.cke_button_arrow{background-position:2px -1467px;margin:0;border:0;width:8px;height:15px}.cke_ltr .cke_button_arrow{background-position:0 -1467px;margin-left:-3px}.cke_toolbox_collapser{background-position:3px -1367px}.cke_toolbox_collapser_min{background-position:4px -1387px;margin:2px 0 0}.cke_rtl .cke_toolbox_collapser_min{background-position:4px -1408px}.cke_resizer{background-position:0 -1427px;width:12px;height:12px;border:0;margin:9px 0 0;vertical-align:baseline}.cke_dialog_tabs{position:absolute;top:38px;left:0}.cke_dialog_body{clear:both;margin-top:20px}a.cke_dialog_ui_button{background:url(images/sprites.png) repeat_x 0 _ 1069px}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1179px}a.cke_dialog_ui_button_ok{background:url(images/sprites.png) repeat_x 0 _ 1144px}a.cke_dialog_ui_button_cancel{background:url(images/sprites.png) repeat_x 0 _ 1105px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{background-image:none}.cke_menubutton_label{height:25px}.cke_menuarrow{background-image:url(images/sprites_ie6.png)}.cke_menuitem .cke_icon,.cke_button_icon,.cke_menuitem .cke_disabled .cke_icon,.cke_button_disabled .cke_button_icon{filter:""}.cke_menuseparator{font-size:0}.cke_colorbox{font-size:0}.cke_source{white-space:normal} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/icons.png b/platforms/android/assets/www/lib/ckeditor/skins/kama/icons.png new file mode 100644 index 00000000..a041850a Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/icons.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/icons_hidpi.png b/platforms/android/assets/www/lib/ckeditor/skins/kama/icons_hidpi.png new file mode 100644 index 00000000..1581f600 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/icons_hidpi.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides.gif b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides.gif new file mode 100644 index 00000000..b5d9a532 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides.png b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides.png new file mode 100644 index 00000000..2df7a15b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png new file mode 100644 index 00000000..b179935f Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/mini.gif b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/mini.gif new file mode 100644 index 00000000..babc31a5 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/mini.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/sprites.png b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/sprites.png new file mode 100644 index 00000000..5fc409d1 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/sprites.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/sprites_ie6.png b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/sprites_ie6.png new file mode 100644 index 00000000..070a8cee Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/sprites_ie6.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/images/toolbar_start.gif b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/toolbar_start.gif new file mode 100644 index 00000000..94aa4abc Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/kama/images/toolbar_start.gif differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/readme.md b/platforms/android/assets/www/lib/ckeditor/skins/kama/readme.md new file mode 100644 index 00000000..ac304db8 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/readme.md @@ -0,0 +1,40 @@ +"Kama" Skin +==================== + +"Kama" is the default skin of CKEditor 3.x. +It's been ported to CKEditor 4 and fully featured. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/platforms/android/assets/www/lib/ckeditor/skins/kama/skin.js b/platforms/android/assets/www/lib/ckeditor/skins/kama/skin.js new file mode 100644 index 00000000..5d2c0959 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/kama/skin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.skin.name="kama";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8"; +CKEDITOR.skin.chameleon=function(e,d){function b(a){return"background:-moz-linear-gradient("+a+");background:-webkit-linear-gradient("+a+");background:-o-linear-gradient("+a+");background:-ms-linear-gradient("+a+");background:linear-gradient("+a+");"}var c,a="."+e.id;"editor"==d?c=a+" .cke_inner,"+a+" .cke_dialog_tab{background-color:$color;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to($color));"+b("top,#fff -15px,$color 40px")+"}"+a+" .cke_toolgroup{background:-webkit-gradient(linear,0 0,0 100,from(#fff),to($color));"+ +b("top,#fff,$color 100px")+"}"+a+" .cke_combo_button{background:-webkit-gradient(linear, left bottom, left -100, from(#fff), to($color));"+b("bottom,#fff,$color 100px")+"}"+a+" .cke_dialog_contents,"+a+" .cke_dialog_footer{background-color:$color !important;}"+a+" .cke_dialog_tab:hover,"+a+" .cke_dialog_tab:active,"+a+" .cke_dialog_tab:focus,"+a+" .cke_dialog_tab_selected{background-color:$color;background-image:none;}":"panel"==d&&(c=".cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_label,.cke_menubutton:focus .cke_menubutton_label,.cke_menubutton:active .cke_menubutton_label{background-color:$color !important;}.cke_menubutton_disabled:hover .cke_menubutton_label,.cke_menubutton_disabled:focus .cke_menubutton_label,.cke_menubutton_disabled:active .cke_menubutton_label{background-color: transparent !important;}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton_disabled .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menuseparator{background-color:$color !important;}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:$color !important;}"); +return c}; \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog.css new file mode 100644 index 00000000..1504938d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie.css new file mode 100644 index 00000000..93cf7aed --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie7.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie7.css new file mode 100644 index 00000000..4b98ae57 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie8.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie8.css new file mode 100644 index 00000000..4f2edca9 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_iequirks.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_iequirks.css new file mode 100644 index 00000000..bb36a95d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/editor.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor.css new file mode 100644 index 00000000..c21d8f8d --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_gecko.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_gecko.css new file mode 100644 index 00000000..7aa2f32c --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_gecko.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie.css new file mode 100644 index 00000000..9afe7e92 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie7.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie7.css new file mode 100644 index 00000000..ba856696 --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie8.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie8.css new file mode 100644 index 00000000..c4f4a1af --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_iequirks.css b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_iequirks.css new file mode 100644 index 00000000..3de6bfdb --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/icons.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/icons.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/icons_hidpi.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/icons_hidpi.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/arrow.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/arrow.png new file mode 100644 index 00000000..d72b5f3b Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/arrow.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/close.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/close.png new file mode 100644 index 00000000..6a04ab52 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/close.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/close.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/close.png new file mode 100644 index 00000000..e406c2c3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/close.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png new file mode 100644 index 00000000..edbd12f3 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/lock.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/lock.png new file mode 100644 index 00000000..1b87bbb7 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/lock.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png new file mode 100644 index 00000000..c6c2b86e Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/lock-open.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/lock-open.png new file mode 100644 index 00000000..04769877 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/lock-open.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/lock.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/lock.png new file mode 100644 index 00000000..c5a14400 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/lock.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/images/refresh.png b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/refresh.png new file mode 100644 index 00000000..1ff63c30 Binary files /dev/null and b/platforms/android/assets/www/lib/ckeditor/skins/moono/images/refresh.png differ diff --git a/platforms/android/assets/www/lib/ckeditor/skins/moono/readme.md b/platforms/android/assets/www/lib/ckeditor/skins/moono/readme.md new file mode 100644 index 00000000..d086fe9b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/skins/moono/readme.md @@ -0,0 +1,51 @@ +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/platforms/android/assets/www/lib/ckeditor/styles.js b/platforms/android/assets/www/lib/ckeditor/styles.js new file mode 100644 index 00000000..18e4316b --- /dev/null +++ b/platforms/android/assets/www/lib/ckeditor/styles.js @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/platforms/android/assets/www/lib/d3/.bower.json b/platforms/android/assets/www/lib/d3/.bower.json new file mode 100644 index 00000000..5c7a0fde --- /dev/null +++ b/platforms/android/assets/www/lib/d3/.bower.json @@ -0,0 +1,35 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ], + "homepage": "https://github.com/mbostock/d3", + "_release": "3.4.11", + "_resolution": { + "type": "version", + "tag": "v3.4.11", + "commit": "9dbb2266543a6c998c3552074240efb36e4c7cab" + }, + "_source": "git://github.com/mbostock/d3.git", + "_target": "~3.4.11", + "_originalSource": "d3", + "_direct": true +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/d3/.spmignore b/platforms/android/assets/www/lib/d3/.spmignore new file mode 100644 index 00000000..0a673041 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/.spmignore @@ -0,0 +1,4 @@ +bin +lib +src +test diff --git a/platforms/android/assets/www/lib/d3/CONTRIBUTING.md b/platforms/android/assets/www/lib/d3/CONTRIBUTING.md new file mode 100644 index 00000000..76126d5f --- /dev/null +++ b/platforms/android/assets/www/lib/d3/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing + +If you’re looking for ways to contribute, please [peruse open issues](https://github.com/mbostock/d3/issues?milestone=&page=1&state=open). The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed. + +Before submitting a pull request, consider implementing a live example first, say using [bl.ocks.org](http://bl.ocks.org). Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the d3-js Google group. + +If your proposed feature does not involve changing core functionality, consider submitting it instead as a [D3 plugin](https://github.com/d3/d3-plugins). New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core. + +To contribute new documentation or add examples to the gallery, just [edit the Wiki](https://github.com/mbostock/d3/wiki)! + +## How to Submit a Pull Request + +1. Click the “Fork” button to create your personal fork of the D3 repository. + +2. After cloning your fork of the D3 repository in the terminal, run `npm install` to install D3’s dependencies. + +3. Create a new branch for your new feature. For example: `git checkout -b my-awesome-feature`. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. + +4. The `d3.js` and `d3.min.js` files are built from source files in the `src` directory. _Do not edit `d3.js` directly._ Instead, edit the source files, and then run `make` to build the generated files. + +5. Use `make test` to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. + +6. Sign D3’s [Individual Contributor License Agreement](https://docs.google.com/forms/d/1CzjdBKtDuA8WeuFJinadx956xLQ4Xriv7-oDvXnZMaI/viewform). Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute. + +7. Submit your pull request, and good luck! diff --git a/platforms/android/assets/www/lib/d3/LICENSE b/platforms/android/assets/www/lib/d3/LICENSE new file mode 100644 index 00000000..83013469 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/LICENSE @@ -0,0 +1,26 @@ +Copyright (c) 2010-2014, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/platforms/android/assets/www/lib/d3/README.md b/platforms/android/assets/www/lib/d3/README.md new file mode 100644 index 00000000..eb334e27 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/README.md @@ -0,0 +1,9 @@ +# Data-Driven Documents + + + +**D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation. + +Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) + +For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). diff --git a/platforms/android/assets/www/lib/d3/bower.json b/platforms/android/assets/www/lib/d3/bower.json new file mode 100644 index 00000000..9f5968d2 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/bower.json @@ -0,0 +1,24 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ] +} diff --git a/platforms/android/assets/www/lib/d3/composer.json b/platforms/android/assets/www/lib/d3/composer.json new file mode 100644 index 00000000..bfc5b7b5 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/composer.json @@ -0,0 +1,19 @@ +{ + "name": "mbostock/d3", + "description": "A small, free JavaScript library for manipulating documents based on data.", + "keywords": ["dom", "svg", "visualization", "js", "canvas"], + "homepage": "http://d3js.org/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Mike Bostock", + "homepage": "http://bost.ocks.org/mike" + } + ], + "support": { + "issues": "https://github.com/mbostock/d3/issues", + "wiki": "https://github.com/mbostock/d3/wiki", + "API": "https://github.com/mbostock/d3/wiki/API-Reference", + "source": "https://github.com/mbostock/d3" + } +} diff --git a/platforms/android/assets/www/lib/d3/d3.js b/platforms/android/assets/www/lib/d3/d3.js new file mode 100644 index 00000000..82287776 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/d3.js @@ -0,0 +1,9233 @@ +!function() { + var d3 = { + version: "3.4.11" + }; + if (!Date.now) Date.now = function() { + return +new Date(); + }; + var d3_arraySlice = [].slice, d3_array = function(list) { + return d3_arraySlice.call(list); + }; + var d3_document = document, d3_documentElement = d3_document.documentElement, d3_window = window; + try { + d3_array(d3_documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } + try { + d3_document.createElement("div").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ""); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ""); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; + } + d3.ascending = d3_ascending; + function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; + }; + d3.max = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; + }; + d3.extent = function(array, f) { + var i = -1, n = array.length, a, b, c; + if (arguments.length === 1) { + while (++i < n && !((a = c = array[i]) != null && a <= a)) a = c = undefined; + while (++i < n) if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n && !((a = c = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [ a, c ]; + }; + d3.sum = function(array, f) { + var s = 0, n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + return s; + }; + function d3_number(x) { + return x != null && !isNaN(x); + } + d3.mean = function(array, f) { + var s = 0, n = array.length, a, i = -1, j = n; + if (arguments.length === 1) { + while (++i < n) if (d3_number(a = array[i])) s += a; else --j; + } else { + while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j; + } + return j ? s / j : undefined; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + if (arguments.length > 1) array = array.map(f); + array = array.filter(d3_number); + return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined; + }; + function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1; + } + return lo; + } + }; + } + var d3_bisect = d3_bisector(d3_ascending); + d3.bisectLeft = d3_bisect.left; + d3.bisect = d3.bisectRight = d3_bisect.right; + d3.bisector = function(f) { + return d3_bisector(f.length === 1 ? function(d, x) { + return d3_ascending(f(d), x); + } : f); + }; + d3.shuffle = function(array) { + var m = array.length, t, i; + while (m) { + i = Math.random() * m-- | 0; + t = array[m], array[m] = array[i], array[i] = t; + } + return array; + }; + d3.permute = function(array, indexes) { + var i = indexes.length, permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.pairs = function(array) { + var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; + return pairs; + }; + d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { + zip[j] = arguments[j][i]; + } + } + return zips; + }; + function d3_zipLength(d) { + return d.length; + } + d3.transpose = function(matrix) { + return d3.zip.apply(d3, matrix); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + var n = arrays.length, m, i = -1, j = 0, merged, array; + while (++i < n) j += arrays[i].length; + merged = new Array(j); + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + return merged; + }; + var abs = Math.abs; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error("infinite range"); + var range = [], k = d3_range_integerScale(abs(step)), i = -1, j; + start *= k, stop *= k, step *= k; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while (x * k % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + try { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } catch (e) { + ctor.prototype = properties; + } + } + d3.map = function(object) { + var map = new d3_Map(); + if (object instanceof d3_Map) object.forEach(function(key, value) { + map.set(key, value); + }); else for (var key in object) map.set(key, object[key]); + return map; + }; + function d3_Map() {} + d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this[d3_map_prefix + key]; + }, + set: function(key, value) { + return this[d3_map_prefix + key] = value; + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + this.forEach(function(key, value) { + values.push(value); + }); + return values; + }, + entries: function() { + var entries = []; + this.forEach(function(key, value) { + entries.push({ + key: key, + value: value + }); + }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) f.call(this, key.substring(1), this[key]); + } + }); + var d3_map_prefix = "\x00", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); + function d3_map_has(key) { + return d3_map_prefix + key in this; + } + function d3_map_remove(key) { + key = d3_map_prefix + key; + return key in this && delete this[key]; + } + function d3_map_keys() { + var keys = []; + this.forEach(function(key) { + keys.push(key); + }); + return keys; + } + function d3_map_size() { + var size = 0; + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) ++size; + return size; + } + function d3_map_empty() { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) return false; + return true; + } + d3.nest = function() { + var nest = {}, keys = [], sortKeys = [], sortValues, rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; + var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(object = array[i]))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [ object ]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + nest.key = function(d) { + keys.push(d); + return nest; + }; + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; + }; + function d3_Set() {} + d3_class(d3_Set, { + has: d3_map_has, + add: function(value) { + this[d3_map_prefix + value] = true; + return value; + }, + remove: function(value) { + value = d3_map_prefix + value; + return value in this && delete this[value]; + }, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var value in this) if (value.charCodeAt(0) === d3_map_prefixCode) f.call(this, value.substring(1)); + } + }); + d3.behavior = {}; + d3.rebind = function(target, source) { + var i = 1, n = arguments.length, method; + while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.substring(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; + } + } + var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ]; + function d3_noop() {} + d3.dispatch = function() { + var dispatch = new d3_dispatch(), i = -1, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), name = ""; + if (i >= 0) { + name = type.substring(i + 1); + type = type.substring(0, i); + } + if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } + }; + function d3_dispatch_event(dispatch) { + var listeners = [], listenerByName = new d3_Map(); + function event() { + var z = listeners, i = -1, n = z.length, l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; + } + event.on = function(name, listener) { + var l = listenerByName.get(name), i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) listeners.push(listenerByName.set(name, { + on: listener + })); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventPreventDefault() { + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), i = 0, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + var d3_subclass = {}.__proto__ ? function(object, prototype) { + object.__proto__ = prototype; + } : function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; + function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, d3_selectMatcher = d3_documentElement.matches || d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + if (typeof Sizzle === "function") { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3_selectionRoot; + }; + var d3_selectionPrototype = d3.selection.prototype = []; + d3_selectionPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, group, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i, j)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return typeof selector === "function" ? selector : function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], subgroup, node; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); + subgroup.parentNode = node; + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return typeof selector === "function" ? selector : function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsPrefix = { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(":"), prefix = name; + if (i >= 0) { + prefix = name.substring(0, i); + name = name.substring(i + 1); + } + return d3_nsPrefix.hasOwnProperty(prefix) ? { + space: d3_nsPrefix[prefix], + local: name + } : name; + } + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); + } + return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); + } + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); + } + function d3_selection_classes(name) { + return (name + "").trim().split(/^|\s+/); + } + function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + return typeof value === "function" ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); + priority = ""; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); + } + return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; else this[name] = x; + } + return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + } : value == null ? function() { + this.textContent = ""; + } : function() { + this.textContent = value; + }) : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + } : value == null ? function() { + this.innerHTML = ""; + } : function() { + this.innerHTML = value; + }) : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); + }); + }; + function d3_selection_creator(name) { + return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? function() { + return this.ownerDocument.createElementNS(name.space, name.local); + } : function() { + return this.ownerDocument.createElementNS(this.namespaceURI, name); + }; + } + d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); + }); + }; + d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); + }; + d3_selectionPrototype.data = function(value, key) { + var i = -1, n = this.length, group, node; + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; + } + } + return value; + } + function bind(group, groupData) { + var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; + for (i = -1; ++i < n; ) { + keyValue = key.call(node = group[i], node.__data__, i); + if (nodeByKeyValue.has(keyValue)) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues.push(keyValue); + } + for (i = -1; ++i < m; ) { + keyValue = key.call(groupData, nodeData = groupData[i], i); + if (node = nodeByKeyValue.get(keyValue)) { + updateNodes[i] = node; + node.__data__ = nodeData; + } else if (!dataByKeyValue.has(keyValue)) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + dataByKeyValue.set(keyValue, nodeData); + nodeByKeyValue.remove(keyValue); + } + for (i = -1; ++i < n; ) { + if (nodeByKeyValue.has(keyValues[i])) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (;i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (;i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length ? this.property("__data__", value) : this.property("__data__"); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + d3_selectionPrototype.size = function() { + var n = 0; + this.each(function() { + ++n; + }); + return n; + }; + function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.call = d3_selectionPrototype.call; + d3_selection_enterPrototype.size = d3_selectionPrototype.size; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, upgroup, group, node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); + }; + function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, n = group.length, node; + if (j != j0) j0 = j, i0 = 0; + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n) ; + return node; + }; + } + d3_selectionPrototype.transition = function() { + var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || { + time: Date.now(), + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) d3_transitionNode(node, i, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, id); + }; + d3_selectionPrototype.interrupt = function() { + return this.each(d3_selection_interrupt); + }; + function d3_selection_interrupt() { + var lock = this.__transition__; + if (lock) ++lock.active; + } + d3.select = function(node) { + var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ]; + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + d3.selectAll = function(nodes) { + var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + var d3_selectionRoot = d3.select(d3_documentElement); + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + if (n < 2) return (n = this.node()["__on" + type]) && n._; + capture = false; + } + return this.each(d3_selection_on(type, listener, capture)); + }; + function d3_selection_on(type, listener, capture) { + var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; + if (i > 0) type = type.substring(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; + } + var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }); + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; + } + function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, related = e.relatedTarget; + if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) { + l.call(target, e); + } + }; + } + var d3_event_dragSelect = "onselectstart" in d3_document ? null : d3_vendorSymbol(d3_documentElement.style, "userSelect"), d3_event_dragId = 0; + function d3_event_dragSuppress() { + var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); + if (d3_event_dragSelect) { + var style = d3_documentElement.style, select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = "none"; + } + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { + function off() { + w.on(click, null); + } + w.on(click, function() { + d3_eventPreventDefault(); + off(); + }, true); + setTimeout(off, 0); + } + }; + } + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, + point.y = e.clientY; + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [ point.x, point.y ]; + } + var rect = container.getBoundingClientRect(); + return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; + } + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, "touchmove", "touchend"); + function drag() { + this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); + } + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId); + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; + } else { + dragOffset = [ 0, 0 ]; + } + dispatch({ + type: "dragstart" + }); + function moved() { + var position1 = position(parent, dragId), dx, dy; + if (!position1) return; + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + dispatch({ + type: "drag", + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + function ended() { + if (!position(parent, dragId)) return; + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged && d3.event.target === target); + dispatch({ + type: "dragend" + }); + } + }; + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, "on"); + }; + function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; + } + function d3_behavior_dragTouchSubject() { + return d3.event.target; + } + function d3_behavior_dragMouseSubject() { + return d3_window; + } + var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); + } + function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); + } + function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); + } + function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; + } + function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; + } + function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); + } + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; + } + var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; + d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2]; + var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ; + function interpolate(t) { + var s = t * S; + if (dr) { + var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; + } + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ]; + } + interpolate.duration = S * 1e3; + return interpolate; + }; + d3.behavior.zoom = function() { + var view = { + x: 0, + y: 0, + k: 1 + }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + function zoom(g) { + g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); + } + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), view1 = view; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.zoom", function() { + view = this.__chart__ || { + x: 0, + y: 0, + k: 1 + }; + zoomstarted(dispatch); + }).tween("zoom:zoom", function() { + var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); + return function(t) { + var l = i(t), k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }).each("end.zoom", function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + zoom.translate = function(_) { + if (!arguments.length) return [ view.x, view.y ]; + view = { + x: +_[0], + y: +_[1], + k: view.k + }; + rescale(); + return zoom; + }; + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { + x: view.x, + y: view.y, + k: +_ + }; + rescale(); + return zoom; + }; + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ]; + return zoom; + }; + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + function location(p) { + return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ]; + } + function point(l) { + return [ l[0] * view.k + view.x, l[1] * view.k + view.y ]; + } + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + function rescale() { + if (x1) x1.domain(x0.range().map(function(x) { + return (x - view.x) / view.k; + }).map(x0.invert)); + if (y1) y1.domain(y0.range().map(function(y) { + return (y - view.y) / view.k; + }).map(y0.invert)); + } + function zoomstarted(dispatch) { + dispatch({ + type: "zoomstart" + }); + } + function zoomed(dispatch) { + rescale(); + dispatch({ + type: "zoom", + scale: view.k, + translate: [ view.x, view.y ] + }); + } + function zoomended(dispatch) { + dispatch({ + type: "zoomend" + }); + } + function mousedowned() { + var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged && d3.event.target === target); + zoomended(dispatch); + } + } + function touchstarted() { + var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + started(); + zoomstarted(dispatch); + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) locations0[t.identifier] = location(t); + }); + return touches; + } + function started() { + var target = d3.event.target; + d3.select(target).on(touchmove, moved).on(touchend, ended); + targets.push(target); + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + var touches = relocate(), now = Date.now(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0], l = locations0[p.identifier]; + scaleTo(view.k * 2); + translateTo(p, l); + d3_eventPreventDefault(); + zoomed(dispatch); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + function moved() { + var touches = d3.touches(that), p0, l0, p1, l1; + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if (l1 = locations0[p1.identifier]) { + if (l0) break; + p0 = p1, l0 = l1; + } + } + if (l1) { + var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; + l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; + scaleTo(scale1 * scale0); + } + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + function ended() { + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + for (var identifier in locations0) { + return void relocate(); + } + } + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), + d3_selection_interrupt.call(this), zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + function dblclicked() { + var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2; + zoomstarted(dispatch); + scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); + translateTo(p, l); + zoomed(dispatch); + zoomended(dispatch); + } + return d3.rebind(zoom, event, "on"); + }; + var d3_behavior_zoomInfinity = [ 0, Infinity ]; + var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { + return this.rgb() + ""; + }; + d3.hsl = d3_hsl; + function d3_hsl(h, s, l) { + return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); + } + var d3_hslPrototype = d3_hsl.prototype = new d3_color(); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + } + d3.hcl = d3_hcl; + function d3_hcl(h, c, l) { + return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); + } + var d3_hclPrototype = d3_hcl.prototype = new d3_color(); + d3_hclPrototype.brighter = function(k) { + return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.darker = function(k) { + return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); + } + d3.lab = d3_lab; + function d3_lab(l, a, b) { + return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); + } + var d3_lab_K = 18; + var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; + var d3_labPrototype = d3_lab.prototype = new d3_color(); + d3_labPrototype.brighter = function(k) { + return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.darker = function(k) { + return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); + } + function d3_lab_hcl(l, a, b) { + return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); + } + function d3_lab_xyz(x) { + return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; + } + function d3_xyz_lab(x) { + return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; + } + function d3_xyz_rgb(r) { + return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); + } + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); + } + function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); + } + function d3_rgbString(value) { + return d3_rgbNumber(value) + ""; + } + var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + var r = this.r, g = this.g, b = this.b, i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); + }; + d3_rgbPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); + } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, g = 0, b = 0, m1, m2, color; + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": + { + return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); + } + + case "rgb": + { + return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); + } + } + } + if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b); + if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.substring(1), 16))) { + if (format.length === 4) { + r = (color & 3840) >> 4; + r = r >> 4 | r; + g = color & 240; + g = g >> 4 | g; + b = color & 15; + b = b << 4 | b; + } else if (format.length === 7) { + r = (color & 16711680) >> 16; + g = (color & 65280) >> 8; + b = color & 255; + } + } + return rgb(r, g, b); + } + function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return new d3_hsl(h, s, l); + } + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); + } + function d3_rgb_xyz(r) { + return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); + } + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; + } + var d3_rgb_names = d3.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); + }); + function d3_functor(v) { + return typeof v === "function" ? v : function() { + return v; + }; + } + d3.functor = d3_functor; + function d3_identity(d) { + return d; + } + d3.xhr = d3_xhrType(d3_identity); + function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, + mimeType = null; + return d3_xhr(url, mimeType, response, callback); + }; + } + function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; + if (d3_window.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); + "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }; + function respond() { + var status = request.status, result; + if (!status && request.responseText || status >= 200 && status < 300 || status === 304) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } + } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; else headers[name] = value + ""; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + [ "get", "post" ].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) xhr.on("error", callback).on("load", function(request) { + callback(null, request); + }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, "on"); + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); + } + function d3_xhr_fixCallback(callback) { + return callback.length === 1 ? function(error, request) { + callback(error == null ? request : null); + } : callback; + } + d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) callback = row, row = null; + var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback); + xhr.row = function(_) { + return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; + }; + return xhr; + } + function response(request) { + return dsv.parse(request.responseText); + } + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function("d", "return {" + row.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "]"; + }).join(",") + "}"); + o = f ? function(row, i) { + return f(a(row), i); + } : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; + function token() { + if (I >= N) return EOF; + if (eol) return eol = false, EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), k = 1; + if (c === 10) eol = true; else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.substring(j, I - k); + } + return text.substring(j); + } + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && !(a = f(a, n++))) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { + return fields.map(function(field) { + return formatValue(row[field]); + }).join(delimiter); + })).join("\n"); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join("\n"); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + }; + d3.csv = d3.dsv(",", "text/csv"); + d3.tsv = d3.dsv(" ", "text/tab-separated-values"); + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } + }; + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, "requestAnimationFrame")] || function(callback) { + setTimeout(callback, 17); + }; + d3.timer = function(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + var time = then + delay, timer = { + c: callback, + t: time, + f: false, + n: null + }; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + }; + function d3_timer_step() { + var now = d3_timer_mark(), delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + } + d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); + }; + function d3_timer_mark() { + var now = Date.now(); + d3_timer_active = d3_timer_queueHead; + while (d3_timer_active) { + if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t); + d3_timer_active = d3_timer_active.n; + } + return now; + } + function d3_timer_sweep() { + var t0, t1 = d3_timer_queueHead, time = Infinity; + while (t1) { + if (t1.f) { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; + } else { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } + } + d3_timer_queueTail = t0; + return time; + } + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); + } + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if (value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { + return d / k; + } : function(d) { + return d * k; + }, + symbol: d + }; + } + function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) { + var i = value.length, t = [], j = 0, g = locale_grouping[0]; + while (i > 0 && g > 0) { + t.push(value.substring(i -= g, i + g)); + g = locale_grouping[j = (j + 1) % locale_grouping.length]; + } + return t.reverse().join(locale_thousands); + } : d3_identity; + return function(specifier) { + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false; + if (precision) precision = +precision.substring(1); + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + switch (type) { + case "n": + comma = true; + type = "g"; + break; + + case "%": + scale = 100; + suffix = "%"; + type = "f"; + break; + + case "p": + scale = 100; + suffix = "%"; + type = "r"; + break; + + case "b": + case "o": + case "x": + case "X": + if (symbol === "#") prefix = "0" + type.toLowerCase(); + + case "c": + case "d": + integer = true; + precision = 0; + break; + + case "s": + scale = -1; + type = "r"; + break; + } + if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1]; + if (type == "r" && !precision) type = "g"; + if (precision != null) { + if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); + } + type = d3_format_types.get(type) || d3_format_typeDefault; + var zcomma = zfill && comma; + return function(value) { + var fullSuffix = suffix; + if (integer && value % 1) return ""; + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; + if (scale < 0) { + var unit = d3.formatPrefix(value, precision); + value = unit.scale(value); + fullSuffix = unit.symbol + suffix; + } else { + value *= scale; + } + value = type(value, precision); + var i = value.lastIndexOf("."), before = i < 0 ? value : value.substring(0, i), after = i < 0 ? "" : locale_decimal + value.substring(i + 1); + if (!zfill && comma) before = formatGroup(before); + var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; + if (zcomma) before = formatGroup(padding + before); + negative += prefix; + value = before + after; + return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; + }; + }; + } + var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); + } + }); + function d3_format_typeDefault(x) { + return x + ""; + } + var d3_time = d3.time = {}, d3_date = Date; + function d3_date_utc() { + this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); + } + d3_date_utc.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step(date = local(new d3_date(date - 1)), 1); + return date; + } + function offset(date, k) { + step(date = new d3_date(+date), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; + } + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; + } + d3_time.year = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; + }, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, function(date) { + return date.getFullYear(); + }); + d3_time.years = d3_time.year.range; + d3_time.years.utc = d3_time.year.utc.range; + d3_time.day = d3_time_interval(function(date) { + var day = new d3_date(2e3, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, function(date, offset) { + date.setDate(date.getDate() + offset); + }, function(date) { + return date.getDate() - 1; + }); + d3_time.days = d3_time.day.range; + d3_time.days.utc = d3_time.day.utc.range; + d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); + }; + [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) { + i = 7 - i; + var interval = d3_time[day] = d3_time_interval(function(date) { + (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + d3_time[day + "s"] = interval.range; + d3_time[day + "s"].utc = interval.utc.range; + d3_time[day + "OfYear"] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); + }; + }); + d3_time.week = d3_time.sunday; + d3_time.weeks = d3_time.sunday.range; + d3_time.weeks.utc = d3_time.sunday.utc.range; + d3_time.weekOfYear = d3_time.sundayOfYear; + function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; + function d3_time_format(template) { + var n = template.length; + function format(date) { + var string = [], i = -1, j = 0, c, p, f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.substring(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); + string.push(c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0, + Z: null + }, i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ("p" in d) d.H = d.H % 12 + d.p * 12; + var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) { + date.setFullYear(d.y, 0, 1); + date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); + } else date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H + Math.floor(d.Z / 100), d.M + d.Z % 100, d.S, d.L); + return localZ ? date._ : date; + }; + format.toString = function() { + return template; + }; + return format; + } + function d3_time_parse(date, template, string, j) { + var c, p, t, i = 0, n = template.length, m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + format.toString = local.toString; + return format; + }; + d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; + var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + var d3_time_formats = { + a: function(d) { + return locale_shortDays[d.getDay()]; + }, + A: function(d) { + return locale_days[d.getDay()]; + }, + b: function(d) { + return locale_shortMonths[d.getMonth()]; + }, + B: function(d) { + return locale_months[d.getMonth()]; + }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return locale_periods[+(d.getHours() >= 12)]; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); + }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + "%": function() { + return "%"; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + "%": d3_time_parseLiteralPercent + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.substring(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + return d3_time_format; + } + var d3_time_formatPads = { + "-": "", + _: " ", + "0": "0" + }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/; + function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); + } + function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); + } + function d3_time_formatLookup(names) { + var map = new d3_Map(), i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; + } + function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 1)); + return n ? (date.w = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.U = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.W = +n[0], i + n[0].length) : -1; + } + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.y = +n[0], i + n[0].length) : -1; + } + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; + } + function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string, + i + 5) : -1; + } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); + } + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.m = n[0] - 1, i + n[0].length) : -1; + } + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.d = +n[0], i + n[0].length) : -1; + } + function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.j = +n[0], i + n[0].length) : -1; + } + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.H = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.M = +n[0], i + n[0].length) : -1; + } + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.S = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.L = +n[0], i + n[0].length) : -1; + } + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(abs(z) / 60), zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); + } + function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.substring(i, i + 1)); + return n ? i + n[0].length : -1; + } + function d3_time_formatMulti(formats) { + var n = formats.length, i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; + } + d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; + }; + var d3_locale_enUS = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [ 3 ], + currency: [ "$", "" ], + dateTime: "%a %b %e %X %Y", + date: "%m/%d/%Y", + time: "%H:%M:%S", + periods: [ "AM", "PM" ], + days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], + shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] + }); + d3.format = d3_locale_enUS.numberFormat; + d3.geo = {}; + function d3_adder() {} + d3_adder.prototype = { + s: 0, + t: 0, + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } + }; + var d3_adderTemp = new d3_adder(); + function d3_adderSum(a, b, o) { + var x = o.s = a + b, bv = x - a, av = x - bv; + o.t = a - av + (b - bv); + } + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } + } + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); + } + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); + } + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder(); + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), + sinφ0 = Math.sin(φ); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; + var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; + } + function d3_geo_cartesian(spherical) { + var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); + return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; + } + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + function d3_geo_cartesianCross(a, b) { + return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; + } + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + } + function d3_geo_cartesianScale(vector, k) { + return [ vector[0] * k, vector[1] * k, vector[2] * k ]; + } + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ]; + } + function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + function point(λ, φ) { + ranges.push(range = [ λ0 = λ, λ1 = λ ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + function linePoint(λ, φ) { + var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; + } + function lineStart() { + bound.point = linePoint; + } + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; + } + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + function ringStart() { + d3_geo_area.lineStart(); + } + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; + } + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; + } + function compareRanges(a, b) { + return a[0] - b[0]; + } + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; + } + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + var n = ranges.length; + if (n) { + ranges.sort(compareRanges); + for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; + } + } + ranges = range = null; + return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ]; + }; + }(); + d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z; + if (m < ε2) { + x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; + if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; + m = x * x + y * y + z * z; + if (m < ε2) return [ NaN, NaN ]; + } + return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ]; + }; + var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2; + var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } + }; + function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); + } + function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_geo_centroidRingStart() { + var λ00, φ00, x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ00 = λ, φ00 = φ; + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u); + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { + var subject = [], clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; + } + var start = subject[0], points, point; + while (1) { + var current = start, isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); + } + } + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, i = 0, a = array[0], b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; + } + function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; + this.e = entry; + this.v = false; + this.n = this.p = null; + } + function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); + if (segments.length) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); + } else if (clipStartInside) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); + } + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); + } + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + var segments; + var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring; + function pointRing(λ, φ) { + ring.push([ λ, φ ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); + } + function ringStart() { + ringListener.lineStart(); + ring = []; + } + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; + ring.pop(); + polygon.push(ring); + ring = null; + if (!n) return; + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, i = -1, point; + if (n > 0) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], line; + return { + lineStart: function() { + lines.push(line = []); + }, + point: function(λ, φ) { + line.push([ λ, φ ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; + } + function d3_geo_clipSort(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); + } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], m = ring.length; + if (!m) continue; + var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } + } + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + } + var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); + } + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | (v00 && v0) << 1; + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); + var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [ q, d3_geo_spherical(q1) ]; + } + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, code = 0; + if (λ < -r) code |= 1; else if (λ > r) code |= 2; + if (φ < -r) code |= 4; else if (φ > r) code |= 8; + return code; + } + } + function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r; + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + if (t0 > 0) line.a = { + x: ax + t0 * dx, + y: ay + t0 * dy + }; + if (t1 < 1) line.b = { + x: ax + t1 * dx, + y: ay + t1 * dy + }; + return line; + }; + } + var d3_geo_clipExtentMAX = 1e9; + d3.geo.clipExtent = function() { + var x0, y0, x1, y1, stream, clip, clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; + return stream; + }, + extent: function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); + if (stream) stream.valid = false, stream = null; + return clipExtent; + } + }; + return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]); + }; + function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function insidePolygon(p) { + var wn = 0, n = polygon.length, y = p[1]; + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first, clean; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([ x, y ]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); else { + var l = { + a: { + x: x_, + y: y_ + }, + b: { + x: x, + y: y + } + }; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + return clip; + }; + function corner(p, direction) { + return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; + } + function compare(a, b) { + return comparePoints(a.x, b.x); + } + function comparePoints(a, b) { + var ca = corner(a, 1), cb = corner(b, 1); + return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; + } + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_geo_conic(projectAt) { + var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); + }; + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); + var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); + var point, pointStream = { + point: function(x, y) { + point = [ x, y ]; + } + }, lower48Point, alaskaPoint, hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); + return point; + } + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; + return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * .35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point; + alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); + }; + var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); + } + }; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; + } + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); + } + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; + } + function pointLine(x, y) { + buffer.push("L", x, ",", y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + buffer.push("Z"); + } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } + }; + function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x, y); + context.arc(x, y, pointRadius, 0, τ); + } + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + function pointLine(x, y) { + context.lineTo(x, y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + context.closePath(); + } + return stream; + } + function d3_geo_resample(project) { + var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16; + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); + } + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = ringStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + function ringPoint(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + } + function ringEnd() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); + } + return resample; + } + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.path = function() { + var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream; + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ]; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return reset(); + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return reset(); + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + function reset() { + cacheStream = null; + return path; + } + return path.projection(d3.geo.albersUsa()).context(null); + }; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { + return project([ x * d3_degrees, y * d3_degrees ]); + }); + return function(stream) { + return d3_geo_projectionRadians(resample(stream)); + }; + } + d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; + }; + function d3_geo_transform(stream) { + this.stream = stream; + } + d3_geo_transform.prototype = { + point: function(x, y) { + this.stream.point(x, y); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); + } + }; + function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [ x[0] * k + δx, δy - x[1] * k ]; + }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [ point[0] * k + δx, δy - point[1] * k ]; + } + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; + } + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output)))); + stream.valid = true; + return stream; + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity; + return invalidate(); + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [ x, y ]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, "precision"); + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); + } + function invalidate() { + if (stream) stream.valid = false, stream = null; + return projection; + } + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); + } + function d3_geo_equirectangular(λ, φ) { + return [ λ, φ ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + } + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + return forward; + }; + function d3_geo_identityRotation(λ, φ) { + return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + } + d3_geo_identityRotation.invert = d3_geo_equirectangular; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; + return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; + return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [ 0, 0 ], angle, precision = 6, interpolate; + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + return { + type: "Polygon", + coordinates: [ ring ] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - .5 * step; + } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); + }; + d3.geo.graticule = function() { + var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; + function graticule() { + return { + type: "MultiLineString", + coordinates: lines() + }; + } + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { + return abs(x % DX) > ε; + }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { + return abs(y % DY) > ε; + }).map(y)); + } + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: "LineString", + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [ DX, DY ]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [ dx, dy ]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); + }; + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [ x, y ]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [ x, y ]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, source_, target = d3_target, target_; + function greatArc() { + return { + type: "LineString", + coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ] + }; + } + greatArc.distance = function() { + return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments)); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; + }; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d); + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; + return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ]; + } : function() { + return [ x0 * d3_degrees, y0 * d3_degrees ]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); + return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); + return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, function(ρ) { + return 2 * Math.asin(ρ / 2); + }); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + if (F > 0) { + if (φ < -halfπ + ε) φ = -halfπ + ε; + } else { + if (φ > halfπ - ε) φ = halfπ - ε; + } + var ρ = F / Math.pow(t(φ), n); + return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; + if (abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; + }; + return forward; + } + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; + } + d3_geo_mercator.invert = function(x, y) { + return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + return m.clipExtent(null); + } + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, function(ρ) { + return 2 * Math.atan(ρ); + }); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ]; + } + d3_geo_transverseMercator.invert = function(x, y) { + return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ]; + }; + (d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; + projection.center = function(_) { + return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); + }; + projection.rotate = function(_) { + return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), + [ _[0], _[1], _[2] - 90 ]); + }; + return rotate([ 0, 0, 90 ]); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + function d3_geom_pointX(d) { + return d[0]; + } + function d3_geom_pointY(d) { + return d[1]; + } + d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, y = d3_geom_pointY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = []; + for (i = 0; i < n; i++) { + points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]); + } + points.sort(d3_geom_hullOrder); + for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]); + var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints); + var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = []; + for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); + return polygon; + } + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + return hull; + }; + function d3_geom_hullUpper(points) { + var n = points.length, hull = [ 0, 1 ], hs = 2; + for (var i = 2; i < n; i++) { + while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs; + hull[hs++] = i; + } + return hull.slice(0, hs); + } + function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; + } + d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; + }; + var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; + d3_geom_polygonPrototype.area = function() { + var i = -1, n = this.length, a, b = this[n - 1], area = 0; + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + return area * .5; + }; + d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c; + if (!arguments.length) k = -1 / (6 * this.area()); + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [ x * k, y * k ]; + }; + d3_geom_polygonPrototype.clip = function(subject) { + var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + if (closed) subject.push(subject[0]); + a = b; + } + return subject; + }; + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [ x1 + ua * x21, y1 + ua * y21 ]; + } + function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); + } + var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = []; + function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = this.site = this.circle = null; + } + function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); + beach.site = site; + return beach; + } + function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); + } + function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, x = circle.x, y = circle.cy, vertex = { + x: x, + y: y + }, previous = beach.P, next = beach.N, disappearing = [ beach ]; + d3_geom_voronoiDetachBeach(beach); + var lArc = previous; + while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; + } + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + var rArc = next; + while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; + } + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + var nArcs = disappearing.length, iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + } + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiAddBeach(site) { + var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._; + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } + } + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + if (!lArc && !rArc) return; + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; + } + if (!rArc) { + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; + } + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = { + x: (cy * hb - by * hc) / d + ax, + y: (bx * hc - cx * hb) / d + ay + }; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix; + if (!pby2) return rfocx; + var lArc = arc.P; + if (!lArc) return -Infinity; + site = lArc.site; + var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix; + if (!plby2) return lfocx; + var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2; + if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; + return (rfocx + lfocx) / 2; + } + function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; + } + function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; + } + d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge; + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + } + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; + }; + function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end; + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; + start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? { + x: x0, + y: abs(x2 - x0) < ε ? y2 : y1 + } : abs(y3 - y1) < ε && x1 - x3 > ε ? { + x: abs(y2 - y1) < ε ? x2 : x1, + y: y1 + } : abs(x3 - x1) < ε && y3 - y0 > ε ? { + x: x1, + y: abs(x2 - x1) < ε ? y2 : y0 + } : abs(y3 - y0) < ε && x3 - x0 > ε ? { + x: abs(y2 - y0) < ε ? x2 : x0, + y: y0 + } : null), cell.site, null)); + ++nHalfEdges; + } + } + } + } + function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; + } + function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = this.y = this.arc = this.site = this.cy = null; + } + function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, rArc = arc.N; + if (!lArc || !rArc) return; + var lSite = lArc.site, cSite = arc.site, rSite = rArc.site; + if (lSite === rSite) return; + var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by; + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by; + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); + circle.cy = cy; + arc.circle = circle; + var before = null, node = d3_geom_voronoiCircles._; + while (node) { + if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) { + if (node.L) node = node.L; else { + before = node.P; + break; + } + } else { + if (node.R) node = node.R; else { + before = node; + break; + } + } + } + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; + } + function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; + } + } + function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e; + while (i--) { + e = edges[i]; + if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) { + e.a = e.b = null; + edges.splice(i, 1); + } + } + } + function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb; + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) va = { + x: fx, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: fx, + y: y1 + }; + } else { + if (!va) va = { + x: fx, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: fx, + y: y0 + }; + } + } else { + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) va = { + x: (y0 - fb) / fm, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: (y1 - fb) / fm, + y: y1 + }; + } else { + if (!va) va = { + x: (y1 - fb) / fm, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: (y0 - fb) / fm, + y: y0 + }; + } + } else { + if (ly < ry) { + if (!va) va = { + x: x0, + y: fm * x0 + fb + }; else if (va.x >= x1) return; + vb = { + x: x1, + y: fm * x1 + fb + }; + } else { + if (!va) va = { + x: x1, + y: fm * x1 + fb + }; else if (va.x < x0) return; + vb = { + x: x0, + y: fm * x0 + fb + }; + } + } + } + edge.a = va; + edge.b = vb; + return true; + } + function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; + } + function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); + d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); + return edge; + } + function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; + } + function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; + } + } + function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y); + } + d3_geom_voronoiHalfEdge.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + } + }; + function d3_geom_voronoiRedBlackTree() { + this._ = null; + } + function d3_geom_voronoiRedBlackNode(node) { + node.U = node.C = node.L = node.R = node.P = node.N = null; + } + d3_geom_voronoiRedBlackTree.prototype = { + insert: function(after, node) { + var parent, grandpa, uncle; + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; + } + node.L = node.R = null; + node.U = parent; + node.C = true; + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + var parent = node.U, sibling, left = node.L, right = node.R, next, red; + if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right); + if (parent) { + if (parent.L === node) parent.L = next; else parent.R = next; + } else { + this._ = next; + } + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + if (node) node.U = parent; + if (red) return; + if (node && node.C) { + node.C = false; + return; + } + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + if (node) node.C = false; + } + }; + function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, q = node.R, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; + } + function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, q = node.L, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; + } + function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; + } + function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle; + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); + while (true) { + circle = d3_geom_voronoiFirstCircle; + if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + x0 = site.x, y0 = site.y; + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } + } + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + var diagram = { + cells: d3_geom_voronoiCells, + edges: d3_geom_voronoiEdges + }; + d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; + return diagram; + } + function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; + } + d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent; + if (points) return voronoi(points); + function voronoi(data) { + var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1]; + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) { + var s = e.start(); + return [ s.x, s.y ]; + }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : []; + polygon.point = data[i]; + }); + return polygons; + } + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); + } + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { + return edge.l && edge.r; + }).map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + voronoi.triangles = function(data) { + var triangles = []; + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l; + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { + triangles.push([ data[i], data[s0.i], data[s1.i] ]); + } + } + }); + return triangles; + }; + voronoi.x = function(_) { + return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; + }; + voronoi.clipExtent = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + voronoi.size = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]); + }; + return voronoi; + }; + var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ]; + function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); + } + d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); + }; + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, y = d3_geom_pointY, compat; + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + function quadtree(data) { + var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + var dx = x2_ - x1_, dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, ny = n.y; + if (nx != null) { + if (abs(nx - x) + abs(ny - y) < .01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = sx; else x2 = sx; + if (bottom) y1 = sy; else y2 = sy; + insert(n, d, x, y, x1, y1, x2, y2); + } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; + } + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], + y2 = +_[1][1]; + return quadtree; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; + return quadtree; + }; + return quadtree; + }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; + return function(t) { + return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, c = {}, k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + b -= a = +a; + return function(t) { + return a + b * t; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.substring(bi, bs); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; else s[++i] = bm; + } else { + s[++i] = null; + q.push({ + i: i, + x: d3_interpolateNumber(am, bm) + }); + } + bi = d3_interpolate_numberB.lastIndex; + } + if (bi < b.length) { + bs = b.substring(bi); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { + return b(t) + ""; + }) : function() { + return b; + } : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); + } + var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; + return f; + } + d3.interpolators = [ function(a, b) { + var t = typeof b; + return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + } ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (;i < na; ++i) c[i] = a[i]; + for (;i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; + } + }); + var d3_ease_mode = d3.map({ + "in": d3_identity, + out: d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); + }; + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = .45; + if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); + }; + function d3_transform(m) { + var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [ m.e, m.f ]; + this.scale = [ kx, ky ]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransform(a, b) { + var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; + if (ta[0] != tb[0] || ta[1] != tb[1]) { + s.push("translate(", null, ",", null, ")"); + q.push({ + i: 1, + x: d3_interpolateNumber(ta[0], tb[0]) + }, { + i: 3, + x: d3_interpolateNumber(ta[1], tb[1]) + }); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } else { + s.push(""); + } + if (ra != rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(s.pop() + "rotate(", null, ")") - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(s.pop() + "rotate(" + rb + ")"); + } + if (wa != wb) { + q.push({ + i: s.push(s.pop() + "skewX(", null, ")") - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(s.pop() + "skewX(" + wb + ")"); + } + if (ka[0] != kb[0] || ka[1] != kb[1]) { + n = s.push(s.pop() + "scale(", null, ",", null, ")"); + q.push({ + i: n - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, { + i: n - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + }); + } else if (kb[0] != 1 || kb[1] != 1) { + s.push(s.pop() + "scale(" + kb + ")"); + } + n = q.length; + return function(t) { + var i = -1, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return (x - a) * b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return Math.max(0, Math.min(1, (x - a) * b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], i = -1, n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; + function relayout() { + var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; + chords = []; + groups = []; + k = 0, i = -1; + while (++i < n) { + x = 0, j = -1; + while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (τ - padding * n) / k; + x = 0, i = -1; + while (++i < n) { + x0 = x, j = -1; + while (++j < n) { + var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }; + x += padding; + } + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value ? { + source: target, + target: source + } : { + source: source, + target: target + }); + } + } + } + if (sortChords) resort(); + } + function resort() { + chords.sort(function(a, b) { + return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + return chord; + }; + d3.layout.force = function() { + var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy; + if (dw * dw / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + force.tick = function() { + if ((alpha *= .99) < .005) { + event.end({ + type: "end", + alpha: alpha = 0 + }); + return true; + } + var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = x * x + y * y) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: "tick", + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) alpha = x; else alpha = 0; + } else if (x > 0) { + event.start({ + type: "start", + alpha: alpha = x + }); + d3.timer(force.tick); + } + return force; + }; + force.start = function() { + var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + var candidates = neighbors[i], j = -1, m = candidates.length, x; + while (++j < m) if (!isNaN(x = candidates[j][dimension])) return x; + return Math.random() * size; + } + return force.resume(); + }; + force.resume = function() { + return force.alpha(.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); + }; + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); + } + return d3.rebind(force, event, "on"); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + d.px = d.x, d.py = d.y; + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, n = nodes.length, i = -1, c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; + function hierarchy(root) { + var stack = [ root ], nodes = [], node; + root.depth = 0; + while ((node = stack.pop()) != null) { + nodes.push(node); + if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { + var n, childs, child; + while (--n >= 0) { + stack.push(child = childs[n]); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + return nodes; + } + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; + if (parent = node.parent) parent.value += node.value; + }); + } + return root; + }; + return hierarchy; + }; + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [ node ]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } + } + } + function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [ node ], nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, n, children; + while (++i < n) nodes.push(children[i]); + } + } + while ((node = nodes2.pop()) != null) { + callback(node); + } + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + })); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, n, c, d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + function depth(node) { + var children = node.children, d = 0; + if (children && (n = children.length)) { + var i = -1, n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); + }; + d3.layout.pie = function() { + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ; + function pie(data) { + var values = data.map(function(d, i) { + return +value.call(pie, d, i); + }); + var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); + var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values); + var index = d3.range(data.length); + if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { + return values[j] - values[i]; + } : function(i, j) { + return sort(data[i], data[j]); + }); + var arcs = []; + index.forEach(function(i) { + var d; + arcs[i] = { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + return arcs; + } + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + return pie; + }; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; + function stack(data, index) { + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [ x.call(stack, v, i), y.call(stack, v, i) ]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var n = series.length, m = series[0].length, i, j, o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + return data; + } + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; + }; + function d3_layout_stackX(d) { + return d.x; + } + function d3_layout_stackY(d) { + return d.y; + } + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + "inside-out": function(data) { + var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), top = 0, bottom = 0, tops = [], bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + "default": d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, m = data[0].length, y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, j = 0, v = array[0][1], k, n = array.length; + for (;i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; + } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; + }; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [ d3.min(values), d3.max(values) ]; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { + return radius; + }; + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r = +r(d.value); + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + if (padding) { + var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r -= dr; + }); + } + d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); + return nodes; + } + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === "function" ? _ : +_; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); + }; + function d3_layout_packSort(a, b) { + return a.value - b.value; + } + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; + } + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; + } + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; + return .999 * dr * dr > dx * dx + dy * dy; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } + } + d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0); + d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; + d3_layout_hierarchyVisitBefore(root1, secondWalk); + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else { + var left = root0, right = root0, bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return nodes; + } + function wrapTree(root0) { + var root1 = { + A: null, + children: [ root0 ] + }, queue = [ root1 ], node1; + while ((node1 = queue.pop()) != null) { + for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { + queue.push((children[i] = child = { + _: children[i], + parent: node1, + children: (child = children[i].children) && child.slice() || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: i + }).a = child); + } + } + return root1.children[0]; + } + function firstWalk(v) { + var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + function apportion(v, w, ancestor) { + if (w) { + var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); + }; + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; + } + function d3_layout_treeRight(v) { + var children = v.children, n; + return (n = children.length) ? children[n - 1] : v.t; + } + function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + function d3_layout_treeShift(v) { + var shift = 0, change = 0, children = v.children, i = children.length, w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } + } + function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; + d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + return nodes; + } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); + }; + function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); + } + function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, n = children.length, child, area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), remaining = children.slice(), child, row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + function worst(row, u) { + var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; + } + function position(row, u, rect, flush) { + var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } + } + function treemap(d) { + var nodes = stickies || hierarchy(d), root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([ root ], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); + } + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], + padConstant) : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; + } + function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { + x += dx / 2; + dx = 0; + } + if (dy < 0) { + y += dy / 2; + dy = 0; + } + return { + x: x, + y: y, + dx: dx, + dy: dy + }; + } + d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; + } + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [ start, stop ] : [ stop, start ]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); + } + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; + } + function d3_scale_nice(domain, nice) { + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; + } + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; + } + function d3_scale_niceStep(step) { + return step ? { + floor: function(x) { + return Math.floor(x / step) * step; + }, + ceil: function(x) { + return Math.ceil(x / step) * step; + } + } : d3_scale_niceIdentity; + } + var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity + }; + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; + } + d3.scale.linear = function() { + return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); + }; + function d3_scale_linear(domain, range, interpolate, clamp) { + var output, input; + function rescale() { + var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); + } + function d3_scale_linearRebind(scale, linear) { + return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); + } + function d3_scale_linearNice(domain, m) { + return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + } + function d3_scale_linearTickRange(domain, m) { + if (m == null) m = 10; + var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; + if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; + extent[2] = step; + return extent; + } + function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + } + function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === "s") { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = "f"; + format = d3.format(match.join("")); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(""); + } else { + format = ",." + d3_scale_linearPrecision(range[2]) + "f"; + } + return d3.format(format); + } + var d3_scale_linearFormatSignificant = { + s: 1, + g: 1, + p: 1, + r: 1, + e: 1 + }; + function d3_scale_linearPrecision(value) { + return -Math.floor(Math.log(value) / Math.LN10 + .01); + } + function d3_scale_linearFormatPrecision(type, range) { + var p = d3_scale_linearPrecision(range[2]); + return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2; + } + d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]); + }; + function d3_scale_log(linear, base, positive, domain) { + function log(x) { + return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base); + } + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); + } + function scale(x) { + return linear(log(x)); + } + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + positive = x[0] >= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + scale.nice = function() { + var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); + linear.domain(niced); + domain = niced.map(pow); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); + var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, + Math.floor), e; + return function(d) { + return d / pow(f(log(d) + e)) <= k ? format(d) : ""; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = { + floor: function(x) { + return -Math.ceil(-x); + }, + ceil: function(x) { + return -Math.floor(-x); + } + }; + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); + } + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + return scale.domain(d3_scale_linearNice(domain, m)); + }; + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; + } + d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); + }; + d3.scale.ordinal = function() { + return d3_scale_ordinal([], { + t: "range", + a: [ [] ] + }); + }; + function d3_scale_ordinal(domain, ranger) { + var index, range, rangeBand; + function scale(x) { + return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length]; + } + function steps(start, step) { + return d3.range(domain.length).map(function(i) { + return start + step * i; + }); + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map(); + var i = -1, n = x.length, xi; + while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = { + t: "range", + a: arguments + }; + return scale; + }; + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); + range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); + rangeBand = 0; + ranger = { + t: "rangePoints", + a: arguments + }; + return scale; + }; + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = { + t: "rangeBands", + a: arguments + }; + return scale; + }; + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; + range = steps(start + Math.round(error / 2), step); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = { + t: "rangeRoundBands", + a: arguments + }; + return scale; + }; + scale.rangeBand = function() { + return rangeBand; + }; + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + return scale.domain(domain); + } + d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); + }; + d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); + }; + d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); + }; + d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); + }; + var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString); + var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString); + var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString); + var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString); + d3.scale.quantile = function() { + return d3_scale_quantile([], []); + }; + function d3_scale_quantile(domain, range) { + var thresholds; + function rescale() { + var k = 0, q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + function scale(x) { + if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)]; + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(d3_number).sort(d3_ascending); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.quantiles = function() { + return thresholds; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ]; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); + } + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [ 0, 1 ]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + scale.domain = function(x) { + if (!arguments.length) return [ x0, x1 ]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [ y, y + 1 / kx ]; + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([ .5 ], [ 0, 1 ]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; + } + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [ domain[y - 1], domain[y] ]; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([ 0, 1 ]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg = {}; + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function arc() { + var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, + a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); + return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; + } + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [ Math.cos(a) * r, Math.sin(a) * r ]; + }; + return arc; + }; + var d3_svg_arcOffset = -halfπ, d3_svg_arcMax = τ - ε; + function d3_svg_arcInnerRadius(d) { + return d.innerRadius; + } + function d3_svg_arcOuterRadius(d) { + return d.outerRadius; + } + function d3_svg_arcStartAngle(d) { + return d.startAngle; + } + function d3_svg_arcEndAngle(d) { + return d.endAngle; + } + function d3_svg_line(projection) { + var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; + function line(data) { + var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); + function segment() { + segments.push("M", interpolate(projection(points), tension)); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join("") : null; + } + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; + } + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + step: d3_svg_lineStep, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.join("L"); + } + function d3_svg_lineLinearClosed(points) { + return d3_svg_lineLinear(points) + "Z"; + } + function d3_svg_lineStep(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); + if (n > 1) path.push("H", p[0]); + return path.join(""); + } + function d3_svg_lineStepBefore(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); + } + function d3_svg_lineStepAfter(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); + } + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); + } + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + } + } + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + } + return path; + } + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); + } + return tangents; + } + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push("L", pi); + return path.join(""); + } + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBasisClosed(points) { + var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); + } + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + } + var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); + } + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); + } + function d3_svg_lineFiniteDifferences(points) { + var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; + } + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([ s || 0, m[i] * s || 0 ]); + } + return tangents; + } + function d3_svg_lineMonotone(points) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); + } + d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; + }; + function d3_svg_lineRadial(points) { + var point, i = -1, n = points.length, r, a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; + } + function d3_svg_area(projection) { + var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; + function area(data) { + var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { + return x; + } : d3_functor(x1), fy1 = y0 === y1 ? function() { + return y; + } : d3_functor(y1), x, y; + function segment() { + segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); + points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + if (points0.length) segment(); + return segments.length ? segments.join("") : null; + } + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? "M" : "L"; + return area; + }; + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + return area; + } + d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; + d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + d3.svg.area = function() { + return d3_svg_area(d3_identity); + }; + d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; + }; + d3.svg.chord = function() { + var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function chord(d, i) { + var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); + return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; + } + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [ r * Math.cos(a0), r * Math.sin(a0) ], + p1: [ r * Math.cos(a1), r * Math.sin(a1) ] + }; + } + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + function arc(r, p, a) { + return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + } + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; + } + d3.svg.diagonal = function() { + var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; + function diagonal(d, i) { + var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { + x: p0.x, + y: m + }, { + x: p3.x, + y: m + }, p3 ]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + return diagonal; + }; + function d3_svg_diagonalProjection(d) { + return [ d.x, d.y ]; + } + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; + return [ r * Math.cos(a), r * Math.sin(a) ]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); + } + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + return symbol; + }; + function d3_svg_symbolSize() { + return 64; + } + function d3_svg_symbolType() { + return "circle"; + } + function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; + } + var d3_svg_symbols = d3.map({ + circle: d3_svg_symbolCircle, + cross: function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; + }, + diamond: function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; + }, + square: function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; + } + }); + d3.svg.symbolTypes = d3_svg_symbols.keys(); + var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); + function d3_transition(groups, id) { + d3_subclass(groups, d3_transitionPrototype); + groups.id = id; + return groups; + } + var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit; + d3_transitionPrototype.call = d3_selectionPrototype.call; + d3_transitionPrototype.empty = d3_selectionPrototype.empty; + d3_transitionPrototype.node = d3_selectionPrototype.node; + d3_transitionPrototype.size = d3_selectionPrototype.size; + d3.transition = function(selection) { + return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); + }; + d3.transition.prototype = d3_transitionPrototype; + d3_transitionPrototype.select = function(selector) { + var id = this.id, subgroups = [], subgroup, subnode, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, id, node.__transition__[id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + transition = node.__transition__[id]; + subnodes = selector.call(node, node.__data__, i, j); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o; ) { + if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition); + subgroup.push(subnode); + } + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_transition(subgroups, this.id); + }; + d3_transitionPrototype.tween = function(name, tween) { + var id = this.id; + if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); + return d3_selection_each(this, tween == null ? function(node) { + node.__transition__[id].tween.remove(name); + } : function(node) { + node.__transition__[id].tween.set(name, tween); + }); + }; + function d3_transition_tween(groups, name, value, tween) { + var id = groups.id; + return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); + } : (value = tween(value), function(node) { + node.__transition__[id].tween.set(name, value); + })); + } + d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrTween(b) { + return b == null ? attrNull : (b += "", function() { + var a = this.getAttribute(name), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttribute(name, i(t)); + }); + }); + } + function attrTweenNS(b) { + return b == null ? attrNullNS : (b += "", function() { + var a = this.getAttributeNS(name.space, name.local), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttributeNS(name.space, name.local, i(t)); + }); + }); + } + return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { + this.setAttribute(name, f(t)); + }; + } + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + }; + } + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + priority = ""; + } + function styleNull() { + this.style.removeProperty(name); + } + function styleString(b) { + return b == null ? styleNull : (b += "", function() { + var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; + return a !== b && (i = d3_interpolate(a, b), function(t) { + this.style.setProperty(name, i(t), priority); + }); + }); + } + return d3_transition_tween(this, "style." + name, value, styleString); + }; + d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + function styleTween(d, i) { + var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { + this.style.setProperty(name, f(t), priority); + }; + } + return this.tween("style." + name, styleTween); + }; + d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, "text", value, d3_transition_text); + }; + function d3_transition_text(b) { + if (b == null) b = ""; + return function() { + this.textContent = b; + }; + } + d3_transitionPrototype.remove = function() { + return this.each("end.transition", function() { + var p; + if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this); + }); + }; + d3_transitionPrototype.ease = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].ease; + if (typeof value !== "function") value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { + node.__transition__[id].ease = value; + }); + }; + d3_transitionPrototype.delay = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].delay; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].delay = +value.call(node, node.__data__, i, j); + } : (value = +value, function(node) { + node.__transition__[id].delay = value; + })); + }; + d3_transitionPrototype.duration = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].duration; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j)); + } : (value = Math.max(1, value), function(node) { + node.__transition__[id].duration = value; + })); + }; + d3_transitionPrototype.each = function(type, listener) { + var id = this.id; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node.__transition__[id]; + type.call(node, node.__data__, i, j); + }); + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } else { + d3_selection_each(this, function(node) { + var transition = node.__transition__[id]; + (transition.event || (transition.event = d3.dispatch("start", "end"))).on(type, listener); + }); + } + return this; + }; + d3_transitionPrototype.transition = function() { + var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if (node = group[i]) { + transition = Object.create(node.__transition__[id0]); + transition.delay += transition.duration; + d3_transitionNode(node, i, id1, transition); + } + subgroup.push(node); + } + } + return d3_transition(subgroups, id1); + }; + function d3_transitionNode(node, i, id, inherit) { + var lock = node.__transition__ || (node.__transition__ = { + active: 0, + count: 0 + }), transition = lock[id]; + if (!transition) { + var time = inherit.time; + transition = lock[id] = { + tween: new d3_Map(), + time: time, + ease: inherit.ease, + delay: inherit.delay, + duration: inherit.duration + }; + ++lock.count; + d3.timer(function(elapsed) { + var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = []; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + transition.event && transition.event.start.call(node, d, i); + transition.tween.forEach(function(key, value) { + if (value = value.call(node, d, i)) { + tweened.push(value); + } + }); + d3.timer(function() { + timer.c = tick(elapsed || 1) ? d3_true : tick; + return 1; + }, 0, time); + } + function tick(elapsed) { + if (lock.active !== id) return stop(); + var t = elapsed / duration, e = ease(t), n = tweened.length; + while (n > 0) { + tweened[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, d, i); + return stop(); + } + } + function stop() { + if (--lock.count) delete lock[id]; else delete node.__transition__; + return 1; + } + }, 0, time); + } + } + d3.svg.axis = function() { + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); + var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickTransform; + var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), + d3.transition(path)); + tickEnter.append("line"); + tickEnter.append("text"); + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); + switch (orient) { + case "bottom": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", innerTickSize); + textEnter.attr("y", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", 0).attr("y2", innerTickSize); + textUpdate.attr("x", 0).attr("y", Math.max(innerTickSize, 0) + tickPadding); + text.attr("dy", ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + outerTickSize + "V0H" + range[1] + "V" + outerTickSize); + break; + } + + case "top": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", -innerTickSize); + textEnter.attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); + textUpdate.attr("x", 0).attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + text.attr("dy", "0em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + -outerTickSize + "V0H" + range[1] + "V" + -outerTickSize); + break; + } + + case "left": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", -innerTickSize); + textEnter.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", -innerTickSize).attr("y2", 0); + textUpdate.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "end"); + pathUpdate.attr("d", "M" + -outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + -outerTickSize); + break; + } + + case "right": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", innerTickSize); + textEnter.attr("x", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", innerTickSize).attr("y2", 0); + textUpdate.attr("x", Math.max(innerTickSize, 0) + tickPadding).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "start"); + pathUpdate.attr("d", "M" + outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + outerTickSize); + break; + } + } + if (scale1.rangeBand) { + var x = scale1, dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { + return x(d) + dx; + }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1); + } + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale1); + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { + return "translate(" + x(d) + ",0)"; + }); + } + function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { + return "translate(0," + y(d) + ")"; + }); + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0]; + function brush(g) { + g.each(function() { + var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); + var background = g.selectAll(".background").data([ 0 ]); + background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); + g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move"); + var resize = g.selectAll(".resize").data(resizes, d3_identity); + resize.exit().remove(); + resize.enter().append("g").attr("class", function(d) { + return "resize " + d; + }).style("cursor", function(d) { + return d3_svg_brushCursor[d]; + }).append("rect").attr("x", function(d) { + return /[ew]$/.test(d) ? -3 : null; + }).attr("y", function(d) { + return /^[ns]/.test(d) ? -3 : null; + }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); + resize.style("display", brush.empty() ? "none" : null); + var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range; + if (x) { + range = d3_scaleRange(x); + backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); + redrawX(gUpdate); + } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); + redrawY(gUpdate); + } + redraw(gUpdate); + }); + } + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), extent1 = { + x: xExtent, + y: yExtent, + i: xExtentDomain, + j: yExtentDomain + }, extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.brush", function() { + xExtentDomain = extent0.i; + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({ + type: "brushstart" + }); + }).tween("brush:brush", function() { + var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({ + type: "brush", + mode: "resize" + }); + }; + }).each("end.brush", function() { + xExtentDomain = extent1.i; + yExtentDomain = extent1.j; + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + }); + } else { + event_({ + type: "brushstart" + }); + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + } + }); + }; + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; + }); + } + function redrawX(g) { + g.select(".extent").attr("x", xExtent[0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); + } + function redrawY(g) { + g.select(".extent").attr("y", yExtent[0]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); + } + function brushstart() { + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset; + var w = d3.select(d3_window).on("keydown.brush", keydown).on("keyup.brush", keyup); + if (d3.event.changedTouches) { + w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); + } else { + w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); + } + g.interrupt().selectAll("*").interrupt(); + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); + offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } else if (d3.event.altKey) center = origin.slice(); + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + event_({ + type: "brushstart" + }); + brushmove(); + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); + } + } + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); + } + } + function brushmove() { + var point = d3.mouse(target), moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ]; + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: "brush", + mode: dragging ? "move" : "resize" + }); + } + } + function move1(point, scale, i) { + var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; + if (dragging) { + max = (min += position) + size; + } else { + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); + dragRestore(); + event_({ + type: "brushend" + }); + } + } + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.clamp = function(z) { + if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null; + if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + x0 = xExtentDomain[0], x1 = xExtentDomain[1]; + } else { + x0 = xExtent[0], x1 = xExtent[1]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + if (yExtentDomain) { + y0 = yExtentDomain[0], y1 = yExtentDomain[1]; + } else { + y0 = yExtent[0], y1 = yExtent[1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; + } + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + xExtentDomain = [ x0, x1 ]; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ]; + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + yExtentDomain = [ y0, y1 ]; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ]; + } + return brush; + }; + brush.clear = function() { + if (!brush.empty()) { + xExtent = [ 0, 0 ], yExtent = [ 0, 0 ]; + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + brush.empty = function() { + return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1]; + }; + return d3.rebind(brush, event, "on"); + }; + var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" + }; + var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; + var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; + var d3_time_formatUtc = d3_time_format.utc; + var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); + d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3_time.second = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, function(date) { + return date.getSeconds(); + }); + d3_time.seconds = d3_time.second.range; + d3_time.seconds.utc = d3_time.second.utc.range; + d3_time.minute = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, function(date) { + return date.getMinutes(); + }); + d3_time.minutes = d3_time.minute.range; + d3_time.minutes.utc = d3_time.minute.utc.range; + d3_time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, function(date) { + return date.getHours(); + }); + d3_time.hours = d3_time.hour.range; + d3_time.hours.utc = d3_time.hour.utc.range; + d3_time.month = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; + }, function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, function(date) { + return date.getMonth(); + }); + d3_time.months = d3_time.month.range; + d3_time.months.utc = d3_time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); + } + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + function tickMethod(extent, count) { + var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) { + return d / 31536e6; + }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + } + scale.nice = function(interval, skip) { + var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval); + if (method) interval = method[0], skip = method[1]; + function skipped(date) { + return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; + } + return scale.domain(d3_scale_nice(domain, skip > 1 ? { + floor: function(date) { + while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); + return date; + } + } : interval)); + }; + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ { + range: interval + }, skip ]; + if (method) interval = method[0], skip = method[1]; + return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; + var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ]; + var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) { + return d.getMilliseconds(); + } ], [ ":%S", function(d) { + return d.getSeconds(); + } ], [ "%I:%M", function(d) { + return d.getMinutes(); + } ], [ "%I %p", function(d) { + return d.getHours(); + } ], [ "%a %d", function(d) { + return d.getDay() && d.getDate() != 1; + } ], [ "%b %d", function(d) { + return d.getDate() != 1; + } ], [ "%B", function(d) { + return d.getMonth(); + } ], [ "%Y", d3_true ] ]); + var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { + return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); + }, + floor: d3_identity, + ceil: d3_identity + }; + d3_time_scaleLocalMethods.year = d3_time.year; + d3_time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); + }; + var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [ m[0].utc, m[1] ]; + }); + var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) { + return d.getUTCMilliseconds(); + } ], [ ":%S", function(d) { + return d.getUTCSeconds(); + } ], [ "%I:%M", function(d) { + return d.getUTCMinutes(); + } ], [ "%I %p", function(d) { + return d.getUTCHours(); + } ], [ "%a %d", function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } ], [ "%b %d", function(d) { + return d.getUTCDate() != 1; + } ], [ "%B", function(d) { + return d.getUTCMonth(); + } ], [ "%Y", d3_true ] ]); + d3_time_scaleUtcMethods.year = d3_time.year.utc; + d3_time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); + }; + d3.text = d3_xhrType(function(request) { + return request.responseText; + }); + d3.json = function(url, callback) { + return d3_xhr(url, "application/json", d3_json, callback); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3_xhr(url, "text/html", d3_html, callback); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = d3_xhrType(function(request) { + return request.responseXML; + }); + if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; + this.d3 = d3; +}(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/d3/d3.min.js b/platforms/android/assets/www/lib/d3/d3.min.js new file mode 100644 index 00000000..88550ae5 --- /dev/null +++ b/platforms/android/assets/www/lib/d3/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function r(n){return n.length}function u(n){for(var t=1;n*t%1;)t*=10;return t}function i(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function o(){}function a(n){return ia+n in this}function c(n){return n=ia+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function l(){var n=0;for(var t in this)t.charCodeAt(0)===oa&&++n;return n}function f(){for(var n in this)if(n.charCodeAt(0)===oa)return!1;return!0}function h(){}function g(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function p(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=aa.length;r>e;++e){var u=aa[e]+t;if(u in n)return u}}function v(){}function d(){}function m(n){function t(){for(var t,r=e,u=-1,i=r.length;++ue;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function U(n){return sa(n,da),n}function j(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t0&&(n=n.substring(0,a));var s=ya.get(n);return s&&(n=s,c=Y),a?t?u:r:t?v:i}function O(n,t){return function(e){var r=Zo.event;Zo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Zo.event=r}}}function Y(n,t){var e=O(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function I(){var n=".dragsuppress-"+ ++Ma,t="click"+n,e=Zo.select(Wo).on("touchmove"+n,y).on("dragstart"+n,y).on("selectstart"+n,y);if(xa){var r=Bo.style,u=r[xa];r[xa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),xa&&(r[xa]=u),i&&(e.on(t,function(){y(),o()},!0),setTimeout(o,0))}}function Z(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>_a&&(Wo.scrollX||Wo.scrollY)){e=Zo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();_a=!(u.f||u.e),e.remove()}return _a?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function V(){return Zo.event.changedTouches[0].identifier}function X(){return Zo.event.target}function $(){return Wo}function B(n){return n>0?1:0>n?-1:0}function W(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function J(n){return n>1?0:-1>n?ba:Math.acos(n)}function G(n){return n>1?Sa:-1>n?-Sa:Math.asin(n)}function K(n){return((n=Math.exp(n))-1/n)/2}function Q(n){return((n=Math.exp(n))+1/n)/2}function nt(n){return((n=Math.exp(2*n))-1)/(n+1)}function tt(n){return(n=Math.sin(n/2))*n}function et(){}function rt(n,t,e){return this instanceof rt?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof rt?new rt(n.h,n.s,n.l):mt(""+n,yt,rt):new rt(n,t,e)}function ut(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new gt(u(n+120),u(n),u(n-120))}function it(n,t,e){return this instanceof it?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof it?new it(n.h,n.c,n.l):n instanceof at?st(n.l,n.a,n.b):st((n=xt((n=Zo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new it(n,t,e)}function ot(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new at(e,Math.cos(n*=Aa)*t,Math.sin(n)*t)}function at(n,t,e){return this instanceof at?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof at?new at(n.l,n.a,n.b):n instanceof it?ot(n.l,n.c,n.h):xt((n=gt(n)).r,n.g,n.b):new at(n,t,e)}function ct(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=lt(u)*ja,r=lt(r)*Ha,i=lt(i)*Fa,new gt(ht(3.2404542*u-1.5371385*r-.4985314*i),ht(-.969266*u+1.8760108*r+.041556*i),ht(.0556434*u-.2040259*r+1.0572252*i))}function st(n,t,e){return n>0?new it(Math.atan2(e,t)*Ca,Math.sqrt(t*t+e*e),n):new it(0/0,0/0,n)}function lt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function ft(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function ht(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function gt(n,t,e){return this instanceof gt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof gt?new gt(n.r,n.g,n.b):mt(""+n,gt,ut):new gt(n,t,e)}function pt(n){return new gt(n>>16,255&n>>8,255&n)}function vt(n){return pt(n)+""}function dt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(_t(u[0]),_t(u[1]),_t(u[2]))}return(i=Ia.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.substring(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function yt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new rt(r,u,c)}function xt(n,t,e){n=Mt(n),t=Mt(t),e=Mt(e);var r=ft((.4124564*n+.3575761*t+.1804375*e)/ja),u=ft((.2126729*n+.7151522*t+.072175*e)/Ha),i=ft((.0193339*n+.119192*t+.9503041*e)/Fa);return at(116*u-16,500*(r-u),200*(u-i))}function Mt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function _t(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function bt(n){return"function"==typeof n?n:function(){return n}}function wt(n){return n}function St(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),kt(t,e,n,r)}}function kt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Zo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Wo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Zo.event;Zo.event=n;try{o.progress.call(i,c)}finally{Zo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Xo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Zo.rebind(i,o,"on"),null==r?i:i.get(Et(r))}function Et(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function At(){var n=Ct(),t=Nt()-n;t>24?(isFinite(t)&&(clearTimeout($a),$a=setTimeout(At,t)),Xa=0):(Xa=1,Wa(At))}function Ct(){var n=Date.now();for(Ba=Za;Ba;)n>=Ba.t&&(Ba.f=Ba.c(n-Ba.t)),Ba=Ba.n;return n}function Nt(){for(var n,t=Za,e=1/0;t;)t.f?t=n?n.n=t.n:Za=t.n:(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Tt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r?function(n){for(var t=n.length,u=[],i=0,o=r[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=r[i=(i+1)%r.length];return u.reverse().join(e)}:wt;return function(n){var e=Ga.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"",c=e[4]||"",s=e[5],l=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1;switch(h&&(h=+h.substring(1)),(s||"0"===r&&"="===o)&&(s=r="0",o="=",f&&(l-=Math.floor((l-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=Ka.get(g)||qt;var y=s&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}}}function qt(n){return n+""}function Rt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Dt(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new nc(e-1)),1),e}function i(n,e){return t(n=new nc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{nc=Rt;var r=new Rt;return r._=n,o(r,t,e)}finally{nc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Pt(n);return c.floor=c,c.round=Pt(r),c.ceil=Pt(u),c.offset=Pt(i),c.range=a,n}function Pt(n){return function(t,e){try{nc=Rt;var r=new Rt;return r._=t,n(r,e)._}finally{nc=Date}}}function Ut(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++aa;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in ec?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.substring(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.substring(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.substring(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.substring(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function s(n,t,r){return e(n,C.X.toString(),t,r)}function l(n,t,e){var r=x.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{nc=Rt;var t=new nc;return t._=n,r(t)}finally{nc=Date}}var r=t(n);return e.parse=function(n){try{nc=Rt;var t=r.parse(n);return t&&t._}finally{nc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=re;var x=Zo.map(),M=Ht(v),_=Ft(v),b=Ht(d),w=Ft(d),S=Ht(m),k=Ft(m),E=Ht(y),A=Ft(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return jt(n.getDate(),t,2)},e:function(n,t){return jt(n.getDate(),t,2)},H:function(n,t){return jt(n.getHours(),t,2)},I:function(n,t){return jt(n.getHours()%12||12,t,2)},j:function(n,t){return jt(1+Qa.dayOfYear(n),t,3)},L:function(n,t){return jt(n.getMilliseconds(),t,3)},m:function(n,t){return jt(n.getMonth()+1,t,2)},M:function(n,t){return jt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return jt(n.getSeconds(),t,2)},U:function(n,t){return jt(Qa.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return jt(Qa.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return jt(n.getFullYear()%100,t,2)},Y:function(n,t){return jt(n.getFullYear()%1e4,t,4)},Z:te,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Wt,e:Wt,H:Gt,I:Gt,j:Jt,L:ne,m:Bt,M:Kt,p:l,S:Qt,U:Yt,w:Ot,W:It,x:c,X:s,y:Vt,Y:Zt,Z:Xt,"%":ee};return t}function jt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Ht(n){return new RegExp("^(?:"+n.map(Zo.requote).join("|")+")","i")}function Ft(n){for(var t=new o,e=-1,r=n.length;++e68?1900:2e3)}function Bt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Wt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Jt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Gt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Kt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Qt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ne(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function te(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(ua(t)/60),u=ua(t)%60;return e+jt(r,"0",2)+jt(u,"0",2)}function ee(n,t,e){uc.lastIndex=0;var r=uc.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function re(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,c=Math.cos(t),s=Math.sin(t),l=i*s,f=u*c+l*Math.cos(a),h=l*o*Math.sin(a);lc.add(Math.atan2(h,f)),r=n,u=c,i=s}var t,e,r,u,i;fc.point=function(o,a){fc.point=n,r=(t=o)*Aa,u=Math.cos(a=(e=a)*Aa/2+ba/4),i=Math.sin(a)},fc.lineEnd=function(){n(t,e)}}function le(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function fe(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function he(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function ge(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function pe(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function ve(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function de(n){return[Math.atan2(n[1],n[0]),G(n[2])]}function me(n,t){return ua(n[0]-t[0])a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new Ee(e,n,null,!0),s=new Ee(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new Ee(r,n,null,!1),s=new Ee(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),ke(i),ke(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ke(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Ce))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=Zo.merge(g);var n=Le(m,p);g.length?(_||(i.polygonStart(),_=!0),Se(g,ze,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ne(),M=t(x),_=!1;return y}}function Ce(n){return n.length>1}function Ne(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:v,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function ze(n,t){return((n=n.x)[0]<0?n[1]-Sa-ka:Sa-n[1])-((t=t.x)[0]<0?t[1]-Sa-ka:Sa-t[1])}function Le(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;lc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ba/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ba/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>ba,k=p*x;if(lc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*wa:_,S^h>=e^m>=e){var E=he(le(f),le(n));ve(E);var A=he(u,E);ve(A);var C=(S^_>=0?-1:1)*G(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-ka>i||ka>i&&0>lc)^1&o}function Te(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ba:-ba,c=ua(i-e);ua(c-ba)0?Sa:-Sa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ba&&(ua(e-u)ka?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Re(n,t,e,r){var u;if(null==n)u=e*Sa,r.point(-ba,u),r.point(0,u),r.point(ba,u),r.point(ba,0),r.point(ba,-u),r.point(0,-u),r.point(-ba,-u),r.point(-ba,0),r.point(-ba,u);else if(ua(n[0]-t[0])>ka){var i=n[0]i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ba:-ba),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(me(e,g)||me(p,g))&&(p[0]+=ka,p[1]+=ka,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&me(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=le(n),u=le(t),o=[1,0,0],a=he(r,u),c=fe(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=he(o,a),p=pe(o,f),v=pe(a,h);ge(p,v);var d=g,m=fe(p,d),y=fe(d,d),x=m*m-y*(fe(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=pe(d,(-m-M)/y);if(ge(_,p),_=de(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ua(A-ba)A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ua(_[0]-w)ba^(w<=_[0]&&_[0]<=S)){var z=pe(d,(-m+M)/y);return ge(z,p),[_,de(z)]}}}function u(t,e){var r=o?n:ba-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ua(i)>ka,c=sr(n,6*Aa);return Ae(t,e,c,o?[0,-n]:[-ba,n-ba])}function Pe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function Ue(n,t,e,r){function u(r,u){return ua(r[0]-n)0?0:3:ua(r[0]-e)0?2:1:ua(r[1]-t)0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,s=a[0];c>o;++o)i=a[o],s[1]<=r?i[1]>r&&W(s,i,n)>0&&++t:i[1]<=r&&W(s,i,n)<0&&--t,s=i;return 0!==t}function s(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function l(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){l(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-kc,Math.min(kc,n)),t=Math.max(-kc,Math.min(kc,t));var e=l(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=Ne(),C=Pe(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Zo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),u&&Se(v,i,t,s,a),a.polygonEnd()),v=d=m=null}};return N}}function je(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function He(n){var t=0,e=ba/3,r=tr(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ba/180,e=n[1]*ba/180):[180*(t/ba),180*(e/ba)]},u}function Fe(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,G((i-(n*n+e*e)*u*u)/(2*u))]},e}function Oe(){function n(n,t){Ac+=u*n-r*t,r=n,u=t}var t,e,r,u;Tc.point=function(i,o){Tc.point=n,t=r=i,e=u=o},Tc.lineEnd=function(){n(t,e)}}function Ye(n,t){Cc>n&&(Cc=n),n>zc&&(zc=n),Nc>t&&(Nc=t),t>Lc&&(Lc=t)}function Ie(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Ze(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Ze(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Ze(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Ve(n,t){pc+=n,vc+=t,++dc}function Xe(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);mc+=o*(t+n)/2,yc+=o*(e+r)/2,xc+=o,Ve(t=n,e=r)}var t,e;Rc.point=function(r,u){Rc.point=n,Ve(t=r,e=u)}}function $e(){Rc.point=Ve}function Be(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);mc+=o*(r+n)/2,yc+=o*(u+t)/2,xc+=o,o=u*n-r*t,Mc+=o*(r+n),_c+=o*(u+t),bc+=3*o,Ve(r=n,u=t)}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,Ve(t=r=i,e=u=o)},Rc.lineEnd=function(){n(t,e)}}function We(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,wa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:v};return a}function Je(n){function t(n){return(a?r:e)(n)}function e(t){return Qe(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=le([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ua(ua(w)-1)i||ua((y*z+x*L)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Aa),a=16; +return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function Ge(n){var t=Je(function(t,e){return n([t*Ca,e*Ca])});return function(n){return er(t(n))}}function Ke(n){this.stream=n}function Qe(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function nr(n){return tr(function(){return n})()}function tr(n){function t(n){return n=a(n[0]*Aa,n[1]*Aa),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ca,n[1]*Ca]}function r(){a=je(o=ir(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=Je(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Sc,_=wt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=er(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Sc):De((b=+n)*Aa),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Ue(n[0][0],n[0][1],n[1][0],n[1][1]):wt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Aa,d=n[1]%360*Aa,r()):[v*Ca,d*Ca]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Aa,y=n[1]%360*Aa,x=n.length>2?n[2]%360*Aa:0,r()):[m*Ca,y*Ca,x*Ca]},Zo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function er(n){return Qe(n,function(t,e){n.point(t*Aa,e*Aa)})}function rr(n,t){return[n,t]}function ur(n,t){return[n>ba?n-wa:-ba>n?n+wa:n,t]}function ir(n,t,e){return n?t||e?je(ar(n),cr(t,e)):ar(n):t||e?cr(t,e):ur}function or(n){return function(t,e){return t+=n,[t>ba?t-wa:-ba>t?t+wa:t,e]}}function ar(n){var t=or(n);return t.invert=or(-n),t}function cr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),G(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),G(l*r-a*u)]},e}function sr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=lr(e,u),i=lr(e,i),(o>0?i>u:u>i)&&(u+=o*wa)):(u=n+o*wa,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=de([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function lr(n,t){var e=le(t);e[0]-=n,ve(e);var r=J(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-ka)%(2*Math.PI)}function fr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function hr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function gr(n){return n.source}function pr(n){return n.target}function vr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(tt(r-t)+u*o*tt(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ca,Math.atan2(o,Math.sqrt(r*r+u*u))*Ca]}:function(){return[n*Ca,t*Ca]};return p.distance=h,p}function dr(){function n(n,u){var i=Math.sin(u*=Aa),o=Math.cos(u),a=ua((n*=Aa)-t),c=Math.cos(a);Dc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Pc.point=function(u,i){t=u*Aa,e=Math.sin(i*=Aa),r=Math.cos(i),Pc.point=n},Pc.lineEnd=function(){Pc.point=Pc.lineEnd=v}}function mr(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function yr(n,t){function e(n,t){o>0?-Sa+ka>t&&(t=-Sa+ka):t>Sa-ka&&(t=Sa-ka);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ba/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=B(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Sa]},e):Mr}function xr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ua(u)u;u++){for(;r>1&&W(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function Er(n,t){return n[0]-t[0]||n[1]-t[1]}function Ar(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Cr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function Nr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function zr(){Gr(this),this.edge=this.site=this.circle=null}function Lr(n){var t=Bc.pop()||new zr;return t.site=n,t}function Tr(n){Yr(n),Vc.remove(n),Bc.push(n),Gr(n)}function qr(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Tr(n);for(var c=i;c.circle&&ua(e-c.circle.x)l;++l)s=a[l],c=a[l-1],Br(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=Xr(c.site,s.site,null,u),Or(c),Or(s)}function Rr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Vc._;a;)if(r=Dr(a,o)-i,r>ka)a=a.L;else{if(u=i-Pr(a,o),!(u>ka)){r>-ka?(t=a.P,e=a):u>-ka?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Lr(n);if(Vc.insert(t,c),t||e){if(t===e)return Yr(t),e=Lr(t.site),Vc.insert(c,e),c.edge=e.edge=Xr(t.site,c.site),Or(t),Or(e),void 0;if(!e)return c.edge=Xr(t.site,c.site),void 0;Yr(t),Yr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};Br(e.edge,s,p,M),c.edge=Xr(s,n,null,M),e.edge=Xr(n,p,null,M),Or(t),Or(e)}}function Dr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function Pr(n,t){var e=n.N;if(e)return Dr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ur(n){this.site=n,this.edges=[]}function jr(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Zc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(ua(r-t)>ka||ua(u-e)>ka)&&(a.splice(o,0,new Wr($r(i.site,l,ua(r-f)ka?{x:f,y:ua(t-f)ka?{x:ua(e-p)ka?{x:h,y:ua(t-h)ka?{x:ua(e-g)=-Ea)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Wc.pop()||new Fr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=$c._;x;)if(m.yd||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.yg){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.xi&&(u=t.substring(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:lu(e,r)})),i=Kc.lastIndex;return ir;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function hu(n,t){for(var e,r=Zo.interpolators.length;--r>=0&&!(e=Zo.interpolators[r](n,t)););return e}function gu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(hu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function pu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function vu(n){return function(t){return 1-n(1-t)}}function du(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function mu(n){return n*n}function yu(n){return n*n*n}function xu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Mu(n){return function(t){return Math.pow(t,n)}}function _u(n){return 1-Math.cos(n*Sa)}function bu(n){return Math.pow(2,10*(n-1))}function wu(n){return 1-Math.sqrt(1-n*n)}function Su(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/wa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*wa/t)}}function ku(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Eu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Au(n,t){n=Zo.hcl(n),t=Zo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ot(e+i*n,r+o*n,u+a*n)+""}}function Cu(n,t){n=Zo.hsl(n),t=Zo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ut(e+i*n,r+o*n,u+a*n)+""}}function Nu(n,t){n=Zo.lab(n),t=Zo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function zu(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Lu(n){var t=[n.a,n.b],e=[n.c,n.d],r=qu(t),u=Tu(t,e),i=qu(Ru(e,t,-u))||0;t[0]*e[1]180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:lu(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:lu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:lu(g[0],p[0])},{i:e-2,x:lu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i=0;)e.push(u[r])}function Bu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++oe;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function ii(n){return n.reduce(oi,0)}function oi(n,t){return n+t[1]}function ai(n,t){return ci(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ci(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function si(n){return[Zo.min(n),Zo.max(n)]}function li(n,t){return n.value-t.value}function fi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function hi(n,t){n._pack_next=t,t._pack_prev=n}function gi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function pi(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(vi),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],yi(r,u,i),t(i),fi(r,i),r._pack_prev=i,fi(i,u),u=r._pack_next,o=3;s>o;o++){yi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(gi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!gi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.ro;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(di)}}function vi(n){n._pack_next=n._pack_prev=n}function di(n){delete n._pack_next,delete n._pack_prev}function mi(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Si(n,t,e){return n.a.parent===t.parent?n.a:e}function ki(n){return 1+Zo.max(n,function(n){return n.y})}function Ei(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ai(n){var t=n.children;return t&&t.length?Ai(t[0]):n}function Ci(n){var t,e=n.children;return e&&(t=e.length)?Ci(e[t-1]):n}function Ni(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function zi(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Li(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ti(n){return n.rangeExtent?n.rangeExtent():Li(n.range())}function qi(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Di(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function Pi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Pi:qi,c=r?Uu:Pu;return o=u(n,t,c,e),a=u(t,n,c,hu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(zu)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Oi(n,t)},i.tickFormat=function(t,e){return Yi(n,t,e)},i.nice=function(t){return Hi(n,t),u()},i.copy=function(){return Ui(n,t,e,r)},u()}function ji(n,t){return Zo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Hi(n,t){return Ri(n,Di(Fi(n,t)[2]))}function Fi(n,t){null==t&&(t=10);var e=Li(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Oi(n,t){return Zo.range.apply(Zo,Fi(n,t))}function Yi(n,t,e){var r=Fi(n,t);if(e){var u=Ga.exec(e);if(u.shift(),"s"===u[8]){var i=Zo.formatPrefix(Math.max(ua(r[0]),ua(r[1])));return u[7]||(u[7]="."+Ii(i.scale(r[2]))),u[8]="f",e=Zo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Zi(u[8],r)),e=u.join("")}else e=",."+Ii(r[2])+"f";return Zo.format(e)}function Ii(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Zi(n,t){var e=Ii(t[2]);return n in ls?Math.abs(e-Ii(Math.max(ua(t[0]),ua(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Vi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Li(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++0;h--)o.push(i(s)*h);for(s=0;o[s]c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=Zo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Vi(n.copy(),t,e,r)},ji(o,n)}function Xi(n,t,e){function r(t){return n(u(t))}var u=$i(t),i=$i(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Oi(e,n)},r.tickFormat=function(n,t){return Yi(e,n,t)},r.nice=function(n){return r.domain(Hi(e,n))},r.exponent=function(o){return arguments.length?(u=$i(t=o),i=$i(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Xi(n.copy(),t,e)},ji(r,n)}function $i(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Bi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Zo.range(n.length).map(function(n){return t+e*n})}var u,i,a;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new o;for(var i,a=-1,c=r.length;++an?[0/0,0/0]:[n>0?o[n-1]:e[0],nt?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return Ji(n,t,e)},u()}function Gi(n,t){function e(e){return e>=e?t[Zo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Gi(n,t)},e}function Ki(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Oi(n,t)},t.tickFormat=function(t,e){return Yi(n,t,e)},t.copy=function(){return Ki(n)},t}function Qi(n){return n.innerRadius}function no(n){return n.outerRadius}function to(n){return n.startAngle}function eo(n){return n.endAngle}function ro(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=bt(e),p=bt(r);++f1&&u.push("H",r[0]),u.join("")}function ao(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function So(n){return n.length<3?uo(n):n[0]+ho(n,wo(n))}function ko(n){for(var t,e,r,u=-1,i=n.length;++ue?s():(u.active=e,i.event&&i.event.start.call(n,l,t),i.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),Zo.timer(function(){return p.c=c(r||1)?we:c,1},0,a),void 0)}function c(r){if(u.active!==e)return s();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a); +return o>=1?(i.event&&i.event.end.call(n,l,t),s()):void 0}function s(){return--u.count?delete u[e]:delete n.__transition__,1}var l=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ba,v=[];return p.t=h+a,r>=h?o(r-h):(p.c=o,void 0)},0,a)}}function Uo(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function jo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function Ho(n){return n.toISOString()}function Fo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Zo.bisect(Us,u);return i==Us.length?[t.year,Fi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Us[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Oo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Oo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Li(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Oo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Fo(n.copy(),t,e)},ji(r,n)}function Oo(n){return new Date(n)}function Yo(n){return JSON.parse(n.responseText)}function Io(n){var t=$o.createRange();return t.selectNode($o.body),t.createContextualFragment(n.responseText)}var Zo={version:"3.4.11"};Date.now||(Date.now=function(){return+new Date});var Vo=[].slice,Xo=function(n){return Vo.call(n)},$o=document,Bo=$o.documentElement,Wo=window;try{Xo(Bo.childNodes)[0].nodeType}catch(Jo){Xo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{$o.createElement("div").style.setProperty("opacity",0,"")}catch(Go){var Ko=Wo.Element.prototype,Qo=Ko.setAttribute,na=Ko.setAttributeNS,ta=Wo.CSSStyleDeclaration.prototype,ea=ta.setProperty;Ko.setAttribute=function(n,t){Qo.call(this,n,t+"")},Ko.setAttributeNS=function(n,t,e){na.call(this,n,t,e+"")},ta.setProperty=function(n,t,e){ea.call(this,n,t+"",e)}}Zo.ascending=n,Zo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Zo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ur&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ur&&(e=r)}return e},Zo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ue&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ue&&(e=r)}return e},Zo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i=e);)e=u=void 0;for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=e);)e=void 0;for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},Zo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i1&&(e=e.map(r)),e=e.filter(t),e.length?Zo.quantile(e.sort(n),.5):void 0};var ra=e(n);Zo.bisectLeft=ra.left,Zo.bisect=Zo.bisectRight=ra.right,Zo.bisector=function(t){return e(1===t.length?function(e,r){return n(t(e),r)}:t)},Zo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Zo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Zo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Zo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,t=Zo.min(arguments,r),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ua=Math.abs;Zo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,i=[],o=u(ua(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)i.push(r/o);else for(;(r=n+e*++a)=i.length)return r?r.call(u,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=i[c++],d=new o;++g=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Zo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Zo.set=function(n){var t=new h;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},i(h,{has:a,add:function(n){return this[ia+n]=!0,n},remove:function(n){return n=ia+n,n in this&&delete this[n]},values:s,size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===oa&&n.call(this,t.substring(1))}}),Zo.behavior={},Zo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Zo.event=null,Zo.requote=function(n){return n.replace(ca,"\\$&")};var ca=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},la=function(n,t){return t.querySelector(n)},fa=function(n,t){return t.querySelectorAll(n)},ha=Bo.matches||Bo[p(Bo,"matchesSelector")],ga=function(n,t){return ha.call(n,t)};"function"==typeof Sizzle&&(la=function(n,t){return Sizzle(n,t)[0]||null},fa=Sizzle,ga=Sizzle.matchesSelector),Zo.selection=function(){return ma};var pa=Zo.selection.prototype=[];pa.select=function(n){var t,e,r,u,i=[];n=b(n);for(var o=-1,a=this.length;++o=0&&(e=n.substring(0,t),n=n.substring(t+1)),va.hasOwnProperty(e)?{space:va[e],local:n}:n}},pa.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Zo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},pa.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=A(n)).length,u=-1;if(t=e.classList){for(;++ur){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(z(e,n[e],t));return this}if(2>r)return Wo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(z(n,t,e))},pa.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},pa.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},pa.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},pa.append=function(n){return n=T(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},pa.insert=function(n,t){return n=T(n),t=b(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},pa.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},pa.data=function(n,t){function e(n,e){var r,u,i,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new o,y=new o,x=[];for(r=-1;++rr;++r)p[r]=q(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,u,i=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return _(u)},pa.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},pa.sort=function(n){n=D.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},pa.size=function(){var n=0;return this.each(function(){++n}),n};var da=[];Zo.selection.enter=U,Zo.selection.enter.prototype=da,da.append=pa.append,da.empty=pa.empty,da.node=pa.node,da.call=pa.call,da.size=pa.size,da.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(F(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(F(n,t,e))};var ya=Zo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ya.forEach(function(n){"on"+n in $o&&ya.remove(n)});var xa="onselectstart"in $o?null:p(Bo.style,"userSelect"),Ma=0;Zo.mouse=function(n){return Z(n,x())};var _a=/WebKit/.test(Wo.navigator.userAgent)?-1:0;Zo.touches=function(n,t){return arguments.length<2&&(t=x().touches),t?Xo(t).map(function(t){var e=Z(n,t);return e.identifier=t.identifier,e}):[]},Zo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+s[0],y:r[1]+s[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Zo.event.target===f),g({type:"dragend"}))}var s,l=this,f=Zo.event.target,h=l.parentNode,g=e.of(l,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Zo.select(u()).on(i+d,a).on(o+d,c),y=I(),x=t(h,v);r?(s=r.apply(l,arguments),s=[s.x-x[0],s.y-x[1]]):s=[0,0],g({type:"dragstart"})}}var e=M(n,"drag","dragstart","dragend"),r=null,u=t(v,Zo.mouse,$,"mousemove","mouseup"),i=t(V,Zo.touch,X,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Zo.rebind(n,e,"on")};var ba=Math.PI,wa=2*ba,Sa=ba/2,ka=1e-6,Ea=ka*ka,Aa=ba/180,Ca=180/ba,Na=Math.SQRT2,za=2,La=4;Zo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=Q(v),o=i/(za*h)*(e*nt(Na*t+v)-K(v));return[r+o*s,u+o*l,i*e/Q(Na*t+v)]}return[r+n*s,u+n*l,i*Math.exp(Na*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+La*f)/(2*i*za*h),p=(c*c-i*i-La*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Na;return e.duration=1e3*y,e},Zo.behavior.zoom=function(){function n(n){n.on(A,s).on(Ra+".zoom",f).on("dblclick.zoom",h).on(z,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(x.range().map(function(n){return(n-S.x)/S.k}).map(x.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u(Zo.mouse(r),h),a(s)}function e(){f.on(C,null).on(N,null),g(l&&Zo.event.target===i),c(s)}var r=this,i=Zo.event.target,s=L.of(r,arguments),l=0,f=Zo.select(Wo).on(C,n).on(N,e),h=t(Zo.mouse(r)),g=I();H.call(r),o(s)}function l(){function n(){var n=Zo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Zo.event.target;Zo.select(t).on(M,i).on(_,f),b.push(t);for(var e=Zo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var s=n(),l=Date.now();if(1===s.length){if(500>l-m){var h=s[0],g=v[h.identifier];r(2*S.k),u(h,g),y(),a(p)}m=l}else if(s.length>1){var h=s[0],x=s[1],w=h[0]-x[0],k=h[1]-x[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Zo.touches(g),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=d&&Math.sqrt(l/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Zo.event.touches.length){for(var t=Zo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Zo.selectAll(b).on(x,null),w.on(A,s).on(z,l),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,x=".zoom-"+Zo.event.changedTouches[0].identifier,M="touchmove"+x,_="touchend"+x,b=[],w=Zo.select(g).on(A,null).on(z,e),k=I();H.call(g),e(),o(p)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Zo.mouse(this)),H.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),y(),r(Math.pow(2,.002*Ta())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Zo.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Zo.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,x,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=qa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=M(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Ss?Zo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Zo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?qa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,x=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},Zo.rebind(n,L,"on")};var Ta,qa=[0,1/0],Ra="onwheel"in $o?(Ta=function(){return-Zo.event.deltaY*(Zo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in $o?(Ta=function(){return Zo.event.wheelDelta},"mousewheel"):(Ta=function(){return-Zo.event.detail},"MozMousePixelScroll");Zo.color=et,et.prototype.toString=function(){return this.rgb()+""},Zo.hsl=rt;var Da=rt.prototype=new et;Da.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,this.l/n)},Da.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,n*this.l)},Da.rgb=function(){return ut(this.h,this.s,this.l)},Zo.hcl=it;var Pa=it.prototype=new et;Pa.brighter=function(n){return new it(this.h,this.c,Math.min(100,this.l+Ua*(arguments.length?n:1)))},Pa.darker=function(n){return new it(this.h,this.c,Math.max(0,this.l-Ua*(arguments.length?n:1)))},Pa.rgb=function(){return ot(this.h,this.c,this.l).rgb()},Zo.lab=at;var Ua=18,ja=.95047,Ha=1,Fa=1.08883,Oa=at.prototype=new et;Oa.brighter=function(n){return new at(Math.min(100,this.l+Ua*(arguments.length?n:1)),this.a,this.b)},Oa.darker=function(n){return new at(Math.max(0,this.l-Ua*(arguments.length?n:1)),this.a,this.b)},Oa.rgb=function(){return ct(this.l,this.a,this.b)},Zo.rgb=gt;var Ya=gt.prototype=new et;Ya.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new gt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new gt(u,u,u)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new gt(n*this.r,n*this.g,n*this.b)},Ya.hsl=function(){return yt(this.r,this.g,this.b)},Ya.toString=function(){return"#"+dt(this.r)+dt(this.g)+dt(this.b)};var Ia=Zo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ia.forEach(function(n,t){Ia.set(n,pt(t))}),Zo.functor=bt,Zo.xhr=St(wt),Zo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=kt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=s)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],s=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new h,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Zo.csv=Zo.dsv(",","text/csv"),Zo.tsv=Zo.dsv(" ","text/tab-separated-values"),Zo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=x().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return Z(n,r)};var Za,Va,Xa,$a,Ba,Wa=Wo[p(Wo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Zo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Va?Va.n=i:Za=i,Va=i,Xa||($a=clearTimeout($a),Xa=1,Wa(At))},Zo.timer.flush=function(){Ct(),Nt()},Zo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Ja=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Lt);Zo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Zo.round(n,zt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),Ja[8+e/3]};var Ga=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ka=Zo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Zo.round(n,zt(n,t))).toFixed(Math.max(0,Math.min(20,zt(n*(1+1e-15),t))))}}),Qa=Zo.time={},nc=Date;Rt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){tc.setUTCDate.apply(this._,arguments)},setDay:function(){tc.setUTCDay.apply(this._,arguments)},setFullYear:function(){tc.setUTCFullYear.apply(this._,arguments)},setHours:function(){tc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){tc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){tc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){tc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){tc.setUTCSeconds.apply(this._,arguments)},setTime:function(){tc.setTime.apply(this._,arguments)}};var tc=Date.prototype;Qa.year=Dt(function(n){return n=Qa.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Qa.years=Qa.year.range,Qa.years.utc=Qa.year.utc.range,Qa.day=Dt(function(n){var t=new nc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Qa.days=Qa.day.range,Qa.days.utc=Qa.day.utc.range,Qa.dayOfYear=function(n){var t=Qa.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=Qa[n]=Dt(function(n){return(n=Qa.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Qa[n+"s"]=e.range,Qa[n+"s"].utc=e.utc.range,Qa[n+"OfYear"]=function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)}}),Qa.week=Qa.sunday,Qa.weeks=Qa.sunday.range,Qa.weeks.utc=Qa.sunday.utc.range,Qa.weekOfYear=Qa.sundayOfYear;var ec={"-":"",_:" ",0:"0"},rc=/^\s*\d+/,uc=/^%/;Zo.locale=function(n){return{numberFormat:Tt(n),timeFormat:Ut(n)}};var ic=Zo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Zo.format=ic.numberFormat,Zo.geo={},ue.prototype={s:0,t:0,add:function(n){ie(n,this.t,oc),ie(oc.s,this.s,this),this.s?this.t+=oc.t:this.s=oc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oc=new ue;Zo.geo.stream=function(n,t){n&&ac.hasOwnProperty(n.type)?ac[n.type](n,t):oe(n,t)};var ac={Feature:function(n,t){oe(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*ba+n:n,fc.lineStart=fc.lineEnd=fc.point=v}};Zo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=le([t*Aa,e*Aa]);if(m){var u=he(m,r),i=[u[1],-u[0],0],o=he(i,u);ve(o),o=de(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ca*s,d=ua(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ca;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ca;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ua(r)>180?r+(r>0?360:-360):r}else v=n,d=e;fc.point(n,e),t(n,e)}function i(){fc.lineStart()}function o(){u(v,d),fc.lineEnd(),ua(y)>ka&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nlc?(l=-(h=180),f=-(g=90)):y>ka?g=90:-ka>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],Zo.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e); +for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),Zo.geo.centroid=function(n){hc=gc=pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,wc);var t=Mc,e=_c,r=bc,u=t*t+e*e+r*r;return Ea>u&&(t=mc,e=yc,r=xc,ka>gc&&(t=pc,e=vc,r=dc),u=t*t+e*e+r*r,Ea>u)?[0/0,0/0]:[Math.atan2(e,t)*Ca,G(r/Math.sqrt(u))*Ca]};var hc,gc,pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc={sphere:v,point:ye,lineStart:Me,lineEnd:_e,polygonStart:function(){wc.lineStart=be},polygonEnd:function(){wc.lineStart=Me}},Sc=Ae(we,Te,Re,[-ba,-ba/2]),kc=1e9;Zo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Zo.geo.conicEqualArea=function(){return He(Fe)}).raw=Fe,Zo.geo.albers=function(){return Zo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Zo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Zo.geo.albers(),o=Zo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Zo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+ka,f+.12*s+ka],[l-.214*s-ka,f+.234*s-ka]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+ka,f+.166*s+ka],[l-.115*s-ka,f+.234*s-ka]]).stream(c).point,n},n.scale(1070)};var Ec,Ac,Cc,Nc,zc,Lc,Tc={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Ac=0,Tc.lineStart=Oe},polygonEnd:function(){Tc.lineStart=Tc.lineEnd=Tc.point=v,Ec+=ua(Ac/2)}},qc={point:Ye,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Rc={point:Ve,lineStart:Xe,lineEnd:$e,polygonStart:function(){Rc.lineStart=Be},polygonEnd:function(){Rc.point=Ve,Rc.lineStart=Xe,Rc.lineEnd=$e}};Zo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Zo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Ec=0,Zo.geo.stream(n,u(Tc)),Ec},n.centroid=function(n){return pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,u(Rc)),bc?[Mc/bc,_c/bc]:xc?[mc/xc,yc/xc]:dc?[pc/dc,vc/dc]:[0/0,0/0]},n.bounds=function(n){return zc=Lc=-(Cc=Nc=1/0),Zo.geo.stream(n,u(qc)),[[Cc,Nc],[zc,Lc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Ge(n):wt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Ie:new We(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Zo.geo.albersUsa()).context(null)},Zo.geo.transform=function(n){return{stream:function(t){var e=new Ke(t);for(var r in n)e[r]=n[r];return e}}},Ke.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Zo.geo.projection=nr,Zo.geo.projectionMutator=tr,(Zo.geo.equirectangular=function(){return nr(rr)}).raw=rr.invert=rr,Zo.geo.rotation=function(n){function t(t){return t=n(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t}return n=ir(n[0]%360*Aa,n[1]*Aa,n.length>2?n[2]*Aa:0),t.invert=function(t){return t=n.invert(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t},t},ur.invert=rr,Zo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=ir(-n[0]*Aa,-n[1]*Aa,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ca,n[1]*=Ca}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=sr((t=+r)*Aa,u*Aa),n):t},n.precision=function(r){return arguments.length?(e=sr(t*Aa,(u=+r)*Aa),n):u},n.angle(90)},Zo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Aa,u=n[1]*Aa,i=t[1]*Aa,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},Zo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Zo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Zo.range(Math.ceil(s/m)*m,c,m).map(g)).concat(Zo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ua(n%d)>ka}).map(l)).concat(Zo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ua(n%m)>ka}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=fr(a,o,90),f=hr(r,e,y),h=fr(s,c,90),g=hr(i,u,y),n):y},n.majorExtent([[-180,-90+ka],[180,90-ka]]).minorExtent([[-180,-80-ka],[180,80+ka]])},Zo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=gr,u=pr;return n.distance=function(){return Zo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Zo.geo.interpolate=function(n,t){return vr(n[0]*Aa,n[1]*Aa,t[0]*Aa,t[1]*Aa)},Zo.geo.length=function(n){return Dc=0,Zo.geo.stream(n,Pc),Dc};var Dc,Pc={sphere:v,point:v,lineStart:dr,lineEnd:v,polygonStart:v,polygonEnd:v},Uc=mr(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Zo.geo.azimuthalEqualArea=function(){return nr(Uc)}).raw=Uc;var jc=mr(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},wt);(Zo.geo.azimuthalEquidistant=function(){return nr(jc)}).raw=jc,(Zo.geo.conicConformal=function(){return He(yr)}).raw=yr,(Zo.geo.conicEquidistant=function(){return He(xr)}).raw=xr;var Hc=mr(function(n){return 1/n},Math.atan);(Zo.geo.gnomonic=function(){return nr(Hc)}).raw=Hc,Mr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Sa]},(Zo.geo.mercator=function(){return _r(Mr)}).raw=Mr;var Fc=mr(function(){return 1},Math.asin);(Zo.geo.orthographic=function(){return nr(Fc)}).raw=Fc;var Oc=mr(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Zo.geo.stereographic=function(){return nr(Oc)}).raw=Oc,br.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Sa]},(Zo.geo.transverseMercator=function(){var n=_r(br),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=br,Zo.geom={},Zo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=bt(e),i=bt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(Er),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var s=kr(a),l=kr(c),f=l[0]===s[0],h=l[l.length-1]===s[s.length-1],g=[];for(t=s.length-1;t>=0;--t)g.push(n[a[s[t]][2]]);for(t=+f;t=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/ka)*ka,y:Math.round(o(n,t)/ka)*ka,i:t}})}var r=wr,u=Sr,i=r,o=u,a=Jc;return n?t(n):(t.links=function(n){return tu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return tu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Hr),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=ou()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=bt(a),M=bt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.xm&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=ou();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){au(n,k,v,d,m,y)},g=-1,null==t){for(;++g=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ns.get(e)||Qc,r=ts.get(r)||wt,pu(r(e.apply(null,Vo.call(arguments,1))))},Zo.interpolateHcl=Au,Zo.interpolateHsl=Cu,Zo.interpolateLab=Nu,Zo.interpolateRound=zu,Zo.transform=function(n){var t=$o.createElementNS(Zo.ns.prefix.svg,"g");return(Zo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Lu(e?e.matrix:es)})(n)},Lu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var es={a:1,b:0,c:0,d:1,e:0,f:0};Zo.interpolateTransform=Du,Zo.layout={},Zo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/d){if(p>c){var s=t.charge/c;n.px-=i*s,n.py-=o*s}return!0}if(t.point&&c&&p>c){var s=t.pointCharge/c;n.px-=i*s,n.py-=o*s}}return!t.charge}}function t(n){n.px=Zo.event.x,n.py=Zo.event.y,a.resume()}var e,r,u,i,o,a={},c=Zo.dispatch("start","tick","end"),s=[1,1],l=.9,f=rs,h=us,g=-30,p=is,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=s[0]/2,M=s[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Vu(t=Zo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Zo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++at;++t)(r=m[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Zo.behavior.drag().origin(wt).on("dragstart.force",Ou).on("drag.force",t).on("dragend.force",Yu)),arguments.length?(this.on("mouseover.force",Iu).on("mouseout.force",Zu).call(e),void 0):e},Zo.rebind(a,c,"on")};var rs=20,us=1,is=1/0;Zo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(s=e.call(n,i,i.depth))&&(c=s.length)){for(var c,s,l;--c>=0;)o.push(l=s[c]),l.parent=i,l.depth=i.depth+1;r&&(i.value=0),i.children=s}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Bu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=Gu,e=Wu,r=Ju;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&($u(t,function(n){n.children&&(n.value=0)}),Bu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Zo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++sg;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=wt,e=ei,r=ri,u=ti,i=Qu,o=ni;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||ei,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||ri,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=Zo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ui),i=n.map(ii),o=Zo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return Zo.range(n.length).reverse()},"default":ei}),cs=Zo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ri});Zo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=l[0]&&a<=l[1]&&(o=c[Zo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=si,u=ai;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=bt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return ci(n,t)}:bt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Zo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Bu(a,function(n){n.r=+l(n.value)}),Bu(a,pi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Bu(a,function(n){n.r+=f}),Bu(a,pi),Bu(a,function(n){n.r-=f})}return mi(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=Zo.layout.hierarchy().sort(li),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Xu(n,e)},Zo.layout.tree=function(){function n(n,u){var l=o.call(this,n,u),f=l[0],h=t(f);if(Bu(h,e),h.parent.m=-h.z,$u(h,r),s)$u(f,i);else{var g=f,p=f,v=f;$u(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);$u(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return l}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){wi(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],s=u.m,l=i.m,f=o.m,h=c.m;o=_i(o),u=Mi(u),o&&u;)c=Mi(c),i=_i(i),i.a=n,r=o.z+f-u.z-s+a(o._,u._),r>0&&(bi(Si(o,n,e),n,r),s+=r,l+=r),f+=o.m,s+=u.m,h+=c.m,l+=i.m;o&&!_i(i)&&(i.t=o,i.m+=f-l),u&&!Mi(c)&&(c.t=u,c.m+=s-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Zo.layout.hierarchy().sort(null).value(null),a=xi,c=[1,1],s=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(s=null==(c=t)?i:null,n):s?null:c},n.nodeSize=function(t){return arguments.length?(s=null==(c=t)?null:i,n):s?c:null},Xu(n,o)},Zo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Bu(c,function(n){var t=n.children;t&&t.length?(n.x=Ei(t),n.y=ki(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ai(c),f=Ci(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Bu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Zo.layout.hierarchy().sort(null).value(null),e=xi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Xu(n,t)},Zo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++oe&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++ie.dx)&&(l=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Zo.random.normal.apply(Zo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Zo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Zo.scale={};var ss={floor:wt,ceil:wt};Zo.scale.linear=function(){return Ui([0,1],[0,1],hu,!1)};var ls={s:1,g:1,p:1,r:1,e:1};Zo.scale.log=function(){return Vi(Zo.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=Zo.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Zo.scale.pow=function(){return Xi(Zo.scale.linear(),1,[0,1])},Zo.scale.sqrt=function(){return Zo.scale.pow().exponent(.5)},Zo.scale.ordinal=function(){return Bi([],{t:"range",a:[[]]})},Zo.scale.category10=function(){return Zo.scale.ordinal().range(gs)},Zo.scale.category20=function(){return Zo.scale.ordinal().range(ps)},Zo.scale.category20b=function(){return Zo.scale.ordinal().range(vs)},Zo.scale.category20c=function(){return Zo.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(vt),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(vt),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(vt),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(vt);Zo.scale.quantile=function(){return Wi([],[])},Zo.scale.quantize=function(){return Ji(0,1,[0,1])},Zo.scale.threshold=function(){return Gi([.5],[0,1])},Zo.scale.identity=function(){return Ki([0,1])},Zo.svg={},Zo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ba>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a); +return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=Qi,e=no,r=to,u=eo;return n.innerRadius=function(e){return arguments.length?(t=bt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=bt(t),n):e},n.startAngle=function(t){return arguments.length?(r=bt(t),n):r},n.endAngle=function(t){return arguments.length?(u=bt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Sa,ys=wa-ka;Zo.svg.line=function(){return ro(wt)};var xs=Zo.map({linear:uo,"linear-closed":io,step:oo,"step-before":ao,"step-after":co,basis:po,"basis-open":vo,"basis-closed":mo,bundle:yo,cardinal:fo,"cardinal-open":so,"cardinal-closed":lo,monotone:So});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];Zo.svg.line.radial=function(){var n=ro(ko);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},ao.reverse=co,co.reverse=ao,Zo.svg.area=function(){return Eo(wt)},Zo.svg.area.radial=function(){var n=Eo(ko);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Zo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ba)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=gr,o=pr,a=Ao,c=to,s=eo;return n.radius=function(t){return arguments.length?(a=bt(t),n):a},n.source=function(t){return arguments.length?(i=bt(t),n):i},n.target=function(t){return arguments.length?(o=bt(t),n):o},n.startAngle=function(t){return arguments.length?(c=bt(t),n):c},n.endAngle=function(t){return arguments.length?(s=bt(t),n):s},n},Zo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=gr,e=pr,r=Co;return n.source=function(e){return arguments.length?(t=bt(e),n):t},n.target=function(t){return arguments.length?(e=bt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Zo.svg.diagonal.radial=function(){var n=Zo.svg.diagonal(),t=Co,e=n.projection;return n.projection=function(n){return arguments.length?e(No(t=n)):t},n},Zo.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||To)(e.call(this,n,r))}var t=Lo,e=zo;return n.type=function(e){return arguments.length?(t=bt(e),n):t},n.size=function(t){return arguments.length?(e=bt(t),n):e},n};var ws=Zo.map({circle:To,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Zo.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*Aa),Cs=[],Ns=0;Cs.call=pa.call,Cs.empty=pa.empty,Cs.node=pa.node,Cs.size=pa.size,Zo.transition=function(n){return arguments.length?Ss?n.transition():n:ma.transition()},Zo.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=b(n);for(var o=-1,a=this.length;++oi;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return qo(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):P(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Du:hu,a=Zo.ns.qualify(n);return Ro(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Zo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Wo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=hu(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return Ro(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Wo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return Ro(this,"text",n,Do)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Zo.ease.apply(Zo,arguments)),P(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,P(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else P(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Zo.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Po(e,s,i,r)),n.push(e)}return qo(o,i)},Zo.svg.axis=function(){function n(n){n.each(function(){var n,s=Zo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):wt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",ka),d=Zo.transition(p.exit()).style("opacity",ka).remove(),m=Zo.transition(p.order()).style("opacity",1),y=Ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Zo.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=Uo,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Uo,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=jo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=jo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;l=f=function(n){return E(n)+A}}else l.rangeBand?l=f:d.call(n,f);v.call(n,l),m.call(n,f)})}var t,e=Zo.scale.linear(),r=zs,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ls?t+"":zs,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var zs="bottom",Ls={top:1,right:1,bottom:1,left:1};Zo.svg.brush=function(){function n(i){i.each(function(){var i=Zo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,wt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Ts[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=Zo.transition(i),h=Zo.transition(o);c&&(l=Ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=Ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Zo.event.keyCode&&(C||(x=null,z[0]-=l[1],z[1]-=f[1],C=2),y())}function p(){32==Zo.event.keyCode&&2==C&&(z[0]+=l[1],z[1]+=f[1],C=0,y())}function v(){var n=Zo.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Zo.event.altKey?(x||(x=[(l[0]+l[1])/2,(f[0]+f[1])/2]),z[0]=l[+(n[0]p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Zo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=Zo.select(Zo.event.target),w=a.of(_,arguments),S=Zo.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=I(),z=Zo.mouse(_),L=Zo.select(Wo).on("keydown.brush",u).on("keyup.brush",p);if(Zo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=l[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);M=[l[1-T]-z[0],f[1-q]-z[1]],z[0]=l[T],z[1]=f[q]}else Zo.event.altKey&&(x=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Zo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=M(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],f=[0,0],h=!0,g=!0,p=qs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?Zo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=gu(l,t.x),r=gu(f,t.y);return i=o=null,function(u){l=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=qs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,p=qs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(h=!!t[0],g=!!t[1]):c?h=!!t:s&&(g=!!t),n):c&&s?[h,g]:c?h:s?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),s&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(h=u,u=a,a=h))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&f[0]==f[1]},Zo.rebind(n,a,"on")};var Ts={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},qs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=Qa.format=ic.timeFormat,Ds=Rs.utc,Ps=Ds("%Y-%m-%dT%H:%M:%S.%LZ");Rs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ho:Ps,Ho.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Ho.toString=Ps.toString,Qa.second=Dt(function(n){return new nc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Qa.seconds=Qa.second.range,Qa.seconds.utc=Qa.second.utc.range,Qa.minute=Dt(function(n){return new nc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Qa.minutes=Qa.minute.range,Qa.minutes.utc=Qa.minute.utc.range,Qa.hour=Dt(function(n){var t=n.getTimezoneOffset()/60;return new nc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Qa.hours=Qa.hour.range,Qa.hours.utc=Qa.hour.utc.range,Qa.month=Dt(function(n){return n=Qa.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Qa.months=Qa.month.range,Qa.months.utc=Qa.month.utc.range;var Us=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],js=[[Qa.second,1],[Qa.second,5],[Qa.second,15],[Qa.second,30],[Qa.minute,1],[Qa.minute,5],[Qa.minute,15],[Qa.minute,30],[Qa.hour,1],[Qa.hour,3],[Qa.hour,6],[Qa.hour,12],[Qa.day,1],[Qa.day,2],[Qa.week,1],[Qa.month,1],[Qa.month,3],[Qa.year,1]],Hs=Rs.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",we]]),Fs={range:function(n,t,e){return Zo.range(Math.ceil(n/e)*e,+t,e).map(Oo)},floor:wt,ceil:wt};js.year=Qa.year,Qa.scale=function(){return Fo(Zo.scale.linear(),js,Hs)};var Os=js.map(function(n){return[n[0].utc,n[1]]}),Ys=Ds.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",we]]);Os.year=Qa.year.utc,Qa.scale.utc=function(){return Fo(Zo.scale.linear(),Os,Ys)},Zo.text=St(function(n){return n.responseText}),Zo.json=function(n,t){return kt(n,"application/json",Yo,t)},Zo.html=function(n,t){return kt(n,"text/html",Io,t)},Zo.xml=St(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Zo):"object"==typeof module&&module.exports&&(module.exports=Zo),this.d3=Zo}(); \ No newline at end of file diff --git a/platforms/android/assets/www/lib/es5-shim/.bower.json b/platforms/android/assets/www/lib/es5-shim/.bower.json new file mode 100644 index 00000000..2841e33b --- /dev/null +++ b/platforms/android/assets/www/lib/es5-shim/.bower.json @@ -0,0 +1,44 @@ +{ + "name": "es5-shim", + "version": "3.1.1", + "main": "es5-shim.js", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/es5-shim" + }, + "homepage": "https://github.com/es-shims/es5-shim", + "authors": [ + "Kris Kowal (http://github.com/kriskowal/)", + "Sami Samhuri (http://samhuri.net/)", + "Florian Schäfer (http://github.com/fschaefer)", + "Irakli Gozalishvili (http://jeditoolkit.com)", + "Kit Cambridge (http://kitcambridge.github.com)", + "Jordan Harband (https://github.com/ljharb/)" + ], + "description": "ECMAScript 5 compatibility shims for legacy JavaScript engines", + "keywords": [ + "shim", + "es5", + "es5", + "shim", + "javascript", + "ecmascript", + "polyfill" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "tests" + ], + "_release": "3.1.1", + "_resolution": { + "type": "version", + "tag": "v3.1.1", + "commit": "f5ca40f6f49b7eb0abef39bb1c3a5b4f7ca176d5" + }, + "_source": "git://github.com/es-shims/es5-shim.git", + "_target": "~3.1.0", + "_originalSource": "es5-shim" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/es5-shim/CHANGES b/platforms/android/assets/www/lib/es5-shim/CHANGES new file mode 100644 index 00000000..2447cfc9 --- /dev/null +++ b/platforms/android/assets/www/lib/es5-shim/CHANGES @@ -0,0 +1,124 @@ +3.1.1 + - Update minified files (#231) + +3.1.0 + - Fix String#replace in Firefox up through 29 (#228) + +3.0.2 + - Fix `Function#bind` in IE 7 and 8 (#224, #225, #226) + +3.0.1 + - Version bump to ensure npm has newest minified assets + +3.0.0 + - es5-sham: fix `Object.getPrototypeOf` and `Object.getOwnPropertyDescriptor` for Opera Mini + - Better override noncompliant native ES5 methods: `Array#forEach`, `Array#map`, `Array#filter`, `Array#every`, `Array#some`, `Array#reduce`, `Date.parse`, `String#trim` + - Added spec-compliant shim for `parseInt` + - Ensure `Object.keys` handles more edge cases with `arguments` objects and boxed primitives + - Improve minification of builds + +2.3.0 + - parseInt is now properly shimmed in ES3 browsers to default the radix + - update URLs to point to the new organization + +2.2.0 + - Function.prototype.bind shim now reports correct length on a bound function + - fix node 0.6.x v8 bug in Array#forEach + - test improvements + +2.1.0 + - Object.create fixes + - tweaks to the Object.defineProperties shim + +2.0.0 + - Separate reliable shims from dubious shims (shams). + +1.2.10 + - Group-effort Style Cleanup + - Took a stab at fixing Object.defineProperty on IE8 without + bad side-effects. (@hax) + - Object.isExtensible no longer fakes it. (@xavierm) + - Date.prototype.toISOString no longer deals with partial + ISO dates, per spec (@kitcambridge) + - More (mostly from @bryanforbes) + +1.2.9 + - Corrections to toISOString by @kitcambridge + - Fixed three bugs in array methods revealed by Jasmine tests. + - Cleaned up Function.prototype.bind with more fixes and tests from + @bryanforbes. + +1.2.8 + - Actually fixed problems with Function.prototype.bind, and regressions + from 1.2.7 (@bryanforbes, @jdalton #36) + +1.2.7 - REGRESSED + - Fixed problems with Function.prototype.bind when called as a constructor. + (@jdalton #36) + +1.2.6 + - Revised Date.parse to match ES 5.1 (kitcambridge) + +1.2.5 + - Fixed a bug for padding it Date..toISOString (tadfisher issue #33) + +1.2.4 + - Fixed a descriptor bug in Object.defineProperty (raynos) + +1.2.3 + - Cleaned up RequireJS and + + +**When used in a web browser**, JSON 3 exposes an additional `JSON3` object containing the `noConflict()` and `runInContext()` functions, as well as aliases to the `stringify()` and `parse()` functions. + +### `noConflict` and `runInContext` + +* `JSON3.noConflict()` restores the original value of the global `JSON` object and returns a reference to the `JSON3` object. +* `JSON3.runInContext([context, exports])` initializes JSON 3 using the given `context` object (e.g., `window`, `global`, etc.), or the global object if omitted. If an `exports` object is specified, the `stringify()`, `parse()`, and `runInContext()` functions will be attached to it instead of a new object. + +### Asynchronous Module Loaders + +JSON 3 is defined as an [anonymous module](https://github.com/amdjs/amdjs-api/wiki/AMD#define-function-) for compatibility with [RequireJS](http://requirejs.org/), [`curl.js`](https://github.com/cujojs/curl), and other asynchronous module loaders. + + + + +To avoid issues with third-party scripts, **JSON 3 is exported to the global scope even when used with a module loader**. If this behavior is undesired, `JSON3.noConflict()` can be used to restore the global `JSON` object to its original value. + +## CommonJS Environments + + var JSON3 = require("./path/to/json3"); + JSON3.parse("[1, 2, 3]"); + // => [1, 2, 3] + +## JavaScript Engines + + load("path/to/json3.js"); + JSON.stringify({"Hello": 123, "Good-bye": 456}, ["Hello"], "\t"); + // => '{\n\t"Hello": 123\n}' + +# Compatibility # + +JSON 3 has been **tested** with the following web browsers, CommonJS environments, and JavaScript engines. + +## Web Browsers + +- Windows [Internet Explorer](http://www.microsoft.com/windows/internet-explorer), version 6.0 and higher +- Mozilla [Firefox](http://www.mozilla.com/firefox), version 1.0 and higher +- Apple [Safari](http://www.apple.com/safari), version 2.0 and higher +- [Opera](http://www.opera.com) 7.02 and higher +- [Mozilla](http://sillydog.org/narchive/gecko.php) 1.0, [Netscape](http://sillydog.org/narchive/) 6.2.3, and [SeaMonkey](http://www.seamonkey-project.org/) 1.0 and higher + +## CommonJS Environments + +- [Node](http://nodejs.org/) 0.2.6 and higher +- [RingoJS](http://ringojs.org/) 0.4 and higher +- [Narwhal](http://narwhaljs.org/) 0.3.2 and higher + +## JavaScript Engines + +- Mozilla [Rhino](http://www.mozilla.org/rhino) 1.5R5 and higher +- WebKit [JSC](https://trac.webkit.org/wiki/JSC) +- Google [V8](http://code.google.com/p/v8) + +## Known Incompatibilities + +* Attempting to serialize the `arguments` object may produce inconsistent results across environments due to specification version differences. As a workaround, please convert the `arguments` object to an array first: `JSON.stringify([].slice.call(arguments, 0))`. + +## Required Native Methods + +JSON 3 assumes that the following methods exist and function as described in the ECMAScript specification: + +- The `Number`, `String`, `Array`, `Object`, `Date`, `SyntaxError`, and `TypeError` constructors. +- `String.fromCharCode` +- `Object#toString` +- `Function#call` +- `Math.floor` +- `Number#toString` +- `Date#valueOf` +- `String.prototype`: `indexOf`, `charCodeAt`, `charAt`, `slice`. +- `Array.prototype`: `push`, `pop`, `join`. + +# Contribute # + +Check out a working copy of the JSON 3 source code with [Git](http://git-scm.com/): + + $ git clone git://github.com/bestiejs/json3.git + $ cd json3 + +If you'd like to contribute a feature or bug fix, you can [fork](http://help.github.com/fork-a-repo/) JSON 3, commit your changes, and [send a pull request](http://help.github.com/send-pull-requests/). Please make sure to update the unit tests in the `test` directory as well. + +Alternatively, you can use the [GitHub issue tracker](https://github.com/bestiejs/json3/issues) to submit bug reports, feature requests, and questions, or send tweets to [@kitcambridge](http://twitter.com/kitcambridge). + +JSON 3 is released under the [MIT License](http://kit.mit-license.org/). diff --git a/platforms/android/assets/www/lib/json3/bower.json b/platforms/android/assets/www/lib/json3/bower.json new file mode 100644 index 00000000..7215dada --- /dev/null +++ b/platforms/android/assets/www/lib/json3/bower.json @@ -0,0 +1,38 @@ +{ + "name": "json3", + "version": "3.3.2", + "main": "lib/json3.js", + "repository": { + "type": "git", + "url": "git://github.com/bestiejs/json3.git" + }, + "ignore": [ + ".*", + "**/.*", + "build.js", + "index.html", + "index.js", + "component.json", + "package.json", + "benchmark", + "page", + "test", + "vendor", + "tests" + ], + "homepage": "https://github.com/bestiejs/json3", + "description": "A modern JSON implementation compatible with nearly all JavaScript platforms", + "keywords": [ + "json", + "spec", + "ecma", + "es5", + "lexer", + "parser", + "stringify" + ], + "authors": [ + "Kit Cambridge " + ], + "license": "MIT" +} diff --git a/platforms/android/assets/www/lib/json3/lib/json3.js b/platforms/android/assets/www/lib/json3/lib/json3.js new file mode 100644 index 00000000..4817c9e7 --- /dev/null +++ b/platforms/android/assets/www/lib/json3/lib/json3.js @@ -0,0 +1,902 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; + + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; + + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; + + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } + + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } + + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } + } + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; + } + + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); + }; + } + + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; + }; + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } + + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } + } + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } + } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; + + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; + + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; + } + result += useCharIndex ? symbols[index] : value.charAt(index); + } + } + return result + '"'; + }; + + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); + } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; + } else { + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); + } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; + } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; + + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); + } + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); + } + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); + }; + } + + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; + + // Internal: Stores the parser state. + var Index, Source; + + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; + + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } + } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); + } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; + + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); + } + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; + } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; + + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; + }; + } + } + + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); diff --git a/platforms/android/assets/www/lib/json3/lib/json3.min.js b/platforms/android/assets/www/lib/json3/lib/json3.min.js new file mode 100644 index 00000000..5f896fa0 --- /dev/null +++ b/platforms/android/assets/www/lib/json3/lib/json3.min.js @@ -0,0 +1,17 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +(function(){function N(p,r){function q(a){if(q[a]!==w)return q[a];var c;if("bug-string-char-index"==a)c="a"!="a"[0];else if("json"==a)c=q("json-stringify")&&q("json-parse");else{var e;if("json-stringify"==a){c=r.stringify;var b="function"==typeof c&&s;if(b){(e=function(){return 1}).toJSON=e;try{b="0"===c(0)&&"0"===c(new t)&&'""'==c(new A)&&c(u)===w&&c(w)===w&&c()===w&&"1"===c(e)&&"[1]"==c([e])&&"[null]"==c([w])&&"null"==c(null)&&"[null,null,null]"==c([w,u,null])&&'{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'== +c({a:[e,!0,!1,null,"\x00\b\n\f\r\t"]})&&"1"===c(null,e)&&"[\n 1,\n 2\n]"==c([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==c(new C(-864E13))&&'"+275760-09-13T00:00:00.000Z"'==c(new C(864E13))&&'"-000001-01-01T00:00:00.000Z"'==c(new C(-621987552E5))&&'"1969-12-31T23:59:59.999Z"'==c(new C(-1))}catch(f){b=!1}}c=b}if("json-parse"==a){c=r.parse;if("function"==typeof c)try{if(0===c("0")&&!c(!1)){e=c('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');var n=5==e.a.length&&1===e.a[0];if(n){try{n=!c('"\t"')}catch(d){}if(n)try{n= +1!==c("01")}catch(g){}if(n)try{n=1!==c("1.")}catch(m){}}}}catch(X){n=!1}c=n}}return q[a]=!!c}p||(p=k.Object());r||(r=k.Object());var t=p.Number||k.Number,A=p.String||k.String,H=p.Object||k.Object,C=p.Date||k.Date,G=p.SyntaxError||k.SyntaxError,K=p.TypeError||k.TypeError,L=p.Math||k.Math,I=p.JSON||k.JSON;"object"==typeof I&&I&&(r.stringify=I.stringify,r.parse=I.parse);var H=H.prototype,u=H.toString,v,B,w,s=new C(-0xc782b5b800cec);try{s=-109252==s.getUTCFullYear()&&0===s.getUTCMonth()&&1===s.getUTCDate()&& +10==s.getUTCHours()&&37==s.getUTCMinutes()&&6==s.getUTCSeconds()&&708==s.getUTCMilliseconds()}catch(Q){}if(!q("json")){var D=q("bug-string-char-index");if(!s)var x=L.floor,M=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,c){return M[c]+365*(a-1970)+x((a-1969+(c=+(1d){c+="\\u00"+y(2,d.toString(16));break}c+=f?n[b]:a.charAt(b)}}return c+'"'},O=function(a,c,b,h,f,n,d){var g,m,k,l,p,r,s,t,q;try{g=c[a]}catch(z){}if("object"==typeof g&&g)if(m=u.call(g),"[object Date]"!=m||v.call(g, +"toJSON"))"function"==typeof g.toJSON&&("[object Number]"!=m&&"[object String]"!=m&&"[object Array]"!=m||v.call(g,"toJSON"))&&(g=g.toJSON(a));else if(g>-1/0&&g<1/0){if(E){l=x(g/864E5);for(m=x(l/365.2425)+1970-1;E(m+1,0)<=l;m++);for(k=x((l-E(m,0))/30.42);E(m,k+1)<=l;k++);l=1+l-E(m,k);p=(g%864E5+864E5)%864E5;r=x(p/36E5)%24;s=x(p/6E4)%60;t=x(p/1E3)%60;p%=1E3}else m=g.getUTCFullYear(),k=g.getUTCMonth(),l=g.getUTCDate(),r=g.getUTCHours(),s=g.getUTCMinutes(),t=g.getUTCSeconds(),p=g.getUTCMilliseconds(); +g=(0>=m||1E4<=m?(0>m?"-":"+")+y(6,0>m?-m:m):y(4,m))+"-"+y(2,k+1)+"-"+y(2,l)+"T"+y(2,r)+":"+y(2,s)+":"+y(2,t)+"."+y(3,p)+"Z"}else g=null;b&&(g=b.call(c,a,g));if(null===g)return"null";m=u.call(g);if("[object Boolean]"==m)return""+g;if("[object Number]"==m)return g>-1/0&&g<1/0?""+g:"null";if("[object String]"==m)return R(""+g);if("object"==typeof g){for(a=d.length;a--;)if(d[a]===g)throw K();d.push(g);q=[];c=n;n+=f;if("[object Array]"==m){k=0;for(a=g.length;k=b.length?b:b.slice(0,10));return O("",(l={},l[""]=a,l),f,n,h,"",[])}}if(!q("json-parse")){var V=A.fromCharCode,W={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},b,J,l=function(){b=J=null;throw G();},z=function(){for(var a=J,c=a.length,e,h,f,k,d;bd)l();else if(92==d)switch(d=a.charCodeAt(++b),d){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=W[d];b++;break;case 117:h=++b;for(f=b+4;b=d||97<=d&&102>=d||65<=d&&70>=d||l();e+=V("0x"+a.slice(h,b));break;default:l()}else{if(34==d)break;d=a.charCodeAt(b);for(h=b;32<=d&&92!=d&&34!=d;)d=a.charCodeAt(++b);e+=a.slice(h,b)}if(34==a.charCodeAt(b))return b++,e;l();default:h= +b;45==d&&(k=!0,d=a.charCodeAt(++b));if(48<=d&&57>=d){for(48==d&&(d=a.charCodeAt(b+1),48<=d&&57>=d)&&l();b=d);b++);if(46==a.charCodeAt(b)){for(f=++b;f=d);f++);f==b&&l();b=f}d=a.charCodeAt(b);if(101==d||69==d){d=a.charCodeAt(++b);43!=d&&45!=d||b++;for(f=b;f=d);f++);f==b&&l();b=f}return+a.slice(h,b)}k&&l();if("true"==a.slice(b,b+4))return b+=4,!0;if("false"==a.slice(b,b+5))return b+=5,!1;if("null"==a.slice(b, +b+4))return b+=4,null;l()}return"$"},P=function(a){var c,b;"$"==a&&l();if("string"==typeof a){if("@"==(D?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(c=[];;b||(b=!0)){a=z();if("]"==a)break;b&&(","==a?(a=z(),"]"==a&&l()):l());","==a&&l();c.push(P(a))}return c}if("{"==a){for(c={};;b||(b=!0)){a=z();if("}"==a)break;b&&(","==a?(a=z(),"}"==a&&l()):l());","!=a&&"string"==typeof a&&"@"==(D?a.charAt(0):a[0])&&":"==z()||l();c[a.slice(1)]=P(z())}return c}l()}return a},T=function(a,b,e){e=S(a,b,e);e=== +w?delete a[b]:a[b]=e},S=function(a,b,e){var h=a[b],f;if("object"==typeof h&&h)if("[object Array]"==u.call(h))for(f=h.length;f--;)T(h,f,e);else B(h,function(a){T(h,a,e)});return e.call(a,b,h)};r.parse=function(a,c){var e,h;b=0;J=""+a;e=P(z());"$"!=z()&&l();b=J=null;return c&&"[object Function]"==u.call(c)?S((h={},h[""]=e,h),"",c):e}}}r.runInContext=N;return r}var K=typeof define==="function"&&define.amd,F={"function":!0,object:!0},G=F[typeof exports]&&exports&&!exports.nodeType&&exports,k=F[typeof window]&& +window||this,t=G&&F[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;!t||t.global!==t&&t.window!==t&&t.self!==t||(k=t);if(G&&!K)N(k,G);else{var L=k.JSON,Q=k.JSON3,M=!1,A=N(k,k.JSON3={noConflict:function(){M||(M=!0,k.JSON=L,k.JSON3=Q,L=Q=null);return A}});k.JSON={parse:A.parse,stringify:A.stringify}}K&&define(function(){return A})}).call(this); diff --git a/platforms/android/assets/www/lib/lodash/.bower.json b/platforms/android/assets/www/lib/lodash/.bower.json new file mode 100644 index 00000000..f8119955 --- /dev/null +++ b/platforms/android/assets/www/lib/lodash/.bower.json @@ -0,0 +1,33 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ], + "homepage": "https://github.com/lodash/lodash", + "_release": "2.4.1", + "_resolution": { + "type": "version", + "tag": "2.4.1", + "commit": "c7aa842eded639d6d90a5714d3195a8802c86687" + }, + "_source": "git://github.com/lodash/lodash.git", + "_target": "~2.4.1", + "_originalSource": "lodash" +} \ No newline at end of file diff --git a/platforms/android/assets/www/lib/lodash/LICENSE.txt b/platforms/android/assets/www/lib/lodash/LICENSE.txt new file mode 100644 index 00000000..49869bba --- /dev/null +++ b/platforms/android/assets/www/lib/lodash/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2013 The Dojo Foundation +Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/platforms/android/assets/www/lib/lodash/bower.json b/platforms/android/assets/www/lib/lodash/bower.json new file mode 100644 index 00000000..a6f139d7 --- /dev/null +++ b/platforms/android/assets/www/lib/lodash/bower.json @@ -0,0 +1,23 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ] +} diff --git a/platforms/android/assets/www/lib/moment/moment.js b/platforms/android/assets/www/lib/moment/moment.js new file mode 100644 index 00000000..c003e95f --- /dev/null +++ b/platforms/android/assets/www/lib/moment/moment.js @@ -0,0 +1,3606 @@ +//! moment.js +//! version : 2.11.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + function isUndefined(input) { + return input === void 0; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + // internal storage for locale config files + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function get_set__set (mom, unit, value) { + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + return isArray(this._months) ? this._months[m.month()] : + this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i'); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + //the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(utils_hooks__hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to begining of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + if (!valid__isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(utils_hooks__hooks.now()); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = ((string || '').match(matcher) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + } else if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(matchOffset, this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this > +localInput; + } else { + return +localInput < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this < +localInput; + } else { + return +this.clone().endOf(units) < +localInput; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + return +this === +localInput; + } else { + inputMs = +localInput; + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input,units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input,units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + delta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // JSON.stringify(new Date(NaN)) === 'null' + return this.isValid() ? this.toISOString() : 'null'; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + // console.log("got", weekYear, week, weekday, "set", date.toISOString()); + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = local__createLocal([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isSameOrAfter = isSameOrAfter; + momentPrototype__proto.isSameOrBefore = isSameOrBefore; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = toJSON; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + momentPrototype__proto.creationData = creationData; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + prototype__proto._monthsRegex = defaultMonthsRegex; + prototype__proto.monthsRegex = monthsRegex; + prototype__proto._monthsShortRegex = defaultMonthsShortRegex; + prototype__proto.monthsShortRegex = monthsShortRegex; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.11.1'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.now = now; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + utils_hooks__hooks.prototype = momentPrototype; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/platforms/android/assets/www/plugins/cordova-plugin-device/www/device.js b/platforms/android/assets/www/plugins/cordova-plugin-device/www/device.js new file mode 100644 index 00000000..977dfc09 --- /dev/null +++ b/platforms/android/assets/www/plugins/cordova-plugin-device/www/device.js @@ -0,0 +1,86 @@ +cordova.define("cordova-plugin-device.device", function(require, exports, module) { +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var argscheck = require('cordova/argscheck'), + channel = require('cordova/channel'), + utils = require('cordova/utils'), + exec = require('cordova/exec'), + cordova = require('cordova'); + +channel.createSticky('onCordovaInfoReady'); +// Tell cordova channel to wait on the CordovaInfoReady event +channel.waitForInitialization('onCordovaInfoReady'); + +/** + * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the + * phone, etc. + * @constructor + */ +function Device() { + this.available = false; + this.platform = null; + this.version = null; + this.uuid = null; + this.cordova = null; + this.model = null; + this.manufacturer = null; + this.isVirtual = null; + this.serial = null; + + var me = this; + + channel.onCordovaReady.subscribe(function() { + me.getInfo(function(info) { + //ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js + //TODO: CB-5105 native implementations should not return info.cordova + var buildLabel = cordova.version; + me.available = true; + me.platform = info.platform; + me.version = info.version; + me.uuid = info.uuid; + me.cordova = buildLabel; + me.model = info.model; + me.isVirtual = info.isVirtual; + me.manufacturer = info.manufacturer || 'unknown'; + me.serial = info.serial || 'unknown'; + channel.onCordovaInfoReady.fire(); + },function(e) { + me.available = false; + utils.alert("[ERROR] Error initializing Cordova: " + e); + }); + }); +} + +/** + * Get device info + * + * @param {Function} successCallback The function to call when the heading data is available + * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) + */ +Device.prototype.getInfo = function(successCallback, errorCallback) { + argscheck.checkArgs('fF', 'Device.getInfo', arguments); + exec(successCallback, errorCallback, "Device", "getDeviceInfo", []); +}; + +module.exports = new Device(); + +}); diff --git a/platforms/android/assets/www/plugins/cordova-plugin-whitelist/whitelist.js b/platforms/android/assets/www/plugins/cordova-plugin-whitelist/whitelist.js new file mode 100644 index 00000000..a2ba8a3d --- /dev/null +++ b/platforms/android/assets/www/plugins/cordova-plugin-whitelist/whitelist.js @@ -0,0 +1,30 @@ +cordova.define("cordova-plugin-whitelist.whitelist", function(require, exports, module) { +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +if (!document.querySelector('meta[http-equiv=Content-Security-Policy]')) { + var msg = 'No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin.'; + console.error(msg); + setInterval(function() { + console.warn(msg); + }, 10000); +} + +}); diff --git a/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js b/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js new file mode 100644 index 00000000..1ec111f1 --- /dev/null +++ b/platforms/android/assets/www/plugins/phonegap-plugin-push/www/push.js @@ -0,0 +1,252 @@ +cordova.define("phonegap-plugin-push.PushNotification", function(require, exports, module) { +/* global cordova:false */ +/* globals window */ + +/*! + * Module dependencies. + */ + +var exec = cordova.require('cordova/exec'); + +/** + * PushNotification constructor. + * + * @param {Object} options to initiate Push Notifications. + * @return {PushNotification} instance that can be monitored and cancelled. + */ + +var PushNotification = function(options) { + this._handlers = { + 'registration': [], + 'notification': [], + 'error': [] + }; + + // require options parameter + if (typeof options === 'undefined') { + throw new Error('The options argument is required.'); + } + + // store the options to this object instance + this.options = options; + + // triggered on registration and notification + var that = this; + var success = function(result) { + if (result && typeof result.registrationId !== 'undefined') { + that.emit('registration', result); + } else if (result && result.additionalData && typeof result.additionalData.callback !== 'undefined') { + var executeFunctionByName = function(functionName, context /*, args */) { + var args = Array.prototype.slice.call(arguments, 2); + var namespaces = functionName.split('.'); + var func = namespaces.pop(); + for (var i = 0; i < namespaces.length; i++) { + context = context[namespaces[i]]; + } + return context[func].apply(context, args); + }; + + executeFunctionByName(result.additionalData.callback, window, result); + } else if (result) { + that.emit('notification', result); + } + }; + + // triggered on error + var fail = function(msg) { + var e = (typeof msg === 'string') ? new Error(msg) : msg; + that.emit('error', e); + }; + + // wait at least one process tick to allow event subscriptions + setTimeout(function() { + exec(success, fail, 'PushNotification', 'init', [options]); + }, 10); +}; + +/** + * Unregister from push notifications + */ + +PushNotification.prototype.unregister = function(successCallback, errorCallback, options) { + if (!errorCallback) { errorCallback = function() {}; } + + if (typeof errorCallback !== 'function') { + console.log('PushNotification.unregister failure: failure parameter not a function'); + return; + } + + if (typeof successCallback !== 'function') { + console.log('PushNotification.unregister failure: success callback parameter must be a function'); + return; + } + + var that = this; + var cleanHandlersAndPassThrough = function() { + if (!options) { + that._handlers = { + 'registration': [], + 'notification': [], + 'error': [] + }; + } + successCallback(); + }; + + exec(cleanHandlersAndPassThrough, errorCallback, 'PushNotification', 'unregister', [options]); +}; + +/** + * Call this to set the application icon badge + */ + +PushNotification.prototype.setApplicationIconBadgeNumber = function(successCallback, errorCallback, badge) { + if (!errorCallback) { errorCallback = function() {}; } + + if (typeof errorCallback !== 'function') { + console.log('PushNotification.setApplicationIconBadgeNumber failure: failure parameter not a function'); + return; + } + + if (typeof successCallback !== 'function') { + console.log('PushNotification.setApplicationIconBadgeNumber failure: success callback parameter must be a function'); + return; + } + + exec(successCallback, errorCallback, 'PushNotification', 'setApplicationIconBadgeNumber', [{badge: badge}]); +}; + +/** + * Get the application icon badge + */ + +PushNotification.prototype.getApplicationIconBadgeNumber = function(successCallback, errorCallback) { + if (!errorCallback) { errorCallback = function() {}; } + + if (typeof errorCallback !== 'function') { + console.log('PushNotification.getApplicationIconBadgeNumber failure: failure parameter not a function'); + return; + } + + if (typeof successCallback !== 'function') { + console.log('PushNotification.getApplicationIconBadgeNumber failure: success callback parameter must be a function'); + return; + } + + exec(successCallback, errorCallback, 'PushNotification', 'getApplicationIconBadgeNumber', []); +}; + +/** + * Listen for an event. + * + * The following events are supported: + * + * - registration + * - notification + * - error + * + * @param {String} eventName to subscribe to. + * @param {Function} callback triggered on the event. + */ + +PushNotification.prototype.on = function(eventName, callback) { + if (this._handlers.hasOwnProperty(eventName)) { + this._handlers[eventName].push(callback); + } +}; + +/** + * Remove event listener. + * + * @param {String} eventName to match subscription. + * @param {Function} handle function associated with event. + */ + +PushNotification.prototype.off = function (eventName, handle) { + if (this._handlers.hasOwnProperty(eventName)) { + var handleIndex = this._handlers[eventName].indexOf(handle); + if (handleIndex >= 0) { + this._handlers[eventName].splice(handleIndex, 1); + } + } +}; + +/** + * Emit an event. + * + * This is intended for internal use only. + * + * @param {String} eventName is the event to trigger. + * @param {*} all arguments are passed to the event listeners. + * + * @return {Boolean} is true when the event is triggered otherwise false. + */ + +PushNotification.prototype.emit = function() { + var args = Array.prototype.slice.call(arguments); + var eventName = args.shift(); + + if (!this._handlers.hasOwnProperty(eventName)) { + return false; + } + + for (var i = 0, length = this._handlers[eventName].length; i < length; i++) { + this._handlers[eventName][i].apply(undefined,args); + } + + return true; +}; + +PushNotification.prototype.finish = function(successCallback, errorCallback, id) { + if (!successCallback) { successCallback = function() {}; } + if (!errorCallback) { errorCallback = function() {}; } + if (!id) { id = 'handler'; } + + if (typeof successCallback !== 'function') { + console.log('finish failure: success callback parameter must be a function'); + return; + } + + if (typeof errorCallback !== 'function') { + console.log('finish failure: failure parameter not a function'); + return; + } + + exec(successCallback, errorCallback, 'PushNotification', 'finish', [id]); +}; + +/*! + * Push Notification Plugin. + */ + +module.exports = { + /** + * Register for Push Notifications. + * + * This method will instantiate a new copy of the PushNotification object + * and start the registration process. + * + * @param {Object} options + * @return {PushNotification} instance + */ + + init: function(options) { + return new PushNotification(options); + }, + + hasPermission: function(successCallback, errorCallback) { + exec(successCallback, errorCallback, 'PushNotification', 'hasPermission', []); + }, + + /** + * PushNotification Object. + * + * Expose the PushNotification object for direct use + * and testing. Typically, you should use the + * .init helper method. + */ + + PushNotification: PushNotification +}; + +}); diff --git a/platforms/android/assets/www/robots.txt b/platforms/android/assets/www/robots.txt new file mode 100644 index 00000000..94174950 --- /dev/null +++ b/platforms/android/assets/www/robots.txt @@ -0,0 +1,3 @@ +# robotstxt.org + +User-agent: * diff --git a/platforms/android/assets/www/scripts/app.js b/platforms/android/assets/www/scripts/app.js new file mode 100644 index 00000000..057cc822 --- /dev/null +++ b/platforms/android/assets/www/scripts/app.js @@ -0,0 +1,249 @@ +// 'use strict'; + +/** + * @ngdoc overview + * @name livewellApp + * @description + * # livewellApp + * + * Main module of the application. + */ +angular + .module('livewellApp', [ + 'ngAnimate', + 'ngCookies', + 'ngResource', + 'ngRoute', + 'ngSanitize', + 'ngTouch', + 'highcharts-ng', + 'angularMoment' + ]) + .config(function ($routeProvider) { + $routeProvider + .when('/', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/main', { + templateUrl: 'views/main.html', + controller: 'MainCtrl' + }) + .when('/about', { + templateUrl: 'views/about.html', + controller: 'AboutCtrl' + }) + .when('/foundations', { + templateUrl: 'views/foundations.html', + controller: 'FoundationsCtrl' + }) + .when('/checkins', { + templateUrl: 'views/checkins.html', + controller: 'CheckinsCtrl' + }) + .when('/daily_review', { + templateUrl: 'views/daily_review.html', + controller: 'DailyReviewCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness/:section', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/instructions', { + templateUrl: 'views/instructions.html', + controller: 'InstructionsCtrl' + }) + .when('/daily_review_summary', { + templateUrl: 'views/daily_review_summary.html', + controller: 'DailyReviewSummaryCtrl' + }) + .when('/daily_review_conclusion', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:intervention_set/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/medications', { + templateUrl: 'views/medications.html', + controller: 'MedicationsCtrl' + }) + .when('/skills', { + templateUrl: 'views/skills.html', + controller: 'SkillsCtrl' + }) + .when('/team', { + templateUrl: 'views/team.html', + controller: 'TeamCtrl' + }) + .when('/intervention', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/intervention/:code', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/exit', { + templateUrl: 'views/exit.html', + controller: 'ExitCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/weekly_check_in', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/weekly_check_in/:questionIndex', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/daily_check_in', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/daily_check_in/:id', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/settings', { + templateUrl: 'views/settings.html', + controller: 'SettingsCtrl' + }) + .when('/localStorageBackupRestore', { + templateUrl: 'views/localstoragebackuprestore.html', + controller: 'LocalstoragebackuprestoreCtrl' + }) + .when('/cms', { + templateUrl: 'views/cms.html', + controller: 'CmsCtrl' + }) + .when('/admin', { + templateUrl: 'views/admin.html', + controller: 'AdminCtrl' + }) + .when('/load_interventions', { + templateUrl: 'views/load_interventions.html', + controller: 'LoadInterventionsCtrl' + }) + .when('/lesson_player/:id', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/:id/:post', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/skills_awareness', { + templateUrl: 'views/skills_awareness.html', + controller: 'SkillsAwarenessCtrl' + }) + .when('/skills_lifestyle', { + templateUrl: 'views/skills_lifestyle.html', + controller: 'SkillsLifestyleCtrl' + }) + .when('/skills_coping', { + templateUrl: 'views/skills_coping.html', + controller: 'SkillsCopingCtrl' + }) + .when('/skills_team', { + templateUrl: 'views/skills_team.html', + controller: 'SkillsTeamCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/ews', { + templateUrl: 'views/ews.html', + controller: 'EwsCtrl' + }) + .when('/ews2', { + templateUrl: 'views/ews2.html', + controller: 'Ews2Ctrl' + }) + .when('/schedule', { + templateUrl: 'views/schedule.html', + controller: 'ScheduleCtrl' + }) + .when('/summary_player', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/summary_player/:id/:post', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/load_interventions_review', { + templateUrl: 'views/load_interventions_review.html', + controller: 'LoadInterventionsReviewCtrl' + }) + .when('/mySkills', { + templateUrl: 'views/myskills.html', + controller: 'MyskillsCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/chartsMedication', { + templateUrl: 'views/chartsmedication.html', + controller: 'ChartsmedicationCtrl' + }) + .when('/chartsSleep', { + templateUrl: 'views/chartssleep.html', + controller: 'ChartssleepCtrl' + }) + .when('/chartsRoutine', { + templateUrl: 'views/chartsroutine.html', + controller: 'ChartsroutineCtrl' + }) + .when('/chartsActivity', { + templateUrl: 'views/chartsactivity.html', + controller: 'ChartsactivityCtrl' + }) + .when('/dailyReviewTester', { + templateUrl: 'views/dailyreviewtester.html', + controller: 'DailyreviewtesterCtrl' + }) + .when('/personalSnapshot', { + templateUrl: 'views/personalsnapshot.html', + controller: 'PersonalsnapshotCtrl' + }) + .when('/home', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/usereditor', { + templateUrl: 'views/usereditor.html', + controller: 'UsereditorCtrl' + }) + .otherwise({ + redirectTo: '/' + }); + }).run(function($rootScope) { + +}); diff --git a/platforms/android/assets/www/scripts/controllers/about.js b/platforms/android/assets/www/scripts/controllers/about.js new file mode 100644 index 00000000..7e72299c --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/about.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AboutCtrl + * @description + * # AboutCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AboutCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/admin.js b/platforms/android/assets/www/scripts/controllers/admin.js new file mode 100644 index 00000000..03b340f1 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/admin.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AdminCtrl + * @description + * # AdminCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AdminCtrl', function ($scope,Questions) { + + }); diff --git a/platforms/android/assets/www/scripts/controllers/awareness.js b/platforms/android/assets/www/scripts/controllers/awareness.js new file mode 100644 index 00000000..883f8e80 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/awareness.js @@ -0,0 +1,50 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AwarenessCtrl + * @description + * # AwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AwarenessCtrl', function ($scope,UserData) { + + //awareness variables + $scope.awareness = UserData.query('awareness'); + $scope.intervention_anchors = UserData.query('anchors'); + $scope.plan = UserData.query('plan'); + + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + + $scope.loadAnchors = function(){ + $scope.showAnchors = true; + $scope.showAction = false; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-anchors').addClass('btn-active'); + } + + $scope.loadAction = function(){ + $scope.showAnchors = false; + $scope.showAction = true; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-action').addClass('btn-active'); + } + + $scope.loadPlan = function(){ + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + } + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/backup b/platforms/android/assets/www/scripts/controllers/backup new file mode 100644 index 00000000..d87a458c --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/backup @@ -0,0 +1 @@ +"{\"awareness\":\"[{\\\"userId\\\":\\\"test\\\",\\\"order\\\":3,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"+2\\\",\\\"name\\\":\\\"Mild Up\\\",\\\"id\\\":\\\"cdd38c91ddf29885\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":4,\\\"value\\\":\\\"+1\\\",\\\"name\\\":\\\"Slight Up\\\",\\\"id\\\":\\\"d612cfee454b4a2a\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":5,\\\"value\\\":\\\"0\\\",\\\"name\\\":\\\"Balanced\\\",\\\"id\\\":\\\"83b912bed2eee8cd\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":6,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-1\\\",\\\"name\\\":\\\"Slight Down\\\",\\\"id\\\":\\\"529da655f43f3853\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":7,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-2\\\",\\\"name\\\":\\\"Mild Down\\\",\\\"id\\\":\\\"186ca99b9fa64874\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":8,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-3\\\",\\\"name\\\":\\\"Moderate Down\\\",\\\"id\\\":\\\"a4737da1b0cb1b0f\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":9,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-4\\\",\\\"name\\\":\\\"Severe Down\\\",\\\"id\\\":\\\"07f10ba389bdf871\\\"},{\\\"name\\\":\\\"Severe Up\\\",\\\"order\\\":1,\\\"response\\\":\\\"Crisis, call 911\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+4\\\",\\\"id\\\":\\\"bc86889da8728a75\\\"},{\\\"name\\\":\\\"Moderate Up\\\",\\\"order\\\":2,\\\"response\\\":\\\"Work closely with your psychiatrist\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+3\\\",\\\"id\\\":\\\"bf79863b86ad795f\\\"}]\",\"medications\":\"[{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Paxil\\\",\\\"dose\\\":\\\"30mg\\\",\\\"when\\\":\\\"twice daily\\\",\\\"id\\\":\\\"1207f5105ded9947\\\"},{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Havidol\\\",\\\"dose\\\":\\\"100g\\\",\\\"when\\\":\\\"every 5 minutes\\\",\\\"id\\\":\\\"1e3cf5b135943a7d\\\"}]\",\"pound\":\"[\\\"user\\\",\\\"pound\\\"]\",\"questioncriteria\":\"[{\\\"levelOrder\\\":\\\"1\\\",\\\"levelOrderValue\\\":\\\"1\\\",\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"section\\\":\\\"medication\\\",\\\"id\\\":\\\"0b60522013b62834\\\"}]\",\"questionresponses\":\"[{\\\"label\\\":\\\"Not at all\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"6f04febc1dcd9901\\\"},{\\\"label\\\":\\\"Several days\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"06baf3eab84568a9\\\"},{\\\"label\\\":\\\"More than half the days\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"2255a56c9a5d7840\\\"},{\\\"label\\\":\\\"Nearly every day\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"2b8171b28d4a9872\\\"},{\\\"label\\\":\\\" I often feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"dcbcb90d9073f8b9\\\"},{\\\"label\\\":\\\" I feel happier or more cheerful than usual most of the time.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"e788aab4046c2bcb\\\"},{\\\"label\\\":\\\"I feel happier or more cheerful than usual all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"7e6bdf02e6c088d5\\\"},{\\\"label\\\":\\\" I occasionally feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"8afbd4f2cb39a841\\\"},{\\\"label\\\":\\\" I occasionally feel more self-confident than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"9b55a9e0c9e35a08\\\"},{\\\"label\\\":\\\" I often feel more self-confident than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"3b32f497db74d831\\\"},{\\\"label\\\":\\\" I feel more self-confident than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"b82d2f1d064b39f5\\\"},{\\\"label\\\":\\\" I feel extremely self-confident all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\" 3\\\",\\\"id\\\":\\\"e9634a047324d807\\\"},{\\\"label\\\":\\\" I occasionally talk more than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"248dd7f49401b816\\\"},{\\\"label\\\":\\\" I occasionally need less sleep than usual\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"26daf6c957e1d83b\\\"},{\\\"label\\\":\\\" I frequently need less sleep than usual\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"c6b337238dac09cb\\\"},{\\\"label\\\":\\\" I often need less sleep than usual\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"a5938f5841d23a8d\\\"},{\\\"label\\\":\\\" I can go all day and night without any sleep and still not feel tired.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"dd04b42fb498a867\\\"},{\\\"label\\\":\\\" I talk constantly and cannot be interrupted.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"95c03e5561173858\\\"},{\\\"label\\\":\\\" I frequently talk more than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"31d48584769878d1\\\"},{\\\"label\\\":\\\" I often talk more than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"ee97165355d88836\\\"},{\\\"label\\\":\\\" I have occasionally been more active than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"bbfc7642a646194e\\\"},{\\\"label\\\":\\\" I have often been more active than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"d62f39be9109c8fe\\\"},{\\\"label\\\":\\\" I have frequently been more active than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"d1c802de87aefa16\\\"},{\\\"label\\\":\\\" I am constantly active or on the go all the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"b1121bbd24aaf9e7\\\"},{\\\"responseGroupId\\\":\\\"a1\\\",\\\"responseGroupLabel\\\":\\\"a1\\\",\\\"order\\\":\\\"1\\\",\\\"label\\\":\\\"Page 1\\\",\\\"value\\\":\\\"1\\\",\\\"goToCriteria\\\":\\\"\\\",\\\"id\\\":\\\"d5ba075d4538bbac\\\"}]\",\"questions\":\"[{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING DOWN, DEPRESSED, OR HOPELESS?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"phq2\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"07189e9eea498a07\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by a POOR APPETITE OR OVEREATING?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"phq5\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"d4c04f0d4f0e0bc7\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING BAD ABOUT YOURSELF - OR THAT YOU ARE A FAILURE OR HAVE LET YOURSELF OR YOUR FAMILY DOWN?\\\",\\\"order\\\":6,\\\"questionDataLabel\\\":\\\"phq6\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"a1d7af08b11de878\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE CONCENTRATING ON THINGS, SUCH AS READING THE NEWSPAPER OR WATCHING TELEVISION?\\\",\\\"order\\\":7,\\\"questionDataLabel\\\":\\\"phq7\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"c317fef4e47308d2\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by MOVING OR SPEAKING SO SLOWLY THAT OTHER PEOPLE COULD HAVE NOTICED? OR THE OPPOSITE - BEING SO FIDGETY OR RESTLESS THAT YOU HAVE BEEN MOVING AROUND A LOT MORE THAN USUAL?\\\",\\\"order\\\":8,\\\"questionDataLabel\\\":\\\"phq8\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"3144ed93440c28ec\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by THOUGHTS THAT YOU WOULD BE BETTER OFF DEAD, OR OF HURTING YOURSELF?\\\",\\\"order\\\":9,\\\"questionDataLabel\\\":\\\"phq9\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"decf5d36ced538d0\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE FALLING OR STAYING ASLEEP, OR SLEEPING TOO MUCH?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"phq3\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"2bbfc1e863d4b98a\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by LITTLE INTEREST OR PLEASURE IN DOING THINGS?\\\",\\\"order\\\":1,\\\"questionDataLabel\\\":\\\"phq1\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responses\\\":\\\"{}\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"f99a845eea530b2c\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING TIRED OR HAVING LITTLE ENERGY?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"phq4\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"4632c4b2ab01d86a\\\"},{\\\"questionGroup\\\":\\\"phq9\\\",\\\"order\\\":0,\\\"type\\\":\\\"html\\\",\\\"content\\\":\\\"

Welcome to the Weekly Check-In!

\\\",\\\"questionDataLabel\\\":\\\"\\\",\\\"responseGroupId\\\":\\\"\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"d485d4c8d859f8cc\\\"},{\\\"questionGroup\\\":\\\"amrs\\\",\\\"order\\\":1,\\\"type\\\":\\\"radio\\\",\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"questionDataLabel\\\":\\\"amrs1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"90c7b6d682c7187f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"amrs2\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"430194fe140b18e8\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"amrs4\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"ba2637d288da182f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"amrs3\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"23fae8ba4842c866\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"amrs5\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"53c964a687dff873\\\"},{\\\"content\\\":\\\"Where should I go next\\\",\\\"hideBackButton\\\":true,\\\"hideNextButton\\\":true,\\\"order\\\":1,\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"questionDataLabel\\\":\\\"a1\\\",\\\"questionGroup\\\":\\\"cyoa\\\",\\\"responseGroupId\\\":\\\"a\\\",\\\"showBackButton\\\":\\\"false\\\",\\\"showNextButton\\\":\\\"false\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"aed39f2a638cbb1c\\\"}]\",\"responsecriteria\":\"[]\",\"smarts\":\"[]\",\"staticcontent\":\"[{\\\"content\\\":\\\"Put in awesome text to teach people about livewell\\\",\\\"dateTimeUpdated\\\":\\\"NOW\\\",\\\"sectionKey\\\":\\\"instructions\\\",\\\"id\\\":\\\"fba0d88650522987\\\"}]\",\"team\":\"[{\\\"name\\\":\\\"Donatella Jackson\\\",\\\"role\\\":\\\"Nurse\\\",\\\"phone\\\":\\\"555.555.5555\\\",\\\"userId\\\":\\\"test\\\",\\\"id\\\":\\\"3e6ac0f8ce202a51\\\"}]\",\"user\":\"[{\\\"id\\\":1,\\\"userID\\\":null,\\\"groupID\\\":null,\\\"loginKey\\\":null,\\\"created_at\\\":\\\"2014-09-18T22:29:39.609Z\\\"}]\",\"userresponses\":\"[]\"}" \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/charts.js b/platforms/android/assets/www/scripts/controllers/charts.js new file mode 100644 index 00000000..b46fb271 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/charts.js @@ -0,0 +1,192 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ChartsactivityCtrl + * @description + * # ChartsactivityCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ChartsCtrl', function($scope, $timeout,Pound) { + + $scope.pageTitle = 'My Charts'; + + + $timeout(function(){$('td').tooltip()}); + + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn'); + $scope.recodedResponses = JSON.parse(localStorage['recodedResponses']); + $scope.timezoneoffset = new Date().getTimezoneOffset() / 60; + + $scope.graph = [] + if ($scope.dailyCheckInResponseArray.length > 7) { + $scope.graph[6] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]; + $scope.graph[5] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]; + $scope.graph[4] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]; + $scope.graph[3] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]; + $scope.graph[2] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]; + $scope.graph[1] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]; + $scope.graph[0] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]; + } else { + $scope.graph = $scope.dailyCheckInResponseArray; + } + + console.log($scope.graph); + + $scope.wellness = []; + $scope.dates = []; + + for (var i = 0; i < $scope.graph.length; i++) { + debugger; + $scope.wellness.push(parseInt($scope.graph[i].wellness)); + $scope.dates.push(moment($scope.graph[i].created_at).format('MM-DD')); + } + + + + $scope.routine = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','missed two']; + break; + case 1: + returnvalue = ['b','missed one']; + break; + case 2: + returnvalue = ['a','in range']; + break; + } + return returnvalue + } + }; + + $scope.medication = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','took none']; + break; + case 0.5: + returnvalue = ['b','took some']; + break; + case 1: + returnvalue = ['a','took all']; + break; + } + return returnvalue + } + }; + + $scope.sleep = { + class: function(value) { + var returnvalue = null; + + switch (value) { + case -1: + returnvalue = ['c','too little']; + break; + case -0.5: + returnvalue = ['b','too little']; + break; + case 0: + returnvalue = ['a','in range']; + break; + case .5: + returnvalue = ['b','too much']; + break; + case 1: + returnvalue = ['c','too much']; + break; + } + + return returnvalue + } + }; + + + + + Highcharts.theme = { + exporting: { + enabled: false + }, + chart: { + backgroundColor: 'transparent', + style: { + fontFamily: "sans-serif" + }, + plotBorderColor: '#606063' + }, + yAxis: { + max:3, + min:-3, + gridLineColor: '#707073', + labels: { + style: { + color: '#E0E0E3' + } + }, + lineColor: 'white', + minorGridLineColor: '#505053', + minorGridLineWidth: '1.5', + tickColor: '#707073', + }, + // special colors for some of the + legendBackgroundColor: 'rgba(0, 0, 0, 0.5)', + background2: '#505053', + dataLabelsColor: '#B0B0B3', + textColor: '#C0C0C0', + contrastTextColor: '#F0F0F3', + maskColor: 'rgba(255,255,255,0.3)' + }; + + Highcharts.setOptions(Highcharts.theme); + + $scope.config = { + title: { + text: ' ', + x: -20, //center, + enabled: false + }, + subtitle: { + text: '', + x: -20 + }, + xAxis: { + categories: $scope.dates + }, + yAxis: { + title: { + text: '' + }, + plotLines: [{ + value: 0, + width: 1.5, + color: 'white' + }], + labels: { + enabled: false + } + }, + tooltip: { + valueSuffix: '', + enabled: false + }, + legend: { + layout: 'vertical', + align: 'right', + verticalAlign: 'middle', + borderWidth: 0, + enabled: false + }, + series: [{ + showInLegend: false, + name: 'Wellness', + data: $scope.wellness + }] + }; + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/checkins.js b/platforms/android/assets/www/scripts/controllers/checkins.js new file mode 100644 index 00000000..a65a9f33 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/checkins.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CheckinsCtrl + * @description + * # CheckinsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('CheckinsCtrl', function ($scope, $location) { + $scope.pageTitle = 'Check Ins'; + + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/cms.js b/platforms/android/assets/www/scripts/controllers/cms.js new file mode 100644 index 00000000..48226abc --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/cms.js @@ -0,0 +1,70 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CmsCtrl + * @description + * # CmsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('CmsCtrl', function ($scope,Questions) { + + + $scope.formFieldTypes = ['checkbox','radio','html','text','textarea','select','email','time','phone','url']; + + $scope.questionGroups = Questions.uniqueQuestionGroups(); + $scope.questions = Questions.questions; + $scope.responses = Questions.responses; + $scope.questionCriteria = Questions.questionCriteria; + $scope.responseCriteria = Questions.responseCriteria; + + console.log(Questions); + + $scope.viewTypes = [{name:'Table', value:'table'},{name:'Map', value:'map'}]; + $scope.viewType = 'table'; + $scope.questionGroup = 'cyoa'; + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + + $scope.showGroup = function(){ + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + console.log($scope.selectedQuestions); + + } + +$scope.editResponses = function(id){ + $scope.modalTitle = 'Edit Responses'; + $scope.responseGroupId = id; + $scope.showResponses = _.where($scope.responses,{responseGroupId:$scope.responseGroupId}); + $scope.uniqueResponseGroups = _.pluck(_.uniq($scope.responses,'responseGroupId'),'responseGroupId'); + $scope.goesToOptions = $scope.selectedQuestions; + $("#responseModal").modal(); +} + +$scope.saveResponses = function(id){ + $("#responseModal").modal('toggle'); + Questions.save('responses',$scope.responses); + Questions.save('responseCriteria',$scope.responseCriteria); +} + + + +$scope.editQuestion = function(id){ + +} + +$scope.addQuestion = function(id){ + +} +$scope.deleteQuestion = function(id){ + +} + +$scope.editCriteria = function(id){ + +} + + + + +}); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/daily_check_in.js b/platforms/android/assets/www/scripts/controllers/daily_check_in.js new file mode 100644 index 00000000..3076cfa5 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/daily_check_in.js @@ -0,0 +1,500 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyCheckInCtrl + * @description + * # DailyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyCheckInCtrl', function($scope, $location, $routeParams, Pound, Guid) { + $scope.pageTitle = 'Daily Check In'; + + $scope.dailyCheckIn = { + gotUp: '', + toBed: '', + wellness: '', + medications: '', + startTime: new Date() + }; + + $scope.emergency = false; + + $scope.warningPhoneNumber = null; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0] != undefined) { + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + } else { + $scope.phoneNumber = '312-503-1886'; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachNumber = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].phone; + } else { + $scope.coachNumber = '312-503-1886'; + } + + $scope.responses = [{ + order: 1, + callCoach: true, + response: '-4', + label: '-4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a -4, if this is correct, close and press submit.' + }, { + order: 2, + callCoach: false, + response: '-3', + label: '-3', + tailoredMessage: 'some message' + }, { + order: 3, + callCoach: false, + response: '-2', + label: '-2', + tailoredMessage: 'some message' + }, { + order: 4, + callCoach: false, + response: '-1', + label: '-1', + tailoredMessage: 'some message' + }, { + order: 5, + callCoach: false, + response: '0', + label: '0', + tailoredMessage: 'some message' + }, { + order: 6, + callCoach: false, + response: '1', + label: '+1', + tailoredMessage: 'some message' + }, { + order: 7, + callCoach: false, + response: '2', + label: '+2', + tailoredMessage: 'some message' + }, { + order: 8, + callCoach: false, + response: '3', + label: '+3', + tailoredMessage: 'some message' + }, { + order: 9, + callCoach: true, + response: '4', + label: '+4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a +4, if this is correct, close and press submit.' + }]; + + $scope.times = [{ + value: "0000", + label: "12:00AM" + }, { + value: "0030", + label: "12:30AM" + }, { + value: "0100", + label: "1:00AM" + }, { + value: "0130", + label: "1:30AM" + }, { + value: "0200", + label: "2:00AM" + }, { + value: "0230", + label: "2:30AM" + }, { + value: "0300", + label: "3:00AM" + }, { + value: "0330", + label: "3:30AM" + }, { + value: "0400", + label: "4:00AM" + }, { + value: "0430", + label: "4:30AM" + }, { + value: "0500", + label: "5:00AM" + }, { + value: "0530", + label: "5:30AM" + }, { + value: "0600", + label: "6:00AM" + }, { + value: "0630", + label: "6:30AM" + }, { + value: "0700", + label: "7:00AM" + }, { + value: "0730", + label: "7:30AM" + }, { + value: "0800", + label: "8:00AM" + }, { + value: "0830", + label: "8:30AM" + }, { + value: "0900", + label: "9:00AM" + }, { + value: "0930", + label: "9:30AM" + }, { + value: "1000", + label: "10:00AM" + }, { + value: "1030", + label: "10:30AM" + }, { + value: "1100", + label: "11:00AM" + }, { + value: "1130", + label: "11:30AM" + }, { + value: "1200", + label: "12:00PM" + }, { + value: "1230", + label: "12:30PM" + }, { + value: "1300", + label: "1:00PM" + }, { + value: "1330", + label: "1:30PM" + }, { + value: "1400", + label: "2:00PM" + }, { + value: "1430", + label: "2:30PM" + }, { + value: "1500", + label: "3:00PM" + }, { + value: "1530", + label: "3:30PM" + }, { + value: "1600", + label: "4:00PM" + }, { + value: "1630", + label: "4:30PM" + }, { + value: "1700", + label: "5:00PM" + }, { + value: "1730", + label: "5:30PM" + }, { + value: "1800", + label: "6:00PM" + }, { + value: "1830", + label: "6:30PM" + }, { + value: "1900", + label: "7:00PM" + }, { + value: "1930", + label: "7:30PM" + }, { + value: "2000", + label: "8:00PM" + }, { + value: "2030", + label: "8:30PM" + }, { + value: "2100", + label: "9:00PM" + }, { + value: "2130", + label: "9:30PM" + }, { + value: "2200", + label: "10:00PM" + }, { + value: "2230", + label: "10:30PM" + }, { + value: "2300", + label: "11:00PM" + }, { + value: "2330", + label: "11:30PM" + }]; + + $scope.hours = [{ + value: "0", + label: "0 hrs" + }, { + value: "0.5", + label: "0.5 hrs" + }, { + value: "1", + label: "1 hrs" + }, { + value: "1.5", + label: "1.5 hrs" + }, { + value: "2", + label: "2 hrs" + }, { + value: "2.5", + label: "2.5 hrs" + }, { + value: "3", + label: "3 hrs" + }, { + value: "3.5", + label: "3.5 hrs" + }, { + value: "4", + label: "4 hrs" + }, { + value: "4.5", + label: "4.5 hrs" + }, { + value: "5", + label: "5 hrs" + }, { + value: "5.5", + label: "5.5 hrs" + }, { + value: "6", + label: "6 hrs" + }, { + value: "6.5", + label: "6.5 hrs" + }, { + value: "7", + label: "7 hrs" + }, { + value: "7.5", + label: "7.5 hrs" + }, { + value: "8", + label: "8 hrs" + }, { + value: "8.5", + label: "8.5 hrs" + }, { + value: "9", + label: "9 hrs" + }, { + value: "9.5", + label: "9.5 hrs" + }, { + value: "10", + label: "10 hrs" + }, { + value: "10.5", + label: "10.5 hrs" + }, { + value: "11", + label: "11 hrs" + }, { + value: "11.5", + label: "11.5 hrs" + }, { + value: "12", + label: "12 hrs" + }, { + value: "12.5", + label: "12.5 hrs" + }, { + value: "13", + label: "13 hrs" + }, { + value: "13.5", + label: "13.5 hrs" + }, { + value: "14", + label: "14 hrs" + }, { + value: "14.5", + label: "14.5 hrs" + }, { + value: "15", + label: "15 hrs" + }, { + value: "15.5", + label: "15.5 hrs" + }, { + value: "16", + label: "16 hrs" + }, { + value: "16.5", + label: "16.5 hrs" + }, { + value: "17", + label: "17 hrs" + }, { + value: "17.5", + label: "17.5 hrs" + }, { + value: "18", + label: "18 hrs" + }, { + value: "18.5", + label: "18.5 hrs" + }, { + value: "19", + label: "19 hrs" + }, { + value: "19.5", + label: "19.5 hrs" + }, { + value: "20", + label: "20 hrs" + }, { + value: "20.5", + label: "20.5 hrs" + }, { + value: "21", + label: "21 hrs" + }, { + value: "21.5", + label: "21.5 hrs" + }, { + value: "22", + label: "22 hrs" + }, { + value: "22.5", + label: "22.5 hrs" + }, { + value: "23", + label: "23 hrs" + }, { + value: "23.5", + label: "23.5 hrs" + }, { + value: "24", + label: "24 hrs" + }]; + + + $scope.saveCheckIn = function() { + + var allAnswersFinished = $scope.dailyCheckIn.gotUp != '' & $scope.dailyCheckIn.toBed != '' & $scope.dailyCheckIn.medications != '' & $scope.dailyCheckIn.wellness != '' & $scope.dailyCheckIn.sleepDuration != ''; + + if (allAnswersFinished) { + $scope.dailyCheckIn.endTime = new Date(); + if ($scope.dailyCheckIn.wellness == 4 || $scope.dailyCheckIn.wellness == -4) { + $scope.emergency = true; + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: 'User answered with a ' + $scope.dailyCheckIn.wellness + ' on the daily check in' + }).execute(); + } + + Pound.add('dailyCheckIn', $scope.dailyCheckIn); + $scope.nextId = $routeParams.id; + + var sessionID = Guid.create(); + + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'toBed', + questionValue: $scope.dailyCheckIn.toBed + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'gotUp', + questionValue: $scope.dailyCheckIn.gotUp + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'wellness', + questionValue: $scope.dailyCheckIn.wellness + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'medications', + questionValue: $scope.dailyCheckIn.medications + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'sleepDuration', + questionValue: $scope.dailyCheckIn.sleepDuration + }).execute(); + + $("#continue").modal(); + } else { + $("#warning").modal(); + $scope.selectedWarningMessage = 'You must respond to all questions on this page!'; + } + } + + $scope.highlight = function(id, response) { + + $('label').removeClass('highlight'); + $(id).addClass('highlight'); + $scope.dailyCheckIn.wellness = response; + + } + + $scope.warning = function(response) { + + if (response.warningMessage.length > 0) { + $scope.selectedWarningMessage = response.warningMessage; + if (response.callCoach == true) { + $scope.warningPhoneNumber = $scope.phoneNumber; + } else { + $scope.warningPhoneNumber = null; + } + $("#warning").modal(); + } + + + } + + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/daily_review.js b/platforms/android/assets/www/scripts/controllers/daily_review.js new file mode 100644 index 00000000..b83c2238 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/daily_review.js @@ -0,0 +1,150 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewCtrl + * @description + * # DailyReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewCtrl', function($scope, $routeParams, $timeout, UserData, Pound, DailyReviewAlgorithm, ClinicalStatusUpdate, Guid) { + $scope.pageTitle = "Daily Review"; + + Pound.add('dailyReviewStarted', { + userStarted: true, + code: $scope.code + }); + + $timeout(function(){$('.add-tooltip').tooltip()}); + + $scope.routineData = UserData.query('sleepRoutineRanges'); + + $scope.cleanTime = function(militaryTime){ + + var time = militaryTime.toString(); + var cleanTime = ''; + + if (time[0] == '0' && time[1] == '0'){ + cleanTime = '12:' + time[2] + time[3]; + } else if( time[0] == '0'){ + cleanTime = time[1] + ":" + time[2] + time[3]; + } else if (parseInt(time[0] + time[1]) > 12 ){ + cleanTime = (parseInt(time[0] + time[1]) - 12) + ":" + time[2] + time[3]; + } else { + cleanTime = time[0] + time[1] + ":" + time[2] + time[3]; + } + + if (parseInt(militaryTime) > 1200){ + return cleanTime + ' PM' + } + else { + return cleanTime + ' AM' + } + + } + + $scope.interventionGroups = UserData.query('dailyReview'); + + $scope.updatedClinicalStatus = {}; + + var runAlgorithm = function(Pound) { + var object = {}; + var sessionID = Guid.create(); + + object.code = DailyReviewAlgorithm.code(); + $scope.updatedClinicalStatus = ClinicalStatusUpdate.execute(); + + (new PurpleRobot()).emitReading('livewell_dailyreviewcode', { + sessionGUID: sessionID, + code: object.code + }).execute(); + (new PurpleRobot()).emitReading('livewell_clinicalstatus', { + sessionGUID: sessionID, + status: $scope.updatedClinicalStatus + }).execute(); + + return object + + } + + $scope.code = runAlgorithm().code; + + //TO REMOVE + $scope.recodedResponses = DailyReviewAlgorithm.recodedResponses(); + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn') + $scope.dailyCheckInResponses = ' |today| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]) + ' |t-1| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]) + ' |t-2| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]) + ' |t-3| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]) + ' |t-4| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]) + ' |t-5| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]) + ' |t-6| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]); + + //STOP REMOVE + + $scope.percentages = DailyReviewAlgorithm.percentages(); + + $(".modal-backdrop").remove(); + + var latestWarning = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1]; + + if (latestWarning != undefined) { + if (latestWarning.shownToUser == undefined) { + $scope.warningMessage = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1].message + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: $scope.warningMessage + }).execute(); + + latestWarning.shownToUser = true; + Pound.update('clinical_reachout', latestWarning); + $scope.showWarning = true; + $("#warning").modal(); + } + } + + $scope.dailyReviewCategory = _.where($scope.interventionGroups, { + code: $scope.code + })[0].questionSet; + + $scope.interventionResponse = function() { + + if ($scope.code == 1 || $scope.code == 2) { + return 'Please contact your care provider or hospital'; + } else { + if (_.where($scope.interventionGroups, { + code: $scope.code + })[0] != undefined) { + if (typeof(_.where($scope.interventionGroups, { + code: $scope.code + })[0].response) == 'object') { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response[Math.floor((Math.random() * _.where($scope.interventionGroups, { + code: $scope.code + })[0].response.length))] + } else { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response + } + } + } + } + + + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/daily_review_conclusion.js b/platforms/android/assets/www/scripts/controllers/daily_review_conclusion.js new file mode 100644 index 00000000..d0c7af3f --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/daily_review_conclusion.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewConclusionCtrl + * @description + * # DailyReviewConclusionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewConclusionCtrl', function ($scope, $sanitize) { + $scope.pageTitle = "Daily Review"; + $scope.lastNotification = "Keep up the good work!
Check out your medication plan in Reduce Risk."; + }); diff --git a/platforms/android/assets/www/scripts/controllers/daily_review_summary.js b/platforms/android/assets/www/scripts/controllers/daily_review_summary.js new file mode 100644 index 00000000..9d9eb9db --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/daily_review_summary.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewSummaryCtrl + * @description + * # DailyReviewSummaryCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewSummaryCtrl', function ($scope) { + $scope.pageTitle = "Daily Review"; + }); diff --git a/platforms/android/assets/www/scripts/controllers/dailyreviewtester.js b/platforms/android/assets/www/scripts/controllers/dailyreviewtester.js new file mode 100644 index 00000000..33415dc5 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/dailyreviewtester.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyreviewtesterCtrl + * @description + * # DailyreviewtesterCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyreviewtesterCtrl', function ($scope,Pound,dailyReview) { + + $scope.collection = Pound.find('dailyCheckIn'); + + $scope.proposedIntervention = dailyReview.getCode(); + + }); diff --git a/platforms/android/assets/www/scripts/controllers/ews.js b/platforms/android/assets/www/scripts/controllers/ews.js new file mode 100644 index 00000000..15f57db5 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/ews.js @@ -0,0 +1,38 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('EwsCtrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews = UserData.query('ews'); + + $scope.onClick=function(){ + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews', + questionDataLabel: 'ews', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + + $location.path('/ews2'); + + + } + + }); diff --git a/platforms/android/assets/www/scripts/controllers/ews2.js b/platforms/android/assets/www/scripts/controllers/ews2.js new file mode 100644 index 00000000..f57c3cf7 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/ews2.js @@ -0,0 +1,41 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('Ews2Ctrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews2 = UserData.query('ews2'); + + $scope.onClick=function(){ + + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews2', + questionDataLabel: 'ews2', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + console.log(payload); + + $location.path('/'); + + } + + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/exit.js b/platforms/android/assets/www/scripts/controllers/exit.js new file mode 100644 index 00000000..064b8b5c --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/exit.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ExitCtrl + * @description + * # ExitCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ExitCtrl', function ($scope) { + + navigator.app.exitApp(); + + }); diff --git a/platforms/android/assets/www/scripts/controllers/fetch_content.js b/platforms/android/assets/www/scripts/controllers/fetch_content.js new file mode 100644 index 00000000..6039c3de --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/fetch_content.js @@ -0,0 +1,72 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FetchContentCtrl + * @description + * # FetchContentCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('FetchContentCtrl', function ($scope,$http) { + + var SERVER_LOCATION = 'https://livewell2.firebaseio.com/'; + var SECURE_CONTENT = 'https://mohrlab.northwestern.edu/livewell-dash/content/'; + var APP_COLLECTIONS_ROUTE = 'appcollections'; + var USER_ID = $scope.userID; + var ROUTE_SUFFIX = '.json'; + + $scope.error = ''; + $scope.errorColor = 'white'; + $scope.errorClass = ''; + + var downloadContent = function(app_collections){ + + if($scope.userID != undefined){localStorage['userID'] = $scope.userID; } + + _.each(app_collections,function(el){ + $http.get(SERVER_LOCATION + "users/" + localStorage['userID'] + "/" + el.route + ROUTE_SUFFIX ) + .success(function(response) { + + if(el.route == 'team' && response == null){ + alert('THE USER HAS NOT BEEN CONFIGURED!'); + } + + if (response.length != undefined){ + localStorage[el.route] = JSON.stringify(_.compact(response)); + } + else { + localStorage[el.route] = JSON.stringify(response); + } + }).error(function(err) { + $scope.error = 'Error on: ' + el.label; + $scope.errorColor = 'red'; + }); + }) + } + + $scope.fetchSecureContent = function(){ + + $http.get(SECURE_CONTENT +'?user='+ localStorage['userID'] +'&token=' + localStorage['registrationid']) + .success(function(content) { + localStorage['secureContent'] = JSON.stringify(content); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + $scope.fetchContent = function(){ + $scope.errorColor = 'green'; + $scope.fetchSecureContent(); + $http.get(SERVER_LOCATION + APP_COLLECTIONS_ROUTE + ROUTE_SUFFIX) + .success(function(app_collections) { + downloadContent(_.compact(app_collections)); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/foundations.js b/platforms/android/assets/www/scripts/controllers/foundations.js new file mode 100644 index 00000000..3eb01464 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/foundations.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FoundationsCtrl + * @description + * # FoundationsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('FoundationsCtrl', function ($scope) { + + $scope.pageTitle = "Foundations"; + + $scope.mainLinks = [ + {name:"Overview", id:162, post:'foundations', type:'lesson_player'}, + {name:"Basic Facts ", id:183, post:'foundations', type:'lesson_player'}, + {name:"Medications", id:184, post:'foundations', type:'lesson_player'}, + {name:"Lifestyle Skills", id:185, post:'foundations', type:'lesson_player'}, + {name:"Coping Skills", id:186, post:'foundations', type:'lesson_player'}, + {name:"Team", id:187, post:'foundations', type:'lesson_player'}, + {name:"Awareness", id:188, post:'foundations', type:'lesson_player'}, + {name:"Action", id:189, post:'foundations', type:'lesson_player'}, + {name:"Conclusion", id:250, post:'foundations', type:'lesson_player'}] + + }); diff --git a/platforms/android/assets/www/scripts/controllers/home.js b/platforms/android/assets/www/scripts/controllers/home.js new file mode 100644 index 00000000..f4daefec --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/home.js @@ -0,0 +1,121 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:HomeCtrl + * @description + * # HomeCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('HomeCtrl', function ($scope, Pound) { + + + var possibleGreetings = ['Welcome back!','Hello!','Greetings!','Good to see you!']; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + var requiredUserCollections = []; + + $scope.appConfigured = localStorage['appConfigured']; + + $scope.verifyUserContent = function(){ + + $scope.errorVerifyUserColor = 'green'; + } + + $scope.startTrial = function(){ + $scope.startDate = new Date().getDay() + localStorage['appConfigured'] = true; + window.location.href = ""; + } + + $scope.dailyCheckInCompleteToday = function(){ + + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + + function dropTime(dt){ + + var datetime = dt; + + datetime.setHours(0) + datetime.setMinutes(0); + datetime.setSeconds(0); + datetime.setMilliseconds(0); + + return datetime.toString() + + } + + if (dropTime(mostRecentResponseDateTime) == dropTime(new Date()) ){ + return true + } else { + return false + } + + }; + + $scope.weeklyCheckInCompleteThisWeek = function(){ + + var collection = Pound.find('weeklyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + var now = moment(new Date()); + var lastSundayMorning = moment(new Date()).subtract(new Date().getDay(),'d').set({hour:0,minute:0,second:0,millisecond:0}); + + var validResponse = moment(mostRecentResponseDateTime).isAfter(lastSundayMorning) && moment(mostRecentResponseDateTime).isBefore(now); + + if (collection.length == 0){ + return false + } + else if (validResponse){ + return true + } else { + return false + } + + }; + + $scope.dailyReviewCompleteToday = function(){ + var dailyReviewComplete = false; + var thisMorning = moment(new Date()).set({hour:0,minute:0,second:0,millisecond:0}); + + var collection = Pound.find('dailyReviewStarted'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + if(moment(mostRecentResponseDateTime).isAfter(thisMorning)){ + + dailyReviewComplete = true; + } + + return dailyReviewComplete + + + } + + $scope.lastDailyCheckInWasEmergency = function(){ + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + + if(mostRecentResponse.wellness != '-4' && mostRecentResponse.wellness != '4'){ + return false + } + else{ + return true + } + } + + $scope.greeting = possibleGreetings[Math.floor(Math.random()*possibleGreetings.length)]; + + $(".modal-backdrop").remove(); + + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/instructions.js b/platforms/android/assets/www/scripts/controllers/instructions.js new file mode 100644 index 00000000..aa98396a --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/instructions.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InstructionsCtrl + * @description + * # InstructionsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('InstructionsCtrl', function ($scope, StaticContent) { + $scope.pageTitle = "Instructions"; + + $scope.mainLinks = [ + {id:198,name:"Introduction", post:"instructions"}, + {id:201,name:"Settings", post:"instructions"}, + {id:199,name:"Toolbox", post:"instructions"}, + {id:202,name:"Coach", post:"instructions"}, + {id:203,name:"Psychiatrist", post:"instructions"}, + {id:204,name:"Foundations", post:"instructions"}, + {id:205,name:"Daily Check In", post:"instructions"}, + {id:372,name:"Weekly Check In", post:"instructions"}, + {id:369,name:"Daily Review", post:"instructions"}, + {id:371,name:"Wellness Plan", post:"instructions"}, + {id:370,name:"Charts", post:"instructions"} + ] + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/intervention.js b/platforms/android/assets/www/scripts/controllers/intervention.js new file mode 100644 index 00000000..466ab0cd --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/intervention.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InterventionCtrl + * @description + * # InterventionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('InterventionCtrl', function ($scope, $routeParams,Questions) { + $scope.pageTitle = "Daily Review"; + + console.log($routeParams); + $scope.questionGroups = Questions.query($routeParams.code); + + $scope.hideProgressBar = true; + + var pr = new PurpleRobot(); + pr.disableTrigger('dailyCheckIn1').disableTrigger('dailyCheckIn2').disableTrigger('dailyCheckIn3').disableTrigger('dailyCheckIn4').disableTrigger('dailyCheckIn5').disableTrigger('dailyCheckIn6').execute(); + + }); diff --git a/platforms/android/assets/www/scripts/controllers/lesson_player.js b/platforms/android/assets/www/scripts/controllers/lesson_player.js new file mode 100644 index 00000000..ca0d839f --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/lesson_player.js @@ -0,0 +1,79 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LessonPlayerCtrl + * @description + * # LessonPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LessonPlayerCtrl', function ($scope, $routeParams, $sce, $location) { + + +$scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter_contents_list = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + var chapter_contents = []; + + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter_contents_list, function (element) { + // console.log(parseInt(element)); + chapter_contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + return chapter_contents; +}; + +$scope.lessons = JSON.parse(localStorage['lessons']); + +$scope.backButton = '<'; +$scope.backButtonClass = 'btn btn-info'; +$scope.nextButton = '>'; +$scope.nextButtonClass = 'btn btn-primary'; +$scope.currentSlideIndex = 0; + +$scope.pageTitle = _.where($scope.lessons, {id:parseInt($routeParams.id)})[0].pretty_name; + +$scope.currentChapterContents = $scope.getChapterContents($routeParams.id,$scope.lessons); + +$scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + + +$scope.next = function(){ + if ($scope.currentSlideIndex+1 < $scope.currentChapterContents.length){ + $scope.currentSlideIndex++; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + else { + if ($routeParams.post == undefined) + { window.location.href = '#/';} + else { + window.location.href = '#/' + $routeParams.post; + } + } + + if ($scope.currentSlideIndex+1 == $scope.currentChapterContents.length){ + $scope.nextButton = '>'; + } + else{ + $scope.nextButton = '>'; + + } +} + +$scope.back = function(){ + if ($scope.currentSlideIndex > 0){ + $scope.currentSlideIndex--; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + +} + +}); diff --git a/platforms/android/assets/www/scripts/controllers/load_interventions.js b/platforms/android/assets/www/scripts/controllers/load_interventions.js new file mode 100644 index 00000000..8bde5f7e --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/load_interventions.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoadInterventionsReviewCtrl + * @description + * # LoadInterventionsReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoadInterventionsCtrl', function ($scope, UserData, $location, $filter) { + + $scope.pageTitle = 'Topics'; + + $scope.hierarchy = UserData.query('interventionLabels'); + $scope.interventionGroups = UserData.query('dailyReview') + + debugger; + + $scope.goToIntervention = function(code){ + + $location.path('intervention/' + $filter('filter')($scope.interventionGroups,{code:code},true)[0].questionSet); + + } + + }); diff --git a/platforms/android/assets/www/scripts/controllers/localstoragebackuprestore.js b/platforms/android/assets/www/scripts/controllers/localstoragebackuprestore.js new file mode 100644 index 00000000..a9764368 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/localstoragebackuprestore.js @@ -0,0 +1,43 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LocalstoragebackuprestoreCtrl + * @description + * # LocalstoragebackuprestoreCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LocalstoragebackuprestoreCtrl', function ($scope, $sanitize) { + + + + $scope.initiateLocalBackup = function(){ + $scope.localStorageContents = JSON.stringify(JSON.stringify(localStorage)); + } + + $scope.restoreLocalBackup = function(){ + var restoreContent = JSON.parse(JSON.parse($scope.localStorageContents)); + + _.each(_.keys(restoreContent), function(el){ + + debugger; + localStorage[el] = eval("restoreContent." + el); + + }); + localStorage = JSON.parse($scope.localStorageContents); + //open file or copy and paste string and replace localStorage + + } + + $scope.updateRemoteService = function(serverURL){ + + //use the local app-collections store to iterate over all local collections and post to valid routes + + } + + $scope.wipeLocalStorage = function(){ + localStorage.clear(); + } + + }); diff --git a/platforms/android/assets/www/scripts/controllers/login.js b/platforms/android/assets/www/scripts/controllers/login.js new file mode 100644 index 00000000..2317e239 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/login.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoginCtrl + * @description + * # LoginCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoginCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/main.js b/platforms/android/assets/www/scripts/controllers/main.js new file mode 100644 index 00000000..7e11947d --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/main.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MainCtrl + * @description + * # MainCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MainCtrl', function ($scope, UserDetails) { + + $scope.pageTitle = 'Main Menu'; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + // $scope.showLogin = function(){ + + // if (UserDetails.find.id == null){ + // return true + // } + // else { + // return false + // } + + // } + + }); diff --git a/platforms/android/assets/www/scripts/controllers/medications.js b/platforms/android/assets/www/scripts/controllers/medications.js new file mode 100644 index 00000000..c67c03e5 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/medications.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MedicationsCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Medications"; + $scope.medications = UserData.query('medications'); + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/myskills.js b/platforms/android/assets/www/scripts/controllers/myskills.js new file mode 100644 index 00000000..a0c0e3b2 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/myskills.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MyskillsCtrl + * @description + * # MyskillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MyskillsCtrl', function ($scope,$location,$filter,$route) { + + $scope.currentSkillId = null; + + $scope.currentSkillContent = null; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + if (JSON.parse(localStorage['mySkills'] != undefined)){ + $scope.mySkills = _.uniq(JSON.parse(localStorage['mySkills'])); + } else { + $scope.mySkills = []; + } + + $scope.skill = function(id){ + return $filter('filter')($scope.lessons,{id:id},true) + }; + + $scope.showSkill = function(id){ + $scope.currentSkillId = id; + $scope.currentSkillContent = $scope.skill(id)[0].main_content; + } + + $scope.removeSkill = function () { + + var id = $scope.currentSkillId; + var array = $scope.mySkills; + var index = array.indexOf(id); + + if (index > -1) { + array.splice(index, 1); + } + + $scope.mySkills = array; + + localStorage['mySkills'] = JSON.stringify($scope.mySkills); + + $route.reload() + + } + + + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/personalsnapshot.js b/platforms/android/assets/www/scripts/controllers/personalsnapshot.js new file mode 100644 index 00000000..c18ce6d2 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/personalsnapshot.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:PersonalsnapshotCtrl + * @description + * # PersonalsnapshotCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('PersonalsnapshotCtrl', function ($scope, UserData) { + + // var sleepRoutineRanges = {}; + + // sleepRoutineRanges.MoreSevere = 12; + // sleepRoutineRanges.More = 9; + // sleepRoutineRanges.Less = 7; + // sleepRoutineRanges.LessSevere = 4; + + // sleepRoutineRanges.BedTimeStrt_MT = '2300'; + // sleepRoutineRanges.BedtimeStop_MT = '0100'; + + // sleepRoutineRanges.RiseTimeStrt_MT = '0630'; + // sleepRoutineRanges.RiseTimeStop_MT = '0830'; + + $scope.sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + $scope.currentClinicalStatusCode = UserData.query('clinicalStatus').currentCode; + + }); diff --git a/platforms/android/assets/www/scripts/controllers/resources.js b/platforms/android/assets/www/scripts/controllers/resources.js new file mode 100644 index 00000000..2de3bf3a --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/resources.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ResourcesCtrl + * @description + * # ResourcesCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ResourcesCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/risks.js b/platforms/android/assets/www/scripts/controllers/risks.js new file mode 100644 index 00000000..ed681bcc --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/risks.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:RisksCtrl + * @description + * # RisksCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('RisksCtrl', function ($scope,UserData) { + //risk variables + $scope.smarts = UserData.query('smarts'); + + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/schedule.js b/platforms/android/assets/www/scripts/controllers/schedule.js new file mode 100644 index 00000000..b079ad15 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/schedule.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ScheduleCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Schedule"; + $scope.schedules = UserData.query('schedule'); + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/settings.js b/platforms/android/assets/www/scripts/controllers/settings.js new file mode 100644 index 00000000..903c8e4c --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/settings.js @@ -0,0 +1,269 @@ +'use strict'; +/** + * @ngdoc function + * @name livewellApp.controller:SettingsCtrl + * @description + * # SettingsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SettingsCtrl', function($scope) { + $scope.pageTitle = 'Settings'; + $scope.times = [{ + value: "00:00", + label: "12:00AM" + }, { + value: "00:30", + label: "12:30AM" + }, { + value: "01:00", + label: "1:00AM" + }, { + value: "01:30", + label: "1:30AM" + }, { + value: "02:00", + label: "2:00AM" + }, { + value: "02:30", + label: "2:30AM" + }, { + value: "03:00", + label: "3:00AM" + }, { + value: "03:30", + label: "3:30AM" + }, { + value: "04:00", + label: "4:00AM" + }, { + value: "04:30", + label: "4:30AM" + }, { + value: "05:00", + label: "5:00AM" + }, { + value: "05:30", + label: "5:30AM" + }, { + value: "06:00", + label: "6:00AM" + }, { + value: "06:30", + label: "6:30AM" + }, { + value: "07:00", + label: "7:00AM" + }, { + value: "07:30", + label: "7:30AM" + }, { + value: "08:00", + label: "8:00AM" + }, { + value: "08:30", + label: "8:30AM" + }, { + value: "09:00", + label: "9:00AM" + }, { + value: "09:30", + label: "9:30AM" + }, { + value: "10:00", + label: "10:00AM" + }, { + value: "10:30", + label: "10:30AM" + }, { + value: "11:00", + label: "11:00AM" + }, { + value: "11:30", + label: "11:30AM" + }, { + value: "12:00", + label: "12:00PM" + }, { + value: "12:30", + label: "12:30PM" + }, { + value: "13:00", + label: "1:00PM" + }, { + value: "13:30", + label: "1:30PM" + }, { + value: "14:00", + label: "2:00PM" + }, { + value: "14:30", + label: "2:30PM" + }, { + value: "15:00", + label: "3:00PM" + }, { + value: "15:30", + label: "3:30PM" + }, { + value: "16:00", + label: "4:00PM" + }, { + value: "16:30", + label: "4:30PM" + }, { + value: "17:00", + label: "5:00PM" + }, { + value: "17:30", + label: "5:30PM" + }, { + value: "18:00", + label: "6:00PM" + }, { + value: "18:30", + label: "6:30PM" + }, { + value: "19:00", + label: "7:00PM" + }, { + value: "19:30", + label: "7:30PM" + }, { + value: "20:00", + label: "8:00PM" + }, { + value: "20:30", + label: "8:30PM" + }, { + value: "21:00", + label: "9:00PM" + }, { + value: "21:30", + label: "9:30PM" + }, { + value: "22:00", + label: "10:00PM" + }, { + value: "22:30", + label: "10:30PM" + }, { + value: "23:00", + label: "11:00PM" + }, { + value: "23:30", + label: "11:30PM" + }]; + + if (localStorage['checkinPrompt'] == undefined) { + $scope.checkinPrompt = { + value: "00:00", + label: "12:00AM" + }; + + } else { + $scope.checkinPrompt = JSON.parse(localStorage['checkinPrompt']); + } + + $scope.savePromptSchedule = function() { + + + (new PurpleRobot()).emitReading('livewell_prompt_registration', { + startTime: $scope.checkinPrompt.value, + registrationId: localStorage.registrationId + }).execute(); + + + var checkInValues = $scope.checkinPrompt.value.split(":"); + localStorage['checkinPrompt'] = JSON.stringify($scope.checkinPrompt); + //new Date(year, month, day, hours, minutes, seconds, milliseconds) + var dailyCheckInDateTime1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]) + 1, 0); + var dailyReviewRenewalDateTime = new Date(2016, 0, 1, 2, 0, 0); + var dailyReviewRenewalDateTimeEnd = new Date(2016, 0, 1, 2, 1, 0); + var pr = new PurpleRobot(); + + + + // var dailyCheckInDialog = + // pr.showScriptNotification({ + // title: "LiveWell", + // message: "Can you complete your LiveWell activities now?", + // isPersistent: true, + // isSticky: false, + // script: pr.launchApplication('edu.northwestern.cbits.livewell') + // }); + + // var dailyReviewRenew = + // pr.enableTrigger('dailyCheckIn1').enableTrigger('dailyCheckIn2').enableTrigger('dailyCheckIn3').enableTrigger('dailyCheckIn4').enableTrigger('dailyCheckIn5').enableTrigger('dailyCheckIn6'); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn1', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime1, + // endAt: dailyCheckinDateTimeEnd1 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn2', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime2, + // endAt: dailyCheckinDateTimeEnd2 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn3', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime3, + // endAt: dailyCheckinDateTimeEnd3 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn4', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime4, + // endAt: dailyCheckinDateTimeEnd4 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn5', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime5, + // endAt: dailyCheckinDateTimeEnd5 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn6', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime6, + // endAt: dailyCheckinDateTimeEnd6 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyReviewReset', + // random: false, + // script: dailyReviewRenew, + // startAt: dailyReviewRenewalDateTime, + // endAt: dailyReviewRenewalDateTimeEnd + // }).execute(); + + $("form").append('
Your prompt times have been updated.
'); + + }; + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/setup.js b/platforms/android/assets/www/scripts/controllers/setup.js new file mode 100644 index 00000000..2e0ba11b --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/setup.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SetupCtrl + * @description + * # SetupCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SetupCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/skills.js b/platforms/android/assets/www/scripts/controllers/skills.js new file mode 100644 index 00000000..2836c901 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/skills.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCtrl', function ($scope) { + $scope.pageTitle = "Toolbox"; + + $scope.mainLinks = [ + {id:'fundamentals',name:"Making Changes"}, + {id:'awareness',name:"Self-Assessment"}, + {id:'lifestyle',name:"Lifestyle"}, + {id:'coping',name:"Coping"}, + {id:'team',name:"Team"}, + + ] + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/skills_awareness.js b/platforms/android/assets/www/scripts/controllers/skills_awareness.js new file mode 100644 index 00000000..1ed61db5 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/skills_awareness.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsAwarenessCtrl + * @description + * # SkillsAwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsAwarenessCtrl', function ($scope) { + + $scope.pageTitle = "Self-Assessment"; + + $scope.mainLinks = [ + {name:"Symptoms and Triggers", id:194, post:'skills_awareness'}, + {name:"Skills and Strengths", id:196, post:'skills_awareness'}, + {name:"Supports and Environment", id:197, post:'skills_awareness'} + ] + }); + + + + diff --git a/platforms/android/assets/www/scripts/controllers/skills_coping.js b/platforms/android/assets/www/scripts/controllers/skills_coping.js new file mode 100644 index 00000000..0fd71d97 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/skills_coping.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCopingCtrl + * @description + * # SkillsCopingCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCopingCtrl', function ($scope) { + + $scope.pageTitle = "Coping"; + + $scope.mainLinks = [ + {name:"Depression - Dial Up", id:550, post:'skills_coping',type:'summary_player'}, + {name:"Mania - Dial Down", id:551, post:'skills_coping',type:'summary_player'} + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/skills_fundamentals.js b/platforms/android/assets/www/scripts/controllers/skills_fundamentals.js new file mode 100644 index 00000000..f835b891 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/skills_fundamentals.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsFundamentalsCtrl', function ($scope) { + + $scope.pageTitle = "Making Changes"; + + $scope.mainLinks = [ + {name:"Get Prepared", id:190, post:'skills_fundamentals'}, + {name:"Set Goal", id:193, post:'skills_fundamentals'}, + {name:"Develop Plan",id:191,post:'skills_fundamentals'}, + {name:"Monitor Behavior", id:192, post:'skills_fundamentals'}, + {name:"Evaluate Performance",id:195,post:'skills_fundamentals'} + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/skills_lifestyle.js b/platforms/android/assets/www/scripts/controllers/skills_lifestyle.js new file mode 100644 index 00000000..9785c8f3 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/skills_lifestyle.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsLifestyleCtrl + * @description + * # SkillsLifestyleCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsLifestyleCtrl', function ($scope) { + $scope.pageTitle = "Lifestyle"; + + $scope.mainLinks = [ + {name:"Sleep", id:543, post:'skills_lifestyle'}, + {name:"Medications", id:544, post:'skills_lifestyle'}, + {name:"Attend", id:545, post:'skills_lifestyle'}, + {name:"Routine", id:546, post:'skills_lifestyle'}, + {name:"Tranquility", id:547, post:'skills_lifestyle'}, + {name:"Socialization", id:562, post:'skills_lifestyle'} + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/skills_team.js b/platforms/android/assets/www/scripts/controllers/skills_team.js new file mode 100644 index 00000000..60a6c139 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/skills_team.js @@ -0,0 +1,34 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsTeamCtrl + * @description + * # SkillsTeamCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsTeamCtrl', function ($scope) { + $scope.pageTitle = "Team"; + + // $scope.mainLinks = [ + // {name:"Duality", id:553, post:'skills_team'}, + // {name:"Humilty", id:554, post:'skills_team'}, + // {name:"Obligation", id:555, post:'skills_team'}, + // {name:"Sacrifice", id:556, post:'skills_team'}, + // {name:"Asking for Help", id:557, post:'skills_team'}, + // {name:"Giving Back", id:558, post:'skills_team'}, + // {name:"Doctor Checklist", id:559, post:'skills_team'}, + // {name:"Support Checklist", id:560, post:'skills_team'}, + // {name:"Hospital Checklist", id:561, post:'skills_team'} + // ]; + + $scope.mainLinks = [ + {name:"Psychiatrist", id:580, post:'skills_team'}, + {name:"Supports", id:581, post:'skills_team'}, + {name:"Hospital", id:582, post:'skills_team'} + ]; + + + + }); diff --git a/platforms/android/assets/www/scripts/controllers/summary_player.js b/platforms/android/assets/www/scripts/controllers/summary_player.js new file mode 100644 index 00000000..1bb3471f --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/summary_player.js @@ -0,0 +1,66 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SummaryPlayerCtrl + * @description + * # SummaryPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SummaryPlayerCtrl', function ($scope, $routeParams, $location) { + + $scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter = _.where(appContent, search_criteria)[0]; + + chapter.element_array = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + + chapter.contents = []; + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter.element_array, function (element) { + // console.log(parseInt(element)); + chapter.contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + + return chapter; + }; + + $scope.showAddSkills = false; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + $scope.chapter = $scope.getChapterContents($routeParams.id,$scope.lessons); + + $scope.pageTitle = $scope.chapter.pretty_name; + + $scope.page = $scope.chapter.contents; + + $scope.addToMySkills = function(){ + + var id = $scope.page.id; + + if (localStorage['mySkills'] == undefined){ + + localStorage['mySkills'] = JSON.stringify([id]); + } + else { + var mySkills = JSON.parse(localStorage['mySkills']); + + mySkills.push(parseInt(id)); + localStorage['mySkills'] = JSON.stringify(mySkills); + } + + $location.path('/mySkills'); + + } + debugger; + + }); diff --git a/platforms/android/assets/www/scripts/controllers/team.js b/platforms/android/assets/www/scripts/controllers/team.js new file mode 100644 index 00000000..bf249f3a --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/team.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('TeamCtrl', function ($scope, UserData) { + $scope.pageTitle = "My Team"; + + $scope.team = UserData.query('team'); + $scope.secureTeam = UserData.query('secureContent').team; + }); diff --git a/platforms/android/assets/www/scripts/controllers/usereditor.js b/platforms/android/assets/www/scripts/controllers/usereditor.js new file mode 100644 index 00000000..c2f0825d --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/usereditor.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:UsereditorCtrl + * @description + * # UsereditorCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('UsereditorCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/android/assets/www/scripts/controllers/weekly_check_in.js b/platforms/android/assets/www/scripts/controllers/weekly_check_in.js new file mode 100644 index 00000000..77259df0 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/weekly_check_in.js @@ -0,0 +1,136 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WeeklyCheckInCtrl + * @description + * # WeeklyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WeeklyCheckInCtrl', function($scope, $location, $routeParams, Questions, Guid, UserDetails, Pound) { + + + $scope.pageTitle = 'Weekly Check In'; + + var phq_questions = Questions.query('phq9'); + var amrs_questions = Questions.query('amrs'); + + //combine questions into one group for the page + $scope.questionGroups = [phq_questions, amrs_questions]; + + //allows you to pass a question index url param into the question group directive + $scope.questionIndex = parseInt($routeParams.questionIndex) - 1 || 0; + + $scope.skippable = false; + + //overrides questiongroup default submit action to send data to PR + $scope.submit = function() { + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + + + _.each(responses, function(el) { + + var payload = { + userId: UserDetails.find, + survey: $scope.pageTitle, + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION, payload).execute(); + console.log(payload); + + }); + + var responsePayload = { + sessionID: sessionID, + responses: responses + }; + + Pound.add('weeklyCheckIn', responsePayload); + + var lWR = responses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + + if (_.where(JSON.parse(localStorage.team, { + role: 'Psychiatrist' + })[0] != undefined)) { + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + } else { + $scope.psychiatristEmail = ''; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + + if (amrsSum >= 10) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + } + if (amrsSum >= 16) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + } + if (phq8Sum >= 15) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'PHQ8 >= 15' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'PHQ8 >= 15' + }).execute(); + } + if (phq8Sum >= 20) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'PHQ8 >= 20' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'PHQ8 >= 20' + }).execute(); + } + + $location.path("/ews"); + + } + + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/controllers/wellness.js b/platforms/android/assets/www/scripts/controllers/wellness.js new file mode 100644 index 00000000..58e18178 --- /dev/null +++ b/platforms/android/assets/www/scripts/controllers/wellness.js @@ -0,0 +1,64 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WellnessCtrl + * @description + * # WellnessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WellnessCtrl', function ($scope,$routeParams) { + $scope.pageTitle = 'Wellness Plan'; + + $scope.section = $routeParams.section || ""; + + $scope.showResources = function(){ + $scope.riskVisible = false; + $scope.awarenessVisible = false; + $scope.resourcesVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#resources').addClass('btn-active'); + } + + $scope.showRisk = function(){ + $scope.awarenessVisible = false; + $scope.resourcesVisible = false; + $scope.riskVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').addClass('btn-active'); + $('button#resources').removeClass('btn-active'); + } + + $scope.showAwareness = function(){ + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = true; + $('button#resources').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#awareness').addClass('btn-active'); + + } + + + switch($scope.section) { + case "resources": + $scope.showResources(); + break; + case "awareness": + $scope.showAwareness(); + break; + case "risk": + $scope.showRisk(); + break; + default: + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = false; + } + + + + + }); diff --git a/platforms/android/assets/www/scripts/questionGroups/questiongroup.js b/platforms/android/assets/www/scripts/questionGroups/questiongroup.js new file mode 100644 index 00000000..c37469b7 --- /dev/null +++ b/platforms/android/assets/www/scripts/questionGroups/questiongroup.js @@ -0,0 +1,204 @@ +'use strict'; + +/** + * @ngdoc directive + * @name livewellApp.directive:questionGroup + * @description + * # questionGroup + */ +angular.module('livewellApp') + .directive('questionGroup', function ($location) { + return { + templateUrl: 'views/questionGroups/question_group.html', + restrict: 'E', + link: function postLink(scope, element, attrs) { + + scope._LABELS = scope.labels || [ + {name:'back',label:'<'}, + {name:'next',label:'>'}, + {name:'submit', label:'Save'} + ]; + + scope._SURVEY_FAILURE_LABEL = scope.surveyFailureLabel || 'Unfortunately, this survey failed to load:'; + + scope.questionGroups = _.flatten(scope.questionGroups); + scope.questionAnswered = []; + + scope.responseArray = []; + + scope.surveyFailure = function(){ + + var error = {}; + //there are no questions + if (scope.questionGroups.length == 0 && _.isArray(scope.questionGroups)) { + error = { error:true, message:"There are no questions available." } + } + //questions are not in an array + else if (_.isArray(scope.questionGroups) == false){ + error = { error:true, message:"Questions are not properly formatted." } + } + else { + error = { error:false } + } + + if (error.error == true){ + console.error(error); + } + + return error + + } + + scope.label = function(labelName){ + return _.where(scope._LABELS, {name:labelName})[0].label + } + + scope.numberOfQuestions = scope.questionGroups.length; + + scope.randomizationScheme = {}; + + scope.currentIndex = scope.questionIndex || 0; + + scope.showQuestion = function(questionPosition){ + + var dataLabelToRandomize = scope.questionGroups[scope.currentIndex].questionDataLabel; + + var numResponsesToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}).length; + + if (numResponsesToRandomize > 1){ + + var questionsToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}); + + if(scope.randomizationScheme[dataLabelToRandomize] == undefined){ + scope.randomizationScheme[dataLabelToRandomize] = Math.floor(Math.random() * (numResponsesToRandomize)); + } + + + var randomQuestionToPick = questionsToRandomize[scope.randomizationScheme[dataLabelToRandomize]]; + + scope.currentIndex = _.findIndex(scope.questionGroups,{id:randomQuestionToPick.id}); + + // console.log(questionPosition, scope.currentIndex,questionPosition == scope.currentIndex,scope.questionGroups,{id:randomQuestionToPick.id}); + + } + + + return questionPosition == scope.currentIndex; + } + + scope.goesToIndex = ""; + + scope.goesTo = function(goesToId,index){ + + scope.skipArray[index] = true; + + for (var index = 0; index < scope.questionGroups.length; index++) { + if (scope.questionGroups[index].questionDataLabel == goesToId){ + scope.goesToIndex = index; + } + } + + // alert(scope.goesToIndex,goesToId ); + + } + + scope.next = function(question,index){ + // console.log(question); + + scope.responseArray[scope.currentIndex] = $('form').serializeArray()[0]; + + if (question.responses.length == 1 && question.responses[0].goesTo != "") + { + scope.goesTo(question.responses[0].goesTo); + } + + if (scope.goesToIndex != "") + { + + scope.currentIndex = scope.goesToIndex; + + } + else { + + if( scope.skipArray[index] == true){ + scope.currentIndex++;} + else{ + alert('You must enter an answer to continue!');//modal + } + + } + scope.goesToIndex = ""; + }; + + scope.back = function(){ + + scope.currentIndex--; + + + }; + + + //is overridden by scope.complete function if different action is desired at the end of survey + scope.submit = scope.submit || function(){ + console.log('OVERRIDE THIS IN YOUR CONTROLLER SCOPE: ',$('form').serializeArray()); + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + _.each(responses, function(el){ + + var payload = { + userId: UserDetails.find, + survey: 'survey', + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION,payload).execute(); + console.log(payload); + + }); + + + + $location.path('#/'); + } + + scope.skippable = scope.skippable || true; + scope.skipArray = []; + + + scope.questionViewType = function(questionType){ + + switch (questionType){ + + case "radio" || "checkbox": + return "multiple" + break; + case "text" || "phone" || "email" || "textarea": + return "single" + break; + default: + return "html" + break; + + } + + } + +// scope.showEndNav = function(length,pageTitle) { +// if (length == 0 && pageTitle = 'Daily Review'){ +// return true} +// } +// } + + } + }; + }); diff --git a/platforms/android/assets/www/scripts/services/clinicalstatusupdate.js b/platforms/android/assets/www/scripts/services/clinicalstatusupdate.js new file mode 100644 index 00000000..f6c40c09 --- /dev/null +++ b/platforms/android/assets/www/scripts/services/clinicalstatusupdate.js @@ -0,0 +1,147 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.clinicalStatusUpdate + * @description + * # clinicalStatusUpdate + * Service in the livewellApp. + */ +angular.module('livewellApp').service('ClinicalStatusUpdate', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}; + contents.execute = function() { + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + var dailyReviewResponses = Pound.find('dailyCheckIn'); + var weeklyReviewResponses = Pound.find('weeklyCheckIn'); + var newClinicalStatus = currentClinicalStatusCode(); + var sendEmail = false; + var intensityCount = { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0 + }; + + for (var i = dailyReviewResponses.length - 1; i > dailyReviewResponses.length - 8; i--) { + var aWV = 0; + if (dailyReviewResponses[i] != undefined) { + var aWV = Math.abs(parseInt(dailyReviewResponses[i].wellness)); + } + console.log(aWV); + if (aWV == 0) { + intensityCount[0] = intensityCount[0] + 1 + } + if (aWV == 1) { + intensityCount[1] = intensityCount[1] + 1 + } + if (aWV == 2) { + intensityCount[2] = intensityCount[2] + 1 + } + if (aWV == 3) { + intensityCount[3] = intensityCount[3] + 1 + } + if (aWV == 4) { + intensityCount[4] = intensityCount[4] + 1 + } + } + + var lastWeeklyResponses = []; + + if (weeklyReviewResponses[weeklyReviewResponses.length - 1] != undefined){ + lastWeeklyResponses = weeklyReviewResponses[weeklyReviewResponses.length - 1].responses; + } + else{ + lastWeeklyResponses = [ + {name:'phq1', value:'0'}, + {name:'phq2', value:'0'}, + {name:'phq3', value:'0'}, + {name:'phq4', value:'0'}, + {name:'phq5', value:'0'}, + {name:'phq6', value:'0'}, + {name:'phq7', value:'0'}, + {name:'phq8', value:'0'}, + {name:'amrs1', value:'0'}, + {name:'amrs2', value:'0'}, + {name:'amrs3', value:'0'}, + {name:'amrs4', value:'0'}, + {name:'amrs5', value:'0'} + ]; + } + var lWR = lastWeeklyResponses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + switch (parseInt(currentClinicalStatusCode())) { + case 1://well + //Well if abs(wr) ≥ 2 for 4 of last 7 days Prodromal + if ((intensityCount[2] + intensityCount[3] + intensityCount[4]) >= 4) { + newClinicalStatus = 2; + } + // //Well if last ASRM ≥ 6 Well, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + // //Well if last PHQ8 ≥ 10 Well, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 2://prodromal + //Prodromal if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Prodromal if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Prodromal if last ASRM ≥ 6 Prodromal, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Prodromal if last PHQ8 ≥ 10 Prodromal, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 3://recovering + //Recovering if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Recovering if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Recovering if last ASRM ≥ 6 Recovering, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Recovering if last PHQ8 ≥ 10 Recovering, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 4://unwell + //Unwell if abs(wr) ≤ 2 for 5 of last 7 days Recovering + if ((intensityCount[0] + intensityCount[1] + intensityCount[2]) >= 5) { + newClinicalStatus = 3; + } + break; + } + + var returnStatus = {}; + returnStatus.amrsSum = amrsSum; + returnStatus.phq8Sum = phq8Sum; + returnStatus.intensityCount = intensityCount; + returnStatus.oldStatus = currentClinicalStatusCode(); + returnStatus.newStatus = newClinicalStatus; + localStorage['clinicalStatus'] = JSON.stringify({ + currentCode: newClinicalStatus + }); + return returnStatus + } + return contents; +}); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/services/dailyreview.js b/platforms/android/assets/www/scripts/services/dailyreview.js new file mode 100644 index 00000000..18564eb2 --- /dev/null +++ b/platforms/android/assets/www/scripts/services/dailyreview.js @@ -0,0 +1,548 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.dailyReview + * @description + * # dailyReview + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('DailyReviewAlgorithm', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}, + recoder = {}, + history = {}, + dailyCheckInData = {}, + conditions = []; + var sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + var dailyReviewResponses = Pound.find('dailyCheckIn'); + recoder.execute = function(sleepRoutineRanges, dailyReviewResponses) { + var historySeed = {}; + historySeed.wellness = [0, 0, 0, 0, 0, 0, 0]; // wellness balanced 7 days + historySeed.medications = [1, 1, 1, 1, 1, 1, 1]; // took all meds 7 days + historySeed.sleep = [0, 0, 0, 0, 0, 0, 0]; // in baseline range 7 days + historySeed.routine = [2, 2, 2, 2, 2, 2, 2]; // in both windows 7 days + for (var i = 0; i < 7; i++) { + var responsePosition = dailyReviewResponses.length + i - 7; + if (dailyReviewResponses[responsePosition] != undefined) { + historySeed.wellness[i] = parseInt(dailyReviewResponses[responsePosition].wellness); + historySeed.medications[i] = recoder.medications(dailyReviewResponses[responsePosition].medications); + historySeed.sleep[i] = recoder.sleep(dailyReviewResponses[responsePosition].sleepDuration,sleepRoutineRanges); + historySeed.routine[i] = recoder.routine(dailyReviewResponses[responsePosition].toBed, dailyReviewResponses[responsePosition].gotUp, sleepRoutineRanges); + } + } + localStorage['recodedResponses'] = JSON.stringify(historySeed); + return historySeed + } + + recoder.medications = function(medications) { + switch (medications) { + case '0': + return 0 + break; + case '1': + return 0.5 + break; + case '2': + return 1 + break; + } + } + + recoder.sleep = function(sleepDuration, sleepRoutineRanges) { + var score = 0; + // duration = gotUp - toBed + // look at ranges defined in sleepRoutineRanges, which range is it in? + + var duration = parseInt(sleepDuration); + + if (duration <= sleepRoutineRanges.LessSevere) { + score = -1; + } + if (duration >= sleepRoutineRanges.MoreSevere) { + score = 1; + } + if (duration >= sleepRoutineRanges.Less && duration <= sleepRoutineRanges.More) { + score = 0; + } + if (duration < sleepRoutineRanges.Less && duration >= sleepRoutineRanges.LessSevere) { + score = -0.5; + } + if (duration > sleepRoutineRanges.More && duration <= sleepRoutineRanges.MoreSevere) { + score = 0.5; + } + return score + } + + recoder.routine = function(toBed, gotUp, sleepRoutineRanges) { + var sum = 0; + var range = sleepRoutineRanges; + var numGotUp = parseInt(gotUp); + var numToBed = parseInt(toBed); + var bedTimeStart = parseInt(sleepRoutineRanges.BedTimeStrt_MT); + var bedTimeStop = parseInt(sleepRoutineRanges.BedTimeStop_MT); + var riseTimeStart = parseInt(sleepRoutineRanges.RiseTimeStrt_MT); + var riseTimeStop = parseInt(sleepRoutineRanges.RiseTimeStop_MT); + if (bedTimeStart > bedTimeStop) { + bedTimeStop = bedTimeStop + 2400; + } + if (riseTimeStart > riseTimeStop) { + riseTimeStop = riseTimeStop + 2400; + } + if (numGotUp < riseTimeStart && numGotUp < riseTimeStop) { + numGotUp = numGotUp + 2400; + } + if (numToBed < bedTimeStart && numToBed < bedTimeStop) { + numToBed = numToBed + 2400; + } + if (numGotUp >= riseTimeStart && numGotUp <= riseTimeStop) { + sum++ + } + if (numToBed >= bedTimeStart && numToBed <= bedTimeStop) { + sum++ + } + return parseInt(sum) + }; + + conditions[26] = function(data, code) { + //well + return true + }; + conditions[25] = function(data, code) { + //at risk routine + //Baseline ≥ 3 of last 4 days mrd ≠ Bedtime Window and/or mrd ≠ Risetime Window, + //Bedtime and Risetime Windows ≤ 5 of last 4 days + var sum1 = data.routine[3] + data.routine[4] + data.routine[5] + data.routine[6]; + + return code == 1 && Math.abs(data.wellness[6]) < 2 && ((data.routine[6] < 2 && sum1 <= 5)) + }; + conditions[24] = function(data, code) { + //at risk sleep erratic + //mrd ≠ Baseline, Baseline ≤ 2 of last 4 days + var sum1 = 0; + if (data.sleep[3] == 0) { + sum1++ + } + if (data.sleep[4] == 0) { + sum1++ + } + if (data.sleep[5] == 0) { + sum1++ + } + if (data.sleep[6] == 0) { + sum1++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] != 0) && sum1 <= 2 + }; + conditions[23] = function(data, code) { + //at risk sleep more + //mrd = More or More-Severe, More or More-Severe ≥ 2 last 4 days, Less or Less-Severe ≤ 1 last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == 1 || data.sleep[6] == 0.5) && sum1 <= 1 && sum2 >= 2 + }; + conditions[22] = function(data, code) { + //at risk sleep less + //mrd = Less or Less-Severe, Less or Less-Severe ≥ 2 of last 4 days, More or More-Severe ≤ 1 of last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == -1 || data.sleep[6] == -0.5) && sum1 >= 2 && sum2 <= 1 + }; + conditions[21] = function(data, code) { + //at risk medications + return code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 + }; + conditions[20] = function(data, code) { + //at risk sleep more severe + //mrd = More-Severe, More-Severe ≥ 3 of last 4 days + var sum = 0; + if (data.sleep[3] == 1) { + sum++ + } + if (data.sleep[4] == 1) { + sum++ + } + if (data.sleep[5] == 1) { + sum++ + } + if (data.sleep[6] == 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:20}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', email:'psychiatrist', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:20}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[19] = function(data, code) { + //at risk sleep less severe + //mrd = Less-Severe, Less-Severe ≥ 2 of last 4 days + var sum = 0; + if (data.sleep[3] == -1) { + sum++ + } + if (data.sleep[4] == -1) { + sum++ + } + if (data.sleep[5] == -1) { + sum++ + } + if (data.sleep[6] == -1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == -1 && sum >= 2; + + if (dailyReviewIsTrueWhen){ + if (sum == 2){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:19}).execute(); + } + if (sum == 3){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', email:'psychiatrist', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:19}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[18] = function(data, code) { + //at risk medications severe + var sum = 0; + if (data.medications[3] != 1) { + sum++ + } + if (data.medications[4] != 1) { + sum++ + } + if (data.medications[5] != 1) { + sum++ + } + if (data.medications[6] != 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about taking your medications', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'psychiatrist', code:18}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{message:'Call your psychiatrist about taking your medications', call:'psychiatrist', email:'coach', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:18}).execute(); + } + } + return dailyReviewIsTrueWhen + }; + conditions[17] = function(data, code) { + //mild down well + var dailyReviewIsTrueWhen = data.wellness[6] == -2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:17}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:17}).execute(); + } + } + + + + return dailyReviewIsTrueWhen; + }; + conditions[16] = function(data, code) { + //mild up well + var dailyReviewIsTrueWhen = data.wellness[6] == 2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:16}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:16}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[15] = function(data, code) { + //balanced prodromal + return code == 2 + }; + conditions[14] = function(data, code) { + //balanced recovering + return code == 3 + }; + conditions[13] = function(data, code) { + //mild down prodromal + return data.wellness[6] == -2 && code == 2; + }; + conditions[12] = function(data, code) { + //mild up prodromal + return data.wellness[6] == 2 && code == 2; + }; + conditions[11] = function(data, code) { + //mild down recovering + return data.wellness[6] == -2 && code == 3; + }; + conditions[10] = function(data, code) { + //mild up recovering + return data.wellness[6] == 2 && code == 3; + }; + conditions[9] = function(data, code) { + //moderate down + var dailyReviewIsTrueWhen = data.wellness[6] == -3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:9}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:9}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[8] = function(data, code) { + //moderate up + var dailyReviewIsTrueWhen = data.wellness[6] == 3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:8}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:8}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[7] = function(data, code) { + //balanced unwell + return code == 4; + }; + conditions[6] = function(data, code) { + //mild down unwell + return data.wellness[6] == -2 && code == 4; + }; + conditions[5] = function(data, code) { + //mild up unwell + return data.wellness[6] == 2 && code == 4; + }; + conditions[4] = function(data, code) { + //moderate down unwell + return data.wellness[6] == -3 && code == 4; + }; + conditions[3] = function(data, code) { + //moderate up unwell + return data.wellness[6] == 3 && code == 4; + }; + conditions[2] = function(data, code) { + //logic for severe down + return data.wellness[6] == -4; + }; + conditions[1] = function(data, code) { + //logic for severe up + return data.wellness[6] == 4; + }; + conditions[0] = function() { + return false + } + // "[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + recoder.wellnessFormatter = function(wellnessRating) { + switch (wellnessRating) { + case -4: + return 0; + break; + case -3: + return .25; + break; + case -2: + return .5; + break + case -1: + return 1; + break; + case 0: + return 1; + break; + case 1: + return 1; + break; + case 2: + return 0.5; + break; + case 3: + return 0.25; + break; + case 4: + return 0; + break; + } + } + contents.getPercentages = function() { + var contents = {}; + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + var sleepValues = {}; + sleepValues[-1] = 0; + sleepValues[-0.5] = 0.25; + sleepValues[0] = 1; + sleepValues[0.5] = 0.5; + sleepValues[1] = 0.25; + contents.sleep = (sleepValues[recodedSevenDays.sleep[0]] + sleepValues[recodedSevenDays.sleep[1]] + sleepValues[recodedSevenDays.sleep[2]] + sleepValues[recodedSevenDays.sleep[3]] + sleepValues[recodedSevenDays.sleep[4]] + sleepValues[recodedSevenDays.sleep[5]] + sleepValues[recodedSevenDays.sleep[6]]) / 7; + contents.wellness = (recoder.wellnessFormatter(recodedSevenDays.wellness[0]) + recoder.wellnessFormatter(recodedSevenDays.wellness[1]) + recoder.wellnessFormatter(recodedSevenDays.wellness[2]) + recoder.wellnessFormatter(recodedSevenDays.wellness[3]) + recoder.wellnessFormatter(recodedSevenDays.wellness[4]) + recoder.wellnessFormatter(recodedSevenDays.wellness[5]) + recoder.wellnessFormatter(recodedSevenDays.wellness[6])) / 7; + contents.medications = (recodedSevenDays.medications[0] + recodedSevenDays.medications[1] + recodedSevenDays.medications[2] + recodedSevenDays.medications[3] + recodedSevenDays.medications[4] + recodedSevenDays.medications[5] + recodedSevenDays.medications[6]) / 7; + contents.routine = (recodedSevenDays.routine[0] + recodedSevenDays.routine[1] + recodedSevenDays.routine[2] + recodedSevenDays.routine[3] + recodedSevenDays.routine[4] + recodedSevenDays.routine[5] + recodedSevenDays.routine[6]) / 14; + return contents + } + contents.getCode = function() { + //look for the highest TRUE value in the condition set + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + console.log(recodedSevenDays); + for (var i = 0; i < conditions.length; i++) { + var selection = conditions[i](recodedSevenDays, currentClinicalStatusCode()); + if (selection == true) { + return i + break; + } + } + } + contents.code = function(){return contents.getCode()}; + contents.percentages = function(){return contents.getPercentages()}; + contents.recodedResponses = function() { + return recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')) + }; + return contents + }); \ No newline at end of file diff --git a/platforms/android/assets/www/scripts/services/guid.js b/platforms/android/assets/www/scripts/services/guid.js new file mode 100644 index 00000000..5da4a5f2 --- /dev/null +++ b/platforms/android/assets/www/scripts/services/guid.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Guid + * @description + * # Guid + * provides the capacity to generate a guid as needed, + */ +angular.module('livewellApp') + .service('Guid', function Guid() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var guid = {}; + + // make a string 4 of length 4 with random alphanumerics + guid.S4 = function () { + return (((1+Math.random())*0x10000)|0).toString(16).substring(1); + } + + // concat a bunch together plus stitch in '4' in the third group + guid.create = function() { + return (guid.S4() + guid.S4() + "-" + guid.S4() + "-4" + guid.S4().substr(0,3) + "-" + guid.S4() + "-" + guid.S4() + guid.S4() + guid.S4()).toLowerCase(); + } + + return guid + + }); diff --git a/platforms/android/assets/www/scripts/services/pound.js b/platforms/android/assets/www/scripts/services/pound.js new file mode 100644 index 00000000..d6ef03af --- /dev/null +++ b/platforms/android/assets/www/scripts/services/pound.js @@ -0,0 +1,189 @@ + +/** + * @ngdoc service + * @name livewellApp.Pound + * @description + * # Pound + * acts as an interface to localStorage + * TODO, use localForage, but gracefully degrade to localStorage if it doesn't exist + */ +angular.module('livewellApp') + .service('Pound', function Pound() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var pound = {}; + + console.warn('CAUTION: localForage does not exist'); + + //pound.insert(key, object) + //adds to or CREATES a store + //key: name of thing to store + //object: value of thing to store in json form + //pound.add("foo",{"thing":"thing value"}); + //adds {"thing":"thing value"} to a key called "foo" in localStorage + pound.add = function(key,object){ + var collection = []; + + if (localStorage[key]){ + collection = JSON.parse(localStorage[key]); + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + localStorage[key] = JSON.stringify(collection); + } + else + { + object.id = 1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection = [object]; + localStorage[key] = JSON.stringify(collection); + pound.add("pound",key); + } + + return {added:object}; + }; + + + //pound.save(key, object, id) + //equivalent of upsert + //key: name of thing to store + //object: value of thing to store in json form + // + //pound.save("foo",{thing:"thing value", id:id_value}); + //looks to find a thing called foo that has an array of objects inside + //then looks to find an object in that array that has an id of a particular value, + // if it exists, the object is updated with the keys in the object to replace + ///if it does not exist, it is added + pound.save = function(key,object){ + var collection = []; + + if (localStorage[key]){ + + var exists = false; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == object.id){ + exists = true; + object.timestamp = new Date(); + collection[idx] = object; + } + + }); + + if (exists == false){ + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + } + } + + else + { + object.id = 1; + object.created_at = new Date(); + collection = [object]; + pound.add("pound",key); + } + + localStorage[key] = JSON.stringify(collection); + + return {saved:object}; + }; + + //pound.update(key, object) + //get collection of JSON objects + //iterate through collection and check if passed object matches an element + //merge attributes of objects + //set the collection at the current index to the value of the object + //stringify the collection and set the localStorage key to that value + + pound.update = function(key, object) { + var collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx) { + + if (el.id == object.id) { + + for( var attribute in el) { + el[attribute] = object[attribute] + object.updated_at = new Date(); + } + + collection[idx] = object + } + }); + localStorage[key] = JSON.stringify(collection); + + return {updated:object}; + } + + //pound.find(key,criteria_object) + //key: name of localstorage location + //criteria_object: object that matches the criteria you're looking for + //pound.find("foo") + //returns the ENTIRE contents of the localStorage array + //pound.find("foo",{thing:"thing value"}) + //returns the elements in the array that match that criteria + + pound.find = function(key,criteria_object){ + var collection = []; + if(localStorage[key]){ + collection = JSON.parse(localStorage[key]); + + if (criteria_object){ + return _.where(collection,criteria_object) || [] } + else { return collection || [];} + } + else{ return [];} + }; + + pound.list = function(){ + return pound.find("pound"); + }; + + //pound.delete(key,id) + //removes an item from a collection that matches a specific id criteria + pound.delete = function(key,id){ + + var collection = []; + var object_to_delete; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == id){ + object_to_delete = collection[idx]; + collection[idx] = false; + }; + }); + + localStorage[key] = JSON.stringify(_.compact(collection)); + + return {deleted:object_to_delete}; + } + + + //pound.nuke(key) + //completely removes the key from local storage and pound list + pound.nuke = function(key){ + var collection = pound.list; + + localStorage.removeItem(key); + _.each(collection, function(el, idx){ + if (el == key){ + collection[idx] = false; + }; + }); + localStorage["pound"] = JSON.stringify(_.compact(collection)); + + return {cleared:key}; + }; + + + return pound + + +}); diff --git a/platforms/android/assets/www/scripts/services/questions.js b/platforms/android/assets/www/scripts/services/questions.js new file mode 100644 index 00000000..fb116703 --- /dev/null +++ b/platforms/android/assets/www/scripts/services/questions.js @@ -0,0 +1,83 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Questions + * @description + * # Questions + * accesses locally stored questions that were provided over the questions / question-responses routes + */ +angular.module('livewellApp') + .service('Questions', function Questions($http) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _CONTENT_SERVER_URL = 'https://livewellnew.firebaseio.com'; + + var content = {}; + var _QUESTIONS_COLLECTION_KEY = 'questions'; + var _RESPONSES_COLLECTION_KEY = 'questionresponses'; + var _QUESTION_CRITERIA_COLLECTION_KEY = 'questioncriteria'; + var _RESPONSE_CRITERIA_COLLECTION_KEY = 'responsecriteria'; + + content.query = function(questionGroup){ + + if (localStorage[_QUESTIONS_COLLECTION_KEY] != undefined){ + //grab from synched local storage + content.items = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + //filter to show only one question group + if (questionGroup != undefined){ + content.items = _.where(content.items, {questionGroup:questionGroup}); + } + + //attach response groups to questions + var responses_collection = JSON.parse(localStorage[_RESPONSES_COLLECTION_KEY]); + var question_criteria_collection = JSON.parse(localStorage[_QUESTION_CRITERIA_COLLECTION_KEY]); + var response_criteria_collection = JSON.parse(localStorage[_RESPONSE_CRITERIA_COLLECTION_KEY]); + + _.each(content.items, function(el,idx){ + content.items[idx].responses = _.where(responses_collection, {responseGroupId: el.responseGroupId}); + content.items[idx].criteria = _.where(question_criteria_collection, {questionCriteriaId: el.questionCriteriaId}); + _.each(content.items[idx].responses, function(el2,idx2){ + content.items[idx].responses[idx2].criteria = _.where(response_criteria_collection,{responseId:el2.id}); + }); + + }); + + + + content.responses = responses_collection; + + content.questions = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + content.questionCriteria = question_criteria_collection; + content.responseCriteria = response_criteria_collection; + + content.items = _.sortBy(content.items,"order"); + + } + else{ + content.items = []; + } + + return content.items + + } + + content.save = function(collectionToSave,collection){ + debugger; + localStorage[collectionToSave] = JSON.stringify(collection); + $http.put(_CONTENT_SERVER_URL + "/" + collectionToSave).success(alert("Data saved to server")); + } + + content.uniqueQuestionGroups = function(){ + + var uniqueQuestionGroups = []; + _.each(_.uniq(content.query(),"questionGroup"), function(el){ + uniqueQuestionGroups.push({name: el.questionGroup, id: el.questionGroup}); + }); + + return _.uniq(uniqueQuestionGroups,"name") + + } + + return content + }); diff --git a/platforms/android/assets/www/scripts/services/static_content.js b/platforms/android/assets/www/scripts/services/static_content.js new file mode 100644 index 00000000..d32c3dce --- /dev/null +++ b/platforms/android/assets/www/scripts/services/static_content.js @@ -0,0 +1,40 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.StaticContent + * @description + * # StaticContent + * accesses general purpose locally stored static content + */ +angular.module('livewellApp') + .service('StaticContent', function StaticContent() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + var _COLLECTION_KEY = 'staticContent'; + var _NULL_COLLECTION_MESSAGE = '
No content has been provided for this section.
'; + + if (localStorage[_COLLECTION_KEY] != undefined){ + content.items = JSON.parse(localStorage[_COLLECTION_KEY]); + } + else{ + content.items = []; + } + + content.query = function(key){ + + var queryResponse = _.where(content.items, {sectionKey:key}); + + if (queryResponse.length > 0){ + return queryResponse[0].content + } + else{ + return _NULL_COLLECTION_MESSAGE; + + }} + + +return content + +}); diff --git a/platforms/android/assets/www/scripts/services/user_data.js b/platforms/android/assets/www/scripts/services/user_data.js new file mode 100644 index 00000000..c53728de --- /dev/null +++ b/platforms/android/assets/www/scripts/services/user_data.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserData + * @description + * # UserData + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserData', function UserData() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + + content.query = function(collectionKey){ + + console.log(collectionKey); + if (localStorage[collectionKey] != undefined){ + content.items = JSON.parse(localStorage[collectionKey]); + } + else{ + content.items = []; + } + console.log(content.items); + return content.items + + } + + return content + + }); diff --git a/platforms/android/assets/www/scripts/services/user_details.js b/platforms/android/assets/www/scripts/services/user_details.js new file mode 100644 index 00000000..aaf3d55f --- /dev/null +++ b/platforms/android/assets/www/scripts/services/user_details.js @@ -0,0 +1,49 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserDetails + * @description + * # UserDetails + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserDetails', function UserDetails(Pound) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _USER_LOCAL_COLLECTION_KEY = 'user'; + + var userDetails = {}; + + var userDetailsModel = { + uid: 1, + userID: null, + groupID: null, + loginKey: null + } + + //if there is no user, create a dummy user object based on the above model + if (localStorage[_USER_LOCAL_COLLECTION_KEY] == undefined){ + // Pound.save(_USER_LOCAL_COLLECTION_KEY,userDetailsModel); + } + + //return the current user object + userDetails.find = Pound.find(_USER_LOCAL_COLLECTION_KEY,{uid:'1'})[0]; + + //updates the whole user object + userDetails.update = function(userObject){ + Pound.update(_USER_LOCAL_COLLECTION_KEY,userObject); + return userDetails.find + }; + + // updates one key in the whole user object + userDetails.updateKey = function(key, value){ + var userObject = userDetails.find; + userObject[key] = value; + return userDetails.update(userObject); + } + + return userDetails; + + + }); diff --git a/platforms/android/assets/www/scripts/vendor/cordova.android.js b/platforms/android/assets/www/scripts/vendor/cordova.android.js new file mode 100644 index 00000000..1a9f5d97 --- /dev/null +++ b/platforms/android/assets/www/scripts/vendor/cordova.android.js @@ -0,0 +1,1749 @@ +// Platform: android +// 3.4.0 +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +;(function() { +var CORDOVA_JS_BUILD_LABEL = '3.4.0'; +// file: src/scripts/require.js + +/*jshint -W079 */ +/*jshint -W020 */ + +var require, + define; + +(function () { + var modules = {}, + // Stack of moduleIds currently being built. + requireStack = [], + // Map of module ID -> index into requireStack of modules currently being built. + inProgressModules = {}, + SEPARATOR = "."; + + + + function build(module) { + var factory = module.factory, + localRequire = function (id) { + var resultantId = id; + //Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === ".") { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; + module.exports = {}; + delete module.factory; + factory(localRequire, module.exports, module); + return module.exports; + } + + require = function (id) { + if (!modules[id]) { + throw "module " + id + " not found"; + } else if (id in inProgressModules) { + var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; + throw "Cycle in require graph: " + cycle; + } + if (modules[id].factory) { + try { + inProgressModules[id] = requireStack.length; + requireStack.push(id); + return build(modules[id]); + } finally { + delete inProgressModules[id]; + requireStack.pop(); + } + } + return modules[id].exports; + }; + + define = function (id, factory) { + if (modules[id]) { + throw "module " + id + " already defined"; + } + + modules[id] = { + id: id, + factory: factory + }; + }; + + define.remove = function (id) { + delete modules[id]; + }; + + define.moduleMap = modules; +})(); + +//Export for use in node +if (typeof module === "object" && typeof require === "function") { + module.exports.require = require; + module.exports.define = define; +} + +// file: src/cordova.js +define("cordova", function(require, exports, module) { + + +var channel = require('cordova/channel'); +var platform = require('cordova/platform'); + +/** + * Intercept calls to addEventListener + removeEventListener and handle deviceready, + * resume, and pause events. + */ +var m_document_addEventListener = document.addEventListener; +var m_document_removeEventListener = document.removeEventListener; +var m_window_addEventListener = window.addEventListener; +var m_window_removeEventListener = window.removeEventListener; + +/** + * Houses custom event handlers to intercept on document + window event listeners. + */ +var documentEventHandlers = {}, + windowEventHandlers = {}; + +document.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof documentEventHandlers[e] != 'undefined') { + documentEventHandlers[e].subscribe(handler); + } else { + m_document_addEventListener.call(document, evt, handler, capture); + } +}; + +window.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof windowEventHandlers[e] != 'undefined') { + windowEventHandlers[e].subscribe(handler); + } else { + m_window_addEventListener.call(window, evt, handler, capture); + } +}; + +document.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof documentEventHandlers[e] != "undefined") { + documentEventHandlers[e].unsubscribe(handler); + } else { + m_document_removeEventListener.call(document, evt, handler, capture); + } +}; + +window.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof windowEventHandlers[e] != "undefined") { + windowEventHandlers[e].unsubscribe(handler); + } else { + m_window_removeEventListener.call(window, evt, handler, capture); + } +}; + +function createEvent(type, data) { + var event = document.createEvent('Events'); + event.initEvent(type, false, false); + if (data) { + for (var i in data) { + if (data.hasOwnProperty(i)) { + event[i] = data[i]; + } + } + } + return event; +} + + +var cordova = { + define:define, + require:require, + version:CORDOVA_JS_BUILD_LABEL, + platformId:platform.id, + /** + * Methods to add/remove your own addEventListener hijacking on document + window. + */ + addWindowEventHandler:function(event) { + return (windowEventHandlers[event] = channel.create(event)); + }, + addStickyDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.createSticky(event)); + }, + addDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.create(event)); + }, + removeWindowEventHandler:function(event) { + delete windowEventHandlers[event]; + }, + removeDocumentEventHandler:function(event) { + delete documentEventHandlers[event]; + }, + /** + * Retrieve original event handlers that were replaced by Cordova + * + * @return object + */ + getOriginalHandlers: function() { + return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + }, + /** + * Method to fire event from native code + * bNoDetach is required for events which cause an exception which needs to be caught in native code + */ + fireDocumentEvent: function(type, data, bNoDetach) { + var evt = createEvent(type, data); + if (typeof documentEventHandlers[type] != 'undefined') { + if( bNoDetach ) { + documentEventHandlers[type].fire(evt); + } + else { + setTimeout(function() { + // Fire deviceready on listeners that were registered before cordova.js was loaded. + if (type == 'deviceready') { + document.dispatchEvent(evt); + } + documentEventHandlers[type].fire(evt); + }, 0); + } + } else { + document.dispatchEvent(evt); + } + }, + fireWindowEvent: function(type, data) { + var evt = createEvent(type,data); + if (typeof windowEventHandlers[type] != 'undefined') { + setTimeout(function() { + windowEventHandlers[type].fire(evt); + }, 0); + } else { + window.dispatchEvent(evt); + } + }, + + /** + * Plugin callback mechanism. + */ + // Randomize the starting callbackId to avoid collisions after refreshing or navigating. + // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. + callbackId: Math.floor(Math.random() * 2000000000), + callbacks: {}, + callbackStatus: { + NO_RESULT: 0, + OK: 1, + CLASS_NOT_FOUND_EXCEPTION: 2, + ILLEGAL_ACCESS_EXCEPTION: 3, + INSTANTIATION_EXCEPTION: 4, + MALFORMED_URL_EXCEPTION: 5, + IO_EXCEPTION: 6, + INVALID_ACTION: 7, + JSON_EXCEPTION: 8, + ERROR: 9 + }, + + /** + * Called by native code when returning successful result from an action. + */ + callbackSuccess: function(callbackId, args) { + try { + cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning error result from an action. + */ + callbackError: function(callbackId, args) { + // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. + // Derive success from status. + try { + cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning the result from an action. + */ + callbackFromNative: function(callbackId, success, status, args, keepCallback) { + var callback = cordova.callbacks[callbackId]; + if (callback) { + if (success && status == cordova.callbackStatus.OK) { + callback.success && callback.success.apply(null, args); + } else if (!success) { + callback.fail && callback.fail.apply(null, args); + } + + // Clear callback if not expecting any more results + if (!keepCallback) { + delete cordova.callbacks[callbackId]; + } + } + }, + addConstructor: function(func) { + channel.onCordovaReady.subscribe(function() { + try { + func(); + } catch(e) { + console.log("Failed to run constructor: " + e); + } + }); + } +}; + + +module.exports = cordova; + +}); + +// file: src/android/android/nativeapiprovider.js +define("cordova/android/nativeapiprovider", function(require, exports, module) { + +/** + * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. + */ + +var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); +var currentApi = nativeApi; + +module.exports = { + get: function() { return currentApi; }, + setPreferPrompt: function(value) { + currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; + }, + // Used only by tests. + set: function(value) { + currentApi = value; + } +}; + +}); + +// file: src/android/android/promptbasednativeapi.js +define("cordova/android/promptbasednativeapi", function(require, exports, module) { + +/** + * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. + * This is used only on the 2.3 simulator, where addJavascriptInterface() is broken. + */ + +module.exports = { + exec: function(service, action, callbackId, argsJson) { + return prompt(argsJson, 'gap:'+JSON.stringify([service, action, callbackId])); + }, + setNativeToJsBridgeMode: function(value) { + prompt(value, 'gap_bridge_mode:'); + }, + retrieveJsMessages: function(fromOnlineEvent) { + return prompt(+fromOnlineEvent, 'gap_poll:'); + } +}; + +}); + +// file: src/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var exec = require('cordova/exec'); +var utils = require('cordova/utils'); + +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var typeName; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + typeName = utils.typeName(arg); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (typeName != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + typeName + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running unit tests. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +function getValue(value, defaultValue) { + return value === undefined ? defaultValue : value; +} + +moduleExports.checkArgs = checkArgs; +moduleExports.getValue = getValue; +moduleExports.enableChecks = true; + + +}); + +// file: src/common/base64.js +define("cordova/base64", function(require, exports, module) { + +var base64 = exports; + +base64.fromArrayBuffer = function(arrayBuffer) { + var array = new Uint8Array(arrayBuffer); + return uint8ToBase64(array); +}; + +//------------------------------------------------------------------------------ + +/* This code is based on the performance tests at http://jsperf.com/b64tests + * This 12-bit-at-a-time algorithm was the best performing version on all + * platforms tested. + */ + +var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_12bit; + +var b64_12bitTable = function() { + b64_12bit = []; + for (var i=0; i<64; i++) { + for (var j=0; j<64; j++) { + b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + } + } + b64_12bitTable = function() { return b64_12bit; }; + return b64_12bit; +}; + +function uint8ToBase64(rawData) { + var numBytes = rawData.byteLength; + var output=""; + var segment; + var table = b64_12bitTable(); + for (var i=0;i> 12]; + output += table[segment & 0xfff]; + } + if (numBytes - i == 2) { + segment = (rawData[i] << 16) + (rawData[i+1] << 8); + output += table[segment >> 12]; + output += b64_6bit[(segment & 0xfff) >> 6]; + output += '='; + } else if (numBytes - i == 1) { + segment = (rawData[i] << 16); + output += table[segment >> 12]; + output += '=='; + } + return output; +} + +}); + +// file: src/common/builder.js +define("cordova/builder", function(require, exports, module) { + +var utils = require('cordova/utils'); + +function each(objects, func, context) { + for (var prop in objects) { + if (objects.hasOwnProperty(prop)) { + func.apply(context, [objects[prop], prop]); + } + } +} + +function clobber(obj, key, value) { + exports.replaceHookForTesting(obj, key); + obj[key] = value; + // Getters can only be overridden by getters. + if (obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + +function assignOrWrapInDeprecateGetter(obj, key, value, message) { + if (message) { + utils.defineGetter(obj, key, function() { + console.log(message); + delete obj[key]; + clobber(obj, key, value); + return value; + }); + } else { + clobber(obj, key, value); + } +} + +function include(parent, objects, clobber, merge) { + each(objects, function (obj, key) { + try { + var result = obj.path ? require(obj.path) : {}; + + if (clobber) { + // Clobber if it doesn't exist. + if (typeof parent[key] === 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else if (typeof obj.path !== 'undefined') { + // If merging, merge properties onto parent, otherwise, clobber. + if (merge) { + recursiveMerge(parent[key], result); + } else { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } + } + result = parent[key]; + } else { + // Overwrite if not currently defined. + if (typeof parent[key] == 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else { + // Set result to what already exists, so we can build children into it if they exist. + result = parent[key]; + } + } + + if (obj.children) { + include(result, obj.children, clobber, merge); + } + } catch(e) { + utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); + } + }); +} + +/** + * Merge properties from one object onto another recursively. Properties from + * the src object will overwrite existing target property. + * + * @param target Object to merge properties into. + * @param src Object to merge properties from. + */ +function recursiveMerge(target, src) { + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + if (target.prototype && target.prototype.constructor === target) { + // If the target object is a constructor override off prototype. + clobber(target.prototype, prop, src[prop]); + } else { + if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { + recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } + } + } + } +} + +exports.buildIntoButDoNotClobber = function(objects, target) { + include(target, objects, false, false); +}; +exports.buildIntoAndClobber = function(objects, target) { + include(target, objects, true, false); +}; +exports.buildIntoAndMerge = function(objects, target) { + include(target, objects, true, true); +}; +exports.recursiveMerge = recursiveMerge; +exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; +exports.replaceHookForTesting = function() {}; + +}); + +// file: src/common/channel.js +define("cordova/channel", function(require, exports, module) { + +var utils = require('cordova/utils'), + nextGuid = 1; + +/** + * Custom pub-sub "channel" that can have functions subscribed to it + * This object is used to define and control firing of events for + * cordova initialization, as well as for custom events thereafter. + * + * The order of events during page load and Cordova startup is as follows: + * + * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. + * onNativeReady* Internal event that indicates the Cordova native side is ready. + * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. + * onDeviceReady* User event fired to indicate that Cordova is ready + * onResume User event fired to indicate a start/resume lifecycle event + * onPause User event fired to indicate a pause lifecycle event + * onDestroy* Internal event fired when app is being destroyed (User should use window.onunload event, not this one). + * + * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. + * All listeners that subscribe after the event is fired will be executed right away. + * + * The only Cordova events that user code should register for are: + * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript + * pause App has moved to background + * resume App has returned to foreground + * + * Listeners can be registered as: + * document.addEventListener("deviceready", myDeviceReadyListener, false); + * document.addEventListener("resume", myResumeListener, false); + * document.addEventListener("pause", myPauseListener, false); + * + * The DOM lifecycle events should be used for saving and restoring state + * window.onload + * window.onunload + * + */ + +/** + * Channel + * @constructor + * @param type String the channel name + */ +var Channel = function(type, sticky) { + this.type = type; + // Map of guid -> function. + this.handlers = {}; + // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. + this.state = sticky ? 1 : 0; + // Used in sticky mode to remember args passed to fire(). + this.fireArgs = null; + // Used by onHasSubscribersChange to know if there are any listeners. + this.numHandlers = 0; + // Function that is called when the first listener is subscribed, or when + // the last listener is unsubscribed. + this.onHasSubscribersChange = null; +}, + channel = { + /** + * Calls the provided function only after all of the channels specified + * have been fired. All channels must be sticky channels. + */ + join: function(h, c) { + var len = c.length, + i = len, + f = function() { + if (!(--i)) h(); + }; + for (var j=0; jNative bridge. + POLLING: 0, + // For LOAD_URL to be viable, it would need to have a work-around for + // the bug where the soft-keyboard gets dismissed when a message is sent. + LOAD_URL: 1, + // For the ONLINE_EVENT to be viable, it would need to intercept all event + // listeners (both through addEventListener and window.ononline) as well + // as set the navigator property itself. + ONLINE_EVENT: 2, + // Uses reflection to access private APIs of the WebView that can send JS + // to be executed. + // Requires Android 3.2.4 or above. + PRIVATE_API: 3 + }, + jsToNativeBridgeMode, // Set lazily. + nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT, + pollEnabled = false, + messagesFromNative = []; + +function androidExec(success, fail, service, action, args) { + // Set default bridge modes if they have not already been set. + // By default, we use the failsafe, since addJavascriptInterface breaks too often + if (jsToNativeBridgeMode === undefined) { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } + + // Process any ArrayBuffers in the args into a string. + for (var i = 0; i < args.length; i++) { + if (utils.typeName(args[i]) == 'ArrayBuffer') { + args[i] = base64.fromArrayBuffer(args[i]); + } + } + + var callbackId = service + cordova.callbackId++, + argsJson = JSON.stringify(args); + + if (success || fail) { + cordova.callbacks[callbackId] = {success:success, fail:fail}; + } + + if (jsToNativeBridgeMode == jsToNativeModes.LOCATION_CHANGE) { + window.location = 'http://cdv_exec/' + service + '#' + action + '#' + callbackId + '#' + argsJson; + } else { + var messages = nativeApiProvider.get().exec(service, action, callbackId, argsJson); + // If argsJson was received by Java as null, try again with the PROMPT bridge mode. + // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. + if (jsToNativeBridgeMode == jsToNativeModes.JS_OBJECT && messages === "@Null arguments.") { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); + androidExec(success, fail, service, action, args); + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + return; + } else { + androidExec.processMessages(messages); + } + } +} + +function pollOnceFromOnlineEvent() { + pollOnce(true); +} + +function pollOnce(opt_fromOnlineEvent) { + var msg = nativeApiProvider.get().retrieveJsMessages(!!opt_fromOnlineEvent); + androidExec.processMessages(msg); +} + +function pollingTimerFunc() { + if (pollEnabled) { + pollOnce(); + setTimeout(pollingTimerFunc, 50); + } +} + +function hookOnlineApis() { + function proxyEvent(e) { + cordova.fireWindowEvent(e.type); + } + // The network module takes care of firing online and offline events. + // It currently fires them only on document though, so we bridge them + // to window here (while first listening for exec()-releated online/offline + // events). + window.addEventListener('online', pollOnceFromOnlineEvent, false); + window.addEventListener('offline', pollOnceFromOnlineEvent, false); + cordova.addWindowEventHandler('online'); + cordova.addWindowEventHandler('offline'); + document.addEventListener('online', proxyEvent, false); + document.addEventListener('offline', proxyEvent, false); +} + +hookOnlineApis(); + +androidExec.jsToNativeModes = jsToNativeModes; +androidExec.nativeToJsModes = nativeToJsModes; + +androidExec.setJsToNativeBridgeMode = function(mode) { + if (mode == jsToNativeModes.JS_OBJECT && !window._cordovaNative) { + console.log('Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only.'); + mode = jsToNativeModes.PROMPT; + } + nativeApiProvider.setPreferPrompt(mode == jsToNativeModes.PROMPT); + jsToNativeBridgeMode = mode; +}; + +androidExec.setNativeToJsBridgeMode = function(mode) { + if (mode == nativeToJsBridgeMode) { + return; + } + if (nativeToJsBridgeMode == nativeToJsModes.POLLING) { + pollEnabled = false; + } + + nativeToJsBridgeMode = mode; + // Tell the native side to switch modes. + nativeApiProvider.get().setNativeToJsBridgeMode(mode); + + if (mode == nativeToJsModes.POLLING) { + pollEnabled = true; + setTimeout(pollingTimerFunc, 1); + } +}; + +// Processes a single message, as encoded by NativeToJsMessageQueue.java. +function processMessage(message) { + try { + var firstChar = message.charAt(0); + if (firstChar == 'J') { + eval(message.slice(1)); + } else if (firstChar == 'S' || firstChar == 'F') { + var success = firstChar == 'S'; + var keepCallback = message.charAt(1) == '1'; + var spaceIdx = message.indexOf(' ', 2); + var status = +message.slice(2, spaceIdx); + var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); + var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); + var payloadKind = message.charAt(nextSpaceIdx + 1); + var payload; + if (payloadKind == 's') { + payload = message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 't') { + payload = true; + } else if (payloadKind == 'f') { + payload = false; + } else if (payloadKind == 'N') { + payload = null; + } else if (payloadKind == 'n') { + payload = +message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 'A') { + var data = message.slice(nextSpaceIdx + 2); + var bytes = window.atob(data); + var arraybuffer = new Uint8Array(bytes.length); + for (var i = 0; i < bytes.length; i++) { + arraybuffer[i] = bytes.charCodeAt(i); + } + payload = arraybuffer.buffer; + } else if (payloadKind == 'S') { + payload = window.atob(message.slice(nextSpaceIdx + 2)); + } else { + payload = JSON.parse(message.slice(nextSpaceIdx + 1)); + } + cordova.callbackFromNative(callbackId, success, status, [payload], keepCallback); + } else { + console.log("processMessage failed: invalid message:" + message); + } + } catch (e) { + console.log("processMessage failed: Message: " + message); + console.log("processMessage failed: Error: " + e); + console.log("processMessage failed: Stack: " + e.stack); + } +} + +// This is called from the NativeToJsMessageQueue.java. +androidExec.processMessages = function(messages) { + if (messages) { + messagesFromNative.push(messages); + // Check for the reentrant case, and enqueue the message if that's the case. + if (messagesFromNative.length > 1) { + return; + } + while (messagesFromNative.length) { + // Don't unshift until the end so that reentrancy can be detected. + messages = messagesFromNative[0]; + // The Java side can send a * message to indicate that it + // still has messages waiting to be retrieved. + if (messages == '*') { + messagesFromNative.shift(); + window.setTimeout(pollOnce, 0); + return; + } + + var spaceIdx = messages.indexOf(' '); + var msgLen = +messages.slice(0, spaceIdx); + var message = messages.substr(spaceIdx + 1, msgLen); + messages = messages.slice(spaceIdx + msgLen + 1); + processMessage(message); + if (messages) { + messagesFromNative[0] = messages; + } else { + messagesFromNative.shift(); + } + } + } +}; + +module.exports = androidExec; + +}); + +// file: src/common/exec/proxy.js +define("cordova/exec/proxy", function(require, exports, module) { + + +// internal map of proxy function +var CommandProxyMap = {}; + +module.exports = { + + // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); + add:function(id,proxyObj) { + console.log("adding proxy for " + id); + CommandProxyMap[id] = proxyObj; + return proxyObj; + }, + + // cordova.commandProxy.remove("Accelerometer"); + remove:function(id) { + var proxy = CommandProxyMap[id]; + delete CommandProxyMap[id]; + CommandProxyMap[id] = null; + return proxy; + }, + + get:function(service,action) { + return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null ); + } +}; +}); + +// file: src/common/init.js +define("cordova/init", function(require, exports, module) { + +var channel = require('cordova/channel'); +var cordova = require('cordova'); +var modulemapper = require('cordova/modulemapper'); +var platform = require('cordova/platform'); +var pluginloader = require('cordova/pluginloader'); + +var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; + +function logUnfiredChannels(arr) { + for (var i = 0; i < arr.length; ++i) { + if (arr[i].state != 2) { + console.log('Channel not fired: ' + arr[i].type); + } + } +} + +window.setTimeout(function() { + if (channel.onDeviceReady.state != 2) { + console.log('deviceready has not fired after 5 seconds.'); + logUnfiredChannels(platformInitChannelsArray); + logUnfiredChannels(channel.deviceReadyChannelsArray); + } +}, 5000); + +// Replace navigator before any modules are required(), to ensure it happens as soon as possible. +// We replace it so that properties that can't be clobbered can instead be overridden. +function replaceNavigator(origNavigator) { + var CordovaNavigator = function() {}; + CordovaNavigator.prototype = origNavigator; + var newNavigator = new CordovaNavigator(); + // This work-around really only applies to new APIs that are newer than Function.bind. + // Without it, APIs such as getGamepads() break. + if (CordovaNavigator.bind) { + for (var key in origNavigator) { + if (typeof origNavigator[key] == 'function') { + newNavigator[key] = origNavigator[key].bind(origNavigator); + } + } + } + return newNavigator; +} +if (window.navigator) { + window.navigator = replaceNavigator(window.navigator); +} + +if (!window.console) { + window.console = { + log: function(){} + }; +} +if (!window.console.warn) { + window.console.warn = function(msg) { + this.log("warn: " + msg); + }; +} + +// Register pause, resume and deviceready channels as events on document. +channel.onPause = cordova.addDocumentEventHandler('pause'); +channel.onResume = cordova.addDocumentEventHandler('resume'); +channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); + +// Listen for DOMContentLoaded and notify our channel subscribers. +if (document.readyState == 'complete' || document.readyState == 'interactive') { + channel.onDOMContentLoaded.fire(); +} else { + document.addEventListener('DOMContentLoaded', function() { + channel.onDOMContentLoaded.fire(); + }, false); +} + +// _nativeReady is global variable that the native side can set +// to signify that the native code is ready. It is a global since +// it may be called before any cordova JS is ready. +if (window._nativeReady) { + channel.onNativeReady.fire(); +} + +modulemapper.clobbers('cordova', 'cordova'); +modulemapper.clobbers('cordova/exec', 'cordova.exec'); +modulemapper.clobbers('cordova/exec', 'Cordova.exec'); + +// Call the platform-specific initialization. +platform.bootstrap && platform.bootstrap(); + +pluginloader.load(function() { + channel.onPluginsReady.fire(); +}); + +/** + * Create all cordova objects once native side is ready. + */ +channel.join(function() { + modulemapper.mapModules(window); + + platform.initialize && platform.initialize(); + + // Fire event to notify that all objects are created + channel.onCordovaReady.fire(); + + // Fire onDeviceReady event once page has fully loaded, all + // constructors have run and cordova info has been received from native + // side. + channel.join(function() { + require('cordova').fireDocumentEvent('deviceready'); + }, channel.deviceReadyChannelsArray); + +}, platformInitChannelsArray); + + +}); + +// file: src/common/modulemapper.js +define("cordova/modulemapper", function(require, exports, module) { + +var builder = require('cordova/builder'), + moduleMap = define.moduleMap, + symbolList, + deprecationMap; + +exports.reset = function() { + symbolList = []; + deprecationMap = {}; +}; + +function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { + if (!(moduleName in moduleMap)) { + throw new Error('Module ' + moduleName + ' does not exist.'); + } + symbolList.push(strategy, moduleName, symbolPath); + if (opt_deprecationMessage) { + deprecationMap[symbolPath] = opt_deprecationMessage; + } +} + +// Note: Android 2.3 does have Function.bind(). +exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('c', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('m', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('d', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.runs = function(moduleName) { + addEntry('r', moduleName, null); +}; + +function prepareNamespace(symbolPath, context) { + if (!symbolPath) { + return context; + } + var parts = symbolPath.split('.'); + var cur = context; + for (var i = 0, part; part = parts[i]; ++i) { + cur = cur[part] = cur[part] || {}; + } + return cur; +} + +exports.mapModules = function(context) { + var origSymbols = {}; + context.CDV_origSymbols = origSymbols; + for (var i = 0, len = symbolList.length; i < len; i += 3) { + var strategy = symbolList[i]; + var moduleName = symbolList[i + 1]; + var module = require(moduleName); + // + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: src/android/platform.js +define("cordova/platform", function(require, exports, module) { + +module.exports = { + id: 'android', + bootstrap: function() { + var channel = require('cordova/channel'), + cordova = require('cordova'), + exec = require('cordova/exec'), + modulemapper = require('cordova/modulemapper'); + + // Tell the native code that a page change has occurred. + exec(null, null, 'PluginManager', 'startup', []); + // Tell the JS that the native side is ready. + channel.onNativeReady.fire(); + + // TODO: Extract this as a proper plugin. + modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); + + // Inject a listener for the backbutton on the document. + var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); + backButtonChannel.onHasSubscribersChange = function() { + // If we just attached the first handler or detached the last handler, + // let native know we need to override the back button. + exec(null, null, "App", "overrideBackbutton", [this.numHandlers == 1]); + }; + + // Add hardware MENU and SEARCH button handlers + cordova.addDocumentEventHandler('menubutton'); + cordova.addDocumentEventHandler('searchbutton'); + + // Let native code know we are all done on the JS side. + // Native code will then un-hide the WebView. + channel.onCordovaReady.subscribe(function() { + exec(null, null, "App", "show", []); + }); + } +}; + +}); + +// file: src/android/plugin/android/app.js +define("cordova/plugin/android/app", function(require, exports, module) { + +var exec = require('cordova/exec'); + +module.exports = { + /** + * Clear the resource cache. + */ + clearCache:function() { + exec(null, null, "App", "clearCache", []); + }, + + /** + * Load the url into the webview or into new browser instance. + * + * @param url The URL to load + * @param props Properties that can be passed in to the activity: + * wait: int => wait msec before loading URL + * loadingDialog: "Title,Message" => display a native loading dialog + * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error + * clearHistory: boolean => clear webview history (default=false) + * openExternal: boolean => open in a new browser (default=false) + * + * Example: + * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); + */ + loadUrl:function(url, props) { + exec(null, null, "App", "loadUrl", [url, props]); + }, + + /** + * Cancel loadUrl that is waiting to be loaded. + */ + cancelLoadUrl:function() { + exec(null, null, "App", "cancelLoadUrl", []); + }, + + /** + * Clear web history in this web view. + * Instead of BACK button loading the previous web page, it will exit the app. + */ + clearHistory:function() { + exec(null, null, "App", "clearHistory", []); + }, + + /** + * Go to previous page displayed. + * This is the same as pressing the backbutton on Android device. + */ + backHistory:function() { + exec(null, null, "App", "backHistory", []); + }, + + /** + * Override the default behavior of the Android back button. + * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "backbutton" event, this is automatically done. + * + * @param override T=override, F=cancel override + */ + overrideBackbutton:function(override) { + exec(null, null, "App", "overrideBackbutton", [override]); + }, + + /** + * Exit and terminate the application. + */ + exitApp:function() { + return exec(null, null, "App", "exitApp", []); + } +}; + +}); + +// file: src/common/pluginloader.js +define("cordova/pluginloader", function(require, exports, module) { + +var modulemapper = require('cordova/modulemapper'); +var urlutil = require('cordova/urlutil'); + +// Helper function to inject a + +
+ + diff --git a/platforms/browser/www/config.json b/platforms/browser/www/config.json new file mode 100644 index 00000000..70789f22 --- /dev/null +++ b/platforms/browser/www/config.json @@ -0,0 +1 @@ +{"environment":"","server":""} diff --git a/platforms/browser/www/config.xml b/platforms/browser/www/config.xml new file mode 100644 index 00000000..260365a5 --- /dev/null +++ b/platforms/browser/www/config.xml @@ -0,0 +1,22 @@ + + + + + + LiveWell + + An application for bipolar disorder + + + Evan Goulding + + + + + + + + + + + diff --git a/platforms/browser/www/cordova.js b/platforms/browser/www/cordova.js new file mode 100644 index 00000000..d73121b2 --- /dev/null +++ b/platforms/browser/www/cordova.js @@ -0,0 +1,1551 @@ +// Platform: browser +// 8ca0f3b2b87e0759c5236b91c80f18438544409c +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +;(function() { +var PLATFORM_VERSION_BUILD_LABEL = '3.6.0'; +// file: src/scripts/require.js + +/*jshint -W079 */ +/*jshint -W020 */ + +var require, + define; + +(function () { + var modules = {}, + // Stack of moduleIds currently being built. + requireStack = [], + // Map of module ID -> index into requireStack of modules currently being built. + inProgressModules = {}, + SEPARATOR = "."; + + + + function build(module) { + var factory = module.factory, + localRequire = function (id) { + var resultantId = id; + //Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === ".") { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; + module.exports = {}; + delete module.factory; + factory(localRequire, module.exports, module); + return module.exports; + } + + require = function (id) { + if (!modules[id]) { + throw "module " + id + " not found"; + } else if (id in inProgressModules) { + var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; + throw "Cycle in require graph: " + cycle; + } + if (modules[id].factory) { + try { + inProgressModules[id] = requireStack.length; + requireStack.push(id); + return build(modules[id]); + } finally { + delete inProgressModules[id]; + requireStack.pop(); + } + } + return modules[id].exports; + }; + + define = function (id, factory) { + if (modules[id]) { + throw "module " + id + " already defined"; + } + + modules[id] = { + id: id, + factory: factory + }; + }; + + define.remove = function (id) { + delete modules[id]; + }; + + define.moduleMap = modules; +})(); + +//Export for use in node +if (typeof module === "object" && typeof require === "function") { + module.exports.require = require; + module.exports.define = define; +} + +// file: src/cordova.js +define("cordova", function(require, exports, module) { + + +var channel = require('cordova/channel'); +var platform = require('cordova/platform'); + +/** + * Intercept calls to addEventListener + removeEventListener and handle deviceready, + * resume, and pause events. + */ +var m_document_addEventListener = document.addEventListener; +var m_document_removeEventListener = document.removeEventListener; +var m_window_addEventListener = window.addEventListener; +var m_window_removeEventListener = window.removeEventListener; + +/** + * Houses custom event handlers to intercept on document + window event listeners. + */ +var documentEventHandlers = {}, + windowEventHandlers = {}; + +document.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof documentEventHandlers[e] != 'undefined') { + documentEventHandlers[e].subscribe(handler); + } else { + m_document_addEventListener.call(document, evt, handler, capture); + } +}; + +window.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof windowEventHandlers[e] != 'undefined') { + windowEventHandlers[e].subscribe(handler); + } else { + m_window_addEventListener.call(window, evt, handler, capture); + } +}; + +document.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof documentEventHandlers[e] != "undefined") { + documentEventHandlers[e].unsubscribe(handler); + } else { + m_document_removeEventListener.call(document, evt, handler, capture); + } +}; + +window.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof windowEventHandlers[e] != "undefined") { + windowEventHandlers[e].unsubscribe(handler); + } else { + m_window_removeEventListener.call(window, evt, handler, capture); + } +}; + +function createEvent(type, data) { + var event = document.createEvent('Events'); + event.initEvent(type, false, false); + if (data) { + for (var i in data) { + if (data.hasOwnProperty(i)) { + event[i] = data[i]; + } + } + } + return event; +} + + +var cordova = { + define:define, + require:require, + version:PLATFORM_VERSION_BUILD_LABEL, + platformVersion:PLATFORM_VERSION_BUILD_LABEL, + platformId:platform.id, + /** + * Methods to add/remove your own addEventListener hijacking on document + window. + */ + addWindowEventHandler:function(event) { + return (windowEventHandlers[event] = channel.create(event)); + }, + addStickyDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.createSticky(event)); + }, + addDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.create(event)); + }, + removeWindowEventHandler:function(event) { + delete windowEventHandlers[event]; + }, + removeDocumentEventHandler:function(event) { + delete documentEventHandlers[event]; + }, + /** + * Retrieve original event handlers that were replaced by Cordova + * + * @return object + */ + getOriginalHandlers: function() { + return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + }, + /** + * Method to fire event from native code + * bNoDetach is required for events which cause an exception which needs to be caught in native code + */ + fireDocumentEvent: function(type, data, bNoDetach) { + var evt = createEvent(type, data); + if (typeof documentEventHandlers[type] != 'undefined') { + if( bNoDetach ) { + documentEventHandlers[type].fire(evt); + } + else { + setTimeout(function() { + // Fire deviceready on listeners that were registered before cordova.js was loaded. + if (type == 'deviceready') { + document.dispatchEvent(evt); + } + documentEventHandlers[type].fire(evt); + }, 0); + } + } else { + document.dispatchEvent(evt); + } + }, + fireWindowEvent: function(type, data) { + var evt = createEvent(type,data); + if (typeof windowEventHandlers[type] != 'undefined') { + setTimeout(function() { + windowEventHandlers[type].fire(evt); + }, 0); + } else { + window.dispatchEvent(evt); + } + }, + + /** + * Plugin callback mechanism. + */ + // Randomize the starting callbackId to avoid collisions after refreshing or navigating. + // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. + callbackId: Math.floor(Math.random() * 2000000000), + callbacks: {}, + callbackStatus: { + NO_RESULT: 0, + OK: 1, + CLASS_NOT_FOUND_EXCEPTION: 2, + ILLEGAL_ACCESS_EXCEPTION: 3, + INSTANTIATION_EXCEPTION: 4, + MALFORMED_URL_EXCEPTION: 5, + IO_EXCEPTION: 6, + INVALID_ACTION: 7, + JSON_EXCEPTION: 8, + ERROR: 9 + }, + + /** + * Called by native code when returning successful result from an action. + */ + callbackSuccess: function(callbackId, args) { + try { + cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in success callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning error result from an action. + */ + callbackError: function(callbackId, args) { + // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. + // Derive success from status. + try { + cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning the result from an action. + */ + callbackFromNative: function(callbackId, success, status, args, keepCallback) { + var callback = cordova.callbacks[callbackId]; + if (callback) { + if (success && status == cordova.callbackStatus.OK) { + callback.success && callback.success.apply(null, args); + } else if (!success) { + callback.fail && callback.fail.apply(null, args); + } + + // Clear callback if not expecting any more results + if (!keepCallback) { + delete cordova.callbacks[callbackId]; + } + } + }, + addConstructor: function(func) { + channel.onCordovaReady.subscribe(function() { + try { + func(); + } catch(e) { + console.log("Failed to run constructor: " + e); + } + }); + } +}; + + +module.exports = cordova; + +}); + +// file: src/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var exec = require('cordova/exec'); +var utils = require('cordova/utils'); + +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var typeName; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + typeName = utils.typeName(arg); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (typeName != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + typeName + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running unit tests. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +function getValue(value, defaultValue) { + return value === undefined ? defaultValue : value; +} + +moduleExports.checkArgs = checkArgs; +moduleExports.getValue = getValue; +moduleExports.enableChecks = true; + + +}); + +// file: src/common/base64.js +define("cordova/base64", function(require, exports, module) { + +var base64 = exports; + +base64.fromArrayBuffer = function(arrayBuffer) { + var array = new Uint8Array(arrayBuffer); + return uint8ToBase64(array); +}; + +base64.toArrayBuffer = function(str) { + var decodedStr = typeof atob != 'undefined' ? atob(str) : new Buffer(str,'base64').toString('binary'); + var arrayBuffer = new ArrayBuffer(decodedStr.length); + var array = new Uint8Array(arrayBuffer); + for (var i=0, len=decodedStr.length; i < len; i++) { + array[i] = decodedStr.charCodeAt(i); + } + return arrayBuffer; +}; + +//------------------------------------------------------------------------------ + +/* This code is based on the performance tests at http://jsperf.com/b64tests + * This 12-bit-at-a-time algorithm was the best performing version on all + * platforms tested. + */ + +var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_12bit; + +var b64_12bitTable = function() { + b64_12bit = []; + for (var i=0; i<64; i++) { + for (var j=0; j<64; j++) { + b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + } + } + b64_12bitTable = function() { return b64_12bit; }; + return b64_12bit; +}; + +function uint8ToBase64(rawData) { + var numBytes = rawData.byteLength; + var output=""; + var segment; + var table = b64_12bitTable(); + for (var i=0;i> 12]; + output += table[segment & 0xfff]; + } + if (numBytes - i == 2) { + segment = (rawData[i] << 16) + (rawData[i+1] << 8); + output += table[segment >> 12]; + output += b64_6bit[(segment & 0xfff) >> 6]; + output += '='; + } else if (numBytes - i == 1) { + segment = (rawData[i] << 16); + output += table[segment >> 12]; + output += '=='; + } + return output; +} + +}); + +// file: src/common/builder.js +define("cordova/builder", function(require, exports, module) { + +var utils = require('cordova/utils'); + +function each(objects, func, context) { + for (var prop in objects) { + if (objects.hasOwnProperty(prop)) { + func.apply(context, [objects[prop], prop]); + } + } +} + +function clobber(obj, key, value) { + exports.replaceHookForTesting(obj, key); + obj[key] = value; + // Getters can only be overridden by getters. + if (obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + +function assignOrWrapInDeprecateGetter(obj, key, value, message) { + if (message) { + utils.defineGetter(obj, key, function() { + console.log(message); + delete obj[key]; + clobber(obj, key, value); + return value; + }); + } else { + clobber(obj, key, value); + } +} + +function include(parent, objects, clobber, merge) { + each(objects, function (obj, key) { + try { + var result = obj.path ? require(obj.path) : {}; + + if (clobber) { + // Clobber if it doesn't exist. + if (typeof parent[key] === 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else if (typeof obj.path !== 'undefined') { + // If merging, merge properties onto parent, otherwise, clobber. + if (merge) { + recursiveMerge(parent[key], result); + } else { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } + } + result = parent[key]; + } else { + // Overwrite if not currently defined. + if (typeof parent[key] == 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else { + // Set result to what already exists, so we can build children into it if they exist. + result = parent[key]; + } + } + + if (obj.children) { + include(result, obj.children, clobber, merge); + } + } catch(e) { + utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); + } + }); +} + +/** + * Merge properties from one object onto another recursively. Properties from + * the src object will overwrite existing target property. + * + * @param target Object to merge properties into. + * @param src Object to merge properties from. + */ +function recursiveMerge(target, src) { + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + if (target.prototype && target.prototype.constructor === target) { + // If the target object is a constructor override off prototype. + clobber(target.prototype, prop, src[prop]); + } else { + if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { + recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } + } + } + } +} + +exports.buildIntoButDoNotClobber = function(objects, target) { + include(target, objects, false, false); +}; +exports.buildIntoAndClobber = function(objects, target) { + include(target, objects, true, false); +}; +exports.buildIntoAndMerge = function(objects, target) { + include(target, objects, true, true); +}; +exports.recursiveMerge = recursiveMerge; +exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; +exports.replaceHookForTesting = function() {}; + +}); + +// file: src/common/channel.js +define("cordova/channel", function(require, exports, module) { + +var utils = require('cordova/utils'), + nextGuid = 1; + +/** + * Custom pub-sub "channel" that can have functions subscribed to it + * This object is used to define and control firing of events for + * cordova initialization, as well as for custom events thereafter. + * + * The order of events during page load and Cordova startup is as follows: + * + * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. + * onNativeReady* Internal event that indicates the Cordova native side is ready. + * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. + * onDeviceReady* User event fired to indicate that Cordova is ready + * onResume User event fired to indicate a start/resume lifecycle event + * onPause User event fired to indicate a pause lifecycle event + * onDestroy* Internal event fired when app is being destroyed (User should use window.onunload event, not this one). + * + * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. + * All listeners that subscribe after the event is fired will be executed right away. + * + * The only Cordova events that user code should register for are: + * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript + * pause App has moved to background + * resume App has returned to foreground + * + * Listeners can be registered as: + * document.addEventListener("deviceready", myDeviceReadyListener, false); + * document.addEventListener("resume", myResumeListener, false); + * document.addEventListener("pause", myPauseListener, false); + * + * The DOM lifecycle events should be used for saving and restoring state + * window.onload + * window.onunload + * + */ + +/** + * Channel + * @constructor + * @param type String the channel name + */ +var Channel = function(type, sticky) { + this.type = type; + // Map of guid -> function. + this.handlers = {}; + // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. + this.state = sticky ? 1 : 0; + // Used in sticky mode to remember args passed to fire(). + this.fireArgs = null; + // Used by onHasSubscribersChange to know if there are any listeners. + this.numHandlers = 0; + // Function that is called when the first listener is subscribed, or when + // the last listener is unsubscribed. + this.onHasSubscribersChange = null; +}, + channel = { + /** + * Calls the provided function only after all of the channels specified + * have been fired. All channels must be sticky channels. + */ + join: function(h, c) { + var len = c.length, + i = len, + f = function() { + if (!(--i)) h(); + }; + for (var j=0; j + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: src/browser/platform.js +define("cordova/platform", function(require, exports, module) { + +module.exports = { + id: 'browser', + cordovaVersion: '3.4.0', + + bootstrap: function() { + + var modulemapper = require('cordova/modulemapper'); + var channel = require('cordova/channel'); + + modulemapper.clobbers('cordova/exec/proxy', 'cordova.commandProxy'); + + channel.onNativeReady.fire(); + + // FIXME is this the right place to clobber pause/resume? I am guessing not + // FIXME pause/resume should be deprecated IN CORDOVA for pagevisiblity api + document.addEventListener('webkitvisibilitychange', function() { + if (document.webkitHidden) { + channel.onPause.fire(); + } + else { + channel.onResume.fire(); + } + }, false); + + // End of bootstrap + } +}; + +}); + +// file: src/common/pluginloader.js +define("cordova/pluginloader", function(require, exports, module) { + +var modulemapper = require('cordova/modulemapper'); +var urlutil = require('cordova/urlutil'); + +// Helper function to inject a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platforms/browser/www/lib/PurpleRobotClient/.bower.json b/platforms/browser/www/lib/PurpleRobotClient/.bower.json new file mode 100644 index 00000000..30421c24 --- /dev/null +++ b/platforms/browser/www/lib/PurpleRobotClient/.bower.json @@ -0,0 +1,32 @@ +{ + "name": "PurpleRobotClient", + "homepage": "https://github.com/cbitstech/PurpleRobotClient", + "authors": [ + "Mark Begale ", + "Eric Carty-Fickes " + ], + "description": "JavaScript client for Purple Robot services", + "main": "purple-robot.js", + "devDependencies": { + "jasmine": "2" + }, + "ignore": [ + "README.md", + "default-triggers.js", + "index.html", + "purple-robot-client.js", + "run_specs", + "test-prompt copy.js", + "docs", + "spec" + ], + "_release": "1.5.10.0", + "_resolution": { + "type": "tag", + "tag": "1.5.10.0", + "commit": "c3f27a19f14a86699d1bc4a19f3df38d8a160a4f" + }, + "_source": "git@github.com:cbitstech/PurpleRobotClient.git", + "_target": "1.5.10.0", + "_originalSource": "git@github.com:cbitstech/PurpleRobotClient.git" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/PurpleRobotClient/.gitignore b/platforms/browser/www/lib/PurpleRobotClient/.gitignore new file mode 100644 index 00000000..878275d5 --- /dev/null +++ b/platforms/browser/www/lib/PurpleRobotClient/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +bower_components diff --git a/platforms/browser/www/lib/PurpleRobotClient/bower.json b/platforms/browser/www/lib/PurpleRobotClient/bower.json new file mode 100644 index 00000000..4d7a07a4 --- /dev/null +++ b/platforms/browser/www/lib/PurpleRobotClient/bower.json @@ -0,0 +1,24 @@ +{ + "name": "PurpleRobotClient", + "version": "1.5.10.0", + "homepage": "https://github.com/cbitstech/PurpleRobotClient", + "authors": [ + "Mark Begale ", + "Eric Carty-Fickes " + ], + "description": "JavaScript client for Purple Robot services", + "main": "purple-robot.js", + "devDependencies": { + "jasmine": "2" + }, + "ignore": [ + "README.md", + "default-triggers.js", + "index.html", + "purple-robot-client.js", + "run_specs", + "test-prompt copy.js", + "docs", + "spec" + ] +} diff --git a/platforms/browser/www/lib/PurpleRobotClient/purple-robot.js b/platforms/browser/www/lib/PurpleRobotClient/purple-robot.js new file mode 100644 index 00000000..30828543 --- /dev/null +++ b/platforms/browser/www/lib/PurpleRobotClient/purple-robot.js @@ -0,0 +1,1039 @@ +;(function() { + // ## Example + // + // var pr = new PurpleRobot(); + // pr.playDefaultTone().execute(); + + // __constructor__ + // + // Initialize the client with an options object made up of + // `serverUrl` - the url to which commands are sent + function PurpleRobot(options) { + options = options || {}; + + // __className__ + // + // `@public` + this.className = "PurpleRobot"; + + // ___serverUrl__ + // + // `@private` + this._serverUrl = options.serverUrl || "http://localhost:12345/json/submit"; + // ___script__ + // + // `@private` + this._script = options.script || ""; + } + + var PR = PurpleRobot; + var root = window; + + function PurpleRobotArgumentException(methodName, argument, expectedArgument) { + this.methodName = methodName; + this.argument = argument; + this.expectedArgument = expectedArgument; + this.message = ' received an unexpected argument "'; + + this.toString = function() { + return [ + "PurpleRobot.", + this.methodName, + this.message, + this.argument, + '" expected: ', + this.expectedArgument + ].join(""); + }; + } + + // __apiVersion__ + // + // `@public` + // + // The version of the API, corresponding to the version of Purple Robot. + PR.apiVersion = "1.5.10.0"; + + // __setEnvironment()__ + // + // `@public` + // `@param {string} ['production'|'debug'|'web']` + // + // Set the environment to one of: + // `production`: Make real calls to the Purple Robot HTTP server with minimal + // logging. + // `debug': Make real calls to the Purple Robot HTTP server with extra + // logging. + // `web`: Make fake calls to the Purple Robot HTTP server with extra logging. + PR.setEnvironment = function(env) { + if (env !== 'production' && env !== 'debug' && env !== 'web') { + throw new PurpleRobotArgumentException('setEnvironment', env, '["production", "debug", "web"]'); + } + + this.env = env; + + return this; + }; + + // ___push(nextScript)__ + // + // `@private` + // `@returns {Object}` A new PurpleRobot instance. + // + // Enables chaining of method calls. + PR.prototype._push = function(methodName, argStr) { + var nextScript = ["PurpleRobot.", methodName, "(", argStr, ");"].join(""); + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, nextScript].join(" ").trim() + }); + }; + + // ___stringify(value)__ + // + // `@private` + // `@param {*} value` The value to be stringified. + // `@returns {string}` The stringified representation. + // + // Returns a string representation of the input. If the input is a + // `PurpleRobot` instance, a string expression is returned, otherwise a JSON + // stringified version is returned. + PR.prototype._stringify = function(value) { + var str; + + if (value !== null && + typeof value === "object" && + value.className === this.className) { + str = value.toStringExpression(); + } else { + str = JSON.stringify(value); + } + + return str; + }; + + // __toString()__ + // + // `@returns {string}` The current script as a string. + // + // Returns the string representation of the current script. + PR.prototype.toString = function() { + return this._script; + }; + + // __toStringExpression()__ + // + // `@returns {string}` A string representation of a function that returns the + // value of this script when evaluated. + // + // Example + // + // pr.emitToast("foo").toStringExpression(); + // // "(function() { return PurpleRobot.emitToast('foo'); })()" + PR.prototype.toStringExpression = function () { + return "(function() { return " + this._script + " })()"; + }; + + // __toJson()__ + // + // `@returns {string}` A JSON stringified version of this script. + // + // Returns the escaped string representation of the method call. + PR.prototype.toJson = function() { + return JSON.stringify(this.toString()); + }; + + // __execute(callbacks)__ + // + // Executes the current method (and any previously chained methods) by + // making an HTTP request to the Purple Robot HTTP server. + // + // Example + // + // pr.fetchEncryptedString("foo").execute({ + // done: function(payload) { + // console.log(payload); + // } + // }) + PR.prototype.execute = function(callbacks) { + var json = JSON.stringify({ + command: "execute_script", + script: this.toString() + }); + + if (PR.env !== 'web') { + function onChange() { + if (callbacks && httpRequest.readyState === XMLHttpRequest.DONE) { + if (httpRequest.response === null) { + callbacks.fail && callbacks.fail(); + } else if (callbacks.done) { + callbacks.done(JSON.parse(httpRequest.response).payload); + } + } + } + + var httpRequest = new XMLHttpRequest(); + httpRequest.onreadystatechange = onChange; + var isAsynchronous = true; + httpRequest.open("POST", this._serverUrl, isAsynchronous); + httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + httpRequest.send("json=" + json); + } else { + console.log('PurpleRobot POSTing to "' + this._serverUrl + '": ' + json); + } + }; + + // __save()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Saves a string representation of script(s) to localStorage. + // + // Example + // + // pr.emitReading("foo", "bar").save(); + PR.prototype.save = function() { + localStorage.prQueue = localStorage.prQueue || ""; + localStorage.prQueue += this.toString(); + + return this; + }; + + // __restore()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Restores saved script(s) from localStorage. + // + // Example + // + // pr.restore().execute(); + PR.prototype.restore = function() { + localStorage.prQueue = localStorage.prQueue || ""; + this._script = localStorage.prQueue; + + return this; + }; + + // __destroy()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Deletes saved script(s) from localStorage. + // + // Example + // + // pr.destroy(); + PR.prototype.destroy = function() { + delete localStorage.prQueue; + + return this; + }; + + // __isEqual(valA, valB)__ + // + // `@param {*} valA` The left hand value. + // `@param {*} valB` The right hand value. + // `@returns {Object}` Returns the current object instance. + // + // Generates an equality expression between two values. + // + // Example + // + // pr.isEqual(pr.fetchEncryptedString("a"), null); + PR.prototype.isEqual = function(valA, valB) { + var expr = this._stringify(valA) + " == " + this._stringify(valB); + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, expr].join(" ").trim() + }); + }; + + // __ifThenElse(condition, thenStmt, elseStmt)__ + // + // `@param {Object} condition` A PurpleRobot instance that evaluates to true or + // false. + // `@param {Object} thenStmt` A PurpleRobot instance. + // `@param {Object} elseStmt` A PurpleRobot instance. + // `@returns {Object}` A new PurpleRobot instance. + // + // Generates a conditional expression. + // + // Example + // + // pr.ifThenElse(pr.isEqual(1, 1), pr.emitToast("true"), pr.emitToast("error")); + PR.prototype.ifThenElse = function(condition, thenStmt, elseStmt) { + var expr = "if (" + condition.toString() + ") { " + + thenStmt.toString() + + " } else { " + + elseStmt.toString() + + " }"; + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, expr].join(" ").trim() + }); + }; + + // __doNothing()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Generates an explicitly empty script. + // + // Example + // + // pr.doNothing(); + PR.prototype.doNothing = function() { + return new PR({ + serverUrl: this._serverUrl, + script: this._script + }); + }; + + // __q(value)__ + // + // `@private` + // `@param {string} value` A string argument. + // `@returns {string}` A string with extra single quotes surrounding it. + function q(value) { + return "'" + value + "'"; + }; + + // ##Purple Robot API + + // __addNamespace(namespace)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds a namespace under which unencrypted values might be stored. + // + // Example + // + // pr.addNamespace("foo"); + PR.prototype.addNamespace = function(namespace) { + return this._push("addNamespace", [q(namespace)].join(", ")); + }; + + // __broadcastIntent(action, options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Broadcasts an Android intent. + // + // Example + // + // pr.broadcastIntent("intent"); + PR.prototype.broadcastIntent = function(action, options) { + return this._push("broadcastIntent", [q(action), + JSON.stringify(options || null)].join(", ")); + }; + + // __cancelScriptNotification()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Removes the tray notification from the task bar. + // + // Example + // + // pr.cancelScriptNotification(); + PR.prototype.cancelScriptNotification = function() { + return this._push("cancelScriptNotification"); + }; + + // __clearNativeDialogs()__ + // __clearNativeDialogs(tag)__ + // + // `@param {string} tag (optional)` An identifier of a specific dialog. + // `@returns {Object}` A new PurpleRobot instance. + // + // Removes all native dialogs from the screen. + // + // Examples + // + // pr.clearNativeDialogs(); + // pr.clearNativeDialogs("my-id"); + PR.prototype.clearNativeDialogs = function(tag) { + if (tag) { + return this._push("clearNativeDialogs", q(tag)); + } else { + return this._push("clearNativeDialogs"); + } + }; + + // __clearTriggers()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Deletes all Purple Robot triggers. + // + // Example + // + // pr.clearTriggers(); + PR.prototype.clearTriggers = function() { + return this._push("clearTriggers"); + }; + + // __dateFromTimestamp(epoch)__ + // + // `@param {number} epoch` The Unix epoch timestamp including milliseconds. + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a Date object given an epoch timestamp. + // + // Example + // + // pr.dateFromTimestamp(1401205124000); + PR.prototype.dateFromTimestamp = function(epoch) { + return this._push("dateFromTimestamp", epoch); + }; + + // __deleteTrigger(id)__ + // + // `@param {string} id` The id of the trigger. + // `@returns {Object}` A new PurpleRobot instance. + // + // Deletes the Purple Robot trigger identified by `id`; + // + // Example + // + // pr.deleteTrigger("MY-TRIGGER"); + PR.prototype.deleteTrigger = function(id) { + return this._push("deleteTrigger", q(id)); + }; + + // __disableTrigger(id)__ + // + // `@param {string} id` The id of the trigger. + // `@returns {Object}` A new PurpleRobot instance. + // + // Disables the Purple Robot trigger identified by `id`; + // + // Example + // + // pr.disableTrigger("MY-TRIGGER"); + PR.prototype.disableTrigger = function(id) { + return this._push("disableTrigger", q(id)); + }; + + // __emitReading(name, value)__ + // + // `@param {string} name` The name of the reading. + // `@param {*} value` The value of the reading. + // `@returns {Object}` A new PurpleRobot instance. + // + // Transmits a name value pair to be stored in Purple Robot Warehouse. The + // table name will be *name*, and the columns and data values will be + // extrapolated from the *value*. + // + // Example + // + // pr.emitReading("sandwich", "pb&j"); + PR.prototype.emitReading = function(name, value) { + return this._push("emitReading", q(name) + ", " + JSON.stringify(value)); + }; + + // __emitToast(message, hasLongDuration)__ + // + // `@param {string} message` The text of the toast. + // `@param {boolean} hasLongDuration` True if the toast should display longer. + // `@returns {Object}` A new PurpleRobot instance. + // + // Displays a native toast message on the phone. + // + // Example + // + // pr.emitToast("howdy", true); + PR.prototype.emitToast = function(message, hasLongDuration) { + hasLongDuration = (typeof hasLongDuration === "boolean") ? hasLongDuration : true; + + return this._push("emitToast", q(message) + ", " + hasLongDuration); + }; + + // __enableTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Enables the trigger. + // + // Example + // + // pr.enableTrigger("my-trigger"); + PR.prototype.enableTrigger = function(id) { + return this._push("enableTrigger", q(id)); + }; + + // __fetchConfig()__ + PR.prototype.fetchConfig = function() { + return this._push("fetchConfig"); + }; + + // __fetchEncryptedString(key, namespace)__ + // __fetchEncryptedString(key)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a value stored for the namespace and key provided. Generally + // paired with `persistEncryptedString`. + // + // Examples + // + // pr.fetchEncryptedString("x", "my stuff"); + // pr.fetchEncryptedString("y"); + PR.prototype.fetchEncryptedString = function(key, namespace) { + if (typeof namespace === "undefined") { + return this._push("fetchEncryptedString", q(key)); + } else { + return this._push("fetchEncryptedString", q(namespace) + ", " + q(key)); + } + }; + + // __fetchNamespace(namespace)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a hash of the keys and values stored in the namespace. + // + // Examples + // + // pr.fetchNamespace("x").execute({ + // done(function(store) { + // ... + // }); + PR.prototype.fetchNamespace = function(namespace) { + return this._push("fetchNamespace", [q(namespace)].join(", ")); + }; + + // __fetchNamespaces()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns an array of all the namespaces + // + // Examples + // + // pr.fetchNamespaces.execute({ + // done(function(namespaces) { + // ... + // }); + PR.prototype.fetchNamespaces = function() { + return this._push("fetchNamespaces"); + }; + + // __fetchTrigger(id)__ + // + // Example + // + // pr.fetchTrigger("my-trigger").execute({ + // done: function(triggerConfig) { + // ... + // } + // }); + PR.prototype.fetchTrigger = function(id) { + return this._push("fetchTrigger", [q(id)].join(", ")); + }; + + // __fetchTriggerIds()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns an array of Trigger id strings. + // + // Example + // + // pr.fetchTriggerIds().execute({ + // done: function(ids) { + // ... + // } + // }); + PR.prototype.fetchTriggerIds = function() { + return this._push("fetchTriggerIds"); + }; + + // __fetchUserId()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the Purple Robot configured user id string. + // + // Example + // + // pr.fetchUserId().execute().done(function(userId) { + // console.log(userId); + // }); + PR.prototype.fetchUserId = function() { + return this._push("fetchUserId"); + }; + + // __fetchWidget()__ + PR.prototype.fetchWidget = function(id) { + throw new Error("PurpleRobot.prototype.fetchWidget not implemented yet"); + }; + + // __fireTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Fires the trigger immediately. + // + // Example + // + // pr.fireTrigger("my-trigger"); + PR.prototype.fireTrigger = function(id) { + return this._push("fireTrigger", q(id)); + }; + + // __formatDate(date)__ + PR.prototype.formatDate = function(date) { + throw new Error("PurpleRobot.prototype.formatDate not implemented yet"); + }; + + // __launchApplication(name)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Launches the specified Android application as if the user had pressed + // the icon. + // + // Example + // + // pr.launchApplication("edu.northwestern.cbits.awesome_app"); + PR.prototype.launchApplication = function(name) { + return this._push("launchApplication", q(name)); + }; + + // __launchInternalUrl(url)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Launches a URL within the Purple Robot application WebView. + // + // Example + // + // pr.launchInternalUrl("https://www.google.com"); + PR.prototype.launchInternalUrl = function(url) { + return this._push("launchInternalUrl", [q(url)].join(", ")); + }; + + // __launchUrl(url)__ + // + // `@param {string} url` The URL to request. + // `@returns {Object}` A new object instance. + // + // Opens a new browser tab and requests the URL. + // + // Example + // + // pr.launchUrl("https://www.google.com"); + PR.prototype.launchUrl = function(url) { + return this._push("launchUrl", q(url)); + }; + + // __loadLibrary(name)__ + PR.prototype.loadLibrary = function(name) { + throw new Error("PurpleRobot.prototype.loadLibrary not implemented yet"); + }; + + // __log(name, value)__ + // + // `@param {string} name` The prefix to the log message. + // `@param {*} value` The contents of the log message. + // `@returns {Object}` A new PurpleRobot instance. + // + // Logs an event to the PR event capturing service as well as the Android log. + // + // Example + // + // pr.log("zing", { wing: "ding" }); + PR.prototype.log = function(name, value) { + return this._push("log", q(name) + ", " + JSON.stringify(value)); + }; + + // __models()__ + PR.prototype.models = function() { + throw new Error("PurpleRobot.prototype.models not implemented yet"); + }; + + // __now()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Calculates a string representing the current date. + // + // Example + // + // pr.now().execute({ + // done: function(dateStr) { + // ... + // } + // }); + PR.prototype.now = function() { + return this._push("now"); + }; + + // __packageForApplicationName(applicationName)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the package name string for the application. + // + // Example + // + // pr.packageForApplicationName("edu.northwestern.cbits.purple_robot_manager").execute({ + // done: function(package) { + // ... + // } + // }); + PR.prototype.packageForApplicationName = function(applicationName) { + return this._push("packageForApplicationName", [q(applicationName)].join(", ")); + }; + + // __parseDate(dateString)__ + PR.prototype.parseDate = function(dateString) { + throw new Error("PurpleRobot.prototype.parseDate not implemented yet"); + }; + + // __persistEncryptedString(key, value, namespace)__ + // __persistEncryptedString(key, value)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Stores the *value* within the *namespace*, identified by the *key*. + // + // Examples + // + // pr.persistEncryptedString("foo", "bar", "app Q"); + // pr.persistEncryptedString("foo", "bar"); + PR.prototype.persistEncryptedString = function(key, value, namespace) { + if (typeof namespace === "undefined") { + return this._push("persistEncryptedString", q(key) + ", " + q(value)); + } else { + return this._push("persistEncryptedString", q(namespace) + ", " + q(key) + ", " + q(value)); + } + }; + + // __playDefaultTone()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Plays a default Android notification sound. + // + // Example + // + // pr.playDefaultTone(); + PR.prototype.playDefaultTone = function() { + return this._push("playDefaultTone"); + }; + + // __playTone(tone)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Plays an existing notification sound on an Android phone. + // + // Example + // + // pr.playTone("Hojus"); + PR.prototype.playTone = function(tone) { + return this._push("playTone", q(tone)); + }; + + // __predictions()__ + PR.prototype.predictions = function() { + throw new Error("PurpleRobot.prototype.predictions not implemented yet"); + }; + + // __readings()__ + PR.prototype.readings = function() { + throw new Error("PurpleRobot.prototype.readings not implemented yet"); + }; + + // __readUrl(url)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Attempts to GET a URL and return the body as a string. + // + // Example + // + // pr.readUrl("http://www.northwestern.edu"); + PR.prototype.readUrl = function(url) { + return this._push("readUrl", q(url)); + }; + + // __resetTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Resets the trigger. __Note: the default implementation of this method in + // PurpleRobot does nothing.__ + // + // Example + // + // pr.resetTrigger("my-trigger"); + PR.prototype.resetTrigger = function(id) { + return this._push("resetTrigger", q(id)); + }; + + // __runScript(script)__ + // + // `@param {Object} script` A PurpleRobot instance. + // `@returns {Object}` A new PurpleRobot instance. + // + // Runs a script immediately. + // + // Example + // + // pr.runScript(pr.emitToast("toasty")); + PR.prototype.runScript = function(script) { + return this._push("runScript", script.toJson()); + }; + + // __scheduleScript(name, minutes, script)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Schedules a script to run a specified number of minutes in the future + // (calculated from when this script is evaluated). + // + // Example + // + // pr.scheduleScript("fancy script", 5, pr.playDefaultTone()); + PR.prototype.scheduleScript = function(name, minutes, script) { + var timestampStr = "(function() { var now = new Date(); var scheduled = new Date(now.getTime() + " + minutes + " * 60000); var pad = function(n) { return n < 10 ? '0' + n : n; }; return '' + scheduled.getFullYear() + pad(scheduled.getMonth() + 1) + pad(scheduled.getDate()) + 'T' + pad(scheduled.getHours()) + pad(scheduled.getMinutes()) + pad(scheduled.getSeconds()); })()"; + + return this._push("scheduleScript", q(name) + ", " + timestampStr + ", " + script.toJson()); + }; + + // __setUserId(value)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Sets the Purple Robot user id string. + // + // Example + // + // pr.setUserId("Bobbie"); + PR.prototype.setUserId = function(value) { + return this._push("setUserId", q(value)); + }; + + // __showApplicationLaunchNotification(options)__ + PR.prototype.showApplicationLaunchNotification = function(options) { + throw new Error("PurpleRobot.prototype.showApplicationLaunchNotification not implemented yet"); + }; + + // __showNativeDialog(options)__ + // + // `@param {Object} options` Parameterized options for the dialog, including: + // `{string} title` the dialog title, `{string} message` the body text, + // `{string} buttonLabelA` the first button label, `{Object} scriptA` a + // PurpleRobot instance to be run when button A is pressed, `{string} + // buttonLabelB` the second button label, `{Object} scriptB` a PurpleRobot + // instance to be run when button B is pressed, `{string} tag (optional)` an + // id to be associated with the dialog, `{number} priority` an importance + // associated with the dialog that informs stacking where higher means more + // important. + // `@returns {Object}` A new PurpleRobot instance. + // + // Opens an Android dialog with two buttons, *A* and *B*, and associates + // scripts to be run when each is pressed. + // + // Example + // + // pr.showNativeDialog({ + // title: "My Dialog", + // message: "What say you?", + // buttonLabelA: "cheers", + // scriptA: pr.emitToast("cheers!"), + // buttonLabelB: "boo", + // scriptB: pr.emitToast("boo!"), + // tag: "my-dialog", + // priority: 3 + // }); + PR.prototype.showNativeDialog = function(options) { + var tag = options.tag || null; + var priority = options.priority || 0; + + return this._push("showNativeDialog", [q(options.title), + q(options.message), q(options.buttonLabelA), + q(options.buttonLabelB), options.scriptA.toJson(), + options.scriptB.toJson(), JSON.stringify(tag), priority].join(", ")); + }; + + // __showScriptNotification(options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds a notification to the the tray and atttaches a script to be run when + // it is pressed. + // + // Example + // + // pr.showScriptNotification({ + // title: "My app", + // message: "Press here", + // isPersistent: true, + // isSticky: false, + // script: pr.emitToast("You pressed it") + // }); + PR.prototype.showScriptNotification = function(options) { + options = options || {}; + + return this._push("showScriptNotification", [q(options.title), + q(options.message), options.isPersistent, options.isSticky, + options.script.toJson()].join(", ")); + }; + + // __updateConfig(options)__ + // + // `@param {Object} options` The options to configure. Included: + // `config_data_server_uri` + // `config_enable_data_server` + // `config_feature_weather_underground_enabled` + // `config_http_liberal_ssl` + // `config_last_weather_underground_check` + // `config_probe_running_software_enabled` + // `config_probe_running_software_frequency` + // `config_probes_enabled` + // `config_restrict_data_wifi` + // `@returns {Object}` A new PurpleRobot instance. + // + // Example + // + // pr.updateConfig({ + // config_enable_data_server: true, + // config_restrict_data_wifi: false + // }); + PR.prototype.updateConfig = function(options) { + return this._push("updateConfig", [JSON.stringify(options)].join(", ")); + }; + + // __updateTrigger(options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds or updates a Purple Robot trigger to be run at a time and with a + // recurrence rule. + // + // Example + // + // The following would emit a toast daily at the same time: + // + // pr.updateTrigger({ + // script: pr.emitToast("butter"), + // startAt: "20140505T020304", + // endAt: "20140505T020404" + // }); + PR.prototype.updateTrigger = function(options) { + options = options || {}; + + var timestamp = (new Date()).getTime(); + var triggerId = options.triggerId || ("TRIGGER-" + timestamp); + + function formatDate (date){ + function formatYear(date){ + return date.getFullYear(); + } + + function formatMonth(date){ + return ("0" + parseInt(1+date.getMonth())).slice(-2); + } + + function formatDays(date){ + return ("0" + parseInt(date.getDate())).slice(-2); + } + + function formatHours(date){ + return ("0" + date.getHours()).slice(-2); + } + + function formatMinutes(date){ + return ("0" + date.getMinutes()).slice(-2); + } + + function formatSeconds (date){ + return ("0" + date.getSeconds()).slice(-2); + } + + return formatYear(date) + formatMonth(date) + formatDays(date) + "T" + + formatHours(date) + formatMinutes(date) + formatSeconds(date); + + } + + var triggerJson = JSON.stringify({ + type: options.type || "datetime", + name: triggerId, + identifier: triggerId, + action: options.script.toString(), + datetime_start: formatDate(options.startAt), + datetime_end: formatDate(options.endAt), + datetime_repeat: options.repeatRule || "FREQ=DAILY;INTERVAL=1", + datetime_random: (options.random === true) || false, + fire_on_boot: true && (options.fire_on_boot !== false) + }); + + return this._push("updateTrigger", q(triggerId) + ", " + triggerJson); + }; + + // __updateWidget(parameters)__ + PR.prototype.updateWidget = function(parameters) { + throw new Error("PurpleRobot.prototype.updateWidget not implemented yet"); + }; + + // __version()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the current version string for Purple Robot. + // + // Example + // + // pr.version(); + PR.prototype.version = function() { + return this._push("version"); + }; + + // __vibrate(pattern)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Vibrates the phone with a preset pattern. + // + // Examples + // + // pr.vibrate("buzz"); + // pr.vibrate("blip"); + // pr.vibrate("sos"); + PR.prototype.vibrate = function(pattern) { + pattern = pattern || "buzz"; + + return this._push("vibrate", q(pattern)); + }; + + // __widgets()__ + PR.prototype.widgets = function() { + throw new Error("PurpleRobot.prototype.widgets not implemented yet"); + }; + + // ## More complex examples + // + // Example of nesting + // + // var playTone = pr.playDefaultTone(); + // var toast = pr.emitToast("sorry"); + // var dialog1 = pr.showNativeDialog( + // "dialog 1", "are you happy?", "Yes", "No", playTone, toast + // ); + // pr.scheduleScript("dialog 1", 10, "minutes", dialog1) + // .execute(); + // + // Example of chaining + // + // pr.playDefaultTone().emitToast("hey there").execute(); + + root.PurpleRobot = PurpleRobot; +}.call(this)); diff --git a/platforms/browser/www/lib/PurpleRobotClient/purple-robot.min.js b/platforms/browser/www/lib/PurpleRobotClient/purple-robot.min.js new file mode 100644 index 00000000..e8cd1496 --- /dev/null +++ b/platforms/browser/www/lib/PurpleRobotClient/purple-robot.min.js @@ -0,0 +1,15 @@ +(function(){function b(a){a=a||{};this.className="PurpleRobot";this._serverUrl=a.serverUrl||"http://localhost:12345/json/submit";this._script=a.script||""}function e(a,b,c){this.methodName=a;this.argument=b;this.expectedArgument=c;this.message=' received an unexpected argument "';this.toString=function(){return["PurpleRobot.",this.methodName,this.message,this.argument,'" expected: ',this.expectedArgument].join("")}}function c(a){return"'"+a+"'"}var f=window;b.apiVersion="1.5.10.0";b.setEnvironment= +function(a){if("production"!==a&&"debug"!==a&&"web"!==a)throw new e("setEnvironment",a,'["production", "debug", "web"]');this.env=a;return this};b.prototype._push=function(a,c){var d=["PurpleRobot.",a,"(",c,");"].join("");return new b({serverUrl:this._serverUrl,script:[this._script,d].join(" ").trim()})};b.prototype._stringify=function(a){return null!==a&&"object"===typeof a&&a.className===this.className?a.toStringExpression():JSON.stringify(a)};b.prototype.toString=function(){return this._script}; +b.prototype.toStringExpression=function(){return"(function() { return "+this._script+" })()"};b.prototype.toJson=function(){return JSON.stringify(this.toString())};b.prototype.execute=function(a){var c=JSON.stringify({command:"execute_script",script:this.toString()});if("web"!==b.env){var d=new XMLHttpRequest;d.onreadystatechange=function(){a&&d.readyState===XMLHttpRequest.DONE&&(null===d.response?a.fail&&a.fail():a.done&&a.done(JSON.parse(d.response).payload))};d.open("POST",this._serverUrl,!0); +d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.send("json="+c)}else console.log('PurpleRobot POSTing to "'+this._serverUrl+'": '+c)};b.prototype.save=function(){localStorage.prQueue=localStorage.prQueue||"";localStorage.prQueue+=this.toString();return this};b.prototype.restore=function(){localStorage.prQueue=localStorage.prQueue||"";this._script=localStorage.prQueue;return this};b.prototype.destroy=function(){delete localStorage.prQueue;return this};b.prototype.isEqual=function(a, +c){var d=this._stringify(a)+" == "+this._stringify(c);return new b({serverUrl:this._serverUrl,script:[this._script,d].join(" ").trim()})};b.prototype.ifThenElse=function(a,c,d){return new b({serverUrl:this._serverUrl,script:[this._script,"if ("+a.toString()+") { "+c.toString()+" } else { "+d.toString()+" }"].join(" ").trim()})};b.prototype.doNothing=function(){return new b({serverUrl:this._serverUrl,script:this._script})};b.prototype.addNamespace=function(a){return this._push("addNamespace",""+c(a))}; +b.prototype.broadcastIntent=function(a,b){return this._push("broadcastIntent",[c(a),JSON.stringify(b||null)].join(", "))};b.prototype.cancelScriptNotification=function(){return this._push("cancelScriptNotification")};b.prototype.clearNativeDialogs=function(a){return a?this._push("clearNativeDialogs",c(a)):this._push("clearNativeDialogs")};b.prototype.clearTriggers=function(){return this._push("clearTriggers")};b.prototype.dateFromTimestamp=function(a){return this._push("dateFromTimestamp",a)};b.prototype.deleteTrigger= +function(a){return this._push("deleteTrigger",c(a))};b.prototype.disableTrigger=function(a){return this._push("disableTrigger",c(a))};b.prototype.emitReading=function(a,b){return this._push("emitReading",c(a)+", "+JSON.stringify(b))};b.prototype.emitToast=function(a,b){b="boolean"===typeof b?b:!0;return this._push("emitToast",c(a)+", "+b)};b.prototype.enableTrigger=function(a){return this._push("enableTrigger",c(a))};b.prototype.fetchConfig=function(){return this._push("fetchConfig")};b.prototype.fetchEncryptedString= +function(a,b){return"undefined"===typeof b?this._push("fetchEncryptedString",c(a)):this._push("fetchEncryptedString",c(b)+", "+c(a))};b.prototype.fetchNamespace=function(a){return this._push("fetchNamespace",""+c(a))};b.prototype.fetchNamespaces=function(){return this._push("fetchNamespaces")};b.prototype.fetchTrigger=function(a){return this._push("fetchTrigger",""+c(a))};b.prototype.fetchTriggerIds=function(){return this._push("fetchTriggerIds")};b.prototype.fetchUserId=function(){return this._push("fetchUserId")}; +b.prototype.fetchWidget=function(a){throw Error("PurpleRobot.prototype.fetchWidget not implemented yet");};b.prototype.fireTrigger=function(a){return this._push("fireTrigger",c(a))};b.prototype.formatDate=function(a){throw Error("PurpleRobot.prototype.formatDate not implemented yet");};b.prototype.launchApplication=function(a){return this._push("launchApplication",c(a))};b.prototype.launchInternalUrl=function(a){return this._push("launchInternalUrl",""+c(a))};b.prototype.launchUrl=function(a){return this._push("launchUrl", +c(a))};b.prototype.loadLibrary=function(a){throw Error("PurpleRobot.prototype.loadLibrary not implemented yet");};b.prototype.log=function(a,b){return this._push("log",c(a)+", "+JSON.stringify(b))};b.prototype.models=function(){throw Error("PurpleRobot.prototype.models not implemented yet");};b.prototype.now=function(){return this._push("now")};b.prototype.packageForApplicationName=function(a){return this._push("packageForApplicationName",""+c(a))};b.prototype.parseDate=function(a){throw Error("PurpleRobot.prototype.parseDate not implemented yet"); +};b.prototype.persistEncryptedString=function(a,b,d){return"undefined"===typeof d?this._push("persistEncryptedString",c(a)+", "+c(b)):this._push("persistEncryptedString",c(d)+", "+c(a)+", "+c(b))};b.prototype.playDefaultTone=function(){return this._push("playDefaultTone")};b.prototype.playTone=function(a){return this._push("playTone",c(a))};b.prototype.predictions=function(){throw Error("PurpleRobot.prototype.predictions not implemented yet");};b.prototype.readings=function(){throw Error("PurpleRobot.prototype.readings not implemented yet"); +};b.prototype.readUrl=function(a){return this._push("readUrl",c(a))};b.prototype.resetTrigger=function(a){return this._push("resetTrigger",c(a))};b.prototype.runScript=function(a){return this._push("runScript",a.toJson())};b.prototype.scheduleScript=function(a,b,d){b="(function() { var now = new Date(); var scheduled = new Date(now.getTime() + "+b+" * 60000); var pad = function(n) { return n < 10 ? '0' + n : n; }; return '' + scheduled.getFullYear() + pad(scheduled.getMonth() + 1) + pad(scheduled.getDate()) + 'T' + pad(scheduled.getHours()) + pad(scheduled.getMinutes()) + pad(scheduled.getSeconds()); })()"; +return this._push("scheduleScript",c(a)+", "+b+", "+d.toJson())};b.prototype.setUserId=function(a){return this._push("setUserId",c(a))};b.prototype.showApplicationLaunchNotification=function(a){throw Error("PurpleRobot.prototype.showApplicationLaunchNotification not implemented yet");};b.prototype.showNativeDialog=function(a){var b=a.tag||null,d=a.priority||0;return this._push("showNativeDialog",[c(a.title),c(a.message),c(a.buttonLabelA),c(a.buttonLabelB),a.scriptA.toJson(),a.scriptB.toJson(),JSON.stringify(b), +d].join(", "))};b.prototype.showScriptNotification=function(a){a=a||{};return this._push("showScriptNotification",[c(a.title),c(a.message),a.isPersistent,a.isSticky,a.script.toJson()].join(", "))};b.prototype.updateConfig=function(a){return this._push("updateConfig",""+JSON.stringify(a))};b.prototype.updateTrigger=function(a){a=a||{};var b=(new Date).getTime(),b=a.triggerId||"TRIGGER-"+b;a=JSON.stringify({type:a.type||"datetime",name:b,identifier:b,action:a.script.toString(),datetime_start:a.startAt, +datetime_end:a.endAt,datetime_repeat:a.repeatRule||"FREQ=DAILY;INTERVAL=1"});return this._push("updateTrigger",c(b)+", "+a)};b.prototype.updateWidget=function(a){throw Error("PurpleRobot.prototype.updateWidget not implemented yet");};b.prototype.version=function(){return this._push("version")};b.prototype.vibrate=function(a){return this._push("vibrate",c(a||"buzz"))};b.prototype.widgets=function(){throw Error("PurpleRobot.prototype.widgets not implemented yet");};f.PurpleRobot=b}).call(this); diff --git a/platforms/browser/www/lib/angular-animate/.bower.json b/platforms/browser/www/lib/angular-animate/.bower.json new file mode 100644 index 00000000..19570b38 --- /dev/null +++ b/platforms/browser/www/lib/angular-animate/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-animate", + "version": "1.2.16", + "main": "./angular-animate.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-animate", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "4eccd8ec8356a33bf3a98958d7a73b71290d3985" + }, + "_source": "git://github.com/angular/bower-angular-animate.git", + "_target": "1.2.16", + "_originalSource": "angular-animate" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/angular-animate/README.md b/platforms/browser/www/lib/angular-animate/README.md new file mode 100644 index 00000000..de4c61b8 --- /dev/null +++ b/platforms/browser/www/lib/angular-animate/README.md @@ -0,0 +1,54 @@ +# bower-angular-animate + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-animate +``` + +Add a ` +``` + +And add `ngAnimate` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngAnimate']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-animate/angular-animate.js b/platforms/browser/www/lib/angular-animate/angular-animate.js new file mode 100644 index 00000000..9a0af80f --- /dev/null +++ b/platforms/browser/www/lib/angular-animate/angular-animate.js @@ -0,0 +1,1616 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/* jshint maxlen: false */ + +/** + * @ngdoc module + * @name ngAnimate + * @description + * + * # ngAnimate + * + * The `ngAnimate` module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives. + * + * + *
+ * + * # Usage + * + * To see animations in action, all that is required is to define the appropriate CSS classes + * or to register a JavaScript animation via the myModule.animation() function. The directives that support animation automatically are: + * `ngRepeat`, `ngInclude`, `ngIf`, `ngSwitch`, `ngShow`, `ngHide`, `ngView` and `ngClass`. Custom directives can take advantage of animation + * by using the `$animate` service. + * + * Below is a more detailed breakdown of the supported animation events provided by pre-existing ng directives: + * + * | Directive | Supported Animations | + * |---------------------------------------------------------- |----------------------------------------------------| + * | {@link ng.directive:ngRepeat#usage_animations ngRepeat} | enter, leave and move | + * | {@link ngRoute.directive:ngView#usage_animations ngView} | enter and leave | + * | {@link ng.directive:ngInclude#usage_animations ngInclude} | enter and leave | + * | {@link ng.directive:ngSwitch#usage_animations ngSwitch} | enter and leave | + * | {@link ng.directive:ngIf#usage_animations ngIf} | enter and leave | + * | {@link ng.directive:ngClass#usage_animations ngClass} | add and remove | + * | {@link ng.directive:ngShow#usage_animations ngShow & ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#usage_animations form} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link ng.directive:ngModel#usage_animations ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * + * You can find out more information about animations upon visiting each directive page. + * + * Below is an example of how to apply animations to a directive that supports animation hooks: + * + * ```html + * + * + * + * + * ``` + * + * Keep in mind that if an animation is running, any child elements cannot be animated until the parent element's + * animation has completed. + * + *

CSS-defined Animations

+ * The animate service will automatically apply two CSS classes to the animated element and these two CSS classes + * are designed to contain the start and end CSS styling. Both CSS transitions and keyframe animations are supported + * and can be used to play along with this naming structure. + * + * The following code below demonstrates how to perform animations using **CSS transitions** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * The following code below demonstrates how to perform animations using **CSS animations** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * Both CSS3 animations and transitions can be used together and the animate service will figure out the correct duration and delay timing. + * + * Upon DOM mutation, the event class is added first (something like `ng-enter`), then the browser prepares itself to add + * the active class (in this case `ng-enter-active`) which then triggers the animation. The animation module will automatically + * detect the CSS code to determine when the animation ends. Once the animation is over then both CSS classes will be + * removed from the DOM. If a browser does not support CSS transitions or CSS animations then the animation will start and end + * immediately resulting in a DOM element that is at its final state. This final state is when the DOM element + * has no CSS transition/animation classes applied to it. + * + *

CSS Staggering Animations

+ * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module, as of 1.2.0, supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * -webkit-transition: 1s linear all; + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * -webkit-transition-delay: 0.1s; + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then these two values + * must be set to 0 to avoid an accidental CSS inheritance */ + * -webkit-transition-duration: 0s; + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if more than 10ms has passed after the last animation has been fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * $timeout(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * }, 100, false); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + *

JavaScript-defined Animations

+ * In the event that you do not want to use CSS3 transitions or CSS3 animations or if you wish to offer animations on browsers that do not + * yet support CSS transitions/animations, then you can make use of JavaScript animations defined inside of your AngularJS module. + * + * ```js + * //!annotate="YourApp" Your AngularJS Module|Replace this or ngModule with the module that you used to define your application. + * var ngModule = angular.module('YourApp', ['ngAnimate']); + * ngModule.animation('.my-crazy-animation', function() { + * return { + * enter: function(element, done) { + * //run the animation here and call done when the animation is complete + * return function(cancelled) { + * //this (optional) function will be called when the animation + * //completes or when the animation is cancelled (the cancelled + * //flag will be set to true if cancelled). + * }; + * }, + * leave: function(element, done) { }, + * move: function(element, done) { }, + * + * //animation that can be triggered before the class is added + * beforeAddClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is added + * addClass: function(element, className, done) { }, + * + * //animation that can be triggered before the class is removed + * beforeRemoveClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is removed + * removeClass: function(element, className, done) { } + * }; + * }); + * ``` + * + * JavaScript-defined animations are created with a CSS-like class selector and a collection of events which are set to run + * a javascript callback function. When an animation is triggered, $animate will look for a matching animation which fits + * the element's CSS class attribute value and then run the matching animation event function (if found). + * In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function will + * be executed. It should be also noted that only simple, single class selectors are allowed (compound class selectors are not supported). + * + * Within a JavaScript animation, an object containing various event callback animation functions is expected to be returned. + * As explained above, these callbacks are triggered based on the animation event. Therefore if an enter animation is run, + * and the JavaScript animation is found, then the enter callback will handle that animation (in addition to the CSS keyframe animation + * or transition code that is defined via a stylesheet). + * + */ + +angular.module('ngAnimate', ['ng']) + + /** + * @ngdoc provider + * @name $animateProvider + * @description + * + * The `$animateProvider` allows developers to register JavaScript animation event handlers directly inside of a module. + * When an animation is triggered, the $animate service will query the $animate service to find any animations that match + * the provided name value. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + + //this private service is only used within CSS-enabled animations + //IE8 + IE9 do not support rAF natively, but that is fine since they + //also don't support transitions and keyframes which means that the code + //below will never be used by the two browsers. + .factory('$$animateReflow', ['$$rAF', '$document', function($$rAF, $document) { + var bod = $document[0].body; + return function(fn) { + //the returned function acts as the cancellation function + return $$rAF(function() { + //the line below will force the browser to perform a repaint + //so that all the animated elements within the animation frame + //will be properly updated and drawn on screen. This is + //required to perform multi-class CSS based animations with + //Firefox. DO NOT REMOVE THIS LINE. + var a = bod.offsetWidth + 1; + fn(); + }); + }; + }]) + + .config(['$provide', '$animateProvider', function($provide, $animateProvider) { + var noop = angular.noop; + var forEach = angular.forEach; + var selectors = $animateProvider.$$selectors; + + var ELEMENT_NODE = 1; + var NG_ANIMATE_STATE = '$$ngAnimateState'; + var NG_ANIMATE_CLASS_NAME = 'ng-animate'; + var rootAnimateState = {running: true}; + + function extractElementNode(element) { + for(var i = 0; i < element.length; i++) { + var elm = element[i]; + if(elm.nodeType == ELEMENT_NODE) { + return elm; + } + } + } + + function stripCommentsFromElement(element) { + return angular.element(extractElementNode(element)); + } + + function isMatchingElement(elm1, elm2) { + return extractElementNode(elm1) == extractElementNode(elm2); + } + + $provide.decorator('$animate', ['$delegate', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', + function($delegate, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document) { + + var globalAnimationCounter = 0; + $rootElement.data(NG_ANIMATE_STATE, rootAnimateState); + + // disable animations during bootstrap, but once we bootstrapped, wait again + // for another digest until enabling animations. The reason why we digest twice + // is because all structural animations (enter, leave and move) all perform a + // post digest operation before animating. If we only wait for a single digest + // to pass then the structural animation would render its animation on page load. + // (which is what we're trying to avoid when the application first boots up.) + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + rootAnimateState.running = false; + }); + }); + + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + function lookup(name) { + if (name) { + var matches = [], + flagMap = {}, + classes = name.substr(1).split('.'); + + //the empty string value is the default animation + //operation which performs CSS transition and keyframe + //animations sniffing. This is always included for each + //element animation procedure if the browser supports + //transitions and/or keyframe animations. The default + //animation is added to the top of the list to prevent + //any previous animations from affecting the element styling + //prior to the element being animated. + if ($sniffer.transitions || $sniffer.animations) { + matches.push($injector.get(selectors[''])); + } + + for(var i=0; i < classes.length; i++) { + var klass = classes[i], + selectorFactoryName = selectors[klass]; + if(selectorFactoryName && !flagMap[klass]) { + matches.push($injector.get(selectorFactoryName)); + flagMap[klass] = true; + } + } + return matches; + } + } + + function animationRunner(element, animationEvent, className) { + //transcluded directives may sometimes fire an animation using only comment nodes + //best to catch this early on to prevent any animation operations from occurring + var node = element[0]; + if(!node) { + return; + } + + var isSetClassOperation = animationEvent == 'setClass'; + var isClassBased = isSetClassOperation || + animationEvent == 'addClass' || + animationEvent == 'removeClass'; + + var classNameAdd, classNameRemove; + if(angular.isArray(className)) { + classNameAdd = className[0]; + classNameRemove = className[1]; + className = classNameAdd + ' ' + classNameRemove; + } + + var currentClassName = element.attr('class'); + var classes = currentClassName + ' ' + className; + if(!isAnimatableClassName(classes)) { + return; + } + + var beforeComplete = noop, + beforeCancel = [], + before = [], + afterComplete = noop, + afterCancel = [], + after = []; + + var animationLookup = (' ' + classes).replace(/\s+/g,'.'); + forEach(lookup(animationLookup), function(animationFactory) { + var created = registerAnimation(animationFactory, animationEvent); + if(!created && isSetClassOperation) { + registerAnimation(animationFactory, 'addClass'); + registerAnimation(animationFactory, 'removeClass'); + } + }); + + function registerAnimation(animationFactory, event) { + var afterFn = animationFactory[event]; + var beforeFn = animationFactory['before' + event.charAt(0).toUpperCase() + event.substr(1)]; + if(afterFn || beforeFn) { + if(event == 'leave') { + beforeFn = afterFn; + //when set as null then animation knows to skip this phase + afterFn = null; + } + after.push({ + event : event, fn : afterFn + }); + before.push({ + event : event, fn : beforeFn + }); + return true; + } + } + + function run(fns, cancellations, allCompleteFn) { + var animations = []; + forEach(fns, function(animation) { + animation.fn && animations.push(animation); + }); + + var count = 0; + function afterAnimationComplete(index) { + if(cancellations) { + (cancellations[index] || noop)(); + if(++count < animations.length) return; + cancellations = null; + } + allCompleteFn(); + } + + //The code below adds directly to the array in order to work with + //both sync and async animations. Sync animations are when the done() + //operation is called right away. DO NOT REFACTOR! + forEach(animations, function(animation, index) { + var progress = function() { + afterAnimationComplete(index); + }; + switch(animation.event) { + case 'setClass': + cancellations.push(animation.fn(element, classNameAdd, classNameRemove, progress)); + break; + case 'addClass': + cancellations.push(animation.fn(element, classNameAdd || className, progress)); + break; + case 'removeClass': + cancellations.push(animation.fn(element, classNameRemove || className, progress)); + break; + default: + cancellations.push(animation.fn(element, progress)); + break; + } + }); + + if(cancellations && cancellations.length === 0) { + allCompleteFn(); + } + } + + return { + node : node, + event : animationEvent, + className : className, + isClassBased : isClassBased, + isSetClassOperation : isSetClassOperation, + before : function(allCompleteFn) { + beforeComplete = allCompleteFn; + run(before, beforeCancel, function() { + beforeComplete = noop; + allCompleteFn(); + }); + }, + after : function(allCompleteFn) { + afterComplete = allCompleteFn; + run(after, afterCancel, function() { + afterComplete = noop; + allCompleteFn(); + }); + }, + cancel : function() { + if(beforeCancel) { + forEach(beforeCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + beforeComplete(true); + } + if(afterCancel) { + forEach(afterCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + afterComplete(true); + } + } + }; + } + + /** + * @ngdoc service + * @name $animate + * @function + * + * @description + * The `$animate` service provides animation detection support while performing DOM operations (enter, leave and move) as well as during addClass and removeClass operations. + * When any of these operations are run, the $animate service + * will examine any JavaScript-defined animations (which are defined by using the $animateProvider provider object) + * as well as any CSS-defined animations against the CSS classes present on the element once the DOM operation is run. + * + * The `$animate` service is used behind the scenes with pre-existing directives and animation with these directives + * will work out of the box without any extra configuration. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + return { + /** + * @ngdoc method + * @name $animate#enter + * @function + * + * @description + * Appends the element to the parentElement element that resides in the document and then runs the enter animation. Once + * the animation is started, the following CSS classes will be present on the element for the duration of the animation: + * + * Below is a breakdown of each step that occurs during enter animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.enter(...) is called | class="my-animation" | + * | 2. element is inserted into the parentElement element or beside the afterElement element | class="my-animation" | + * | 3. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 4. the .ng-enter class is added to the element | class="my-animation ng-animate ng-enter" | + * | 5. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-enter" | + * | 6. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-enter" | + * | 7. the .ng-enter-active and .ng-animate-active classes are added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-enter ng-enter-active" | + * | 8. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-enter ng-enter-active" | + * | 9. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * @param {DOMElement} element the element that will be the focus of the enter animation + * @param {DOMElement} parentElement the parent element of the element that will be the focus of the enter animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the enter animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + enter : function(element, parentElement, afterElement, doneCallback) { + this.enabled(false, element); + $delegate.enter(element, parentElement, afterElement); + $rootScope.$$postDigest(function() { + element = stripCommentsFromElement(element); + performAnimation('enter', 'ng-enter', element, parentElement, afterElement, noop, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#leave + * @function + * + * @description + * Runs the leave animation operation and, upon completion, removes the element from the DOM. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during leave animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.leave(...) is called | class="my-animation" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 3. the .ng-leave class is added to the element | class="my-animation ng-animate ng-leave" | + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-leave" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-leave" | + * | 6. the .ng-leave-active and .ng-animate-active classes is added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-leave ng-leave-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-leave ng-leave-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 9. The element is removed from the DOM | ... | + * | 10. The doneCallback() callback is fired (if provided) | ... | + * + * @param {DOMElement} element the element that will be the focus of the leave animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + leave : function(element, doneCallback) { + cancelChildAnimations(element); + this.enabled(false, element); + $rootScope.$$postDigest(function() { + performAnimation('leave', 'ng-leave', stripCommentsFromElement(element), null, null, function() { + $delegate.leave(element); + }, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#move + * @function + * + * @description + * Fires the move DOM operation. Just before the animation starts, the animate service will either append it into the parentElement container or + * add the element directly after the afterElement element if present. Then the move animation will be run. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during move animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.move(...) is called | class="my-animation" | + * | 2. element is moved into the parentElement element or beside the afterElement element | class="my-animation" | + * | 3. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 4. the .ng-move class is added to the element | class="my-animation ng-animate ng-move" | + * | 5. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-move" | + * | 6. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-move" | + * | 7. the .ng-move-active and .ng-animate-active classes is added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-move ng-move-active" | + * | 8. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-move ng-move-active" | + * | 9. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * @param {DOMElement} element the element that will be the focus of the move animation + * @param {DOMElement} parentElement the parentElement element of the element that will be the focus of the move animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the move animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + move : function(element, parentElement, afterElement, doneCallback) { + cancelChildAnimations(element); + this.enabled(false, element); + $delegate.move(element, parentElement, afterElement); + $rootScope.$$postDigest(function() { + element = stripCommentsFromElement(element); + performAnimation('move', 'ng-move', element, parentElement, afterElement, noop, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#addClass + * + * @description + * Triggers a custom animation event based off the className variable and then attaches the className value to the element as a CSS class. + * Unlike the other animation methods, the animate service will suffix the className value with {@type -add} in order to provide + * the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if no CSS transitions + * or keyframes are defined on the -add or base CSS class). + * + * Below is a breakdown of each step that occurs during addClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |------------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.addClass(element, 'super') is called | class="my-animation" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 3. the .super-add class are added to the element | class="my-animation ng-animate super-add" | + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate super-add" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate super-add" | + * | 6. the .super, .super-add-active and .ng-animate-active classes are added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active super super-add super-add-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation super super-add super-add-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation super" | + * | 9. The super class is kept on the element | class="my-animation super" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation super" | + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be added to the element and then animated + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + addClass : function(element, className, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('addClass', className, element, null, null, function() { + $delegate.addClass(element, className); + }, doneCallback); + }, + + /** + * @ngdoc method + * @name $animate#removeClass + * + * @description + * Triggers a custom animation event based off the className variable and then removes the CSS class provided by the className value + * from the element. Unlike the other animation methods, the animate service will suffix the className value with {@type -remove} in + * order to provide the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if + * no CSS transitions or keyframes are defined on the -remove or base CSS classes). + * + * Below is a breakdown of each step that occurs during removeClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |-----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.removeClass(element, 'super') is called | class="my-animation super" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation super ng-animate" | + * | 3. the .super-remove class are added to the element | class="my-animation super ng-animate super-remove"| + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation super ng-animate super-remove" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation super ng-animate super-remove" | + * | 6. the .super-remove-active and .ng-animate-active classes are added and .super is removed (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active super-remove super-remove-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active super-remove super-remove-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 9. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be animated and then removed from the element + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + removeClass : function(element, className, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('removeClass', className, element, null, null, function() { + $delegate.removeClass(element, className); + }, doneCallback); + }, + + /** + * + * @ngdoc function + * @name $animate#setClass + * @function + * @description Adds and/or removes the given CSS classes to and from the element. + * Once complete, the done() callback will be fired (if provided). + * @param {DOMElement} element the element which will it's CSS classes changed + * removed from it + * @param {string} add the CSS classes which will be added to the element + * @param {string} remove the CSS class which will be removed from the element + * @param {Function=} done the callback function (if provided) that will be fired after the + * CSS classes have been set on the element + */ + setClass : function(element, add, remove, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('setClass', [add, remove], element, null, null, function() { + $delegate.setClass(element, add, remove); + }, doneCallback); + }, + + /** + * @ngdoc method + * @name $animate#enabled + * @function + * + * @param {boolean=} value If provided then set the animation on or off. + * @param {DOMElement=} element If provided then the element will be used to represent the enable/disable operation + * @return {boolean} Current animation state. + * + * @description + * Globally enables/disables animations. + * + */ + enabled : function(value, element) { + switch(arguments.length) { + case 2: + if(value) { + cleanup(element); + } else { + var data = element.data(NG_ANIMATE_STATE) || {}; + data.disabled = true; + element.data(NG_ANIMATE_STATE, data); + } + break; + + case 1: + rootAnimateState.disabled = !value; + break; + + default: + value = !rootAnimateState.disabled; + break; + } + return !!value; + } + }; + + /* + all animations call this shared animation triggering function internally. + The animationEvent variable refers to the JavaScript animation event that will be triggered + and the className value is the name of the animation that will be applied within the + CSS code. Element, parentElement and afterElement are provided DOM elements for the animation + and the onComplete callback will be fired once the animation is fully complete. + */ + function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, doneCallback) { + + var runner = animationRunner(element, animationEvent, className); + if(!runner) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return; + } + + className = runner.className; + var elementEvents = angular.element._data(runner.node); + elementEvents = elementEvents && elementEvents.events; + + if (!parentElement) { + parentElement = afterElement ? afterElement.parent() : element.parent(); + } + + var ngAnimateState = element.data(NG_ANIMATE_STATE) || {}; + var runningAnimations = ngAnimateState.active || {}; + var totalActiveAnimations = ngAnimateState.totalActive || 0; + var lastAnimation = ngAnimateState.last; + + //only allow animations if the currently running animation is not structural + //or if there is no animation running at all + var skipAnimations = runner.isClassBased ? + ngAnimateState.disabled || (lastAnimation && !lastAnimation.isClassBased) : + false; + + //skip the animation if animations are disabled, a parent is already being animated, + //the element is not currently attached to the document body or then completely close + //the animation if any matching animations are not found at all. + //NOTE: IE8 + IE9 should close properly (run closeAnimation()) in case an animation was found. + if (skipAnimations || animationsDisabled(element, parentElement)) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return; + } + + var skipAnimation = false; + if(totalActiveAnimations > 0) { + var animationsToCancel = []; + if(!runner.isClassBased) { + if(animationEvent == 'leave' && runningAnimations['ng-leave']) { + skipAnimation = true; + } else { + //cancel all animations when a structural animation takes place + for(var klass in runningAnimations) { + animationsToCancel.push(runningAnimations[klass]); + cleanup(element, klass); + } + runningAnimations = {}; + totalActiveAnimations = 0; + } + } else if(lastAnimation.event == 'setClass') { + animationsToCancel.push(lastAnimation); + cleanup(element, className); + } + else if(runningAnimations[className]) { + var current = runningAnimations[className]; + if(current.event == animationEvent) { + skipAnimation = true; + } else { + animationsToCancel.push(current); + cleanup(element, className); + } + } + + if(animationsToCancel.length > 0) { + forEach(animationsToCancel, function(operation) { + operation.cancel(); + }); + } + } + + if(runner.isClassBased && !runner.isSetClassOperation && !skipAnimation) { + skipAnimation = (animationEvent == 'addClass') == element.hasClass(className); //opposite of XOR + } + + if(skipAnimation) { + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + fireDoneCallbackAsync(); + return; + } + + if(animationEvent == 'leave') { + //there's no need to ever remove the listener since the element + //will be removed (destroyed) after the leave animation ends or + //is cancelled midway + element.one('$destroy', function(e) { + var element = angular.element(this); + var state = element.data(NG_ANIMATE_STATE); + if(state) { + var activeLeaveAnimation = state.active['ng-leave']; + if(activeLeaveAnimation) { + activeLeaveAnimation.cancel(); + cleanup(element, 'ng-leave'); + } + } + }); + } + + //the ng-animate class does nothing, but it's here to allow for + //parent animations to find and cancel child animations when needed + element.addClass(NG_ANIMATE_CLASS_NAME); + + var localAnimationCount = globalAnimationCounter++; + totalActiveAnimations++; + runningAnimations[className] = runner; + + element.data(NG_ANIMATE_STATE, { + last : runner, + active : runningAnimations, + index : localAnimationCount, + totalActive : totalActiveAnimations + }); + + //first we run the before animations and when all of those are complete + //then we perform the DOM operation and run the next set of animations + fireBeforeCallbackAsync(); + runner.before(function(cancelled) { + var data = element.data(NG_ANIMATE_STATE); + cancelled = cancelled || + !data || !data.active[className] || + (runner.isClassBased && data.active[className].event != animationEvent); + + fireDOMOperation(); + if(cancelled === true) { + closeAnimation(); + } else { + fireAfterCallbackAsync(); + runner.after(closeAnimation); + } + }); + + function fireDOMCallback(animationPhase) { + var eventName = '$animate:' + animationPhase; + if(elementEvents && elementEvents[eventName] && elementEvents[eventName].length > 0) { + $$asyncCallback(function() { + element.triggerHandler(eventName, { + event : animationEvent, + className : className + }); + }); + } + } + + function fireBeforeCallbackAsync() { + fireDOMCallback('before'); + } + + function fireAfterCallbackAsync() { + fireDOMCallback('after'); + } + + function fireDoneCallbackAsync() { + fireDOMCallback('close'); + if(doneCallback) { + $$asyncCallback(function() { + doneCallback(); + }); + } + } + + //it is less complicated to use a flag than managing and canceling + //timeouts containing multiple callbacks. + function fireDOMOperation() { + if(!fireDOMOperation.hasBeenRun) { + fireDOMOperation.hasBeenRun = true; + domOperation(); + } + } + + function closeAnimation() { + if(!closeAnimation.hasBeenRun) { + closeAnimation.hasBeenRun = true; + var data = element.data(NG_ANIMATE_STATE); + if(data) { + /* only structural animations wait for reflow before removing an + animation, but class-based animations don't. An example of this + failing would be when a parent HTML tag has a ng-class attribute + causing ALL directives below to skip animations during the digest */ + if(runner && runner.isClassBased) { + cleanup(element, className); + } else { + $$asyncCallback(function() { + var data = element.data(NG_ANIMATE_STATE) || {}; + if(localAnimationCount == data.index) { + cleanup(element, className, animationEvent); + } + }); + element.data(NG_ANIMATE_STATE, data); + } + } + fireDoneCallbackAsync(); + } + } + } + + function cancelChildAnimations(element) { + var node = extractElementNode(element); + if (node) { + var nodes = angular.isFunction(node.getElementsByClassName) ? + node.getElementsByClassName(NG_ANIMATE_CLASS_NAME) : + node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME); + forEach(nodes, function(element) { + element = angular.element(element); + var data = element.data(NG_ANIMATE_STATE); + if(data && data.active) { + forEach(data.active, function(runner) { + runner.cancel(); + }); + } + }); + } + } + + function cleanup(element, className) { + if(isMatchingElement(element, $rootElement)) { + if(!rootAnimateState.disabled) { + rootAnimateState.running = false; + rootAnimateState.structural = false; + } + } else if(className) { + var data = element.data(NG_ANIMATE_STATE) || {}; + + var removeAnimations = className === true; + if(!removeAnimations && data.active && data.active[className]) { + data.totalActive--; + delete data.active[className]; + } + + if(removeAnimations || !data.totalActive) { + element.removeClass(NG_ANIMATE_CLASS_NAME); + element.removeData(NG_ANIMATE_STATE); + } + } + } + + function animationsDisabled(element, parentElement) { + if (rootAnimateState.disabled) return true; + + if(isMatchingElement(element, $rootElement)) { + return rootAnimateState.disabled || rootAnimateState.running; + } + + do { + //the element did not reach the root element which means that it + //is not apart of the DOM. Therefore there is no reason to do + //any animations on it + if(parentElement.length === 0) break; + + var isRoot = isMatchingElement(parentElement, $rootElement); + var state = isRoot ? rootAnimateState : parentElement.data(NG_ANIMATE_STATE); + var result = state && (!!state.disabled || state.running || state.totalActive > 0); + if(isRoot || result) { + return result; + } + + if(isRoot) return true; + } + while(parentElement = parentElement.parent()); + + return true; + } + }]); + + $animateProvider.register('', ['$window', '$sniffer', '$timeout', '$$animateReflow', + function($window, $sniffer, $timeout, $$animateReflow) { + // Detect proper transitionend/animationend event names. + var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + + // If unprefixed events are not supported but webkit-prefixed are, use the latter. + // Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. + // Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` + // but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. + // Register both events in case `window.onanimationend` is not supported because of that, + // do the same for `transitionend` as Safari is likely to exhibit similar behavior. + // Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit + // therefore there is no reason to test anymore for other vendor prefixes: http://caniuse.com/#search=transition + if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; + } else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; + } + + if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; + } else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; + } + + var DURATION_KEY = 'Duration'; + var PROPERTY_KEY = 'Property'; + var DELAY_KEY = 'Delay'; + var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; + var NG_ANIMATE_PARENT_KEY = '$$ngAnimateKey'; + var NG_ANIMATE_CSS_DATA_KEY = '$$ngAnimateCSS3Data'; + var NG_ANIMATE_BLOCK_CLASS_NAME = 'ng-animate-block-transitions'; + var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; + var CLOSING_TIME_BUFFER = 1.5; + var ONE_SECOND = 1000; + + var lookupCache = {}; + var parentCounter = 0; + var animationReflowQueue = []; + var cancelAnimationReflow; + function afterReflow(element, callback) { + if(cancelAnimationReflow) { + cancelAnimationReflow(); + } + animationReflowQueue.push(callback); + cancelAnimationReflow = $$animateReflow(function() { + forEach(animationReflowQueue, function(fn) { + fn(); + }); + + animationReflowQueue = []; + cancelAnimationReflow = null; + lookupCache = {}; + }); + } + + var closingTimer = null; + var closingTimestamp = 0; + var animationElementQueue = []; + function animationCloseHandler(element, totalTime) { + var node = extractElementNode(element); + element = angular.element(node); + + //this item will be garbage collected by the closing + //animation timeout + animationElementQueue.push(element); + + //but it may not need to cancel out the existing timeout + //if the timestamp is less than the previous one + var futureTimestamp = Date.now() + totalTime; + if(futureTimestamp <= closingTimestamp) { + return; + } + + $timeout.cancel(closingTimer); + + closingTimestamp = futureTimestamp; + closingTimer = $timeout(function() { + closeAllAnimations(animationElementQueue); + animationElementQueue = []; + }, totalTime, false); + } + + function closeAllAnimations(elements) { + forEach(elements, function(element) { + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(elementData) { + (elementData.closeAnimationFn || noop)(); + } + }); + } + + function getElementAnimationDetails(element, cacheKey) { + var data = cacheKey ? lookupCache[cacheKey] : null; + if(!data) { + var transitionDuration = 0; + var transitionDelay = 0; + var animationDuration = 0; + var animationDelay = 0; + var transitionDelayStyle; + var animationDelayStyle; + var transitionDurationStyle; + var transitionPropertyStyle; + + //we want all the styles defined before and after + forEach(element, function(element) { + if (element.nodeType == ELEMENT_NODE) { + var elementStyles = $window.getComputedStyle(element) || {}; + + transitionDurationStyle = elementStyles[TRANSITION_PROP + DURATION_KEY]; + + transitionDuration = Math.max(parseMaxTime(transitionDurationStyle), transitionDuration); + + transitionPropertyStyle = elementStyles[TRANSITION_PROP + PROPERTY_KEY]; + + transitionDelayStyle = elementStyles[TRANSITION_PROP + DELAY_KEY]; + + transitionDelay = Math.max(parseMaxTime(transitionDelayStyle), transitionDelay); + + animationDelayStyle = elementStyles[ANIMATION_PROP + DELAY_KEY]; + + animationDelay = Math.max(parseMaxTime(animationDelayStyle), animationDelay); + + var aDuration = parseMaxTime(elementStyles[ANIMATION_PROP + DURATION_KEY]); + + if(aDuration > 0) { + aDuration *= parseInt(elementStyles[ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY], 10) || 1; + } + + animationDuration = Math.max(aDuration, animationDuration); + } + }); + data = { + total : 0, + transitionPropertyStyle: transitionPropertyStyle, + transitionDurationStyle: transitionDurationStyle, + transitionDelayStyle: transitionDelayStyle, + transitionDelay: transitionDelay, + transitionDuration: transitionDuration, + animationDelayStyle: animationDelayStyle, + animationDelay: animationDelay, + animationDuration: animationDuration + }; + if(cacheKey) { + lookupCache[cacheKey] = data; + } + } + return data; + } + + function parseMaxTime(str) { + var maxValue = 0; + var values = angular.isString(str) ? + str.split(/\s*,\s*/) : + []; + forEach(values, function(value) { + maxValue = Math.max(parseFloat(value) || 0, maxValue); + }); + return maxValue; + } + + function getCacheKey(element) { + var parentElement = element.parent(); + var parentID = parentElement.data(NG_ANIMATE_PARENT_KEY); + if(!parentID) { + parentElement.data(NG_ANIMATE_PARENT_KEY, ++parentCounter); + parentID = parentCounter; + } + return parentID + '-' + extractElementNode(element).getAttribute('class'); + } + + function animateSetup(animationEvent, element, className, calculationDecorator) { + var cacheKey = getCacheKey(element); + var eventCacheKey = cacheKey + ' ' + className; + var itemIndex = lookupCache[eventCacheKey] ? ++lookupCache[eventCacheKey].total : 0; + + var stagger = {}; + if(itemIndex > 0) { + var staggerClassName = className + '-stagger'; + var staggerCacheKey = cacheKey + ' ' + staggerClassName; + var applyClasses = !lookupCache[staggerCacheKey]; + + applyClasses && element.addClass(staggerClassName); + + stagger = getElementAnimationDetails(element, staggerCacheKey); + + applyClasses && element.removeClass(staggerClassName); + } + + /* the animation itself may need to add/remove special CSS classes + * before calculating the anmation styles */ + calculationDecorator = calculationDecorator || + function(fn) { return fn(); }; + + element.addClass(className); + + var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {}; + + var timings = calculationDecorator(function() { + return getElementAnimationDetails(element, eventCacheKey); + }); + + var transitionDuration = timings.transitionDuration; + var animationDuration = timings.animationDuration; + if(transitionDuration === 0 && animationDuration === 0) { + element.removeClass(className); + return false; + } + + element.data(NG_ANIMATE_CSS_DATA_KEY, { + running : formerData.running || 0, + itemIndex : itemIndex, + stagger : stagger, + timings : timings, + closeAnimationFn : noop + }); + + //temporarily disable the transition so that the enter styles + //don't animate twice (this is here to avoid a bug in Chrome/FF). + var isCurrentlyAnimating = formerData.running > 0 || animationEvent == 'setClass'; + if(transitionDuration > 0) { + blockTransitions(element, className, isCurrentlyAnimating); + } + + //staggering keyframe animations work by adjusting the `animation-delay` CSS property + //on the given element, however, the delay value can only calculated after the reflow + //since by that time $animate knows how many elements are being animated. Therefore, + //until the reflow occurs the element needs to be blocked (where the keyframe animation + //is set to `none 0s`). This blocking mechanism should only be set for when a stagger + //animation is detected and when the element item index is greater than 0. + if(animationDuration > 0 && stagger.animationDelay > 0 && stagger.animationDuration === 0) { + blockKeyframeAnimations(element); + } + + return true; + } + + function isStructuralAnimation(className) { + return className == 'ng-enter' || className == 'ng-move' || className == 'ng-leave'; + } + + function blockTransitions(element, className, isAnimating) { + if(isStructuralAnimation(className) || !isAnimating) { + extractElementNode(element).style[TRANSITION_PROP + PROPERTY_KEY] = 'none'; + } else { + element.addClass(NG_ANIMATE_BLOCK_CLASS_NAME); + } + } + + function blockKeyframeAnimations(element) { + extractElementNode(element).style[ANIMATION_PROP] = 'none 0s'; + } + + function unblockTransitions(element, className) { + var prop = TRANSITION_PROP + PROPERTY_KEY; + var node = extractElementNode(element); + if(node.style[prop] && node.style[prop].length > 0) { + node.style[prop] = ''; + } + element.removeClass(NG_ANIMATE_BLOCK_CLASS_NAME); + } + + function unblockKeyframeAnimations(element) { + var prop = ANIMATION_PROP; + var node = extractElementNode(element); + if(node.style[prop] && node.style[prop].length > 0) { + node.style[prop] = ''; + } + } + + function animateRun(animationEvent, element, className, activeAnimationComplete) { + var node = extractElementNode(element); + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(node.getAttribute('class').indexOf(className) == -1 || !elementData) { + activeAnimationComplete(); + return; + } + + var activeClassName = ''; + forEach(className.split(' '), function(klass, i) { + activeClassName += (i > 0 ? ' ' : '') + klass + '-active'; + }); + + var stagger = elementData.stagger; + var timings = elementData.timings; + var itemIndex = elementData.itemIndex; + var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration); + var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay); + var maxDelayTime = maxDelay * ONE_SECOND; + + var startTime = Date.now(); + var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT; + + var style = '', appliedStyles = []; + if(timings.transitionDuration > 0) { + var propertyStyle = timings.transitionPropertyStyle; + if(propertyStyle.indexOf('all') == -1) { + style += CSS_PREFIX + 'transition-property: ' + propertyStyle + ';'; + style += CSS_PREFIX + 'transition-duration: ' + timings.transitionDurationStyle + ';'; + appliedStyles.push(CSS_PREFIX + 'transition-property'); + appliedStyles.push(CSS_PREFIX + 'transition-duration'); + } + } + + if(itemIndex > 0) { + if(stagger.transitionDelay > 0 && stagger.transitionDuration === 0) { + var delayStyle = timings.transitionDelayStyle; + style += CSS_PREFIX + 'transition-delay: ' + + prepareStaggerDelay(delayStyle, stagger.transitionDelay, itemIndex) + '; '; + appliedStyles.push(CSS_PREFIX + 'transition-delay'); + } + + if(stagger.animationDelay > 0 && stagger.animationDuration === 0) { + style += CSS_PREFIX + 'animation-delay: ' + + prepareStaggerDelay(timings.animationDelayStyle, stagger.animationDelay, itemIndex) + '; '; + appliedStyles.push(CSS_PREFIX + 'animation-delay'); + } + } + + if(appliedStyles.length > 0) { + //the element being animated may sometimes contain comment nodes in + //the jqLite object, so we're safe to use a single variable to house + //the styles since there is always only one element being animated + var oldStyle = node.getAttribute('style') || ''; + node.setAttribute('style', oldStyle + ' ' + style); + } + + element.on(css3AnimationEvents, onAnimationProgress); + element.addClass(activeClassName); + elementData.closeAnimationFn = function() { + onEnd(); + activeAnimationComplete(); + }; + + var staggerTime = itemIndex * (Math.max(stagger.animationDelay, stagger.transitionDelay) || 0); + var animationTime = (maxDelay + maxDuration) * CLOSING_TIME_BUFFER; + var totalTime = (staggerTime + animationTime) * ONE_SECOND; + + elementData.running++; + animationCloseHandler(element, totalTime); + return onEnd; + + // This will automatically be called by $animate so + // there is no need to attach this internally to the + // timeout done method. + function onEnd(cancelled) { + element.off(css3AnimationEvents, onAnimationProgress); + element.removeClass(activeClassName); + animateClose(element, className); + var node = extractElementNode(element); + for (var i in appliedStyles) { + node.style.removeProperty(appliedStyles[i]); + } + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if(Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + activeAnimationComplete(); + } + } + } + + function prepareStaggerDelay(delayStyle, staggerDelay, index) { + var style = ''; + forEach(delayStyle.split(','), function(val, i) { + style += (i > 0 ? ',' : '') + + (index * staggerDelay + parseInt(val, 10)) + 's'; + }); + return style; + } + + function animateBefore(animationEvent, element, className, calculationDecorator) { + if(animateSetup(animationEvent, element, className, calculationDecorator)) { + return function(cancelled) { + cancelled && animateClose(element, className); + }; + } + } + + function animateAfter(animationEvent, element, className, afterAnimationComplete) { + if(element.data(NG_ANIMATE_CSS_DATA_KEY)) { + return animateRun(animationEvent, element, className, afterAnimationComplete); + } else { + animateClose(element, className); + afterAnimationComplete(); + } + } + + function animate(animationEvent, element, className, animationComplete) { + //If the animateSetup function doesn't bother returning a + //cancellation function then it means that there is no animation + //to perform at all + var preReflowCancellation = animateBefore(animationEvent, element, className); + if(!preReflowCancellation) { + animationComplete(); + return; + } + + //There are two cancellation functions: one is before the first + //reflow animation and the second is during the active state + //animation. The first function will take care of removing the + //data from the element which will not make the 2nd animation + //happen in the first place + var cancel = preReflowCancellation; + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + //once the reflow is complete then we point cancel to + //the new cancellation function which will remove all of the + //animation properties from the active animation + cancel = animateAfter(animationEvent, element, className, animationComplete); + }); + + return function(cancelled) { + (cancel || noop)(cancelled); + }; + } + + function animateClose(element, className) { + element.removeClass(className); + var data = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(data) { + if(data.running) { + data.running--; + } + if(!data.running || data.running === 0) { + element.removeData(NG_ANIMATE_CSS_DATA_KEY); + } + } + } + + return { + enter : function(element, animationCompleted) { + return animate('enter', element, 'ng-enter', animationCompleted); + }, + + leave : function(element, animationCompleted) { + return animate('leave', element, 'ng-leave', animationCompleted); + }, + + move : function(element, animationCompleted) { + return animate('move', element, 'ng-move', animationCompleted); + }, + + beforeSetClass : function(element, add, remove, animationCompleted) { + var className = suffixClasses(remove, '-remove') + ' ' + + suffixClasses(add, '-add'); + var cancellationMethod = animateBefore('setClass', element, className, function(fn) { + /* when classes are removed from an element then the transition style + * that is applied is the transition defined on the element without the + * CSS class being there. This is how CSS3 functions outside of ngAnimate. + * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */ + var klass = element.attr('class'); + element.removeClass(remove); + element.addClass(add); + var timings = fn(); + element.attr('class', klass); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + beforeAddClass : function(element, className, animationCompleted) { + var cancellationMethod = animateBefore('addClass', element, suffixClasses(className, '-add'), function(fn) { + + /* when a CSS class is added to an element then the transition style that + * is applied is the transition defined on the element when the CSS class + * is added at the time of the animation. This is how CSS3 functions + * outside of ngAnimate. */ + element.addClass(className); + var timings = fn(); + element.removeClass(className); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + setClass : function(element, add, remove, animationCompleted) { + remove = suffixClasses(remove, '-remove'); + add = suffixClasses(add, '-add'); + var className = remove + ' ' + add; + return animateAfter('setClass', element, className, animationCompleted); + }, + + addClass : function(element, className, animationCompleted) { + return animateAfter('addClass', element, suffixClasses(className, '-add'), animationCompleted); + }, + + beforeRemoveClass : function(element, className, animationCompleted) { + var cancellationMethod = animateBefore('removeClass', element, suffixClasses(className, '-remove'), function(fn) { + /* when classes are removed from an element then the transition style + * that is applied is the transition defined on the element without the + * CSS class being there. This is how CSS3 functions outside of ngAnimate. + * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */ + var klass = element.attr('class'); + element.removeClass(className); + var timings = fn(); + element.attr('class', klass); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + removeClass : function(element, className, animationCompleted) { + return animateAfter('removeClass', element, suffixClasses(className, '-remove'), animationCompleted); + } + }; + + function suffixClasses(classes, suffix) { + var className = ''; + classes = angular.isArray(classes) ? classes : classes.split(/\s+/); + forEach(classes, function(klass, i) { + if(klass && klass.length > 0) { + className += (i > 0 ? ' ' : '') + klass + suffix; + } + }); + return className; + } + }]); + }]); + + +})(window, window.angular); diff --git a/platforms/browser/www/lib/angular-animate/angular-animate.min.js b/platforms/browser/www/lib/angular-animate/angular-animate.min.js new file mode 100644 index 00000000..55971e54 --- /dev/null +++ b/platforms/browser/www/lib/angular-animate/angular-animate.min.js @@ -0,0 +1,27 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(s,g,P){'use strict';g.module("ngAnimate",["ng"]).factory("$$animateReflow",["$$rAF","$document",function(g,s){return function(e){return g(function(){e()})}}]).config(["$provide","$animateProvider",function(ga,G){function e(e){for(var p=0;p=x&&b>=v&&f()}var l=e(b);a=b.data(n);if(-1!=l.getAttribute("class").indexOf(c)&&a){var r="";p(c.split(" "),function(a,b){r+=(0` to your `index.html`: + +```html + +``` + +And add `ngCookies` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngCookies']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngCookies). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-cookies/angular-cookies.js b/platforms/browser/www/lib/angular-cookies/angular-cookies.js new file mode 100644 index 00000000..f43d44dc --- /dev/null +++ b/platforms/browser/www/lib/angular-cookies/angular-cookies.js @@ -0,0 +1,196 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngCookies + * @description + * + * # ngCookies + * + * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies. + * + * + *
+ * + * See {@link ngCookies.$cookies `$cookies`} and + * {@link ngCookies.$cookieStore `$cookieStore`} for usage. + */ + + +angular.module('ngCookies', ['ng']). + /** + * @ngdoc service + * @name $cookies + * + * @description + * Provides read/write access to browser's cookies. + * + * Only a simple Object is exposed and by adding or removing properties to/from this object, new + * cookies are created/deleted at the end of current $eval. + * The object's properties can only be strings. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + + + + + + */ + factory('$cookies', ['$rootScope', '$browser', function ($rootScope, $browser) { + var cookies = {}, + lastCookies = {}, + lastBrowserCookies, + runEval = false, + copy = angular.copy, + isUndefined = angular.isUndefined; + + //creates a poller fn that copies all cookies from the $browser to service & inits the service + $browser.addPollFn(function() { + var currentCookies = $browser.cookies(); + if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl + lastBrowserCookies = currentCookies; + copy(currentCookies, lastCookies); + copy(currentCookies, cookies); + if (runEval) $rootScope.$apply(); + } + })(); + + runEval = true; + + //at the end of each eval, push cookies + //TODO: this should happen before the "delayed" watches fire, because if some cookies are not + // strings or browser refuses to store some cookies, we update the model in the push fn. + $rootScope.$watch(push); + + return cookies; + + + /** + * Pushes all the cookies from the service to the browser and verifies if all cookies were + * stored. + */ + function push() { + var name, + value, + browserCookies, + updated; + + //delete any cookies deleted in $cookies + for (name in lastCookies) { + if (isUndefined(cookies[name])) { + $browser.cookies(name, undefined); + } + } + + //update all cookies updated in $cookies + for(name in cookies) { + value = cookies[name]; + if (!angular.isString(value)) { + value = '' + value; + cookies[name] = value; + } + if (value !== lastCookies[name]) { + $browser.cookies(name, value); + updated = true; + } + } + + //verify what was actually stored + if (updated){ + updated = false; + browserCookies = $browser.cookies(); + + for (name in cookies) { + if (cookies[name] !== browserCookies[name]) { + //delete or reset all cookies that the browser dropped from $cookies + if (isUndefined(browserCookies[name])) { + delete cookies[name]; + } else { + cookies[name] = browserCookies[name]; + } + updated = true; + } + } + } + } + }]). + + + /** + * @ngdoc service + * @name $cookieStore + * @requires $cookies + * + * @description + * Provides a key-value (string-object) storage, that is backed by session cookies. + * Objects put or retrieved from this storage are automatically serialized or + * deserialized by angular's toJson/fromJson. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + */ + factory('$cookieStore', ['$cookies', function($cookies) { + + return { + /** + * @ngdoc method + * @name $cookieStore#get + * + * @description + * Returns the value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {Object} Deserialized cookie value. + */ + get: function(key) { + var value = $cookies[key]; + return value ? angular.fromJson(value) : value; + }, + + /** + * @ngdoc method + * @name $cookieStore#put + * + * @description + * Sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {Object} value Value to be stored. + */ + put: function(key, value) { + $cookies[key] = angular.toJson(value); + }, + + /** + * @ngdoc method + * @name $cookieStore#remove + * + * @description + * Remove given cookie + * + * @param {string} key Id of the key-value pair to delete. + */ + remove: function(key) { + delete $cookies[key]; + } + }; + + }]); + + +})(window, window.angular); diff --git a/platforms/browser/www/lib/angular-cookies/angular-cookies.min.js b/platforms/browser/www/lib/angular-cookies/angular-cookies.min.js new file mode 100644 index 00000000..4d4527f3 --- /dev/null +++ b/platforms/browser/www/lib/angular-cookies/angular-cookies.min.js @@ -0,0 +1,8 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(e,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&e.$apply())})();k=!0;e.$watch(function(){var a,d,e;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)d=c[a],f.isString(d)||(d=""+d,c[a]=d),d!==g[a]&&(b.cookies(a,d),e=!0);if(e)for(a in d=b.cookies(),c)c[a]!==d[a]&&(m(d[a])?delete c[a]:c[a]=d[a])});return c}]).factory("$cookieStore", +["$cookies",function(e){return{get:function(b){return(b=e[b])?f.fromJson(b):b},put:function(b,c){e[b]=f.toJson(c)},remove:function(b){delete e[b]}}}])})(window,window.angular); +//# sourceMappingURL=angular-cookies.min.js.map diff --git a/platforms/browser/www/lib/angular-cookies/angular-cookies.min.js.map b/platforms/browser/www/lib/angular-cookies/angular-cookies.min.js.map new file mode 100644 index 00000000..1d3c5d32 --- /dev/null +++ b/platforms/browser/www/lib/angular-cookies/angular-cookies.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-cookies.min.js", +"lineCount":7, +"mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAmBtCD,CAAAE,OAAA,CAAe,WAAf,CAA4B,CAAC,IAAD,CAA5B,CAAAC,QAAA,CA4BW,UA5BX,CA4BuB,CAAC,YAAD,CAAe,UAAf,CAA2B,QAAS,CAACC,CAAD,CAAaC,CAAb,CAAuB,CAAA,IACxEC,EAAU,EAD8D,CAExEC,EAAc,EAF0D,CAGxEC,CAHwE,CAIxEC,EAAU,CAAA,CAJ8D,CAKxEC,EAAOV,CAAAU,KALiE,CAMxEC,EAAcX,CAAAW,YAGlBN,EAAAO,UAAA,CAAmB,QAAQ,EAAG,CAC5B,IAAIC,EAAiBR,CAAAC,QAAA,EACjBE,EAAJ,EAA0BK,CAA1B,GACEL,CAGA,CAHqBK,CAGrB,CAFAH,CAAA,CAAKG,CAAL,CAAqBN,CAArB,CAEA,CADAG,CAAA,CAAKG,CAAL,CAAqBP,CAArB,CACA,CAAIG,CAAJ,EAAaL,CAAAU,OAAA,EAJf,CAF4B,CAA9B,CAAA,EAUAL,EAAA,CAAU,CAAA,CAKVL,EAAAW,OAAA,CASAC,QAAa,EAAG,CAAA,IACVC,CADU,CAEVC,CAFU,CAIVC,CAGJ,KAAKF,CAAL,GAAaV,EAAb,CACMI,CAAA,CAAYL,CAAA,CAAQW,CAAR,CAAZ,CAAJ,EACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBhB,CAAvB,CAKJ,KAAIgB,CAAJ,GAAYX,EAAZ,CACEY,CAKA,CALQZ,CAAA,CAAQW,CAAR,CAKR,CAJKjB,CAAAoB,SAAA,CAAiBF,CAAjB,CAIL,GAHEA,CACA,CADQ,EACR,CADaA,CACb,CAAAZ,CAAA,CAAQW,CAAR,CAAA,CAAgBC,CAElB,EAAIA,CAAJ,GAAcX,CAAA,CAAYU,CAAZ,CAAd,GACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBC,CAAvB,CACA,CAAAC,CAAA,CAAU,CAAA,CAFZ,CAOF,IAAIA,CAAJ,CAIE,IAAKF,CAAL,GAFAI,EAEaf,CAFID,CAAAC,QAAA,EAEJA,CAAAA,CAAb,CACMA,CAAA,CAAQW,CAAR,CAAJ,GAAsBI,CAAA,CAAeJ,CAAf,CAAtB,GAEMN,CAAA,CAAYU,CAAA,CAAeJ,CAAf,CAAZ,CAAJ,CACE,OAAOX,CAAA,CAAQW,CAAR,CADT,CAGEX,CAAA,CAAQW,CAAR,CAHF,CAGkBI,CAAA,CAAeJ,CAAf,CALpB,CAhCU,CAThB,CAEA,OAAOX,EA1BqE,CAA3D,CA5BvB,CAAAH,QAAA,CA0HW,cA1HX;AA0H2B,CAAC,UAAD,CAAa,QAAQ,CAACmB,CAAD,CAAW,CAErD,MAAO,KAWAC,QAAQ,CAACC,CAAD,CAAM,CAEjB,MAAO,CADHN,CACG,CADKI,CAAA,CAASE,CAAT,CACL,EAAQxB,CAAAyB,SAAA,CAAiBP,CAAjB,CAAR,CAAkCA,CAFxB,CAXd,KA0BAQ,QAAQ,CAACF,CAAD,CAAMN,CAAN,CAAa,CACxBI,CAAA,CAASE,CAAT,CAAA,CAAgBxB,CAAA2B,OAAA,CAAeT,CAAf,CADQ,CA1BrB,QAuCGU,QAAQ,CAACJ,CAAD,CAAM,CACpB,OAAOF,CAAA,CAASE,CAAT,CADa,CAvCjB,CAF8C,CAAhC,CA1H3B,CAnBsC,CAArC,CAAA,CA8LEzB,MA9LF,CA8LUA,MAAAC,QA9LV;", +"sources":["angular-cookies.js"], +"names":["window","angular","undefined","module","factory","$rootScope","$browser","cookies","lastCookies","lastBrowserCookies","runEval","copy","isUndefined","addPollFn","currentCookies","$apply","$watch","push","name","value","updated","isString","browserCookies","$cookies","get","key","fromJson","put","toJson","remove"] +} diff --git a/platforms/browser/www/lib/angular-cookies/bower.json b/platforms/browser/www/lib/angular-cookies/bower.json new file mode 100644 index 00000000..cf5f05a0 --- /dev/null +++ b/platforms/browser/www/lib/angular-cookies/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-cookies", + "version": "1.2.16", + "main": "./angular-cookies.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/platforms/browser/www/lib/angular-mocks/.bower.json b/platforms/browser/www/lib/angular-mocks/.bower.json new file mode 100644 index 00000000..ce38275c --- /dev/null +++ b/platforms/browser/www/lib/angular-mocks/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-mocks", + "version": "1.2.16", + "main": "./angular-mocks.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-mocks", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "e429a011d88c402430329449500f352751d1a137" + }, + "_source": "git://github.com/angular/bower-angular-mocks.git", + "_target": "1.2.16", + "_originalSource": "angular-mocks" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/angular-mocks/README.md b/platforms/browser/www/lib/angular-mocks/README.md new file mode 100644 index 00000000..3448d284 --- /dev/null +++ b/platforms/browser/www/lib/angular-mocks/README.md @@ -0,0 +1,42 @@ +# bower-angular-mocks + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngMock). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-mocks +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/guide/dev_guide.unit-testing). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-mocks/angular-mocks.js b/platforms/browser/www/lib/angular-mocks/angular-mocks.js new file mode 100644 index 00000000..da804b4a --- /dev/null +++ b/platforms/browser/www/lib/angular-mocks/angular-mocks.js @@ -0,0 +1,2163 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) { + +'use strict'; + +/** + * @ngdoc object + * @name angular.mock + * @description + * + * Namespace from 'angular-mocks.js' which contains testing related code. + */ +angular.mock = {}; + +/** + * ! This is a private undocumented service ! + * + * @name $browser + * + * @description + * This service is a mock implementation of {@link ng.$browser}. It provides fake + * implementation for commonly used browser apis that are hard to test, e.g. setTimeout, xhr, + * cookies, etc... + * + * The api of this service is the same as that of the real {@link ng.$browser $browser}, except + * that there are several helper methods available which can be used in tests. + */ +angular.mock.$BrowserProvider = function() { + this.$get = function() { + return new angular.mock.$Browser(); + }; +}; + +angular.mock.$Browser = function() { + var self = this; + + this.isMock = true; + self.$$url = "http://server/"; + self.$$lastUrl = self.$$url; // used by url polling fn + self.pollFns = []; + + // TODO(vojta): remove this temporary api + self.$$completeOutstandingRequest = angular.noop; + self.$$incOutstandingRequestCount = angular.noop; + + + // register url polling fn + + self.onUrlChange = function(listener) { + self.pollFns.push( + function() { + if (self.$$lastUrl != self.$$url) { + self.$$lastUrl = self.$$url; + listener(self.$$url); + } + } + ); + + return listener; + }; + + self.cookieHash = {}; + self.lastCookieHash = {}; + self.deferredFns = []; + self.deferredNextId = 0; + + self.defer = function(fn, delay) { + delay = delay || 0; + self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: self.deferredNextId}); + self.deferredFns.sort(function(a,b){ return a.time - b.time;}); + return self.deferredNextId++; + }; + + + /** + * @name $browser#defer.now + * + * @description + * Current milliseconds mock time. + */ + self.defer.now = 0; + + + self.defer.cancel = function(deferId) { + var fnIndex; + + angular.forEach(self.deferredFns, function(fn, index) { + if (fn.id === deferId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + self.deferredFns.splice(fnIndex, 1); + return true; + } + + return false; + }; + + + /** + * @name $browser#defer.flush + * + * @description + * Flushes all pending requests and executes the defer callbacks. + * + * @param {number=} number of milliseconds to flush. See {@link #defer.now} + */ + self.defer.flush = function(delay) { + if (angular.isDefined(delay)) { + self.defer.now += delay; + } else { + if (self.deferredFns.length) { + self.defer.now = self.deferredFns[self.deferredFns.length-1].time; + } else { + throw new Error('No deferred tasks to be flushed'); + } + } + + while (self.deferredFns.length && self.deferredFns[0].time <= self.defer.now) { + self.deferredFns.shift().fn(); + } + }; + + self.$$baseHref = ''; + self.baseHref = function() { + return this.$$baseHref; + }; +}; +angular.mock.$Browser.prototype = { + +/** + * @name $browser#poll + * + * @description + * run all fns in pollFns + */ + poll: function poll() { + angular.forEach(this.pollFns, function(pollFn){ + pollFn(); + }); + }, + + addPollFn: function(pollFn) { + this.pollFns.push(pollFn); + return pollFn; + }, + + url: function(url, replace) { + if (url) { + this.$$url = url; + return this; + } + + return this.$$url; + }, + + cookies: function(name, value) { + if (name) { + if (angular.isUndefined(value)) { + delete this.cookieHash[name]; + } else { + if (angular.isString(value) && //strings only + value.length <= 4096) { //strict cookie storage limits + this.cookieHash[name] = value; + } + } + } else { + if (!angular.equals(this.cookieHash, this.lastCookieHash)) { + this.lastCookieHash = angular.copy(this.cookieHash); + this.cookieHash = angular.copy(this.cookieHash); + } + return this.cookieHash; + } + }, + + notifyWhenNoOutstandingRequests: function(fn) { + fn(); + } +}; + + +/** + * @ngdoc provider + * @name $exceptionHandlerProvider + * + * @description + * Configures the mock implementation of {@link ng.$exceptionHandler} to rethrow or to log errors + * passed into the `$exceptionHandler`. + */ + +/** + * @ngdoc service + * @name $exceptionHandler + * + * @description + * Mock implementation of {@link ng.$exceptionHandler} that rethrows or logs errors passed + * into it. See {@link ngMock.$exceptionHandlerProvider $exceptionHandlerProvider} for configuration + * information. + * + * + * ```js + * describe('$exceptionHandlerProvider', function() { + * + * it('should capture log messages and exceptions', function() { + * + * module(function($exceptionHandlerProvider) { + * $exceptionHandlerProvider.mode('log'); + * }); + * + * inject(function($log, $exceptionHandler, $timeout) { + * $timeout(function() { $log.log(1); }); + * $timeout(function() { $log.log(2); throw 'banana peel'; }); + * $timeout(function() { $log.log(3); }); + * expect($exceptionHandler.errors).toEqual([]); + * expect($log.assertEmpty()); + * $timeout.flush(); + * expect($exceptionHandler.errors).toEqual(['banana peel']); + * expect($log.log.logs).toEqual([[1], [2], [3]]); + * }); + * }); + * }); + * ``` + */ + +angular.mock.$ExceptionHandlerProvider = function() { + var handler; + + /** + * @ngdoc method + * @name $exceptionHandlerProvider#mode + * + * @description + * Sets the logging mode. + * + * @param {string} mode Mode of operation, defaults to `rethrow`. + * + * - `rethrow`: If any errors are passed into the handler in tests, it typically + * means that there is a bug in the application or test, so this mock will + * make these tests fail. + * - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log` + * mode stores an array of errors in `$exceptionHandler.errors`, to allow later + * assertion of them. See {@link ngMock.$log#assertEmpty assertEmpty()} and + * {@link ngMock.$log#reset reset()} + */ + this.mode = function(mode) { + switch(mode) { + case 'rethrow': + handler = function(e) { + throw e; + }; + break; + case 'log': + var errors = []; + + handler = function(e) { + if (arguments.length == 1) { + errors.push(e); + } else { + errors.push([].slice.call(arguments, 0)); + } + }; + + handler.errors = errors; + break; + default: + throw new Error("Unknown mode '" + mode + "', only 'log'/'rethrow' modes are allowed!"); + } + }; + + this.$get = function() { + return handler; + }; + + this.mode('rethrow'); +}; + + +/** + * @ngdoc service + * @name $log + * + * @description + * Mock implementation of {@link ng.$log} that gathers all logged messages in arrays + * (one array per logging level). These arrays are exposed as `logs` property of each of the + * level-specific log function, e.g. for level `error` the array is exposed as `$log.error.logs`. + * + */ +angular.mock.$LogProvider = function() { + var debug = true; + + function concat(array1, array2, index) { + return array1.concat(Array.prototype.slice.call(array2, index)); + } + + this.debugEnabled = function(flag) { + if (angular.isDefined(flag)) { + debug = flag; + return this; + } else { + return debug; + } + }; + + this.$get = function () { + var $log = { + log: function() { $log.log.logs.push(concat([], arguments, 0)); }, + warn: function() { $log.warn.logs.push(concat([], arguments, 0)); }, + info: function() { $log.info.logs.push(concat([], arguments, 0)); }, + error: function() { $log.error.logs.push(concat([], arguments, 0)); }, + debug: function() { + if (debug) { + $log.debug.logs.push(concat([], arguments, 0)); + } + } + }; + + /** + * @ngdoc method + * @name $log#reset + * + * @description + * Reset all of the logging arrays to empty. + */ + $log.reset = function () { + /** + * @ngdoc property + * @name $log#log.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#log}. + * + * @example + * ```js + * $log.log('Some Log'); + * var first = $log.log.logs.unshift(); + * ``` + */ + $log.log.logs = []; + /** + * @ngdoc property + * @name $log#info.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#info}. + * + * @example + * ```js + * $log.info('Some Info'); + * var first = $log.info.logs.unshift(); + * ``` + */ + $log.info.logs = []; + /** + * @ngdoc property + * @name $log#warn.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#warn}. + * + * @example + * ```js + * $log.warn('Some Warning'); + * var first = $log.warn.logs.unshift(); + * ``` + */ + $log.warn.logs = []; + /** + * @ngdoc property + * @name $log#error.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#error}. + * + * @example + * ```js + * $log.error('Some Error'); + * var first = $log.error.logs.unshift(); + * ``` + */ + $log.error.logs = []; + /** + * @ngdoc property + * @name $log#debug.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#debug}. + * + * @example + * ```js + * $log.debug('Some Error'); + * var first = $log.debug.logs.unshift(); + * ``` + */ + $log.debug.logs = []; + }; + + /** + * @ngdoc method + * @name $log#assertEmpty + * + * @description + * Assert that the all of the logging methods have no logged messages. If messages present, an + * exception is thrown. + */ + $log.assertEmpty = function() { + var errors = []; + angular.forEach(['error', 'warn', 'info', 'log', 'debug'], function(logLevel) { + angular.forEach($log[logLevel].logs, function(log) { + angular.forEach(log, function (logItem) { + errors.push('MOCK $log (' + logLevel + '): ' + String(logItem) + '\n' + + (logItem.stack || '')); + }); + }); + }); + if (errors.length) { + errors.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or "+ + "an expected log message was not checked and removed:"); + errors.push(''); + throw new Error(errors.join('\n---------\n')); + } + }; + + $log.reset(); + return $log; + }; +}; + + +/** + * @ngdoc service + * @name $interval + * + * @description + * Mock implementation of the $interval service. + * + * Use {@link ngMock.$interval#flush `$interval.flush(millis)`} to + * move forward by `millis` milliseconds and trigger any functions scheduled to run in that + * time. + * + * @param {function()} fn A function that should be called repeatedly. + * @param {number} delay Number of milliseconds between each function call. + * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat + * indefinitely. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @returns {promise} A promise which will be notified on each iteration. + */ +angular.mock.$IntervalProvider = function() { + this.$get = ['$rootScope', '$q', + function($rootScope, $q) { + var repeatFns = [], + nextRepeatId = 0, + now = 0; + + var $interval = function(fn, delay, count, invokeApply) { + var deferred = $q.defer(), + promise = deferred.promise, + iteration = 0, + skipApply = (angular.isDefined(invokeApply) && !invokeApply); + + count = (angular.isDefined(count)) ? count : 0, + promise.then(null, null, fn); + + promise.$$intervalId = nextRepeatId; + + function tick() { + deferred.notify(iteration++); + + if (count > 0 && iteration >= count) { + var fnIndex; + deferred.resolve(iteration); + + angular.forEach(repeatFns, function(fn, index) { + if (fn.id === promise.$$intervalId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + repeatFns.splice(fnIndex, 1); + } + } + + if (!skipApply) $rootScope.$apply(); + } + + repeatFns.push({ + nextTime:(now + delay), + delay: delay, + fn: tick, + id: nextRepeatId, + deferred: deferred + }); + repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + + nextRepeatId++; + return promise; + }; + /** + * @ngdoc method + * @name $interval#cancel + * + * @description + * Cancels a task associated with the `promise`. + * + * @param {promise} promise A promise from calling the `$interval` function. + * @returns {boolean} Returns `true` if the task was successfully cancelled. + */ + $interval.cancel = function(promise) { + if(!promise) return false; + var fnIndex; + + angular.forEach(repeatFns, function(fn, index) { + if (fn.id === promise.$$intervalId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + repeatFns[fnIndex].deferred.reject('canceled'); + repeatFns.splice(fnIndex, 1); + return true; + } + + return false; + }; + + /** + * @ngdoc method + * @name $interval#flush + * @description + * + * Runs interval tasks scheduled to be run in the next `millis` milliseconds. + * + * @param {number=} millis maximum timeout amount to flush up until. + * + * @return {number} The amount of time moved forward. + */ + $interval.flush = function(millis) { + now += millis; + while (repeatFns.length && repeatFns[0].nextTime <= now) { + var task = repeatFns[0]; + task.fn(); + task.nextTime += task.delay; + repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + } + return millis; + }; + + return $interval; + }]; +}; + + +/* jshint -W101 */ +/* The R_ISO8061_STR regex is never going to fit into the 100 char limit! + * This directive should go inside the anonymous function but a bug in JSHint means that it would + * not be enacted early enough to prevent the warning. + */ +var R_ISO8061_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/; + +function jsonStringToDate(string) { + var match; + if (match = string.match(R_ISO8061_STR)) { + var date = new Date(0), + tzHour = 0, + tzMin = 0; + if (match[9]) { + tzHour = int(match[9] + match[10]); + tzMin = int(match[9] + match[11]); + } + date.setUTCFullYear(int(match[1]), int(match[2]) - 1, int(match[3])); + date.setUTCHours(int(match[4]||0) - tzHour, + int(match[5]||0) - tzMin, + int(match[6]||0), + int(match[7]||0)); + return date; + } + return string; +} + +function int(str) { + return parseInt(str, 10); +} + +function padNumber(num, digits, trim) { + var neg = ''; + if (num < 0) { + neg = '-'; + num = -num; + } + num = '' + num; + while(num.length < digits) num = '0' + num; + if (trim) + num = num.substr(num.length - digits); + return neg + num; +} + + +/** + * @ngdoc type + * @name angular.mock.TzDate + * @description + * + * *NOTE*: this is not an injectable instance, just a globally available mock class of `Date`. + * + * Mock of the Date type which has its timezone specified via constructor arg. + * + * The main purpose is to create Date-like instances with timezone fixed to the specified timezone + * offset, so that we can test code that depends on local timezone settings without dependency on + * the time zone settings of the machine where the code is running. + * + * @param {number} offset Offset of the *desired* timezone in hours (fractions will be honored) + * @param {(number|string)} timestamp Timestamp representing the desired time in *UTC* + * + * @example + * !!!! WARNING !!!!! + * This is not a complete Date object so only methods that were implemented can be called safely. + * To make matters worse, TzDate instances inherit stuff from Date via a prototype. + * + * We do our best to intercept calls to "unimplemented" methods, but since the list of methods is + * incomplete we might be missing some non-standard methods. This can result in errors like: + * "Date.prototype.foo called on incompatible Object". + * + * ```js + * var newYearInBratislava = new TzDate(-1, '2009-12-31T23:00:00Z'); + * newYearInBratislava.getTimezoneOffset() => -60; + * newYearInBratislava.getFullYear() => 2010; + * newYearInBratislava.getMonth() => 0; + * newYearInBratislava.getDate() => 1; + * newYearInBratislava.getHours() => 0; + * newYearInBratislava.getMinutes() => 0; + * newYearInBratislava.getSeconds() => 0; + * ``` + * + */ +angular.mock.TzDate = function (offset, timestamp) { + var self = new Date(0); + if (angular.isString(timestamp)) { + var tsStr = timestamp; + + self.origDate = jsonStringToDate(timestamp); + + timestamp = self.origDate.getTime(); + if (isNaN(timestamp)) + throw { + name: "Illegal Argument", + message: "Arg '" + tsStr + "' passed into TzDate constructor is not a valid date string" + }; + } else { + self.origDate = new Date(timestamp); + } + + var localOffset = new Date(timestamp).getTimezoneOffset(); + self.offsetDiff = localOffset*60*1000 - offset*1000*60*60; + self.date = new Date(timestamp + self.offsetDiff); + + self.getTime = function() { + return self.date.getTime() - self.offsetDiff; + }; + + self.toLocaleDateString = function() { + return self.date.toLocaleDateString(); + }; + + self.getFullYear = function() { + return self.date.getFullYear(); + }; + + self.getMonth = function() { + return self.date.getMonth(); + }; + + self.getDate = function() { + return self.date.getDate(); + }; + + self.getHours = function() { + return self.date.getHours(); + }; + + self.getMinutes = function() { + return self.date.getMinutes(); + }; + + self.getSeconds = function() { + return self.date.getSeconds(); + }; + + self.getMilliseconds = function() { + return self.date.getMilliseconds(); + }; + + self.getTimezoneOffset = function() { + return offset * 60; + }; + + self.getUTCFullYear = function() { + return self.origDate.getUTCFullYear(); + }; + + self.getUTCMonth = function() { + return self.origDate.getUTCMonth(); + }; + + self.getUTCDate = function() { + return self.origDate.getUTCDate(); + }; + + self.getUTCHours = function() { + return self.origDate.getUTCHours(); + }; + + self.getUTCMinutes = function() { + return self.origDate.getUTCMinutes(); + }; + + self.getUTCSeconds = function() { + return self.origDate.getUTCSeconds(); + }; + + self.getUTCMilliseconds = function() { + return self.origDate.getUTCMilliseconds(); + }; + + self.getDay = function() { + return self.date.getDay(); + }; + + // provide this method only on browsers that already have it + if (self.toISOString) { + self.toISOString = function() { + return padNumber(self.origDate.getUTCFullYear(), 4) + '-' + + padNumber(self.origDate.getUTCMonth() + 1, 2) + '-' + + padNumber(self.origDate.getUTCDate(), 2) + 'T' + + padNumber(self.origDate.getUTCHours(), 2) + ':' + + padNumber(self.origDate.getUTCMinutes(), 2) + ':' + + padNumber(self.origDate.getUTCSeconds(), 2) + '.' + + padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z'; + }; + } + + //hide all methods not implemented in this mock that the Date prototype exposes + var unimplementedMethods = ['getUTCDay', + 'getYear', 'setDate', 'setFullYear', 'setHours', 'setMilliseconds', + 'setMinutes', 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear', + 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', + 'setYear', 'toDateString', 'toGMTString', 'toJSON', 'toLocaleFormat', 'toLocaleString', + 'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf']; + + angular.forEach(unimplementedMethods, function(methodName) { + self[methodName] = function() { + throw new Error("Method '" + methodName + "' is not implemented in the TzDate mock"); + }; + }); + + return self; +}; + +//make "tzDateInstance instanceof Date" return true +angular.mock.TzDate.prototype = Date.prototype; +/* jshint +W101 */ + +angular.mock.animate = angular.module('ngAnimateMock', ['ng']) + + .config(['$provide', function($provide) { + + var reflowQueue = []; + $provide.value('$$animateReflow', function(fn) { + var index = reflowQueue.length; + reflowQueue.push(fn); + return function cancel() { + reflowQueue.splice(index, 1); + }; + }); + + $provide.decorator('$animate', function($delegate, $$asyncCallback) { + var animate = { + queue : [], + enabled : $delegate.enabled, + triggerCallbacks : function() { + $$asyncCallback.flush(); + }, + triggerReflow : function() { + angular.forEach(reflowQueue, function(fn) { + fn(); + }); + reflowQueue = []; + } + }; + + angular.forEach( + ['enter','leave','move','addClass','removeClass','setClass'], function(method) { + animate[method] = function() { + animate.queue.push({ + event : method, + element : arguments[0], + args : arguments + }); + $delegate[method].apply($delegate, arguments); + }; + }); + + return animate; + }); + + }]); + + +/** + * @ngdoc function + * @name angular.mock.dump + * @description + * + * *NOTE*: this is not an injectable instance, just a globally available function. + * + * Method for serializing common angular objects (scope, elements, etc..) into strings, useful for + * debugging. + * + * This method is also available on window, where it can be used to display objects on debug + * console. + * + * @param {*} object - any object to turn into string. + * @return {string} a serialized string of the argument + */ +angular.mock.dump = function(object) { + return serialize(object); + + function serialize(object) { + var out; + + if (angular.isElement(object)) { + object = angular.element(object); + out = angular.element('
'); + angular.forEach(object, function(element) { + out.append(angular.element(element).clone()); + }); + out = out.html(); + } else if (angular.isArray(object)) { + out = []; + angular.forEach(object, function(o) { + out.push(serialize(o)); + }); + out = '[ ' + out.join(', ') + ' ]'; + } else if (angular.isObject(object)) { + if (angular.isFunction(object.$eval) && angular.isFunction(object.$apply)) { + out = serializeScope(object); + } else if (object instanceof Error) { + out = object.stack || ('' + object.name + ': ' + object.message); + } else { + // TODO(i): this prevents methods being logged, + // we should have a better way to serialize objects + out = angular.toJson(object, true); + } + } else { + out = String(object); + } + + return out; + } + + function serializeScope(scope, offset) { + offset = offset || ' '; + var log = [offset + 'Scope(' + scope.$id + '): {']; + for ( var key in scope ) { + if (Object.prototype.hasOwnProperty.call(scope, key) && !key.match(/^(\$|this)/)) { + log.push(' ' + key + ': ' + angular.toJson(scope[key])); + } + } + var child = scope.$$childHead; + while(child) { + log.push(serializeScope(child, offset + ' ')); + child = child.$$nextSibling; + } + log.push('}'); + return log.join('\n' + offset); + } +}; + +/** + * @ngdoc service + * @name $httpBackend + * @description + * Fake HTTP backend implementation suitable for unit testing applications that use the + * {@link ng.$http $http service}. + * + * *Note*: For fake HTTP backend implementation suitable for end-to-end testing or backend-less + * development please see {@link ngMockE2E.$httpBackend e2e $httpBackend mock}. + * + * During unit testing, we want our unit tests to run quickly and have no external dependencies so + * we don’t want to send [XHR](https://developer.mozilla.org/en/xmlhttprequest) or + * [JSONP](http://en.wikipedia.org/wiki/JSONP) requests to a real server. All we really need is + * to verify whether a certain request has been sent or not, or alternatively just let the + * application make requests, respond with pre-trained responses and assert that the end result is + * what we expect it to be. + * + * This mock implementation can be used to respond with static or dynamic responses via the + * `expect` and `when` apis and their shortcuts (`expectGET`, `whenPOST`, etc). + * + * When an Angular application needs some data from a server, it calls the $http service, which + * sends the request to a real server using $httpBackend service. With dependency injection, it is + * easy to inject $httpBackend mock (which has the same API as $httpBackend) and use it to verify + * the requests and respond with some testing data without sending a request to real server. + * + * There are two ways to specify what test data should be returned as http responses by the mock + * backend when the code under test makes http requests: + * + * - `$httpBackend.expect` - specifies a request expectation + * - `$httpBackend.when` - specifies a backend definition + * + * + * # Request Expectations vs Backend Definitions + * + * Request expectations provide a way to make assertions about requests made by the application and + * to define responses for those requests. The test will fail if the expected requests are not made + * or they are made in the wrong order. + * + * Backend definitions allow you to define a fake backend for your application which doesn't assert + * if a particular request was made or not, it just returns a trained response if a request is made. + * The test will pass whether or not the request gets made during testing. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Request expectationsBackend definitions
Syntax.expect(...).respond(...).when(...).respond(...)
Typical usagestrict unit testsloose (black-box) unit testing
Fulfills multiple requestsNOYES
Order of requests mattersYESNO
Request requiredYESNO
Response requiredoptional (see below)YES
+ * + * In cases where both backend definitions and request expectations are specified during unit + * testing, the request expectations are evaluated first. + * + * If a request expectation has no response specified, the algorithm will search your backend + * definitions for an appropriate response. + * + * If a request didn't match any expectation or if the expectation doesn't have the response + * defined, the backend definitions are evaluated in sequential order to see if any of them match + * the request. The response from the first matched definition is returned. + * + * + * # Flushing HTTP requests + * + * The $httpBackend used in production always responds to requests asynchronously. If we preserved + * this behavior in unit testing, we'd have to create async unit tests, which are hard to write, + * to follow and to maintain. But neither can the testing mock respond synchronously; that would + * change the execution of the code under test. For this reason, the mock $httpBackend has a + * `flush()` method, which allows the test to explicitly flush pending requests. This preserves + * the async api of the backend, while allowing the test to execute synchronously. + * + * + * # Unit testing with mock $httpBackend + * The following code shows how to setup and use the mock backend when unit testing a controller. + * First we create the controller under test: + * + ```js + // The controller code + function MyController($scope, $http) { + var authToken; + + $http.get('/auth.py').success(function(data, status, headers) { + authToken = headers('A-Token'); + $scope.user = data; + }); + + $scope.saveMessage = function(message) { + var headers = { 'Authorization': authToken }; + $scope.status = 'Saving...'; + + $http.post('/add-msg.py', message, { headers: headers } ).success(function(response) { + $scope.status = ''; + }).error(function() { + $scope.status = 'ERROR!'; + }); + }; + } + ``` + * + * Now we setup the mock backend and create the test specs: + * + ```js + // testing controller + describe('MyController', function() { + var $httpBackend, $rootScope, createController; + + beforeEach(inject(function($injector) { + // Set up the mock http service responses + $httpBackend = $injector.get('$httpBackend'); + // backend definition common for all tests + $httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'}); + + // Get hold of a scope (i.e. the root scope) + $rootScope = $injector.get('$rootScope'); + // The $controller service is used to create instances of controllers + var $controller = $injector.get('$controller'); + + createController = function() { + return $controller('MyController', {'$scope' : $rootScope }); + }; + })); + + + afterEach(function() { + $httpBackend.verifyNoOutstandingExpectation(); + $httpBackend.verifyNoOutstandingRequest(); + }); + + + it('should fetch authentication token', function() { + $httpBackend.expectGET('/auth.py'); + var controller = createController(); + $httpBackend.flush(); + }); + + + it('should send msg to server', function() { + var controller = createController(); + $httpBackend.flush(); + + // now you don’t care about the authentication, but + // the controller will still send the request and + // $httpBackend will respond without you having to + // specify the expectation and response for this request + + $httpBackend.expectPOST('/add-msg.py', 'message content').respond(201, ''); + $rootScope.saveMessage('message content'); + expect($rootScope.status).toBe('Saving...'); + $httpBackend.flush(); + expect($rootScope.status).toBe(''); + }); + + + it('should send auth header', function() { + var controller = createController(); + $httpBackend.flush(); + + $httpBackend.expectPOST('/add-msg.py', undefined, function(headers) { + // check if the header was send, if it wasn't the expectation won't + // match the request and the test will fail + return headers['Authorization'] == 'xxx'; + }).respond(201, ''); + + $rootScope.saveMessage('whatever'); + $httpBackend.flush(); + }); + }); + ``` + */ +angular.mock.$HttpBackendProvider = function() { + this.$get = ['$rootScope', createHttpBackendMock]; +}; + +/** + * General factory function for $httpBackend mock. + * Returns instance for unit testing (when no arguments specified): + * - passing through is disabled + * - auto flushing is disabled + * + * Returns instance for e2e testing (when `$delegate` and `$browser` specified): + * - passing through (delegating request to real backend) is enabled + * - auto flushing is enabled + * + * @param {Object=} $delegate Real $httpBackend instance (allow passing through if specified) + * @param {Object=} $browser Auto-flushing enabled if specified + * @return {Object} Instance of $httpBackend mock + */ +function createHttpBackendMock($rootScope, $delegate, $browser) { + var definitions = [], + expectations = [], + responses = [], + responsesPush = angular.bind(responses, responses.push), + copy = angular.copy; + + function createResponse(status, data, headers, statusText) { + if (angular.isFunction(status)) return status; + + return function() { + return angular.isNumber(status) + ? [status, data, headers, statusText] + : [200, status, data]; + }; + } + + // TODO(vojta): change params to: method, url, data, headers, callback + function $httpBackend(method, url, data, callback, headers, timeout, withCredentials) { + var xhr = new MockXhr(), + expectation = expectations[0], + wasExpected = false; + + function prettyPrint(data) { + return (angular.isString(data) || angular.isFunction(data) || data instanceof RegExp) + ? data + : angular.toJson(data); + } + + function wrapResponse(wrapped) { + if (!$browser && timeout && timeout.then) timeout.then(handleTimeout); + + return handleResponse; + + function handleResponse() { + var response = wrapped.response(method, url, data, headers); + xhr.$$respHeaders = response[2]; + callback(copy(response[0]), copy(response[1]), xhr.getAllResponseHeaders(), + copy(response[3] || '')); + } + + function handleTimeout() { + for (var i = 0, ii = responses.length; i < ii; i++) { + if (responses[i] === handleResponse) { + responses.splice(i, 1); + callback(-1, undefined, ''); + break; + } + } + } + } + + if (expectation && expectation.match(method, url)) { + if (!expectation.matchData(data)) + throw new Error('Expected ' + expectation + ' with different data\n' + + 'EXPECTED: ' + prettyPrint(expectation.data) + '\nGOT: ' + data); + + if (!expectation.matchHeaders(headers)) + throw new Error('Expected ' + expectation + ' with different headers\n' + + 'EXPECTED: ' + prettyPrint(expectation.headers) + '\nGOT: ' + + prettyPrint(headers)); + + expectations.shift(); + + if (expectation.response) { + responses.push(wrapResponse(expectation)); + return; + } + wasExpected = true; + } + + var i = -1, definition; + while ((definition = definitions[++i])) { + if (definition.match(method, url, data, headers || {})) { + if (definition.response) { + // if $browser specified, we do auto flush all requests + ($browser ? $browser.defer : responsesPush)(wrapResponse(definition)); + } else if (definition.passThrough) { + $delegate(method, url, data, callback, headers, timeout, withCredentials); + } else throw new Error('No response defined !'); + return; + } + } + throw wasExpected ? + new Error('No response defined !') : + new Error('Unexpected request: ' + method + ' ' + url + '\n' + + (expectation ? 'Expected ' + expectation : 'No more request expected')); + } + + /** + * @ngdoc method + * @name $httpBackend#when + * @description + * Creates a new backend definition. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current definition. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can + * return an array containing response status (number), response data (string), response + * headers (Object), and the text for the status (string). + */ + $httpBackend.when = function(method, url, data, headers) { + var definition = new MockHttpExpectation(method, url, data, headers), + chain = { + respond: function(status, data, headers, statusText) { + definition.response = createResponse(status, data, headers, statusText); + } + }; + + if ($browser) { + chain.passThrough = function() { + definition.passThrough = true; + }; + } + + definitions.push(definition); + return chain; + }; + + /** + * @ngdoc method + * @name $httpBackend#whenGET + * @description + * Creates a new backend definition for GET requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenHEAD + * @description + * Creates a new backend definition for HEAD requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenDELETE + * @description + * Creates a new backend definition for DELETE requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenPOST + * @description + * Creates a new backend definition for POST requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenPUT + * @description + * Creates a new backend definition for PUT requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenJSONP + * @description + * Creates a new backend definition for JSONP requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + createShortMethods('when'); + + + /** + * @ngdoc method + * @name $httpBackend#expect + * @description + * Creates a new request expectation. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current expectation. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can + * return an array containing response status (number), response data (string), response + * headers (Object), and the text for the status (string). + */ + $httpBackend.expect = function(method, url, data, headers) { + var expectation = new MockHttpExpectation(method, url, data, headers); + expectations.push(expectation); + return { + respond: function (status, data, headers, statusText) { + expectation.response = createResponse(status, data, headers, statusText); + } + }; + }; + + + /** + * @ngdoc method + * @name $httpBackend#expectGET + * @description + * Creates a new request expectation for GET requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. See #expect for more info. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectHEAD + * @description + * Creates a new request expectation for HEAD requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectDELETE + * @description + * Creates a new request expectation for DELETE requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPOST + * @description + * Creates a new request expectation for POST requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPUT + * @description + * Creates a new request expectation for PUT requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPATCH + * @description + * Creates a new request expectation for PATCH requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectJSONP + * @description + * Creates a new request expectation for JSONP requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + createShortMethods('expect'); + + + /** + * @ngdoc method + * @name $httpBackend#flush + * @description + * Flushes all pending requests using the trained responses. + * + * @param {number=} count Number of responses to flush (in the order they arrived). If undefined, + * all pending requests will be flushed. If there are no pending requests when the flush method + * is called an exception is thrown (as this typically a sign of programming error). + */ + $httpBackend.flush = function(count) { + $rootScope.$digest(); + if (!responses.length) throw new Error('No pending request to flush !'); + + if (angular.isDefined(count)) { + while (count--) { + if (!responses.length) throw new Error('No more pending request to flush !'); + responses.shift()(); + } + } else { + while (responses.length) { + responses.shift()(); + } + } + $httpBackend.verifyNoOutstandingExpectation(); + }; + + + /** + * @ngdoc method + * @name $httpBackend#verifyNoOutstandingExpectation + * @description + * Verifies that all of the requests defined via the `expect` api were made. If any of the + * requests were not made, verifyNoOutstandingExpectation throws an exception. + * + * Typically, you would call this method following each test case that asserts requests using an + * "afterEach" clause. + * + * ```js + * afterEach($httpBackend.verifyNoOutstandingExpectation); + * ``` + */ + $httpBackend.verifyNoOutstandingExpectation = function() { + $rootScope.$digest(); + if (expectations.length) { + throw new Error('Unsatisfied requests: ' + expectations.join(', ')); + } + }; + + + /** + * @ngdoc method + * @name $httpBackend#verifyNoOutstandingRequest + * @description + * Verifies that there are no outstanding requests that need to be flushed. + * + * Typically, you would call this method following each test case that asserts requests using an + * "afterEach" clause. + * + * ```js + * afterEach($httpBackend.verifyNoOutstandingRequest); + * ``` + */ + $httpBackend.verifyNoOutstandingRequest = function() { + if (responses.length) { + throw new Error('Unflushed requests: ' + responses.length); + } + }; + + + /** + * @ngdoc method + * @name $httpBackend#resetExpectations + * @description + * Resets all request expectations, but preserves all backend definitions. Typically, you would + * call resetExpectations during a multiple-phase test when you want to reuse the same instance of + * $httpBackend mock. + */ + $httpBackend.resetExpectations = function() { + expectations.length = 0; + responses.length = 0; + }; + + return $httpBackend; + + + function createShortMethods(prefix) { + angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) { + $httpBackend[prefix + method] = function(url, headers) { + return $httpBackend[prefix](method, url, undefined, headers); + }; + }); + + angular.forEach(['PUT', 'POST', 'PATCH'], function(method) { + $httpBackend[prefix + method] = function(url, data, headers) { + return $httpBackend[prefix](method, url, data, headers); + }; + }); + } +} + +function MockHttpExpectation(method, url, data, headers) { + + this.data = data; + this.headers = headers; + + this.match = function(m, u, d, h) { + if (method != m) return false; + if (!this.matchUrl(u)) return false; + if (angular.isDefined(d) && !this.matchData(d)) return false; + if (angular.isDefined(h) && !this.matchHeaders(h)) return false; + return true; + }; + + this.matchUrl = function(u) { + if (!url) return true; + if (angular.isFunction(url.test)) return url.test(u); + return url == u; + }; + + this.matchHeaders = function(h) { + if (angular.isUndefined(headers)) return true; + if (angular.isFunction(headers)) return headers(h); + return angular.equals(headers, h); + }; + + this.matchData = function(d) { + if (angular.isUndefined(data)) return true; + if (data && angular.isFunction(data.test)) return data.test(d); + if (data && angular.isFunction(data)) return data(d); + if (data && !angular.isString(data)) return angular.equals(data, angular.fromJson(d)); + return data == d; + }; + + this.toString = function() { + return method + ' ' + url; + }; +} + +function createMockXhr() { + return new MockXhr(); +} + +function MockXhr() { + + // hack for testing $http, $httpBackend + MockXhr.$$lastInstance = this; + + this.open = function(method, url, async) { + this.$$method = method; + this.$$url = url; + this.$$async = async; + this.$$reqHeaders = {}; + this.$$respHeaders = {}; + }; + + this.send = function(data) { + this.$$data = data; + }; + + this.setRequestHeader = function(key, value) { + this.$$reqHeaders[key] = value; + }; + + this.getResponseHeader = function(name) { + // the lookup must be case insensitive, + // that's why we try two quick lookups first and full scan last + var header = this.$$respHeaders[name]; + if (header) return header; + + name = angular.lowercase(name); + header = this.$$respHeaders[name]; + if (header) return header; + + header = undefined; + angular.forEach(this.$$respHeaders, function(headerVal, headerName) { + if (!header && angular.lowercase(headerName) == name) header = headerVal; + }); + return header; + }; + + this.getAllResponseHeaders = function() { + var lines = []; + + angular.forEach(this.$$respHeaders, function(value, key) { + lines.push(key + ': ' + value); + }); + return lines.join('\n'); + }; + + this.abort = angular.noop; +} + + +/** + * @ngdoc service + * @name $timeout + * @description + * + * This service is just a simple decorator for {@link ng.$timeout $timeout} service + * that adds a "flush" and "verifyNoPendingTasks" methods. + */ + +angular.mock.$TimeoutDecorator = function($delegate, $browser) { + + /** + * @ngdoc method + * @name $timeout#flush + * @description + * + * Flushes the queue of pending tasks. + * + * @param {number=} delay maximum timeout amount to flush up until + */ + $delegate.flush = function(delay) { + $browser.defer.flush(delay); + }; + + /** + * @ngdoc method + * @name $timeout#verifyNoPendingTasks + * @description + * + * Verifies that there are no pending tasks that need to be flushed. + */ + $delegate.verifyNoPendingTasks = function() { + if ($browser.deferredFns.length) { + throw new Error('Deferred tasks to flush (' + $browser.deferredFns.length + '): ' + + formatPendingTasksAsString($browser.deferredFns)); + } + }; + + function formatPendingTasksAsString(tasks) { + var result = []; + angular.forEach(tasks, function(task) { + result.push('{id: ' + task.id + ', ' + 'time: ' + task.time + '}'); + }); + + return result.join(', '); + } + + return $delegate; +}; + +angular.mock.$RAFDecorator = function($delegate) { + var queue = []; + var rafFn = function(fn) { + var index = queue.length; + queue.push(fn); + return function() { + queue.splice(index, 1); + }; + }; + + rafFn.supported = $delegate.supported; + + rafFn.flush = function() { + if(queue.length === 0) { + throw new Error('No rAF callbacks present'); + } + + var length = queue.length; + for(var i=0;i'); + }; +}; + +/** + * @ngdoc module + * @name ngMock + * @description + * + * # ngMock + * + * The `ngMock` module providers support to inject and mock Angular services into unit tests. + * In addition, ngMock also extends various core ng services such that they can be + * inspected and controlled in a synchronous manner within test code. + * + * + *
+ * + */ +angular.module('ngMock', ['ng']).provider({ + $browser: angular.mock.$BrowserProvider, + $exceptionHandler: angular.mock.$ExceptionHandlerProvider, + $log: angular.mock.$LogProvider, + $interval: angular.mock.$IntervalProvider, + $httpBackend: angular.mock.$HttpBackendProvider, + $rootElement: angular.mock.$RootElementProvider +}).config(['$provide', function($provide) { + $provide.decorator('$timeout', angular.mock.$TimeoutDecorator); + $provide.decorator('$$rAF', angular.mock.$RAFDecorator); + $provide.decorator('$$asyncCallback', angular.mock.$AsyncCallbackDecorator); +}]); + +/** + * @ngdoc module + * @name ngMockE2E + * @module ngMockE2E + * @description + * + * The `ngMockE2E` is an angular module which contains mocks suitable for end-to-end testing. + * Currently there is only one mock present in this module - + * the {@link ngMockE2E.$httpBackend e2e $httpBackend} mock. + */ +angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { + $provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator); +}]); + +/** + * @ngdoc service + * @name $httpBackend + * @module ngMockE2E + * @description + * Fake HTTP backend implementation suitable for end-to-end testing or backend-less development of + * applications that use the {@link ng.$http $http service}. + * + * *Note*: For fake http backend implementation suitable for unit testing please see + * {@link ngMock.$httpBackend unit-testing $httpBackend mock}. + * + * This implementation can be used to respond with static or dynamic responses via the `when` api + * and its shortcuts (`whenGET`, `whenPOST`, etc) and optionally pass through requests to the + * real $httpBackend for specific requests (e.g. to interact with certain remote apis or to fetch + * templates from a webserver). + * + * As opposed to unit-testing, in an end-to-end testing scenario or in scenario when an application + * is being developed with the real backend api replaced with a mock, it is often desirable for + * certain category of requests to bypass the mock and issue a real http request (e.g. to fetch + * templates or static files from the webserver). To configure the backend with this behavior + * use the `passThrough` request handler of `when` instead of `respond`. + * + * Additionally, we don't want to manually have to flush mocked out requests like we do during unit + * testing. For this reason the e2e $httpBackend automatically flushes mocked out requests + * automatically, closely simulating the behavior of the XMLHttpRequest object. + * + * To setup the application to run with this http backend, you have to create a module that depends + * on the `ngMockE2E` and your application modules and defines the fake backend: + * + * ```js + * myAppDev = angular.module('myAppDev', ['myApp', 'ngMockE2E']); + * myAppDev.run(function($httpBackend) { + * phones = [{name: 'phone1'}, {name: 'phone2'}]; + * + * // returns the current list of phones + * $httpBackend.whenGET('/phones').respond(phones); + * + * // adds a new phone to the phones array + * $httpBackend.whenPOST('/phones').respond(function(method, url, data) { + * phones.push(angular.fromJson(data)); + * }); + * $httpBackend.whenGET(/^\/templates\//).passThrough(); + * //... + * }); + * ``` + * + * Afterwards, bootstrap your app with this new module. + */ + +/** + * @ngdoc method + * @name $httpBackend#when + * @module ngMockE2E + * @description + * Creates a new backend definition. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current definition. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can return + * an array containing response status (number), response data (string), response headers + * (Object), and the text for the status (string). + * - passThrough – `{function()}` – Any request matching a backend definition with + * `passThrough` handler will be passed through to the real backend (an XHR request will be made + * to the server.) + */ + +/** + * @ngdoc method + * @name $httpBackend#whenGET + * @module ngMockE2E + * @description + * Creates a new backend definition for GET requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenHEAD + * @module ngMockE2E + * @description + * Creates a new backend definition for HEAD requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenDELETE + * @module ngMockE2E + * @description + * Creates a new backend definition for DELETE requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPOST + * @module ngMockE2E + * @description + * Creates a new backend definition for POST requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPUT + * @module ngMockE2E + * @description + * Creates a new backend definition for PUT requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPATCH + * @module ngMockE2E + * @description + * Creates a new backend definition for PATCH requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenJSONP + * @module ngMockE2E + * @description + * Creates a new backend definition for JSONP requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ +angular.mock.e2e = {}; +angular.mock.e2e.$httpBackendDecorator = + ['$rootScope', '$delegate', '$browser', createHttpBackendMock]; + + +angular.mock.clearDataCache = function() { + var key, + cache = angular.element.cache; + + for(key in cache) { + if (Object.prototype.hasOwnProperty.call(cache,key)) { + var handle = cache[key].handle; + + handle && angular.element(handle.elem).off(); + delete cache[key]; + } + } +}; + + +if(window.jasmine || window.mocha) { + + var currentSpec = null, + isSpecRunning = function() { + return !!currentSpec; + }; + + + beforeEach(function() { + currentSpec = this; + }); + + afterEach(function() { + var injector = currentSpec.$injector; + + currentSpec.$injector = null; + currentSpec.$modules = null; + currentSpec = null; + + if (injector) { + injector.get('$rootElement').off(); + injector.get('$browser').pollFns.length = 0; + } + + angular.mock.clearDataCache(); + + // clean up jquery's fragment cache + angular.forEach(angular.element.fragments, function(val, key) { + delete angular.element.fragments[key]; + }); + + MockXhr.$$lastInstance = null; + + angular.forEach(angular.callbacks, function(val, key) { + delete angular.callbacks[key]; + }); + angular.callbacks.counter = 0; + }); + + /** + * @ngdoc function + * @name angular.mock.module + * @description + * + * *NOTE*: This function is also published on window for easy access.
+ * + * This function registers a module configuration code. It collects the configuration information + * which will be used when the injector is created by {@link angular.mock.inject inject}. + * + * See {@link angular.mock.inject inject} for usage example + * + * @param {...(string|Function|Object)} fns any number of modules which are represented as string + * aliases or as anonymous module initialization functions. The modules are used to + * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded. If an + * object literal is passed they will be register as values in the module, the key being + * the module name and the value being what is returned. + */ + window.module = angular.mock.module = function() { + var moduleFns = Array.prototype.slice.call(arguments, 0); + return isSpecRunning() ? workFn() : workFn; + ///////////////////// + function workFn() { + if (currentSpec.$injector) { + throw new Error('Injector already created, can not register a module!'); + } else { + var modules = currentSpec.$modules || (currentSpec.$modules = []); + angular.forEach(moduleFns, function(module) { + if (angular.isObject(module) && !angular.isArray(module)) { + modules.push(function($provide) { + angular.forEach(module, function(value, key) { + $provide.value(key, value); + }); + }); + } else { + modules.push(module); + } + }); + } + } + }; + + /** + * @ngdoc function + * @name angular.mock.inject + * @description + * + * *NOTE*: This function is also published on window for easy access.
+ * + * The inject function wraps a function into an injectable function. The inject() creates new + * instance of {@link auto.$injector $injector} per test, which is then used for + * resolving references. + * + * + * ## Resolving References (Underscore Wrapping) + * Often, we would like to inject a reference once, in a `beforeEach()` block and reuse this + * in multiple `it()` clauses. To be able to do this we must assign the reference to a variable + * that is declared in the scope of the `describe()` block. Since we would, most likely, want + * the variable to have the same name of the reference we have a problem, since the parameter + * to the `inject()` function would hide the outer variable. + * + * To help with this, the injected parameters can, optionally, be enclosed with underscores. + * These are ignored by the injector when the reference name is resolved. + * + * For example, the parameter `_myService_` would be resolved as the reference `myService`. + * Since it is available in the function body as _myService_, we can then assign it to a variable + * defined in an outer scope. + * + * ``` + * // Defined out reference variable outside + * var myService; + * + * // Wrap the parameter in underscores + * beforeEach( inject( function(_myService_){ + * myService = _myService_; + * })); + * + * // Use myService in a series of tests. + * it('makes use of myService', function() { + * myService.doStuff(); + * }); + * + * ``` + * + * See also {@link angular.mock.module angular.mock.module} + * + * ## Example + * Example of what a typical jasmine tests looks like with the inject method. + * ```js + * + * angular.module('myApplicationModule', []) + * .value('mode', 'app') + * .value('version', 'v1.0.1'); + * + * + * describe('MyApp', function() { + * + * // You need to load modules that you want to test, + * // it loads only the "ng" module by default. + * beforeEach(module('myApplicationModule')); + * + * + * // inject() is used to inject arguments of all given functions + * it('should provide a version', inject(function(mode, version) { + * expect(version).toEqual('v1.0.1'); + * expect(mode).toEqual('app'); + * })); + * + * + * // The inject and module method can also be used inside of the it or beforeEach + * it('should override a version and test the new version is injected', function() { + * // module() takes functions or strings (module aliases) + * module(function($provide) { + * $provide.value('version', 'overridden'); // override version here + * }); + * + * inject(function(version) { + * expect(version).toEqual('overridden'); + * }); + * }); + * }); + * + * ``` + * + * @param {...Function} fns any number of functions which will be injected using the injector. + */ + + + + var ErrorAddingDeclarationLocationStack = function(e, errorForStack) { + this.message = e.message; + this.name = e.name; + if (e.line) this.line = e.line; + if (e.sourceId) this.sourceId = e.sourceId; + if (e.stack && errorForStack) + this.stack = e.stack + '\n' + errorForStack.stack; + if (e.stackArray) this.stackArray = e.stackArray; + }; + ErrorAddingDeclarationLocationStack.prototype.toString = Error.prototype.toString; + + window.inject = angular.mock.inject = function() { + var blockFns = Array.prototype.slice.call(arguments, 0); + var errorForStack = new Error('Declaration Location'); + return isSpecRunning() ? workFn.call(currentSpec) : workFn; + ///////////////////// + function workFn() { + var modules = currentSpec.$modules || []; + + modules.unshift('ngMock'); + modules.unshift('ng'); + var injector = currentSpec.$injector; + if (!injector) { + injector = currentSpec.$injector = angular.injector(modules); + } + for(var i = 0, ii = blockFns.length; i < ii; i++) { + try { + /* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */ + injector.invoke(blockFns[i] || angular.noop, this); + /* jshint +W040 */ + } catch (e) { + if (e.stack && errorForStack) { + throw new ErrorAddingDeclarationLocationStack(e, errorForStack); + } + throw e; + } finally { + errorForStack = null; + } + } + } + }; +} + + +})(window, window.angular); diff --git a/platforms/browser/www/lib/angular-mocks/bower.json b/platforms/browser/www/lib/angular-mocks/bower.json new file mode 100644 index 00000000..09d2e7cf --- /dev/null +++ b/platforms/browser/www/lib/angular-mocks/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-mocks", + "version": "1.2.16", + "main": "./angular-mocks.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/platforms/browser/www/lib/angular-moment/angular-moment.js b/platforms/browser/www/lib/angular-moment/angular-moment.js new file mode 100644 index 00000000..47157f7e --- /dev/null +++ b/platforms/browser/www/lib/angular-moment/angular-moment.js @@ -0,0 +1,727 @@ + +/* angular-moment.js / v1.0.0-beta.3 / (c) 2013, 2014, 2015 Uri Shaked / MIT Licence */ + +'format amd'; +/* global define */ + +(function () { + 'use strict'; + + function isUndefinedOrNull(val) { + return angular.isUndefined(val) || val === null; + } + + function requireMoment() { + try { + return require('moment'); // Using nw.js or browserify? + } catch (e) { + throw new Error('Please install moment via npm. Please reference to: https://github.com/urish/angular-moment'); // Add wiki/troubleshooting section? + } + } + + function angularMoment(angular, moment) { + + if(typeof moment === 'undefined') { + if(typeof require === 'function') { + moment = requireMoment(); + }else{ + throw new Error('Moment cannot be found by angular-moment! Please reference to: https://github.com/urish/angular-moment'); // Add wiki/troubleshooting section? + } + } + + /** + * @ngdoc overview + * @name angularMoment + * + * @description + * angularMoment module provides moment.js functionality for angular.js apps. + */ + return angular.module('angularMoment', []) + + /** + * @ngdoc object + * @name angularMoment.config:angularMomentConfig + * + * @description + * Common configuration of the angularMoment module + */ + .constant('angularMomentConfig', { + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#preprocess + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {function} A preprocessor function that will be applied on all incoming dates + * + * @description + * Defines a preprocessor function to apply on all input dates (e.g. the input of `am-time-ago`, + * `amCalendar`, etc.). The function must return a `moment` object. + * + * @example + * // Causes angular-moment to always treat the input values as unix timestamps + * angularMomentConfig.preprocess = function(value) { + * return moment.unix(value); + * } + */ + preprocess: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#timezone + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {string} The default timezone + * + * @description + * The default timezone (e.g. 'Europe/London'). Empty string by default (does not apply + * any timezone shift). + * + * NOTE: This option requires moment-timezone >= 0.3.0. + */ + timezone: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#format + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {string} The pre-conversion format of the date + * + * @description + * Specify the format of the input date. Essentially it's a + * default and saves you from specifying a format in every + * element. Overridden by element attr. Null by default. + */ + format: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#statefulFilters + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {boolean} Whether angular-moment filters should be stateless (or not) + * + * @description + * Specifies whether the filters included with angular-moment are stateful. + * Stateful filters will automatically re-evaluate whenever you change the timezone + * or locale settings, but may negatively impact performance. true by default. + */ + statefulFilters: true + }) + + /** + * @ngdoc object + * @name angularMoment.object:moment + * + * @description + * moment global (as provided by the moment.js library) + */ + .constant('moment', moment) + + /** + * @ngdoc object + * @name angularMoment.config:amTimeAgoConfig + * @module angularMoment + * + * @description + * configuration specific to the amTimeAgo directive + */ + .constant('amTimeAgoConfig', { + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#withoutSuffix + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {boolean} Whether to include a suffix in am-time-ago directive + * + * @description + * Defaults to false. + */ + withoutSuffix: false, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#serverTime + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {number} Server time in milliseconds since the epoch + * + * @description + * If set, time ago will be calculated relative to the given value. + * If null, local time will be used. Defaults to null. + */ + serverTime: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#titleFormat + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {string} The format of the date to be displayed in the title of the element. If null, + * the directive set the title of the element. + * + * @description + * The format of the date used for the title of the element. null by default. + */ + titleFormat: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#fullDateThreshold + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {number} The minimum number of days for showing a full date instead of relative time + * + * @description + * The threshold for displaying a full date. The default is null, which means the date will always + * be relative, and full date will never be displayed. + */ + fullDateThreshold: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#fullDateFormat + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {string} The format to use when displaying a full date. + * + * @description + * Specify the format of the date when displayed as full date. null by default. + */ + fullDateFormat: null + }) + + /** + * @ngdoc directive + * @name angularMoment.directive:amTimeAgo + * @module angularMoment + * + * @restrict A + */ + .directive('amTimeAgo', ['$window', 'moment', 'amMoment', 'amTimeAgoConfig', function ($window, moment, amMoment, amTimeAgoConfig) { + + return function (scope, element, attr) { + var activeTimeout = null; + var currentValue; + var withoutSuffix = amTimeAgoConfig.withoutSuffix; + var titleFormat = amTimeAgoConfig.titleFormat; + var fullDateThreshold = amTimeAgoConfig.fullDateThreshold; + var fullDateFormat = amTimeAgoConfig.fullDateFormat; + var localDate = new Date().getTime(); + var modelName = attr.amTimeAgo; + var currentFrom; + var isTimeElement = ('TIME' === element[0].nodeName.toUpperCase()); + var setTitleTime = !element.attr('title'); + + function getNow() { + var now; + if (currentFrom) { + now = currentFrom; + } else if (amTimeAgoConfig.serverTime) { + var localNow = new Date().getTime(); + var nowMillis = localNow - localDate + amTimeAgoConfig.serverTime; + now = moment(nowMillis); + } + else { + now = moment(); + } + return now; + } + + function cancelTimer() { + if (activeTimeout) { + $window.clearTimeout(activeTimeout); + activeTimeout = null; + } + } + + function updateTime(momentInstance) { + var daysAgo = getNow().diff(momentInstance, 'day'); + var showFullDate = fullDateThreshold && daysAgo >= fullDateThreshold; + + if (showFullDate) { + element.text(momentInstance.format(fullDateFormat)); + } else { + element.text(momentInstance.from(getNow(), withoutSuffix)); + } + + if (titleFormat && setTitleTime) { + element.attr('title', momentInstance.local().format(titleFormat)); + } + + if (!showFullDate) { + var howOld = Math.abs(getNow().diff(momentInstance, 'minute')); + var secondsUntilUpdate = 3600; + if (howOld < 1) { + secondsUntilUpdate = 1; + } else if (howOld < 60) { + secondsUntilUpdate = 30; + } else if (howOld < 180) { + secondsUntilUpdate = 300; + } + + activeTimeout = $window.setTimeout(function () { + updateTime(momentInstance); + }, secondsUntilUpdate * 1000); + } + } + + function updateDateTimeAttr(value) { + if (isTimeElement) { + element.attr('datetime', value); + } + } + + function updateMoment() { + cancelTimer(); + if (currentValue) { + var momentValue = amMoment.preprocessDate(currentValue); + updateTime(momentValue); + updateDateTimeAttr(momentValue.toISOString()); + } + } + + scope.$watch(modelName, function (value) { + if (isUndefinedOrNull(value) || (value === '')) { + cancelTimer(); + if (currentValue) { + element.text(''); + updateDateTimeAttr(''); + currentValue = null; + } + return; + } + + currentValue = value; + updateMoment(); + }); + + if (angular.isDefined(attr.amFrom)) { + scope.$watch(attr.amFrom, function (value) { + if (isUndefinedOrNull(value) || (value === '')) { + currentFrom = null; + } else { + currentFrom = moment(value); + } + updateMoment(); + }); + } + + if (angular.isDefined(attr.amWithoutSuffix)) { + scope.$watch(attr.amWithoutSuffix, function (value) { + if (typeof value === 'boolean') { + withoutSuffix = value; + updateMoment(); + } else { + withoutSuffix = amTimeAgoConfig.withoutSuffix; + } + }); + } + + attr.$observe('amFullDateThreshold', function (newValue) { + fullDateThreshold = newValue; + updateMoment(); + }); + + attr.$observe('amFullDateFormat', function (newValue) { + fullDateFormat = newValue; + updateMoment(); + }); + + scope.$on('$destroy', function () { + cancelTimer(); + }); + + scope.$on('amMoment:localeChanged', function () { + updateMoment(); + }); + }; + }]) + + /** + * @ngdoc service + * @name angularMoment.service.amMoment + * @module angularMoment + */ + .service('amMoment', ['moment', '$rootScope', '$log', 'angularMomentConfig', function (moment, $rootScope, $log, angularMomentConfig) { + var defaultTimezone = null; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#changeLocale + * @methodOf angularMoment.service.amMoment + * + * @description + * Changes the locale for moment.js and updates all the am-time-ago directive instances + * with the new locale. Also broadcasts an `amMoment:localeChanged` event on $rootScope. + * + * @param {string} locale Locale code (e.g. en, es, ru, pt-br, etc.) + * @param {object} customization object of locale strings to override + */ + this.changeLocale = function (locale, customization) { + var result = moment.locale(locale, customization); + if (angular.isDefined(locale)) { + $rootScope.$broadcast('amMoment:localeChanged'); + + } + return result; + }; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#changeTimezone + * @methodOf angularMoment.service.amMoment + * + * @description + * Changes the default timezone for amCalendar, amDateFormat and amTimeAgo. Also broadcasts an + * `amMoment:timezoneChanged` event on $rootScope. + * + * Note: this method works only if moment-timezone > 0.3.0 is loaded + * + * @param {string} timezone Timezone name (e.g. UTC) + */ + this.changeTimezone = function (timezone) { + if (moment.tz && moment.tz.setDefault) { + moment.tz.setDefault(timezone); + $rootScope.$broadcast('amMoment:timezoneChanged'); + } else { + $log.warn('angular-moment: changeTimezone() works only with moment-timezone.js v0.3.0 or greater.'); + } + angularMomentConfig.timezone = timezone; + defaultTimezone = timezone; + }; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#preprocessDate + * @methodOf angularMoment.service.amMoment + * + * @description + * Preprocess a given value and convert it into a Moment instance appropriate for use in the + * am-time-ago directive and the filters. The behavior of this function can be overriden by + * setting `angularMomentConfig.preprocess`. + * + * @param {*} value The value to be preprocessed + * @return {Moment} A `moment` object + */ + this.preprocessDate = function (value) { + // Configure the default timezone if needed + if (defaultTimezone !== angularMomentConfig.timezone) { + this.changeTimezone(angularMomentConfig.timezone); + } + + if (angularMomentConfig.preprocess) { + return angularMomentConfig.preprocess(value); + } + + if (!isNaN(parseFloat(value)) && isFinite(value)) { + // Milliseconds since the epoch + return moment(parseInt(value, 10)); + } + + // else just returns the value as-is. + return moment(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amParse + * @module angularMoment + */ + .filter('amParse', ['moment', function (moment) { + return function (value, format) { + return moment(value, format); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amFromUnix + * @module angularMoment + */ + .filter('amFromUnix', ['moment', function (moment) { + return function (value) { + return moment.unix(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amUtc + * @module angularMoment + */ + .filter('amUtc', ['moment', function (moment) { + return function (value) { + return moment.utc(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amUtcOffset + * @module angularMoment + * + * @description + * Adds a UTC offset to the given timezone object. The offset can be a number of minutes, or a string such as + * '+0300', '-0300' or 'Z'. + */ + .filter('amUtcOffset', ['amMoment', function (amMoment) { + function amUtcOffset(value, offset) { + return amMoment.preprocessDate(value).utcOffset(offset); + } + + return amUtcOffset; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amLocal + * @module angularMoment + */ + .filter('amLocal', ['moment', function (moment) { + return function (value) { + return moment.isMoment(value) ? value.local() : null; + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amTimezone + * @module angularMoment + * + * @description + * Apply a timezone onto a given moment object, e.g. 'America/Phoenix'). + * + * You need to include moment-timezone.js for timezone support. + */ + .filter('amTimezone', ['amMoment', 'angularMomentConfig', '$log', function (amMoment, angularMomentConfig, $log) { + function amTimezone(value, timezone) { + var aMoment = amMoment.preprocessDate(value); + + if (!timezone) { + return aMoment; + } + + if (aMoment.tz) { + return aMoment.tz(timezone); + } else { + $log.warn('angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js ?'); + return aMoment; + } + } + + return amTimezone; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amCalendar + * @module angularMoment + */ + .filter('amCalendar', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amCalendarFilter(value) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + return date.isValid() ? date.calendar() : ''; + } + + // Since AngularJS 1.3, filters have to explicitly define being stateful + // (this is no longer the default). + amCalendarFilter.$stateful = angularMomentConfig.statefulFilters; + + return amCalendarFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDifference + * @module angularMoment + */ + .filter('amDifference', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amDifferenceFilter(value, otherValue, unit, usePrecision) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + var date2 = !isUndefinedOrNull(otherValue) ? amMoment.preprocessDate(otherValue) : moment(); + + if (!date.isValid() || !date2.isValid()) { + return ''; + } + + return date.diff(date2, unit, usePrecision); + } + + amDifferenceFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDifferenceFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDateFormat + * @module angularMoment + * @function + */ + .filter('amDateFormat', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amDateFormatFilter(value, format) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + if (!date.isValid()) { + return ''; + } + + return date.format(format); + } + + amDateFormatFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDateFormatFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDurationFormat + * @module angularMoment + * @function + */ + .filter('amDurationFormat', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amDurationFormatFilter(value, format, suffix) { + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment.duration(value, format).humanize(suffix); + } + + amDurationFormatFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDurationFormatFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amTimeAgo + * @module angularMoment + * @function + */ + .filter('amTimeAgo', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amTimeAgoFilter(value, suffix, from) { + var date, dateFrom; + + if (isUndefinedOrNull(value)) { + return ''; + } + + value = amMoment.preprocessDate(value); + date = moment(value); + if (!date.isValid()) { + return ''; + } + + dateFrom = moment(from); + if (!isUndefinedOrNull(from) && dateFrom.isValid()) { + return date.from(dateFrom, suffix); + } + + return date.fromNow(suffix); + } + + amTimeAgoFilter.$stateful = angularMomentConfig.statefulFilters; + + return amTimeAgoFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amSubtract + * @module angularMoment + * @function + */ + .filter('amSubtract', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amSubtractFilter(value, amount, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).subtract(parseInt(amount, 10), type); + } + + amSubtractFilter.$stateful = angularMomentConfig.statefulFilters; + + return amSubtractFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amAdd + * @module angularMoment + * @function + */ + .filter('amAdd', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amAddFilter(value, amount, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).add(parseInt(amount, 10), type); + } + + amAddFilter.$stateful = angularMomentConfig.statefulFilters; + + return amAddFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amStartOf + * @module angularMoment + * @function + */ + .filter('amStartOf', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amStartOfFilter(value, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).startOf(type); + } + + amStartOfFilter.$stateful = angularMomentConfig.statefulFilters; + + return amStartOfFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amEndOf + * @module angularMoment + * @function + */ + .filter('amEndOf', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amEndOfFilter(value, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).endOf(type); + } + + amEndOfFilter.$stateful = angularMomentConfig.statefulFilters; + + return amEndOfFilter; + }]); + } + + if (typeof define === 'function' && define.amd) { + define(['angular', 'moment'], angularMoment); + } else if (typeof module !== 'undefined' && module && module.exports) { + angularMoment(require('angular'), require('moment')); + module.exports = 'angularMoment'; + } else { + angularMoment(angular, (typeof global !== 'undefined' ? global : window).moment); + } +})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/angular-resource/.bower.json b/platforms/browser/www/lib/angular-resource/.bower.json new file mode 100644 index 00000000..a7e0b984 --- /dev/null +++ b/platforms/browser/www/lib/angular-resource/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-resource", + "version": "1.2.16", + "main": "./angular-resource.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-resource", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "06a1d9f570fd47b767b019881d523a3f3416ca93" + }, + "_source": "git://github.com/angular/bower-angular-resource.git", + "_target": "1.2.16", + "_originalSource": "angular-resource" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/angular-resource/README.md b/platforms/browser/www/lib/angular-resource/README.md new file mode 100644 index 00000000..c8ac8146 --- /dev/null +++ b/platforms/browser/www/lib/angular-resource/README.md @@ -0,0 +1,54 @@ +# bower-angular-resource + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngResource). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-resource +``` + +Add a ` +``` + +And add `ngResource` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngResource']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngResource). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-resource/angular-resource.js b/platforms/browser/www/lib/angular-resource/angular-resource.js new file mode 100644 index 00000000..7014984c --- /dev/null +++ b/platforms/browser/www/lib/angular-resource/angular-resource.js @@ -0,0 +1,610 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $resourceMinErr = angular.$$minErr('$resource'); + +// Helper functions and regex to lookup a dotted path on an object +// stopping at undefined/null. The path must be composed of ASCII +// identifiers (just like $parse) +var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/; + +function isValidDottedPath(path) { + return (path != null && path !== '' && path !== 'hasOwnProperty' && + MEMBER_NAME_REGEX.test('.' + path)); +} + +function lookupDottedPath(obj, path) { + if (!isValidDottedPath(path)) { + throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path); + } + var keys = path.split('.'); + for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) { + var key = keys[i]; + obj = (obj !== null) ? obj[key] : undefined; + } + return obj; +} + +/** + * Create a shallow copy of an object and clear other fields from the destination + */ +function shallowClearAndCopy(src, dst) { + dst = dst || {}; + + angular.forEach(dst, function(value, key){ + delete dst[key]; + }); + + for (var key in src) { + if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) { + dst[key] = src[key]; + } + } + + return dst; +} + +/** + * @ngdoc module + * @name ngResource + * @description + * + * # ngResource + * + * The `ngResource` module provides interaction support with RESTful services + * via the $resource service. + * + * + *
+ * + * See {@link ngResource.$resource `$resource`} for usage. + */ + +/** + * @ngdoc service + * @name $resource + * @requires $http + * + * @description + * A factory which creates a resource object that lets you interact with + * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. + * + * The returned resource object has action methods which provide high-level behaviors without + * the need to interact with the low level {@link ng.$http $http} service. + * + * Requires the {@link ngResource `ngResource`} module to be installed. + * + * @param {string} url A parametrized URL template with parameters prefixed by `:` as in + * `/user/:username`. If you are using a URL with a port number (e.g. + * `http://example.com:8080/api`), it will be respected. + * + * If you are using a url with a suffix, just add the suffix, like this: + * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` + * or even `$resource('http://example.com/resource/:resource_id.:format')` + * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you + * can escape it with `/\.`. + * + * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in + * `actions` methods. If any of the parameter value is a function, it will be executed every time + * when a param value needs to be obtained for a request (unless the param was overridden). + * + * Each key value in the parameter object is first bound to url template if present and then any + * excess keys are appended to the url search query after the `?`. + * + * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in + * URL `/path/greet?salutation=Hello`. + * + * If the parameter value is prefixed with `@` then the value of that parameter is extracted from + * the data object (useful for non-GET operations). + * + * @param {Object.=} actions Hash with declaration of custom action that should extend + * the default set of resource actions. The declaration should be created in the format of {@link + * ng.$http#usage_parameters $http.config}: + * + * {action1: {method:?, params:?, isArray:?, headers:?, ...}, + * action2: {method:?, params:?, isArray:?, headers:?, ...}, + * ...} + * + * Where: + * + * - **`action`** – {string} – The name of action. This name becomes the name of the method on + * your resource object. + * - **`method`** – {string} – HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, + * `DELETE`, and `JSONP`. + * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of + * the parameter value is a function, it will be executed every time when a param value needs to + * be obtained for a request (unless the param was overridden). + * - **`url`** – {string} – action specific `url` override. The url templating is supported just + * like for the resource-level urls. + * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, + * see `returns` section. + * - **`transformRequest`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * - **`transformResponse`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body and headers and returns its transformed (typically deserialized) version. + * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that + * should abort the request when resolved. + * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See + * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5) + * for more information. + * - **`responseType`** - `{string}` - see + * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - + * `response` and `responseError`. Both `response` and `responseError` interceptors get called + * with `http response` object. See {@link ng.$http $http interceptors}. + * + * @returns {Object} A resource "class" object with methods for the default set of resource actions + * optionally extended with custom `actions`. The default set contains these actions: + * ```js + * { 'get': {method:'GET'}, + * 'save': {method:'POST'}, + * 'query': {method:'GET', isArray:true}, + * 'remove': {method:'DELETE'}, + * 'delete': {method:'DELETE'} }; + * ``` + * + * Calling these methods invoke an {@link ng.$http} with the specified http method, + * destination and parameters. When the data is returned from the server then the object is an + * instance of the resource class. The actions `save`, `remove` and `delete` are available on it + * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, + * read, update, delete) on server-side data like this: + * ```js + * var User = $resource('/user/:userId', {userId:'@id'}); + * var user = User.get({userId:123}, function() { + * user.abc = true; + * user.$save(); + * }); + * ``` + * + * It is important to realize that invoking a $resource object method immediately returns an + * empty reference (object or array depending on `isArray`). Once the data is returned from the + * server the existing reference is populated with the actual data. This is a useful trick since + * usually the resource is assigned to a model which is then rendered by the view. Having an empty + * object results in no rendering, once the data arrives from the server then the object is + * populated with the data and the view automatically re-renders itself showing the new data. This + * means that in most cases one never has to write a callback function for the action methods. + * + * The action methods on the class object or instance object can be invoked with the following + * parameters: + * + * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` + * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` + * - non-GET instance actions: `instance.$action([parameters], [success], [error])` + * + * Success callback is called with (value, responseHeaders) arguments. Error callback is called + * with (httpResponse) argument. + * + * Class actions return empty instance (with additional properties below). + * Instance actions return promise of the action. + * + * The Resource instances and collection have these additional properties: + * + * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this + * instance or collection. + * + * On success, the promise is resolved with the same resource instance or collection object, + * updated with data from server. This makes it easy to use in + * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view + * rendering until the resource(s) are loaded. + * + * On failure, the promise is resolved with the {@link ng.$http http response} object, without + * the `resource` property. + * + * If an interceptor object was provided, the promise will instead be resolved with the value + * returned by the interceptor. + * + * - `$resolved`: `true` after first server interaction is completed (either with success or + * rejection), `false` before that. Knowing if the Resource has been resolved is useful in + * data-binding. + * + * @example + * + * # Credit card resource + * + * ```js + // Define CreditCard class + var CreditCard = $resource('/user/:userId/card/:cardId', + {userId:123, cardId:'@id'}, { + charge: {method:'POST', params:{charge:true}} + }); + + // We can retrieve a collection from the server + var cards = CreditCard.query(function() { + // GET: /user/123/card + // server returns: [ {id:456, number:'1234', name:'Smith'} ]; + + var card = cards[0]; + // each item is an instance of CreditCard + expect(card instanceof CreditCard).toEqual(true); + card.name = "J. Smith"; + // non GET methods are mapped onto the instances + card.$save(); + // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} + // server returns: {id:456, number:'1234', name: 'J. Smith'}; + + // our custom method is mapped as well. + card.$charge({amount:9.99}); + // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} + }); + + // we can create an instance as well + var newCard = new CreditCard({number:'0123'}); + newCard.name = "Mike Smith"; + newCard.$save(); + // POST: /user/123/card {number:'0123', name:'Mike Smith'} + // server returns: {id:789, number:'0123', name: 'Mike Smith'}; + expect(newCard.id).toEqual(789); + * ``` + * + * The object returned from this function execution is a resource "class" which has "static" method + * for each action in the definition. + * + * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and + * `headers`. + * When the data is returned from the server then the object is an instance of the resource type and + * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD + * operations (create, read, update, delete) on server-side data. + + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(user) { + user.abc = true; + user.$save(); + }); + ``` + * + * It's worth noting that the success callback for `get`, `query` and other methods gets passed + * in the response that came from the server as well as $http header getter function, so one + * could rewrite the above example and get access to http headers as: + * + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(u, getResponseHeaders){ + u.abc = true; + u.$save(function(u, putResponseHeaders) { + //u => saved user object + //putResponseHeaders => $http header getter + }); + }); + ``` + * + * You can also access the raw `$http` promise via the `$promise` property on the object returned + * + ``` + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}) + .$promise.then(function(user) { + $scope.user = user; + }); + ``` + + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + * ```js + * var app = angular.module('app', ['ngResource', 'ngRoute']); + * + * // Some APIs expect a PUT request in the format URL/object/ID + * // Here we are creating an 'update' method + * app.factory('Notes', ['$resource', function($resource) { + * return $resource('/notes/:id', null, + * { + * 'update': { method:'PUT' } + * }); + * }]); + * + * // In our controller we get the ID from the URL using ngRoute and $routeParams + * // We pass in $routeParams and our Notes factory along with $scope + * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', + function($scope, $routeParams, Notes) { + * // First get a note object from the factory + * var note = Notes.get({ id:$routeParams.id }); + * $id = note.id; + * + * // Now call update passing in the ID first then the object you are updating + * Notes.update({ id:$id }, note); + * + * // This will PUT /notes/ID with the note object in the request payload + * }]); + * ``` + */ +angular.module('ngResource', ['ng']). + factory('$resource', ['$http', '$q', function($http, $q) { + + var DEFAULT_ACTIONS = { + 'get': {method:'GET'}, + 'save': {method:'POST'}, + 'query': {method:'GET', isArray:true}, + 'remove': {method:'DELETE'}, + 'delete': {method:'DELETE'} + }; + var noop = angular.noop, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + isFunction = angular.isFunction; + + /** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path + * segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); + } + + + /** + * This method is intended for encoding *key* or *value* parts of query component. We need a + * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't + * have to be encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); + } + + function Route(template, defaults) { + this.template = template; + this.defaults = defaults || {}; + this.urlParams = {}; + } + + Route.prototype = { + setUrlParams: function(config, params, actionUrl) { + var self = this, + url = actionUrl || self.template, + val, + encodedVal; + + var urlParams = self.urlParams = {}; + forEach(url.split(/\W/), function(param){ + if (param === 'hasOwnProperty') { + throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); + } + if (!(new RegExp("^\\d+$").test(param)) && param && + (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + urlParams[param] = true; + } + }); + url = url.replace(/\\:/g, ':'); + + params = params || {}; + forEach(self.urlParams, function(_, urlParam){ + val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; + if (angular.isDefined(val) && val !== null) { + encodedVal = encodeUriSegment(val); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { + return encodedVal + p1; + }); + } else { + url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, + leadingSlashes, tail) { + if (tail.charAt(0) == '/') { + return tail; + } else { + return leadingSlashes + tail; + } + }); + } + }); + + // strip trailing slashes and set the url + url = url.replace(/\/+$/, '') || '/'; + // then replace collapse `/.` if found in the last URL path segment before the query + // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` + url = url.replace(/\/\.(?=\w+($|\?))/, '.'); + // replace escaped `/\.` with `/.` + config.url = url.replace(/\/\\\./, '/.'); + + + // set params - delegate param encoding to $http + forEach(params, function(value, key){ + if (!self.urlParams[key]) { + config.params = config.params || {}; + config.params[key] = value; + } + }); + } + }; + + + function resourceFactory(url, paramDefaults, actions) { + var route = new Route(url); + + actions = extend({}, DEFAULT_ACTIONS, actions); + + function extractParams(data, actionParams){ + var ids = {}; + actionParams = extend({}, paramDefaults, actionParams); + forEach(actionParams, function(value, key){ + if (isFunction(value)) { value = value(); } + ids[key] = value && value.charAt && value.charAt(0) == '@' ? + lookupDottedPath(data, value.substr(1)) : value; + }); + return ids; + } + + function defaultResponseInterceptor(response) { + return response.resource; + } + + function Resource(value){ + shallowClearAndCopy(value || {}, this); + } + + forEach(actions, function(action, name) { + var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); + + Resource[name] = function(a1, a2, a3, a4) { + var params = {}, data, success, error; + + /* jshint -W086 */ /* (purposefully fall through case statements) */ + switch(arguments.length) { + case 4: + error = a4; + success = a3; + //fallthrough + case 3: + case 2: + if (isFunction(a2)) { + if (isFunction(a1)) { + success = a1; + error = a2; + break; + } + + success = a2; + error = a3; + //fallthrough + } else { + params = a1; + data = a2; + success = a3; + break; + } + case 1: + if (isFunction(a1)) success = a1; + else if (hasBody) data = a1; + else params = a1; + break; + case 0: break; + default: + throw $resourceMinErr('badargs', + "Expected up to 4 arguments [params, data, success, error], got {0} arguments", + arguments.length); + } + /* jshint +W086 */ /* (purposefully fall through case statements) */ + + var isInstanceCall = this instanceof Resource; + var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); + var httpConfig = {}; + var responseInterceptor = action.interceptor && action.interceptor.response || + defaultResponseInterceptor; + var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || + undefined; + + forEach(action, function(value, key) { + if (key != 'params' && key != 'isArray' && key != 'interceptor') { + httpConfig[key] = copy(value); + } + }); + + if (hasBody) httpConfig.data = data; + route.setUrlParams(httpConfig, + extend({}, extractParams(data, action.params || {}), params), + action.url); + + var promise = $http(httpConfig).then(function(response) { + var data = response.data, + promise = value.$promise; + + if (data) { + // Need to convert action.isArray to boolean in case it is undefined + // jshint -W018 + if (angular.isArray(data) !== (!!action.isArray)) { + throw $resourceMinErr('badcfg', 'Error in resource configuration. Expected ' + + 'response to contain an {0} but got an {1}', + action.isArray?'array':'object', angular.isArray(data)?'array':'object'); + } + // jshint +W018 + if (action.isArray) { + value.length = 0; + forEach(data, function(item) { + value.push(new Resource(item)); + }); + } else { + shallowClearAndCopy(data, value); + value.$promise = promise; + } + } + + value.$resolved = true; + + response.resource = value; + + return response; + }, function(response) { + value.$resolved = true; + + (error||noop)(response); + + return $q.reject(response); + }); + + promise = promise.then( + function(response) { + var value = responseInterceptor(response); + (success||noop)(value, response.headers); + return value; + }, + responseErrorInterceptor); + + if (!isInstanceCall) { + // we are creating instance / collection + // - set the initial promise + // - return the instance / collection + value.$promise = promise; + value.$resolved = false; + + return value; + } + + // instance call + return promise; + }; + + + Resource.prototype['$' + name] = function(params, success, error) { + if (isFunction(params)) { + error = success; success = params; params = {}; + } + var result = Resource[name].call(this, params, this, success, error); + return result.$promise || result; + }; + }); + + Resource.bind = function(additionalParamDefaults){ + return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); + }; + + return Resource; + } + + return resourceFactory; + }]); + + +})(window, window.angular); diff --git a/platforms/browser/www/lib/angular-resource/angular-resource.min.js b/platforms/browser/www/lib/angular-resource/angular-resource.min.js new file mode 100644 index 00000000..eac389ed --- /dev/null +++ b/platforms/browser/www/lib/angular-resource/angular-resource.min.js @@ -0,0 +1,13 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&& +b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f` to your `index.html`: + +```html + +``` + +And add `ngRoute` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngRoute']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngRoute). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-route/angular-route.js b/platforms/browser/www/lib/angular-route/angular-route.js new file mode 100644 index 00000000..f7ebda8b --- /dev/null +++ b/platforms/browser/www/lib/angular-route/angular-route.js @@ -0,0 +1,927 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngRoute + * @description + * + * # ngRoute + * + * The `ngRoute` module provides routing and deeplinking services and directives for angular apps. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * + *
+ */ + /* global -ngRouteModule */ +var ngRouteModule = angular.module('ngRoute', ['ng']). + provider('$route', $RouteProvider); + +/** + * @ngdoc provider + * @name $routeProvider + * @function + * + * @description + * + * Used for configuring routes. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * ## Dependencies + * Requires the {@link ngRoute `ngRoute`} module to be installed. + */ +function $RouteProvider(){ + function inherit(parent, extra) { + return angular.extend(new (angular.extend(function() {}, {prototype:parent}))(), extra); + } + + var routes = {}; + + /** + * @ngdoc method + * @name $routeProvider#when + * + * @param {string} path Route path (matched against `$location.path`). If `$location.path` + * contains redundant trailing slash or is missing one, the route will still match and the + * `$location.path` will be updated to add or drop the trailing slash to exactly match the + * route definition. + * + * * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up + * to the next slash are matched and stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain named groups starting with a colon and ending with a star: + * e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain optional named groups with a question mark: e.g.`:name?`. + * + * For example, routes like `/color/:color/largecode/:largecode*\/edit` will match + * `/color/brown/largecode/code/with/slashes/edit` and extract: + * + * * `color: brown` + * * `largecode: code/with/slashes`. + * + * + * @param {Object} route Mapping information to be assigned to `$route.current` on route + * match. + * + * Object properties: + * + * - `controller` – `{(string|function()=}` – Controller fn that should be associated with + * newly created scope or the name of a {@link angular.Module#controller registered + * controller} if passed as a string. + * - `controllerAs` – `{string=}` – A controller alias name. If present the controller will be + * published to scope under the `controllerAs` name. + * - `template` – `{string=|function()=}` – html template as a string or a function that + * returns an html template as a string which should be used by {@link + * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives. + * This property takes precedence over `templateUrl`. + * + * If `template` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html + * template that should be used by {@link ngRoute.directive:ngView ngView}. + * + * If `templateUrl` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `resolve` - `{Object.=}` - An optional map of dependencies which should + * be injected into the controller. If any of these dependencies are promises, the router + * will wait for them all to be resolved or one to be rejected before the controller is + * instantiated. + * If all the promises are resolved successfully, the values of the resolved promises are + * injected and {@link ngRoute.$route#$routeChangeSuccess $routeChangeSuccess} event is + * fired. If any of the promises are rejected the + * {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired. The map object + * is: + * + * - `key` – `{string}`: a name of a dependency to be injected into the controller. + * - `factory` - `{string|function}`: If `string` then it is an alias for a service. + * Otherwise if function, then it is {@link auto.$injector#invoke injected} + * and the return value is treated as the dependency. If the result is a promise, it is + * resolved before its value is injected into the controller. Be aware that + * `ngRoute.$routeParams` will still refer to the previous route within these resolve + * functions. Use `$route.current.params` to access the new route parameters, instead. + * + * - `redirectTo` – {(string|function())=} – value to update + * {@link ng.$location $location} path with and trigger route redirection. + * + * If `redirectTo` is a function, it will be called with the following parameters: + * + * - `{Object.}` - route parameters extracted from the current + * `$location.path()` by applying the current route templateUrl. + * - `{string}` - current `$location.path()` + * - `{Object}` - current `$location.search()` + * + * The custom `redirectTo` function is expected to return a string which will be used + * to update `$location.path()` and `$location.search()`. + * + * - `[reloadOnSearch=true]` - {boolean=} - reload route when only `$location.search()` + * or `$location.hash()` changes. + * + * If the option is set to `false` and url in the browser changes, then + * `$routeUpdate` event is broadcasted on the root scope. + * + * - `[caseInsensitiveMatch=false]` - {boolean=} - match routes without being case sensitive + * + * If the option is set to `true`, then the particular route can be matched without being + * case sensitive + * + * @returns {Object} self + * + * @description + * Adds a new route definition to the `$route` service. + */ + this.when = function(path, route) { + routes[path] = angular.extend( + {reloadOnSearch: true}, + route, + path && pathRegExp(path, route) + ); + + // create redirection for trailing slashes + if (path) { + var redirectPath = (path[path.length-1] == '/') + ? path.substr(0, path.length-1) + : path +'/'; + + routes[redirectPath] = angular.extend( + {redirectTo: path}, + pathRegExp(redirectPath, route) + ); + } + + return this; + }; + + /** + * @param path {string} path + * @param opts {Object} options + * @return {?Object} + * + * @description + * Normalizes the given path, returning a regular expression + * and the original path. + * + * Inspired by pathRexp in visionmedia/express/lib/utils.js. + */ + function pathRegExp(path, opts) { + var insensitive = opts.caseInsensitiveMatch, + ret = { + originalPath: path, + regexp: path + }, + keys = ret.keys = []; + + path = path + .replace(/([().])/g, '\\$1') + .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option){ + var optional = option === '?' ? option : null; + var star = option === '*' ? option : null; + keys.push({ name: key, optional: !!optional }); + slash = slash || ''; + return '' + + (optional ? '' : slash) + + '(?:' + + (optional ? slash : '') + + (star && '(.+?)' || '([^/]+)') + + (optional || '') + + ')' + + (optional || ''); + }) + .replace(/([\/$\*])/g, '\\$1'); + + ret.regexp = new RegExp('^' + path + '$', insensitive ? 'i' : ''); + return ret; + } + + /** + * @ngdoc method + * @name $routeProvider#otherwise + * + * @description + * Sets route definition that will be used on route change when no other route definition + * is matched. + * + * @param {Object} params Mapping information to be assigned to `$route.current`. + * @returns {Object} self + */ + this.otherwise = function(params) { + this.when(null, params); + return this; + }; + + + this.$get = ['$rootScope', + '$location', + '$routeParams', + '$q', + '$injector', + '$http', + '$templateCache', + '$sce', + function($rootScope, $location, $routeParams, $q, $injector, $http, $templateCache, $sce) { + + /** + * @ngdoc service + * @name $route + * @requires $location + * @requires $routeParams + * + * @property {Object} current Reference to the current route definition. + * The route definition contains: + * + * - `controller`: The controller constructor as define in route definition. + * - `locals`: A map of locals which is used by {@link ng.$controller $controller} service for + * controller instantiation. The `locals` contain + * the resolved values of the `resolve` map. Additionally the `locals` also contain: + * + * - `$scope` - The current route scope. + * - `$template` - The current route template HTML. + * + * @property {Object} routes Object with all route configuration Objects as its properties. + * + * @description + * `$route` is used for deep-linking URLs to controllers and views (HTML partials). + * It watches `$location.url()` and tries to map the path to an existing route definition. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * You can define routes through {@link ngRoute.$routeProvider $routeProvider}'s API. + * + * The `$route` service is typically used in conjunction with the + * {@link ngRoute.directive:ngView `ngView`} directive and the + * {@link ngRoute.$routeParams `$routeParams`} service. + * + * @example + * This example shows how changing the URL hash causes the `$route` to match a route against the + * URL, and the `ngView` pulls in the partial. + * + * Note that this example is using {@link ng.directive:script inlined templates} + * to get it working on jsfiddle as well. + * + * + * + *
+ * Choose: + * Moby | + * Moby: Ch1 | + * Gatsby | + * Gatsby: Ch4 | + * Scarlet Letter
+ * + *
+ * + *
+ * + *
$location.path() = {{$location.path()}}
+ *
$route.current.templateUrl = {{$route.current.templateUrl}}
+ *
$route.current.params = {{$route.current.params}}
+ *
$route.current.scope.name = {{$route.current.scope.name}}
+ *
$routeParams = {{$routeParams}}
+ *
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ * Chapter Id: {{params.chapterId}} + *
+ * + * + * angular.module('ngRouteExample', ['ngRoute']) + * + * .controller('MainController', function($scope, $route, $routeParams, $location) { + * $scope.$route = $route; + * $scope.$location = $location; + * $scope.$routeParams = $routeParams; + * }) + * + * .controller('BookController', function($scope, $routeParams) { + * $scope.name = "BookController"; + * $scope.params = $routeParams; + * }) + * + * .controller('ChapterController', function($scope, $routeParams) { + * $scope.name = "ChapterController"; + * $scope.params = $routeParams; + * }) + * + * .config(function($routeProvider, $locationProvider) { + * $routeProvider + * .when('/Book/:bookId', { + * templateUrl: 'book.html', + * controller: 'BookController', + * resolve: { + * // I will cause a 1 second delay + * delay: function($q, $timeout) { + * var delay = $q.defer(); + * $timeout(delay.resolve, 1000); + * return delay.promise; + * } + * } + * }) + * .when('/Book/:bookId/ch/:chapterId', { + * templateUrl: 'chapter.html', + * controller: 'ChapterController' + * }); + * + * // configure html5 to get links working on jsfiddle + * $locationProvider.html5Mode(true); + * }); + * + * + * + * + * it('should load and compile correct template', function() { + * element(by.linkText('Moby: Ch1')).click(); + * var content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: ChapterController/); + * expect(content).toMatch(/Book Id\: Moby/); + * expect(content).toMatch(/Chapter Id\: 1/); + * + * element(by.partialLinkText('Scarlet')).click(); + * + * content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: BookController/); + * expect(content).toMatch(/Book Id\: Scarlet/); + * }); + * + *
+ */ + + /** + * @ngdoc event + * @name $route#$routeChangeStart + * @eventType broadcast on root scope + * @description + * Broadcasted before a route change. At this point the route services starts + * resolving all of the dependencies needed for the route change to occur. + * Typically this involves fetching the view template as well as any dependencies + * defined in `resolve` route property. Once all of the dependencies are resolved + * `$routeChangeSuccess` is fired. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} next Future route information. + * @param {Route} current Current route information. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeSuccess + * @eventType broadcast on root scope + * @description + * Broadcasted after a route dependencies are resolved. + * {@link ngRoute.directive:ngView ngView} listens for the directive + * to instantiate the controller and render the view. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} current Current route information. + * @param {Route|Undefined} previous Previous route information, or undefined if current is + * first route entered. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeError + * @eventType broadcast on root scope + * @description + * Broadcasted if any of the resolve promises are rejected. + * + * @param {Object} angularEvent Synthetic event object + * @param {Route} current Current route information. + * @param {Route} previous Previous route information. + * @param {Route} rejection Rejection of the promise. Usually the error of the failed promise. + */ + + /** + * @ngdoc event + * @name $route#$routeUpdate + * @eventType broadcast on root scope + * @description + * + * The `reloadOnSearch` property has been set to false, and we are reusing the same + * instance of the Controller. + */ + + var forceReload = false, + $route = { + routes: routes, + + /** + * @ngdoc method + * @name $route#reload + * + * @description + * Causes `$route` service to reload the current route even if + * {@link ng.$location $location} hasn't changed. + * + * As a result of that, {@link ngRoute.directive:ngView ngView} + * creates new scope, reinstantiates the controller. + */ + reload: function() { + forceReload = true; + $rootScope.$evalAsync(updateRoute); + } + }; + + $rootScope.$on('$locationChangeSuccess', updateRoute); + + return $route; + + ///////////////////////////////////////////////////// + + /** + * @param on {string} current url + * @param route {Object} route regexp to match the url against + * @return {?Object} + * + * @description + * Check if the route matches the current url. + * + * Inspired by match in + * visionmedia/express/lib/router/router.js. + */ + function switchRouteMatcher(on, route) { + var keys = route.keys, + params = {}; + + if (!route.regexp) return null; + + var m = route.regexp.exec(on); + if (!m) return null; + + for (var i = 1, len = m.length; i < len; ++i) { + var key = keys[i - 1]; + + var val = 'string' == typeof m[i] + ? decodeURIComponent(m[i]) + : m[i]; + + if (key && val) { + params[key.name] = val; + } + } + return params; + } + + function updateRoute() { + var next = parseRoute(), + last = $route.current; + + if (next && last && next.$$route === last.$$route + && angular.equals(next.pathParams, last.pathParams) + && !next.reloadOnSearch && !forceReload) { + last.params = next.params; + angular.copy(last.params, $routeParams); + $rootScope.$broadcast('$routeUpdate', last); + } else if (next || last) { + forceReload = false; + $rootScope.$broadcast('$routeChangeStart', next, last); + $route.current = next; + if (next) { + if (next.redirectTo) { + if (angular.isString(next.redirectTo)) { + $location.path(interpolate(next.redirectTo, next.params)).search(next.params) + .replace(); + } else { + $location.url(next.redirectTo(next.pathParams, $location.path(), $location.search())) + .replace(); + } + } + } + + $q.when(next). + then(function() { + if (next) { + var locals = angular.extend({}, next.resolve), + template, templateUrl; + + angular.forEach(locals, function(value, key) { + locals[key] = angular.isString(value) ? + $injector.get(value) : $injector.invoke(value); + }); + + if (angular.isDefined(template = next.template)) { + if (angular.isFunction(template)) { + template = template(next.params); + } + } else if (angular.isDefined(templateUrl = next.templateUrl)) { + if (angular.isFunction(templateUrl)) { + templateUrl = templateUrl(next.params); + } + templateUrl = $sce.getTrustedResourceUrl(templateUrl); + if (angular.isDefined(templateUrl)) { + next.loadedTemplateUrl = templateUrl; + template = $http.get(templateUrl, {cache: $templateCache}). + then(function(response) { return response.data; }); + } + } + if (angular.isDefined(template)) { + locals['$template'] = template; + } + return $q.all(locals); + } + }). + // after route change + then(function(locals) { + if (next == $route.current) { + if (next) { + next.locals = locals; + angular.copy(next.params, $routeParams); + } + $rootScope.$broadcast('$routeChangeSuccess', next, last); + } + }, function(error) { + if (next == $route.current) { + $rootScope.$broadcast('$routeChangeError', next, last, error); + } + }); + } + } + + + /** + * @returns {Object} the current active route, by matching it against the URL + */ + function parseRoute() { + // Match a route + var params, match; + angular.forEach(routes, function(route, path) { + if (!match && (params = switchRouteMatcher($location.path(), route))) { + match = inherit(route, { + params: angular.extend({}, $location.search(), params), + pathParams: params}); + match.$$route = route; + } + }); + // No route matched; fallback to "otherwise" route + return match || routes[null] && inherit(routes[null], {params: {}, pathParams:{}}); + } + + /** + * @returns {string} interpolation of the redirect path with the parameters + */ + function interpolate(string, params) { + var result = []; + angular.forEach((string||'').split(':'), function(segment, i) { + if (i === 0) { + result.push(segment); + } else { + var segmentMatch = segment.match(/(\w+)(.*)/); + var key = segmentMatch[1]; + result.push(params[key]); + result.push(segmentMatch[2] || ''); + delete params[key]; + } + }); + return result.join(''); + } + }]; +} + +ngRouteModule.provider('$routeParams', $RouteParamsProvider); + + +/** + * @ngdoc service + * @name $routeParams + * @requires $route + * + * @description + * The `$routeParams` service allows you to retrieve the current set of route parameters. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * The route parameters are a combination of {@link ng.$location `$location`}'s + * {@link ng.$location#search `search()`} and {@link ng.$location#path `path()`}. + * The `path` parameters are extracted when the {@link ngRoute.$route `$route`} path is matched. + * + * In case of parameter name collision, `path` params take precedence over `search` params. + * + * The service guarantees that the identity of the `$routeParams` object will remain unchanged + * (but its properties will likely change) even when a route change occurs. + * + * Note that the `$routeParams` are only updated *after* a route change completes successfully. + * This means that you cannot rely on `$routeParams` being correct in route resolve functions. + * Instead you can use `$route.current.params` to access the new route's parameters. + * + * @example + * ```js + * // Given: + * // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby + * // Route: /Chapter/:chapterId/Section/:sectionId + * // + * // Then + * $routeParams ==> {chapterId:1, sectionId:2, search:'moby'} + * ``` + */ +function $RouteParamsProvider() { + this.$get = function() { return {}; }; +} + +ngRouteModule.directive('ngView', ngViewFactory); +ngRouteModule.directive('ngView', ngViewFillContentFactory); + + +/** + * @ngdoc directive + * @name ngView + * @restrict ECA + * + * @description + * # Overview + * `ngView` is a directive that complements the {@link ngRoute.$route $route} service by + * including the rendered template of the current route into the main layout (`index.html`) file. + * Every time the current route changes, the included view changes with it according to the + * configuration of the `$route` service. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * @animations + * enter - animation is used to bring new content into the browser. + * leave - animation is used to animate existing content away. + * + * The enter and leave animation occur concurrently. + * + * @scope + * @priority 400 + * @param {string=} onload Expression to evaluate whenever the view updates. + * + * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll + * $anchorScroll} to scroll the viewport after the view is updated. + * + * - If the attribute is not set, disable scrolling. + * - If the attribute is set without value, enable scrolling. + * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated + * as an expression yields a truthy value. + * @example + + +
+ Choose: + Moby | + Moby: Ch1 | + Gatsby | + Gatsby: Ch4 | + Scarlet Letter
+ +
+
+
+
+ +
$location.path() = {{main.$location.path()}}
+
$route.current.templateUrl = {{main.$route.current.templateUrl}}
+
$route.current.params = {{main.$route.current.params}}
+
$route.current.scope.name = {{main.$route.current.scope.name}}
+
$routeParams = {{main.$routeParams}}
+
+
+ + +
+ controller: {{book.name}}
+ Book Id: {{book.params.bookId}}
+
+
+ + +
+ controller: {{chapter.name}}
+ Book Id: {{chapter.params.bookId}}
+ Chapter Id: {{chapter.params.chapterId}} +
+
+ + + .view-animate-container { + position:relative; + height:100px!important; + position:relative; + background:white; + border:1px solid black; + height:40px; + overflow:hidden; + } + + .view-animate { + padding:10px; + } + + .view-animate.ng-enter, .view-animate.ng-leave { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + + display:block; + width:100%; + border-left:1px solid black; + + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + padding:10px; + } + + .view-animate.ng-enter { + left:100%; + } + .view-animate.ng-enter.ng-enter-active { + left:0; + } + .view-animate.ng-leave.ng-leave-active { + left:-100%; + } + + + + angular.module('ngViewExample', ['ngRoute', 'ngAnimate']) + .config(['$routeProvider', '$locationProvider', + function($routeProvider, $locationProvider) { + $routeProvider + .when('/Book/:bookId', { + templateUrl: 'book.html', + controller: 'BookCtrl', + controllerAs: 'book' + }) + .when('/Book/:bookId/ch/:chapterId', { + templateUrl: 'chapter.html', + controller: 'ChapterCtrl', + controllerAs: 'chapter' + }); + + // configure html5 to get links working on jsfiddle + $locationProvider.html5Mode(true); + }]) + .controller('MainCtrl', ['$route', '$routeParams', '$location', + function($route, $routeParams, $location) { + this.$route = $route; + this.$location = $location; + this.$routeParams = $routeParams; + }]) + .controller('BookCtrl', ['$routeParams', function($routeParams) { + this.name = "BookCtrl"; + this.params = $routeParams; + }]) + .controller('ChapterCtrl', ['$routeParams', function($routeParams) { + this.name = "ChapterCtrl"; + this.params = $routeParams; + }]); + + + + + it('should load and compile correct template', function() { + element(by.linkText('Moby: Ch1')).click(); + var content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: ChapterCtrl/); + expect(content).toMatch(/Book Id\: Moby/); + expect(content).toMatch(/Chapter Id\: 1/); + + element(by.partialLinkText('Scarlet')).click(); + + content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: BookCtrl/); + expect(content).toMatch(/Book Id\: Scarlet/); + }); + +
+ */ + + +/** + * @ngdoc event + * @name ngView#$viewContentLoaded + * @eventType emit on the current ngView scope + * @description + * Emitted every time the ngView content is reloaded. + */ +ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate']; +function ngViewFactory( $route, $anchorScroll, $animate) { + return { + restrict: 'ECA', + terminal: true, + priority: 400, + transclude: 'element', + link: function(scope, $element, attr, ctrl, $transclude) { + var currentScope, + currentElement, + previousElement, + autoScrollExp = attr.autoscroll, + onloadExp = attr.onload || ''; + + scope.$on('$routeChangeSuccess', update); + update(); + + function cleanupLastView() { + if(previousElement) { + previousElement.remove(); + previousElement = null; + } + if(currentScope) { + currentScope.$destroy(); + currentScope = null; + } + if(currentElement) { + $animate.leave(currentElement, function() { + previousElement = null; + }); + previousElement = currentElement; + currentElement = null; + } + } + + function update() { + var locals = $route.current && $route.current.locals, + template = locals && locals.$template; + + if (angular.isDefined(template)) { + var newScope = scope.$new(); + var current = $route.current; + + // Note: This will also link all children of ng-view that were contained in the original + // html. If that content contains controllers, ... they could pollute/change the scope. + // However, using ng-view on an element with additional content does not make sense... + // Note: We can't remove them in the cloneAttchFn of $transclude as that + // function is called before linking the content, which would apply child + // directives to non existing elements. + var clone = $transclude(newScope, function(clone) { + $animate.enter(clone, null, currentElement || $element, function onNgViewEnter () { + if (angular.isDefined(autoScrollExp) + && (!autoScrollExp || scope.$eval(autoScrollExp))) { + $anchorScroll(); + } + }); + cleanupLastView(); + }); + + currentElement = clone; + currentScope = current.scope = newScope; + currentScope.$emit('$viewContentLoaded'); + currentScope.$eval(onloadExp); + } else { + cleanupLastView(); + } + } + } + }; +} + +// This directive is called during the $transclude call of the first `ngView` directive. +// It will replace and compile the content of the element with the loaded template. +// We need this directive so that the element content is already filled when +// the link function of another directive on the same element as ngView +// is called. +ngViewFillContentFactory.$inject = ['$compile', '$controller', '$route']; +function ngViewFillContentFactory($compile, $controller, $route) { + return { + restrict: 'ECA', + priority: -400, + link: function(scope, $element) { + var current = $route.current, + locals = current.locals; + + $element.html(locals.$template); + + var link = $compile($element.contents()); + + if (current.controller) { + locals.$scope = scope; + var controller = $controller(current.controller, locals); + if (current.controllerAs) { + scope[current.controllerAs] = controller; + } + $element.data('$ngControllerController', controller); + $element.children().data('$ngControllerController', controller); + } + + link(scope); + } + }; +} + + +})(window, window.angular); diff --git a/platforms/browser/www/lib/angular-route/angular-route.min.js b/platforms/browser/www/lib/angular-route/angular-route.min.js new file mode 100644 index 00000000..aef1fd60 --- /dev/null +++ b/platforms/browser/www/lib/angular-route/angular-route.min.js @@ -0,0 +1,14 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(n,e,A){'use strict';function x(s,g,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,w){function y(){p&&(p.remove(),p=null);h&&(h.$destroy(),h=null);l&&(k.leave(l,function(){p=null}),p=l,l=null)}function v(){var b=s.current&&s.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),d=s.current;l=w(b,function(d){k.enter(d,null,l||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||g()});y()});h=d.scope=b;h.$emit("$viewContentLoaded");h.$eval(u)}else y()} +var h,l,p,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",v);v()}}}function z(e,g,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var w=e(c.contents());b.controller&&(f.$scope=a,f=g(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));w(a)}}}n=e.module("ngRoute",["ng"]).provider("$route",function(){function s(a,c){return e.extend(new (e.extend(function(){}, +{prototype:a})),c)}function g(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},k=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;k.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var k={};this.when=function(a,c){k[a]=e.extend({reloadOnSearch:!0},c,a&&g(a,c));if(a){var b= +"/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";k[b]=e.extend({redirectTo:a},g(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,g,n,v,h){function l(){var d=p(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!u)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)u=!1,a.$broadcast("$routeChangeStart", +d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(t(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?g.get(d):g.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=h.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl= +b,c=n.get(b,{cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function p(){var a,b;e.forEach(k,function(f,k){var q;if(q=!b){var g=c.path();q=f.keys;var l={};if(f.regexp)if(g=f.regexp.exec(g)){for(var h=1,p=g.length;h` to your `index.html`: + +```html + +``` + +And add `ngSanitize` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngSanitize']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngSanitize). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-sanitize/angular-sanitize.js b/platforms/browser/www/lib/angular-sanitize/angular-sanitize.js new file mode 100644 index 00000000..b670812d --- /dev/null +++ b/platforms/browser/www/lib/angular-sanitize/angular-sanitize.js @@ -0,0 +1,624 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $sanitizeMinErr = angular.$$minErr('$sanitize'); + +/** + * @ngdoc module + * @name ngSanitize + * @description + * + * # ngSanitize + * + * The `ngSanitize` module provides functionality to sanitize HTML. + * + * + *
+ * + * See {@link ngSanitize.$sanitize `$sanitize`} for usage. + */ + +/* + * HTML Parser By Misko Hevery (misko@hevery.com) + * based on: HTML Parser By John Resig (ejohn.org) + * Original code by Erik Arvidsson, Mozilla Public License + * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js + * + * // Use like so: + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + */ + + +/** + * @ngdoc service + * @name $sanitize + * @function + * + * @description + * The input is sanitized by parsing the html into tokens. All safe tokens (from a whitelist) are + * then serialized back to properly escaped html string. This means that no unsafe input can make + * it into the returned string, however, since our parser is more strict than a typical browser + * parser, it's possible that some obscure input, which would be recognized as valid HTML by a + * browser, won't make it through the sanitizer. + * The whitelist is configured using the functions `aHrefSanitizationWhitelist` and + * `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider `$compileProvider`}. + * + * @param {string} html Html input. + * @returns {string} Sanitized html. + * + * @example + + + +
+ Snippet: + + + + + + + + + + + + + + + + + + + + + + + + + +
DirectiveHowSourceRendered
ng-bind-htmlAutomatically uses $sanitize
<div ng-bind-html="snippet">
</div>
ng-bind-htmlBypass $sanitize by explicitly trusting the dangerous value +
<div ng-bind-html="deliberatelyTrustDangerousSnippet()">
+</div>
+
ng-bindAutomatically escapes
<div ng-bind="snippet">
</div>
+
+
+ + it('should sanitize the html snippet by default', function() { + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('

an html\nclick here\nsnippet

'); + }); + + it('should inline raw snippet if bound to a trusted value', function() { + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()). + toBe("

an html\n" + + "click here\n" + + "snippet

"); + }); + + it('should escape snippet without any filter', function() { + expect(element(by.css('#bind-default div')).getInnerHtml()). + toBe("<p style=\"color:blue\">an html\n" + + "<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" + + "snippet</p>"); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new text'); + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('new text'); + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()).toBe( + 'new text'); + expect(element(by.css('#bind-default div')).getInnerHtml()).toBe( + "new <b onclick=\"alert(1)\">text</b>"); + }); +
+
+ */ +function $SanitizeProvider() { + this.$get = ['$$sanitizeUri', function($$sanitizeUri) { + return function(html) { + var buf = []; + htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) { + return !/^unsafe/.test($$sanitizeUri(uri, isImage)); + })); + return buf.join(''); + }; + }]; +} + +function sanitizeText(chars) { + var buf = []; + var writer = htmlSanitizeWriter(buf, angular.noop); + writer.chars(chars); + return buf.join(''); +} + + +// Regular Expressions for parsing tags and attributes +var START_TAG_REGEXP = + /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/, + END_TAG_REGEXP = /^<\s*\/\s*([\w:-]+)[^>]*>/, + ATTR_REGEXP = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g, + BEGIN_TAG_REGEXP = /^/g, + DOCTYPE_REGEXP = /]*?)>/i, + CDATA_REGEXP = //g, + // Match everything outside of normal chars and " (quote character) + NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g; + + +// Good source of info about elements and attributes +// http://dev.w3.org/html5/spec/Overview.html#semantics +// http://simon.html5.org/html-elements + +// Safe Void Elements - HTML5 +// http://dev.w3.org/html5/spec/Overview.html#void-elements +var voidElements = makeMap("area,br,col,hr,img,wbr"); + +// Elements that you can, intentionally, leave open (and which close themselves) +// http://dev.w3.org/html5/spec/Overview.html#optional-tags +var optionalEndTagBlockElements = makeMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), + optionalEndTagInlineElements = makeMap("rp,rt"), + optionalEndTagElements = angular.extend({}, + optionalEndTagInlineElements, + optionalEndTagBlockElements); + +// Safe Block Elements - HTML5 +var blockElements = angular.extend({}, optionalEndTagBlockElements, makeMap("address,article," + + "aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5," + + "h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")); + +// Inline Elements - HTML5 +var inlineElements = angular.extend({}, optionalEndTagInlineElements, makeMap("a,abbr,acronym,b," + + "bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," + + "samp,small,span,strike,strong,sub,sup,time,tt,u,var")); + + +// Special Elements (can contain anything) +var specialElements = makeMap("script,style"); + +var validElements = angular.extend({}, + voidElements, + blockElements, + inlineElements, + optionalEndTagElements); + +//Attributes that have href and hence need to be sanitized +var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap"); +var validAttrs = angular.extend({}, uriAttrs, makeMap( + 'abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,'+ + 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,'+ + 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,'+ + 'scope,scrolling,shape,size,span,start,summary,target,title,type,'+ + 'valign,value,vspace,width')); + +function makeMap(str) { + var obj = {}, items = str.split(','), i; + for (i = 0; i < items.length; i++) obj[items[i]] = true; + return obj; +} + + +/** + * @example + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + * @param {string} html string + * @param {object} handler + */ +function htmlParser( html, handler ) { + var index, chars, match, stack = [], last = html; + stack.last = function() { return stack[ stack.length - 1 ]; }; + + while ( html ) { + chars = true; + + // Make sure we're not in a script or style element + if ( !stack.last() || !specialElements[ stack.last() ] ) { + + // Comment + if ( html.indexOf("", index) === index) { + if (handler.comment) handler.comment( html.substring( 4, index ) ); + html = html.substring( index + 3 ); + chars = false; + } + // DOCTYPE + } else if ( DOCTYPE_REGEXP.test(html) ) { + match = html.match( DOCTYPE_REGEXP ); + + if ( match ) { + html = html.replace( match[0], ''); + chars = false; + } + // end tag + } else if ( BEGING_END_TAGE_REGEXP.test(html) ) { + match = html.match( END_TAG_REGEXP ); + + if ( match ) { + html = html.substring( match[0].length ); + match[0].replace( END_TAG_REGEXP, parseEndTag ); + chars = false; + } + + // start tag + } else if ( BEGIN_TAG_REGEXP.test(html) ) { + match = html.match( START_TAG_REGEXP ); + + if ( match ) { + html = html.substring( match[0].length ); + match[0].replace( START_TAG_REGEXP, parseStartTag ); + chars = false; + } + } + + if ( chars ) { + index = html.indexOf("<"); + + var text = index < 0 ? html : html.substring( 0, index ); + html = index < 0 ? "" : html.substring( index ); + + if (handler.chars) handler.chars( decodeEntities(text) ); + } + + } else { + html = html.replace(new RegExp("(.*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'), + function(all, text){ + text = text.replace(COMMENT_REGEXP, "$1").replace(CDATA_REGEXP, "$1"); + + if (handler.chars) handler.chars( decodeEntities(text) ); + + return ""; + }); + + parseEndTag( "", stack.last() ); + } + + if ( html == last ) { + throw $sanitizeMinErr('badparse', "The sanitizer was unable to parse the following block " + + "of html: {0}", html); + } + last = html; + } + + // Clean up any remaining tags + parseEndTag(); + + function parseStartTag( tag, tagName, rest, unary ) { + tagName = angular.lowercase(tagName); + if ( blockElements[ tagName ] ) { + while ( stack.last() && inlineElements[ stack.last() ] ) { + parseEndTag( "", stack.last() ); + } + } + + if ( optionalEndTagElements[ tagName ] && stack.last() == tagName ) { + parseEndTag( "", tagName ); + } + + unary = voidElements[ tagName ] || !!unary; + + if ( !unary ) + stack.push( tagName ); + + var attrs = {}; + + rest.replace(ATTR_REGEXP, + function(match, name, doubleQuotedValue, singleQuotedValue, unquotedValue) { + var value = doubleQuotedValue + || singleQuotedValue + || unquotedValue + || ''; + + attrs[name] = decodeEntities(value); + }); + if (handler.start) handler.start( tagName, attrs, unary ); + } + + function parseEndTag( tag, tagName ) { + var pos = 0, i; + tagName = angular.lowercase(tagName); + if ( tagName ) + // Find the closest opened tag of the same type + for ( pos = stack.length - 1; pos >= 0; pos-- ) + if ( stack[ pos ] == tagName ) + break; + + if ( pos >= 0 ) { + // Close all the open elements, up the stack + for ( i = stack.length - 1; i >= pos; i-- ) + if (handler.end) handler.end( stack[ i ] ); + + // Remove the open elements from the stack + stack.length = pos; + } + } +} + +var hiddenPre=document.createElement("pre"); +var spaceRe = /^(\s*)([\s\S]*?)(\s*)$/; +/** + * decodes all entities into regular string + * @param value + * @returns {string} A string with decoded entities. + */ +function decodeEntities(value) { + if (!value) { return ''; } + + // Note: IE8 does not preserve spaces at the start/end of innerHTML + // so we must capture them and reattach them afterward + var parts = spaceRe.exec(value); + var spaceBefore = parts[1]; + var spaceAfter = parts[3]; + var content = parts[2]; + if (content) { + hiddenPre.innerHTML=content.replace(//g, '>'); +} + +/** + * create an HTML/XML writer which writes to buffer + * @param {Array} buf use buf.jain('') to get out sanitized html string + * @returns {object} in the form of { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * } + */ +function htmlSanitizeWriter(buf, uriValidator){ + var ignore = false; + var out = angular.bind(buf, buf.push); + return { + start: function(tag, attrs, unary){ + tag = angular.lowercase(tag); + if (!ignore && specialElements[tag]) { + ignore = tag; + } + if (!ignore && validElements[tag] === true) { + out('<'); + out(tag); + angular.forEach(attrs, function(value, key){ + var lkey=angular.lowercase(key); + var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background'); + if (validAttrs[lkey] === true && + (uriAttrs[lkey] !== true || uriValidator(value, isImage))) { + out(' '); + out(key); + out('="'); + out(encodeEntities(value)); + out('"'); + } + }); + out(unary ? '/>' : '>'); + } + }, + end: function(tag){ + tag = angular.lowercase(tag); + if (!ignore && validElements[tag] === true) { + out(''); + } + if (tag == ignore) { + ignore = false; + } + }, + chars: function(chars){ + if (!ignore) { + out(encodeEntities(chars)); + } + } + }; +} + + +// define ngSanitize module and register $sanitize service +angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider); + +/* global sanitizeText: false */ + +/** + * @ngdoc filter + * @name linky + * @function + * + * @description + * Finds links in text input and turns them into html links. Supports http/https/ftp/mailto and + * plain email address links. + * + * Requires the {@link ngSanitize `ngSanitize`} module to be installed. + * + * @param {string} text Input text. + * @param {string} target Window (_blank|_self|_parent|_top) or named frame to open links in. + * @returns {string} Html-linkified text. + * + * @usage + + * + * @example + + + +
+ Snippet: + + + + + + + + + + + + + + + + + + + + + +
FilterSourceRendered
linky filter +
<div ng-bind-html="snippet | linky">
</div>
+
+
+
linky target +
<div ng-bind-html="snippetWithTarget | linky:'_blank'">
</div>
+
+
+
no filter
<div ng-bind="snippet">
</div>
+ + + it('should linkify the snippet with urls', function() { + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(4); + }); + + it('should not linkify snippet without the linky filter', function() { + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#escaped-html a')).count()).toEqual(0); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new http://link.'); + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('new http://link.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(1); + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()) + .toBe('new http://link.'); + }); + + it('should work with the target property', function() { + expect(element(by.id('linky-target')). + element(by.binding("snippetWithTarget | linky:'_blank'")).getText()). + toBe('http://angularjs.org/'); + expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank'); + }); + + + */ +angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { + var LINKY_URL_REGEXP = + /((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>]/, + MAILTO_REGEXP = /^mailto:/; + + return function(text, target) { + if (!text) return text; + var match; + var raw = text; + var html = []; + var url; + var i; + while ((match = raw.match(LINKY_URL_REGEXP))) { + // We can not end in these as they are sometimes found at the end of the sentence + url = match[0]; + // if we did not match ftp/http/mailto then assume mailto + if (match[2] == match[3]) url = 'mailto:' + url; + i = match.index; + addText(raw.substr(0, i)); + addLink(url, match[0].replace(MAILTO_REGEXP, '')); + raw = raw.substring(i + match[0].length); + } + addText(raw); + return $sanitize(html.join('')); + + function addText(text) { + if (!text) { + return; + } + html.push(sanitizeText(text)); + } + + function addLink(url, text) { + html.push(''); + addText(text); + html.push(''); + } + }; +}]); + + +})(window, window.angular); diff --git a/platforms/browser/www/lib/angular-sanitize/angular-sanitize.min.js b/platforms/browser/www/lib/angular-sanitize/angular-sanitize.min.js new file mode 100644 index 00000000..08964713 --- /dev/null +++ b/platforms/browser/www/lib/angular-sanitize/angular-sanitize.min.js @@ -0,0 +1,14 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,h,q){'use strict';function E(a){var e=[];s(e,h.noop).chars(a);return e.join("")}function k(a){var e={};a=a.split(",");var d;for(d=0;d=c;d--)e.end&&e.end(f[d]);f.length=c}}var b,g,f=[],l=a;for(f.last=function(){return f[f.length-1]};a;){g=!0;if(f.last()&&x[f.last()])a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(b,a){a=a.replace(H,"$1").replace(I,"$1");e.chars&&e.chars(r(a));return""}),c("",f.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e",b)===b&&(e.comment&&e.comment(a.substring(4,b)),a=a.substring(b+3),g=!1);else if(y.test(a)){if(b=a.match(y))a= +a.replace(b[0],""),g=!1}else if(J.test(a)){if(b=a.match(z))a=a.substring(b[0].length),b[0].replace(z,c),g=!1}else K.test(a)&&(b=a.match(A))&&(a=a.substring(b[0].length),b[0].replace(A,d),g=!1);g&&(b=a.indexOf("<"),g=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),e.chars&&e.chars(r(g)))}if(a==l)throw L("badparse",a);l=a}c()}function r(a){if(!a)return"";var e=M.exec(a);a=e[1];var d=e[3];if(e=e[2])n.innerHTML=e.replace(//g,">")}function s(a,e){var d=!1,c=h.bind(a,a.push);return{start:function(a,g,f){a=h.lowercase(a);!d&&x[a]&&(d=a);d||!0!==C[a]||(c("<"),c(a),h.forEach(g,function(d,f){var g=h.lowercase(f),k="img"===a&&"src"===g||"background"===g;!0!==O[g]||!0===D[g]&&!e(d,k)||(c(" "),c(f),c('="'),c(B(d)),c('"'))}),c(f?"/>":">"))},end:function(a){a=h.lowercase(a);d||!0!==C[a]||(c(""));a==d&&(d=!1)},chars:function(a){d|| +c(B(a))}}}var L=h.$$minErr("$sanitize"),A=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,z=/^<\s*\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,K=/^]*?)>/i,I=/]/,d=/^mailto:/;return function(c,b){function g(a){a&&m.push(E(a))}function f(a,c){m.push("');g(c);m.push("")}if(!c)return c;for(var l,k=c,m=[],n,p;l=k.match(e);)n=l[0],l[2]==l[3]&&(n="mailto:"+n),p=l.index,g(k.substr(0,p)),f(n,l[0].replace(d,"")),k=k.substring(p+l[0].length);g(k);return a(m.join(""))}}])})(window,window.angular); +//# sourceMappingURL=angular-sanitize.min.js.map diff --git a/platforms/browser/www/lib/angular-sanitize/angular-sanitize.min.js.map b/platforms/browser/www/lib/angular-sanitize/angular-sanitize.min.js.map new file mode 100644 index 00000000..dbf6b259 --- /dev/null +++ b/platforms/browser/www/lib/angular-sanitize/angular-sanitize.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-sanitize.min.js", +"lineCount":13, +"mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAiJtCC,QAASA,EAAY,CAACC,CAAD,CAAQ,CAC3B,IAAIC,EAAM,EACGC,EAAAC,CAAmBF,CAAnBE,CAAwBN,CAAAO,KAAxBD,CACbH,MAAA,CAAaA,CAAb,CACA,OAAOC,EAAAI,KAAA,CAAS,EAAT,CAJoB,CAmE7BC,QAASA,EAAO,CAACC,CAAD,CAAM,CAAA,IAChBC,EAAM,EAAIC,EAAAA,CAAQF,CAAAG,MAAA,CAAU,GAAV,CAAtB,KAAsCC,CACtC,KAAKA,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgBF,CAAAG,OAAhB,CAA8BD,CAAA,EAA9B,CAAmCH,CAAA,CAAIC,CAAA,CAAME,CAAN,CAAJ,CAAA,CAAgB,CAAA,CACnD,OAAOH,EAHa,CAmBtBK,QAASA,EAAU,CAAEC,CAAF,CAAQC,CAAR,CAAkB,CAiFnCC,QAASA,EAAa,CAAEC,CAAF,CAAOC,CAAP,CAAgBC,CAAhB,CAAsBC,CAAtB,CAA8B,CAClDF,CAAA,CAAUrB,CAAAwB,UAAA,CAAkBH,CAAlB,CACV,IAAKI,CAAA,CAAeJ,CAAf,CAAL,CACE,IAAA,CAAQK,CAAAC,KAAA,EAAR,EAAwBC,CAAA,CAAgBF,CAAAC,KAAA,EAAhB,CAAxB,CAAA,CACEE,CAAA,CAAa,EAAb,CAAiBH,CAAAC,KAAA,EAAjB,CAICG,EAAA,CAAwBT,CAAxB,CAAL,EAA0CK,CAAAC,KAAA,EAA1C,EAA0DN,CAA1D,EACEQ,CAAA,CAAa,EAAb,CAAiBR,CAAjB,CAKF,EAFAE,CAEA,CAFQQ,CAAA,CAAcV,CAAd,CAER,EAFmC,CAAC,CAACE,CAErC,GACEG,CAAAM,KAAA,CAAYX,CAAZ,CAEF,KAAIY,EAAQ,EAEZX,EAAAY,QAAA,CAAaC,CAAb,CACE,QAAQ,CAACC,CAAD,CAAQC,CAAR,CAAcC,CAAd,CAAiCC,CAAjC,CAAoDC,CAApD,CAAmE,CAMzEP,CAAA,CAAMI,CAAN,CAAA,CAAcI,CAAA,CALFH,CAKE,EAJTC,CAIS,EAHTC,CAGS,EAFT,EAES,CAN2D,CAD7E,CASItB,EAAAwB,MAAJ,EAAmBxB,CAAAwB,MAAA,CAAerB,CAAf,CAAwBY,CAAxB,CAA+BV,CAA/B,CA5B+B,CA+BpDM,QAASA,EAAW,CAAET,CAAF,CAAOC,CAAP,CAAiB,CAAA,IAC/BsB,EAAM,CADyB,CACtB7B,CAEb,IADAO,CACA,CADUrB,CAAAwB,UAAA,CAAkBH,CAAlB,CACV,CAEE,IAAMsB,CAAN,CAAYjB,CAAAX,OAAZ,CAA2B,CAA3B,CAAqC,CAArC,EAA8B4B,CAA9B,EACOjB,CAAA,CAAOiB,CAAP,CADP,EACuBtB,CADvB,CAAwCsB,CAAA,EAAxC;AAIF,GAAY,CAAZ,EAAKA,CAAL,CAAgB,CAEd,IAAM7B,CAAN,CAAUY,CAAAX,OAAV,CAAyB,CAAzB,CAA4BD,CAA5B,EAAiC6B,CAAjC,CAAsC7B,CAAA,EAAtC,CACMI,CAAA0B,IAAJ,EAAiB1B,CAAA0B,IAAA,CAAalB,CAAA,CAAOZ,CAAP,CAAb,CAGnBY,EAAAX,OAAA,CAAe4B,CAND,CATmB,CAhHF,IAC/BE,CAD+B,CACxB1C,CADwB,CACVuB,EAAQ,EADE,CACEC,EAAOV,CAG5C,KAFAS,CAAAC,KAEA,CAFamB,QAAQ,EAAG,CAAE,MAAOpB,EAAA,CAAOA,CAAAX,OAAP,CAAsB,CAAtB,CAAT,CAExB,CAAQE,CAAR,CAAA,CAAe,CACbd,CAAA,CAAQ,CAAA,CAGR,IAAMuB,CAAAC,KAAA,EAAN,EAAuBoB,CAAA,CAAiBrB,CAAAC,KAAA,EAAjB,CAAvB,CAmDEV,CASA,CATOA,CAAAiB,QAAA,CAAiBc,MAAJ,CAAW,kBAAX,CAAgCtB,CAAAC,KAAA,EAAhC,CAA+C,QAA/C,CAAyD,GAAzD,CAAb,CACL,QAAQ,CAACsB,CAAD,CAAMC,CAAN,CAAW,CACjBA,CAAA,CAAOA,CAAAhB,QAAA,CAAaiB,CAAb,CAA6B,IAA7B,CAAAjB,QAAA,CAA2CkB,CAA3C,CAAyD,IAAzD,CAEHlC,EAAAf,MAAJ,EAAmBe,CAAAf,MAAA,CAAesC,CAAA,CAAeS,CAAf,CAAf,CAEnB,OAAO,EALU,CADd,CASP,CAAArB,CAAA,CAAa,EAAb,CAAiBH,CAAAC,KAAA,EAAjB,CA5DF,KAAyD,CAGvD,GAA8B,CAA9B,GAAKV,CAAAoC,QAAA,CAAa,SAAb,CAAL,CAEER,CAEA,CAFQ5B,CAAAoC,QAAA,CAAa,IAAb,CAAmB,CAAnB,CAER,CAAc,CAAd,EAAKR,CAAL,EAAmB5B,CAAAqC,YAAA,CAAiB,QAAjB,CAAwBT,CAAxB,CAAnB,GAAsDA,CAAtD,GACM3B,CAAAqC,QAEJ,EAFqBrC,CAAAqC,QAAA,CAAiBtC,CAAAuC,UAAA,CAAgB,CAAhB,CAAmBX,CAAnB,CAAjB,CAErB,CADA5B,CACA,CADOA,CAAAuC,UAAA,CAAgBX,CAAhB,CAAwB,CAAxB,CACP,CAAA1C,CAAA,CAAQ,CAAA,CAHV,CAJF,KAUO,IAAKsD,CAAAC,KAAA,CAAoBzC,CAApB,CAAL,CAGL,IAFAmB,CAEA,CAFQnB,CAAAmB,MAAA,CAAYqB,CAAZ,CAER,CACExC,CACA;AADOA,CAAAiB,QAAA,CAAcE,CAAA,CAAM,CAAN,CAAd,CAAwB,EAAxB,CACP,CAAAjC,CAAA,CAAQ,CAAA,CAFV,CAHK,IAQA,IAAKwD,CAAAD,KAAA,CAA4BzC,CAA5B,CAAL,CAGL,IAFAmB,CAEA,CAFQnB,CAAAmB,MAAA,CAAYwB,CAAZ,CAER,CACE3C,CAEA,CAFOA,CAAAuC,UAAA,CAAgBpB,CAAA,CAAM,CAAN,CAAArB,OAAhB,CAEP,CADAqB,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAkB0B,CAAlB,CAAkC/B,CAAlC,CACA,CAAA1B,CAAA,CAAQ,CAAA,CAHV,CAHK,IAUK0D,EAAAH,KAAA,CAAsBzC,CAAtB,CAAL,GACLmB,CADK,CACGnB,CAAAmB,MAAA,CAAY0B,CAAZ,CADH,IAIH7C,CAEA,CAFOA,CAAAuC,UAAA,CAAgBpB,CAAA,CAAM,CAAN,CAAArB,OAAhB,CAEP,CADAqB,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAkB4B,CAAlB,CAAoC3C,CAApC,CACA,CAAAhB,CAAA,CAAQ,CAAA,CANL,CAUFA,EAAL,GACE0C,CAKA,CALQ5B,CAAAoC,QAAA,CAAa,GAAb,CAKR,CAHIH,CAGJ,CAHmB,CAAR,CAAAL,CAAA,CAAY5B,CAAZ,CAAmBA,CAAAuC,UAAA,CAAgB,CAAhB,CAAmBX,CAAnB,CAG9B,CAFA5B,CAEA,CAFe,CAAR,CAAA4B,CAAA,CAAY,EAAZ,CAAiB5B,CAAAuC,UAAA,CAAgBX,CAAhB,CAExB,CAAI3B,CAAAf,MAAJ,EAAmBe,CAAAf,MAAA,CAAesC,CAAA,CAAeS,CAAf,CAAf,CANrB,CAzCuD,CA+DzD,GAAKjC,CAAL,EAAaU,CAAb,CACE,KAAMoC,EAAA,CAAgB,UAAhB,CAC4C9C,CAD5C,CAAN,CAGFU,CAAA,CAAOV,CAvEM,CA2EfY,CAAA,EA/EmC,CA2IrCY,QAASA,EAAc,CAACuB,CAAD,CAAQ,CAC7B,GAAI,CAACA,CAAL,CAAc,MAAO,EAIrB,KAAIC,EAAQC,CAAAC,KAAA,CAAaH,CAAb,CACRI,EAAAA,CAAcH,CAAA,CAAM,CAAN,CAClB,KAAII,EAAaJ,CAAA,CAAM,CAAN,CAEjB,IADIK,CACJ,CADcL,CAAA,CAAM,CAAN,CACd,CACEM,CAAAC,UAKA,CALoBF,CAAApC,QAAA,CAAgB,IAAhB,CAAqB,MAArB,CAKpB,CAAAoC,CAAA,CAAU,aAAA,EAAiBC,EAAjB,CACRA,CAAAE,YADQ,CACgBF,CAAAG,UAE5B,OAAON,EAAP,CAAqBE,CAArB,CAA+BD,CAlBF,CA4B/BM,QAASA,EAAc,CAACX,CAAD,CAAQ,CAC7B,MAAOA,EAAA9B,QAAA,CACG,IADH;AACS,OADT,CAAAA,QAAA,CAEG0C,CAFH,CAE4B,QAAQ,CAACZ,CAAD,CAAO,CAC9C,MAAO,IAAP,CAAcA,CAAAa,WAAA,CAAiB,CAAjB,CAAd,CAAoC,GADU,CAF3C,CAAA3C,QAAA,CAKG,IALH,CAKS,MALT,CAAAA,QAAA,CAMG,IANH,CAMS,MANT,CADsB,CAoB/B7B,QAASA,EAAkB,CAACD,CAAD,CAAM0E,CAAN,CAAmB,CAC5C,IAAIC,EAAS,CAAA,CAAb,CACIC,EAAMhF,CAAAiF,KAAA,CAAa7E,CAAb,CAAkBA,CAAA4B,KAAlB,CACV,OAAO,OACEU,QAAQ,CAACtB,CAAD,CAAMa,CAAN,CAAaV,CAAb,CAAmB,CAChCH,CAAA,CAAMpB,CAAAwB,UAAA,CAAkBJ,CAAlB,CACD2D,EAAAA,CAAL,EAAehC,CAAA,CAAgB3B,CAAhB,CAAf,GACE2D,CADF,CACW3D,CADX,CAGK2D,EAAL,EAAsC,CAAA,CAAtC,GAAeG,CAAA,CAAc9D,CAAd,CAAf,GACE4D,CAAA,CAAI,GAAJ,CAcA,CAbAA,CAAA,CAAI5D,CAAJ,CAaA,CAZApB,CAAAmF,QAAA,CAAgBlD,CAAhB,CAAuB,QAAQ,CAAC+B,CAAD,CAAQoB,CAAR,CAAY,CACzC,IAAIC,EAAKrF,CAAAwB,UAAA,CAAkB4D,CAAlB,CAAT,CACIE,EAAmB,KAAnBA,GAAWlE,CAAXkE,EAAqC,KAArCA,GAA4BD,CAA5BC,EAAyD,YAAzDA,GAAgDD,CAC3B,EAAA,CAAzB,GAAIE,CAAA,CAAWF,CAAX,CAAJ,EACsB,CAAA,CADtB,GACGG,CAAA,CAASH,CAAT,CADH,EAC8B,CAAAP,CAAA,CAAad,CAAb,CAAoBsB,CAApB,CAD9B,GAEEN,CAAA,CAAI,GAAJ,CAIA,CAHAA,CAAA,CAAII,CAAJ,CAGA,CAFAJ,CAAA,CAAI,IAAJ,CAEA,CADAA,CAAA,CAAIL,CAAA,CAAeX,CAAf,CAAJ,CACA,CAAAgB,CAAA,CAAI,GAAJ,CANF,CAHyC,CAA3C,CAYA,CAAAA,CAAA,CAAIzD,CAAA,CAAQ,IAAR,CAAe,GAAnB,CAfF,CALgC,CAD7B,KAwBAqB,QAAQ,CAACxB,CAAD,CAAK,CACdA,CAAA,CAAMpB,CAAAwB,UAAA,CAAkBJ,CAAlB,CACD2D,EAAL,EAAsC,CAAA,CAAtC,GAAeG,CAAA,CAAc9D,CAAd,CAAf,GACE4D,CAAA,CAAI,IAAJ,CAEA,CADAA,CAAA,CAAI5D,CAAJ,CACA,CAAA4D,CAAA,CAAI,GAAJ,CAHF,CAKI5D,EAAJ,EAAW2D,CAAX,GACEA,CADF,CACW,CAAA,CADX,CAPc,CAxBb,OAmCE5E,QAAQ,CAACA,CAAD,CAAO,CACb4E,CAAL;AACEC,CAAA,CAAIL,CAAA,CAAexE,CAAf,CAAJ,CAFgB,CAnCjB,CAHqC,CAha9C,IAAI4D,EAAkB/D,CAAAyF,SAAA,CAAiB,WAAjB,CAAtB,CAwJI3B,EACG,4FAzJP,CA0JEF,EAAiB,2BA1JnB,CA2JEzB,EAAc,yEA3JhB,CA4JE0B,EAAmB,IA5JrB,CA6JEF,EAAyB,SA7J3B,CA8JER,EAAiB,qBA9JnB,CA+JEM,EAAiB,qBA/JnB,CAgKEL,EAAe,yBAhKjB,CAkKEwB,EAA0B,gBAlK5B,CA2KI7C,EAAetB,CAAA,CAAQ,wBAAR,CAIfiF,EAAAA,CAA8BjF,CAAA,CAAQ,gDAAR,CAC9BkF,EAAAA,CAA+BlF,CAAA,CAAQ,OAAR,CADnC,KAEIqB,EAAyB9B,CAAA4F,OAAA,CAAe,EAAf,CACeD,CADf,CAEeD,CAFf,CAF7B,CAOIjE,EAAgBzB,CAAA4F,OAAA,CAAe,EAAf,CAAmBF,CAAnB,CAAgDjF,CAAA,CAAQ,4KAAR,CAAhD,CAPpB;AAYImB,EAAiB5B,CAAA4F,OAAA,CAAe,EAAf,CAAmBD,CAAnB,CAAiDlF,CAAA,CAAQ,2JAAR,CAAjD,CAZrB,CAkBIsC,EAAkBtC,CAAA,CAAQ,cAAR,CAlBtB,CAoBIyE,EAAgBlF,CAAA4F,OAAA,CAAe,EAAf,CACe7D,CADf,CAEeN,CAFf,CAGeG,CAHf,CAIeE,CAJf,CApBpB,CA2BI0D,EAAW/E,CAAA,CAAQ,0CAAR,CA3Bf,CA4BI8E,EAAavF,CAAA4F,OAAA,CAAe,EAAf,CAAmBJ,CAAnB,CAA6B/E,CAAA,CAC1C,ySAD0C,CAA7B,CA5BjB;AA0LI8D,EAAUsB,QAAAC,cAAA,CAAuB,KAAvB,CA1Ld,CA2LI5B,EAAU,wBAsGdlE,EAAA+F,OAAA,CAAe,YAAf,CAA6B,EAA7B,CAAAC,SAAA,CAA0C,WAA1C,CA7UAC,QAA0B,EAAG,CAC3B,IAAAC,KAAA,CAAY,CAAC,eAAD,CAAkB,QAAQ,CAACC,CAAD,CAAgB,CACpD,MAAO,SAAQ,CAAClF,CAAD,CAAO,CACpB,IAAIb,EAAM,EACVY,EAAA,CAAWC,CAAX,CAAiBZ,CAAA,CAAmBD,CAAnB,CAAwB,QAAQ,CAACgG,CAAD,CAAMd,CAAN,CAAe,CAC9D,MAAO,CAAC,SAAA5B,KAAA,CAAeyC,CAAA,CAAcC,CAAd,CAAmBd,CAAnB,CAAf,CADsD,CAA/C,CAAjB,CAGA,OAAOlF,EAAAI,KAAA,CAAS,EAAT,CALa,CAD8B,CAA1C,CADe,CA6U7B,CAuGAR,EAAA+F,OAAA,CAAe,YAAf,CAAAM,OAAA,CAAoC,OAApC,CAA6C,CAAC,WAAD,CAAc,QAAQ,CAACC,CAAD,CAAY,CAAA,IACzEC,EACE,mEAFuE,CAGzEC,EAAgB,UAEpB,OAAO,SAAQ,CAACtD,CAAD,CAAOuD,CAAP,CAAe,CAoB5BC,QAASA,EAAO,CAACxD,CAAD,CAAO,CAChBA,CAAL,EAGAjC,CAAAe,KAAA,CAAU9B,CAAA,CAAagD,CAAb,CAAV,CAJqB,CAOvByD,QAASA,EAAO,CAACC,CAAD,CAAM1D,CAAN,CAAY,CAC1BjC,CAAAe,KAAA,CAAU,KAAV,CACIhC,EAAA6G,UAAA,CAAkBJ,CAAlB,CAAJ;CACExF,CAAAe,KAAA,CAAU,UAAV,CAEA,CADAf,CAAAe,KAAA,CAAUyE,CAAV,CACA,CAAAxF,CAAAe,KAAA,CAAU,IAAV,CAHF,CAKAf,EAAAe,KAAA,CAAU,QAAV,CACAf,EAAAe,KAAA,CAAU4E,CAAV,CACA3F,EAAAe,KAAA,CAAU,IAAV,CACA0E,EAAA,CAAQxD,CAAR,CACAjC,EAAAe,KAAA,CAAU,MAAV,CAX0B,CA1B5B,GAAI,CAACkB,CAAL,CAAW,MAAOA,EAMlB,KALA,IAAId,CAAJ,CACI0E,EAAM5D,CADV,CAEIjC,EAAO,EAFX,CAGI2F,CAHJ,CAII9F,CACJ,CAAQsB,CAAR,CAAgB0E,CAAA1E,MAAA,CAAUmE,CAAV,CAAhB,CAAA,CAEEK,CAMA,CANMxE,CAAA,CAAM,CAAN,CAMN,CAJIA,CAAA,CAAM,CAAN,CAIJ,EAJgBA,CAAA,CAAM,CAAN,CAIhB,GAJ0BwE,CAI1B,CAJgC,SAIhC,CAJ4CA,CAI5C,EAHA9F,CAGA,CAHIsB,CAAAS,MAGJ,CAFA6D,CAAA,CAAQI,CAAAC,OAAA,CAAW,CAAX,CAAcjG,CAAd,CAAR,CAEA,CADA6F,CAAA,CAAQC,CAAR,CAAaxE,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAiBsE,CAAjB,CAAgC,EAAhC,CAAb,CACA,CAAAM,CAAA,CAAMA,CAAAtD,UAAA,CAAc1C,CAAd,CAAkBsB,CAAA,CAAM,CAAN,CAAArB,OAAlB,CAER2F,EAAA,CAAQI,CAAR,CACA,OAAOR,EAAA,CAAUrF,CAAAT,KAAA,CAAU,EAAV,CAAV,CAlBqB,CAL+C,CAAlC,CAA7C,CAzjBsC,CAArC,CAAA,CA0mBET,MA1mBF,CA0mBUA,MAAAC,QA1mBV;", +"sources":["angular-sanitize.js"], +"names":["window","angular","undefined","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","makeMap","str","obj","items","split","i","length","htmlParser","html","handler","parseStartTag","tag","tagName","rest","unary","lowercase","blockElements","stack","last","inlineElements","parseEndTag","optionalEndTagElements","voidElements","push","attrs","replace","ATTR_REGEXP","match","name","doubleQuotedValue","singleQuotedValue","unquotedValue","decodeEntities","start","pos","end","index","stack.last","specialElements","RegExp","all","text","COMMENT_REGEXP","CDATA_REGEXP","indexOf","lastIndexOf","comment","substring","DOCTYPE_REGEXP","test","BEGING_END_TAGE_REGEXP","END_TAG_REGEXP","BEGIN_TAG_REGEXP","START_TAG_REGEXP","$sanitizeMinErr","value","parts","spaceRe","exec","spaceBefore","spaceAfter","content","hiddenPre","innerHTML","textContent","innerText","encodeEntities","NON_ALPHANUMERIC_REGEXP","charCodeAt","uriValidator","ignore","out","bind","validElements","forEach","key","lkey","isImage","validAttrs","uriAttrs","$$minErr","optionalEndTagBlockElements","optionalEndTagInlineElements","extend","document","createElement","module","provider","$SanitizeProvider","$get","$$sanitizeUri","uri","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","target","addText","addLink","url","isDefined","raw","substr"] +} diff --git a/platforms/browser/www/lib/angular-sanitize/bower.json b/platforms/browser/www/lib/angular-sanitize/bower.json new file mode 100644 index 00000000..1160f22f --- /dev/null +++ b/platforms/browser/www/lib/angular-sanitize/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-sanitize", + "version": "1.2.16", + "main": "./angular-sanitize.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/platforms/browser/www/lib/angular-scenario/.bower.json b/platforms/browser/www/lib/angular-scenario/.bower.json new file mode 100644 index 00000000..f33be682 --- /dev/null +++ b/platforms/browser/www/lib/angular-scenario/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-scenario", + "version": "1.2.16", + "main": "./angular-scenario.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-scenario", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "387bd67cc4863655aed0f889956cdeb4acdb03ae" + }, + "_source": "git://github.com/angular/bower-angular-scenario.git", + "_target": "1.2.16", + "_originalSource": "angular-scenario" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/angular-scenario/README.md b/platforms/browser/www/lib/angular-scenario/README.md new file mode 100644 index 00000000..7f80a8c5 --- /dev/null +++ b/platforms/browser/www/lib/angular-scenario/README.md @@ -0,0 +1,42 @@ +# bower-angular-scenario + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngScenario). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-scenario +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/platforms/browser/www/lib/angular-scenario/angular-scenario.js b/platforms/browser/www/lib/angular-scenario/angular-scenario.js new file mode 100644 index 00000000..81491c59 --- /dev/null +++ b/platforms/browser/www/lib/angular-scenario/angular-scenario.js @@ -0,0 +1,33464 @@ +/*! + * jQuery JavaScript Library v1.10.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03T13:48Z + */ +(function( window, undefined ) {'use strict'; + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +// + +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<10 + // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + location = window.location, + document = window.document, + docElem = document.documentElement, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.10.2", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( jQuery.support.ownLast ) { + for ( key in obj ) { + return core_hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations. + // Note: this method belongs to the css module but it's needed here for the support module. + // If support gets modularized, this method should be moved back to the css module. + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +/*! + * Sizzle CSS Selector Engine v1.10.2 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03 + */ +(function( window, undefined ) { + +var i, + support, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rsibling = new RegExp( whitespace + "*[+~]" ), + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent.attachEvent && parent !== parent.top ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + div.innerHTML = "
"; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Support: Opera 10-12/IE8 + // ^= $= *= and empty values + // Should not select anything + // Support: Windows 8 Native Apps + // The type attribute is restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "t", "" ); + + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val === undefined ? + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null : + val; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; + } + }); +} + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function( support ) { + + var all, a, input, select, fragment, opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
a"; + + // Finish early in limited (non-browser) environments + all = div.getElementsByTagName("*") || []; + a = div.getElementsByTagName("a")[ 0 ]; + if ( !a || !a.style || !all.length ) { + return support; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName("tbody").length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName("link").length; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; + + // Will be defined later + support.inlineBlockNeedsLayout = false; + support.shrinkWrapBlocks = false; + support.pixelPosition = false; + support.deleteExpando = true; + support.noCloneEvent = true; + support.reliableMarginRight = true; + support.boxSizingReliable = true; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: IE<9 + // Iteration over object's inherited properties before its own. + for ( i in jQuery( support ) ) { + break; + } + support.ownLast = i !== "0"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior. + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + support.boxSizing = div.offsetWidth === 4; + }); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})({}); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "applet": true, + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + data = null, + i = 0, + elem = this[0]; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n\f]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // Use proper attribute retrieval(#6932, #12072) + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { + optionSet = true; + } + } + + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; + + jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var fn = jQuery.expr.attrHandle[ name ], + ret = isXML ? + undefined : + /* jshint eqeqeq: false */ + (jQuery.expr.attrHandle[ name ] = undefined) != + getter( elem, name, isXML ) ? + + name.toLowerCase() : + null; + jQuery.expr.attrHandle[ name ] = fn; + return ret; + } : + function( elem, name, isXML ) { + return isXML ? + undefined : + elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + }; +}); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = + // Some attributes are constructed with empty-string values when not defined + function( elem, name, isXML ) { + var ret; + return isXML ? + undefined : + (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + }; + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ret.specified ? + ret.value : + undefined; + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !jQuery.support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + cur = ret.push( cur ); + break; + } + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( isSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map( this, function( elem ) { + return [ elem.nextSibling, elem.parentNode ]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + var next = args[ i++ ], + parent = args[ i++ ]; + + if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + // Allow new content to include elements from the context set + }, true ); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback, allowIntersection ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback, allowIntersection ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery._evalUrl( node.src ); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + }, + + _evalUrl: function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } +}); +jQuery.fn.extend({ + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("');return a.join("")})}},fileButton:function(b,c,d){if(!(arguments.length<3)){a.call(this,c);var e=this;if(c.validate)this.validate=c.validate;var g=CKEDITOR.tools.extend({}, +c),i=g.onClick;g.className=(g.className?g.className+" ":"")+"cke_dialog_ui_button";g.onClick=function(a){var d=c["for"];if(!i||i.call(this,a)!==false){b.getContentElement(d[0],d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(c["for"][0],c["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,g,d)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(d,e,g){if(!(arguments.length<3)){var i=[], +n=e.html;n.charAt(0)!="<"&&(n=""+n+"");var l=e.focus;if(l){var o=this.focus;this.focus=function(){(typeof l=="function"?l:o).call(this);this.fire("focus")};if(e.isFocusable)this.isFocusable=this.isFocusable;this.keyboardFocusable=true}CKEDITOR.ui.dialog.uiElement.call(this,d,e,i,"span",null,null,"");i=i.join("").match(a);n=n.match(b)||["","",""];if(c.test(n[1])){n[1]=n[1].slice(0,-1);n[2]="/"+n[2]}g.push([n[1]," ",i[1]||"",n[2]].join(""))}}}(),fieldset:function(a,b,c,d,e){var g=e.label; +this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,e,d,"fieldset",null,null,function(){var a=[];g&&a.push(""+g+"");for(var b=0;b0;)a.remove(0);return this},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(a,b){this.getInputElement().$.checked=a;!b&&this.fire("change",{value:a})},getValue:function(){return this.getInputElement().$.checked}, +accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(a,b){if(!CKEDITOR.env.ie||CKEDITOR.env.version>8)return c.onChange.apply(this,arguments);a.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;b.propertyName=="checked"&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",b);return null}},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, +{setValue:function(a,b){for(var c=this._.children,d,e=0;e0?new CKEDITOR.dom.element(a.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,d=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog, +c[1].toLowerCase(),a[e]);return this},reset:function(){function a(){c.$.open();var f="";d.size&&(f=d.size-(CKEDITOR.env.ie?7:0));var r=b.frameId+"_input";c.$.write(['','
+ ``` + +- `tabReplace` and `useBR` that were used in different places are also unified + into the global options object and are to be set using `configure(options)`. + This function is documented in our [API docs][]. Also note that these + parameters are gone from `highlightBlock` and `fixMarkup` which are now also + rely on `configure`. + +- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which + was used to register languages with the library in favor of two new methods: + `registerLanguage` and `getLanguage`. Both are documented in our [API docs][]. + +- Result returned from `highlight` and `highlightAuto` no longer contains two + separate attributes contributing to relevance score, `relevance` and + `keyword_count`. They are now unified in `relevance`. + +Another technically compatible change that nonetheless might need attention: + +- The structure of the NPM package was refactored, so if you had installed it + locally, you'll have to update your paths. The usual `require('highlight.js')` + works as before. This is contributed by [Dmitry Smolin][]. + +New features: + +- Languages now can be recognized by multiple names like "js" for JavaScript or + "html" for, well, HTML (which earlier insisted on calling it "xml"). These + aliases can be specified in the class attribute of the code container in your + HTML as well as in various API calls. For now there are only a few very common + aliases but we'll expand it in the future. All of them are listed in the + [class reference][]. + +- Language detection can now be restricted to a subset of languages relevant in + a given context — a web page or even a single highlighting call. This is + especially useful for node.js build that includes all the known languages. + Another example is a StackOverflow-style site where users specify languages + as tags rather than in the markdown-formatted code snippets. This is + documented in the [API reference][] (see methods `highlightAuto` and + `configure`). + +- Language definition syntax streamlined with [variants][] and + [beginKeywords][]. + +New languages and styles: + +- *Oxygene* by [Carlo Kok][] +- *Mathematica* by [Daniel Kvasnička][] +- *Autohotkey* by [Seongwon Lee][] +- *Atelier* family of styles in 10 variants by [Bram de Haan][] +- *Paraíso* styles by [Jan T. Sott][] + +Miscelleanous improvements: + +- Highlighting `=>` prompts in Clojure. +- [Jeremy Hull][] fixed a lot of styles for consistency. +- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html]. +- Objective C and C# now properly highlight titles in method definition. +- Big overhaul of relevance counting for a number of languages. Please do report + bugs about mis-detection of non-trivial code snippets! + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html +[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html +[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion +[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d +[php-html]: https://twitter.com/highlightjs/status/408890903017689088 + +[Carlo Kok]: https://github.com/carlokok +[Bram de Haan]: https://github.com/atelierbram +[Daniel Kvasnička]: https://github.com/dkvasnicka +[Dmitry Smolin]: https://github.com/dimsmol +[Jeremy Hull]: https://github.com/sourrust +[Seongwon Lee]: https://github.com/dlimpid +[Jan T. Sott]: https://github.com/idleberg + + +## Version 7.5 + +A catch-up release dealing with some of the accumulated contributions. This one +is probably will be the last before the 8.0 which will be slightly backwards +incompatible regarding some advanced use-cases. + +One outstanding change in this version is the addition of 6 languages to the +[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and +Makefile. It now weighs about 6K more but we're going to keep it under 30K. + +New languages: + +- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud] +- [LiveCode Server][lcs] by [Ralf Bitter][revig] +- Scilab by [Sylvestre Ledru][sylvestre] +- basic support for Makefile by [Ivan Sagalaev][isagalaev] + +Improvements: + +- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}` + regexps. +- Clojure now allows a function call in the beginning of s-expressions + `(($filter "myCount") (arr 1 2 3 4 5))`. +- Haskell's got new keywords and now recognizes more things like pragmas, + preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep] + for the implementation and to [Jeremy Hull][sourrust] for guiding it. +- Miscelleanous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#. + +[mehdid]: https://github.com/mehdid +[nbraud]: https://github.com/nbraud +[revig]: https://github.com/revig +[lcs]: http://livecode.com/developers/guides/server/ +[sylvestre]: https://github.com/sylvestre +[isagalaev]: https://github.com/isagalaev +[treep]: https://github.com/treep +[sourrust]: https://github.com/sourrust +[d]: http://highlightjs.org/download/ + + +## New core developers + +The latest long period of almost complete inactivity in the project coincided +with growing interest to it led to a decision that now seems completely obvious: +we need more core developers. + +So without further ado let me welcome to the core team two long-time +contributors: [Jeremy Hull][] and [Oleg +Efimov][]. + +Hope now we'll be able to work through stuff faster! + +P.S. The historical commit is [here][1] for the record. + +[Jeremy Hull]: https://github.com/sourrust +[Oleg Efimov]: https://github.com/sannis +[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f + + +## Version 7.4 + +This long overdue version is a snapshot of the current source tree with all the +changes that happened during the past year. Sorry for taking so long! + +Along with the changes in code highlight.js has finally got its new home at +, moving from its craddle on Software Maniacs which it +outgrew a long time ago. Be sure to report any bugs about the site to +. + +On to what's new… + +New languages: + +- Handlebars templates by [Robin Ward][] +- Oracle Rules Language by [Jason Jacobson][] +- F# by [Joans Follesø][] +- AsciiDoc and Haml by [Dan Allen][] +- Lasso by [Eric Knibbe][] +- SCSS by [Kurt Emch][] +- VB.NET by [Poren Chiang][] +- Mizar by [Kelley van Evert][] + +[Robin Ward]: https://github.com/eviltrout +[Jason Jacobson]: https://github.com/jayce7 +[Joans Follesø]: https://github.com/follesoe +[Dan Allen]: https://github.com/mojavelinux +[Eric Knibbe]: https://github.com/EricFromCanada +[Kurt Emch]: https://github.com/kemch +[Poren Chiang]: https://github.com/rschiang +[Kelley van Evert]: https://github.com/kelleyvanevert + +New style themes: + +- Monokai Sublime by [noformnocontent][] +- Railscasts by [Damien White][] +- Obsidian by [Alexander Marenin][] +- Docco by [Simon Madine][] +- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything) +- Foundation by [Dan Allen][] + +[noformnocontent]: http://nn.mit-license.org/ +[Damien White]: https://github.com/visoft +[Alexander Marenin]: https://github.com/ioncreature +[Simon Madine]: https://github.com/thingsinjars +[Ivan Sagalaev]: https://github.com/isagalaev + +Other notable changes: + +- Corrected many corner cases in CSS. +- Dropped Python 2 version of the build tool. +- Implemented building for the AMD format. +- Updated Rust keywords (thanks to [Dmitry Medvinsky][]). +- Literal regexes can now be used in language definitions. +- CoffeeScript highlighting is now significantly more robust and rich due to + input from [Cédric Néhémie][]. + +[Dmitry Medvinsky]: https://github.com/dmedvinsky +[Cédric Néhémie]: https://github.com/abe33 + + +## Version 7.3 + +- Since this version highlight.js no longer works in IE version 8 and older. + It's made it possible to reduce the library size and dramatically improve code + readability and made it easier to maintain. Time to go forward! + +- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and + Brainfuck (by [Evgeny Stepanischev][bolk]). + +- Improvements to existing languages: + + - interpreter prompt in Python (`>>>` and `...`) + - @-properties and classes in CoffeeScript + - E4X in JavaScript (by [Oleg Efimov][oe]) + - new keywords in Perl (by [Kirk Kimmel][kk]) + - big Ruby syntax update (by [Vasily Polovnyov][vast]) + - small fixes in Bash + +- Also Oleg Efimov did a great job of moving all the docs for language and style + developers and contributors from the old wiki under the source code in the + "docs" directory. Now these docs are nicely presented at + . + +[ng]: https://github.com/nathan11g +[dd]: https://github.com/drdrang +[bolk]: https://github.com/bolknote +[oe]: https://github.com/Sannis +[kk]: https://github.com/kimmel +[vast]: https://github.com/vast + + +## Version 7.2 + +A regular bug-fix release without any significant new features. Enjoy! + + +## Version 7.1 + +A Summer crop: + +- [Marc Fornos][mf] made the definition for Clojure along with the matching + style Rainbow (which, of course, works for other languages too). +- CoffeeScript support continues to improve getting support for regular + expressions. +- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the + [project by Chris Kempson][tm0]. +- Thanks to [Casey Duncun][cd] the library can now be built in the popular + [AMD format][amd]. +- And last but not least, we've got a fair number of correctness and consistency + fixes, including a pretty significant refactoring of Ruby. + +[mf]: https://github.com/mfornos +[tm]: http://jmblog.github.com/color-themes-for-highlightjs/ +[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme +[cd]: https://github.com/caseman +[amd]: http://requirejs.org/docs/whyamd.html + + +## Version 7.0 + +The reason for the new major version update is a global change of keyword syntax +which resulted in the library getting smaller once again. For example, the +hosted build is 2K less than at the previous version while supporting two new +languages. + +Notable changes: + +- The library now works not only in a browser but also with [node.js][]. It is + installable with `npm install highlight.js`. [API][] docs are available on our + wiki. + +- The new unique feature (apparently) among syntax highlighters is highlighting + *HTTP* headers and an arbitrary language in the request body. The most useful + languages here are *XML* and *JSON* both of which highlight.js does support. + Here's [the detailed post][p] about the feature. + +- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an + emulation of*XCode* IDE by [Angel Olloqui][ao]. + +- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc] + and *GLSL* by [Sergey Tikhomirov][st]. + +- *Nginx* syntax has become a million times smaller and more universal thanks to + remaking it in a more generic manner that doesn't require listing all the + directives in the known universe. + +- Function titles are now highlighted in *PHP*. + +- *Haskell* and *VHDL* were significantly reworked to be more rich and correct + by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik]. + +And last but not least, many bugs have been fixed around correctness and +language detection. + +Overall highlight.js currently supports 51 languages and 20 style themes. + +[node.js]: http://nodejs.org/ +[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api +[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/ +[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +[ao]: https://github.com/angelolloqui +[ar]: https://github.com/raleksandar +[jc]: https://github.com/jcheng5 +[st]: https://github.com/tikhomirov +[sr]: https://github.com/sourrust +[ik]: https://github.com/ikalnitsky + + +## Version 6.2 + +A lot of things happened in highlight.js since the last version! We've got nine +new contributors, the discussion group came alive, and the main branch on GitHub +now counts more than 350 followers. Here are most significant results coming +from all this activity: + +- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and + experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av], + [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis + Bardadym][db] and [John Crepezzi][jc]. + +- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of + another well-known highlighter Google Code Prettify by [Aahan Krish][ak]. + +- A vast number of [correctness fixes and code refactorings][log], mostly made + by [Oleg Efimov][oe] and [Evgeny Stepanischev][es]. + +[av]: https://github.com/vlasovskikh +[am]: https://github.com/myadzel +[dn]: https://github.com/dnagir +[oe]: https://github.com/Sannis +[db]: https://github.com/btd +[jc]: https://github.com/seejohnrun +[lm]: http://grigio.org/ +[ak]: https://github.com/geekpanth3r +[es]: https://github.com/bolknote +[log]: https://github.com/isagalaev/highlight.js/commits/ + + +## Version 6.1 — Solarized + +[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][] +style theme famous for being based on the intricate color theory to achieve +correct contrast and color perception. It is now available for highlight.js in +both variants — light and dark. + +This version also adds a new original style Arta. Its author pumbur maintains a +[heavily modified fork of highlight.js][pb] on GitHub. + +[jh]: https://github.com/sourrust +[solarized]: http://ethanschoonover.com/solarized +[pb]: https://github.com/pumbur/highlight.js + + +## Version 6.0 + +New major version of the highlighter has been built on a significantly +refactored syntax. Due to this it's even smaller than the previous one while +supporting more languages! + +New languages are: + +- Haskell by [Jeremy Hull][sourrust] +- Erlang in two varieties — module and REPL — made collectively by [Nikolay + Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov] +- Objective C by [Valerii Hiora][vhbit] +- Vala by [Antono Vasiljev][antono] +- Go by [Stephan Kountso][steplg] + +[sourrust]: https://github.com/sourrust +[desh]: http://desh.su/ +[arhibot]: https://github.com/arhibot +[ignatov]: https://github.com/ignatov +[vhbit]: https://github.com/vhbit +[antono]: https://github.com/antono +[steplg]: https://github.com/steplg + +Also this version is marginally faster and fixes a number of small long-standing +bugs. + +Developer overview of the new language syntax is available in a [blog post about +recent beta release][beta]. + +[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/ + +P.S. New version is not yet available on a Yandex' CDN, so for now you have to +download [your own copy][d]. + +[d]: /soft/highlight/en/download/ + + +## Version 5.14 + +Fixed bugs in HTML/XML detection and relevance introduced in previous +refactoring. + +Also test.html now shows the second best result of language detection by +relevance. + + +## Version 5.13 + +Past weekend began with a couple of simple additions for existing languages but +ended up in a big code refactoring bringing along nice improvements for language +developers. + +### For users + +- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard. +- Description of HTML has got new tags from [HTML 5][]. +- CSS-styles have been unified to use consistent padding and also have lost + pop-outs with names of detected languages. +- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake и VHDL. + +This makes total number of languages supported by highlight.js to reach 35. + +Bug fixes: + +- Custom classes on `
` tags are not being overridden anymore
+- More correct highlighting of code blocks inside non-`
` containers:
+  highlighter now doesn't insist on replacing them with its own container and
+  just replaces the contents.
+- Small fixes in browser compatibility and heuristics.
+
+[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
+[html 5]: http://en.wikipedia.org/wiki/HTML5
+[ik]: http://kalnitsky.org.ua/
+
+### For developers
+
+The most significant change is the ability to include language submodes right
+under `contains` instead of defining explicit named submodes in the main array:
+
+    contains: [
+      'string',
+      'number',
+      {begin: '\\n', end: hljs.IMMEDIATE_RE}
+    ]
+
+This is useful for auxiliary modes needed only in one place to define parsing.
+Note that such modes often don't have `className` and hence won't generate a
+separate `` in the resulting markup. This is similar in effect to
+`noMarkup: true`. All existing languages have been refactored accordingly.
+
+Test file test.html has at last become a real test. Now it not only puts the
+detected language name under the code snippet but also tests if it matches the
+expected one. Test summary is displayed right above all language snippets.
+
+
+## CDN
+
+Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
+[Link up][l]!
+
+[yandex]: http://yandex.com/
+[l]: http://softwaremaniacs.org/soft/highlight/en/download/
+
+
+## Version 5.10 — "Paris".
+
+Though I'm on a vacation in Paris, I decided to release a new version with a
+couple of small fixes:
+
+- Tomas Vitvar discovered that TAB replacement doesn't always work when used
+  with custom markup in code
+- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
+
+
+## Version 5.9
+
+A long-awaited version is finally released.
+
+New languages:
+
+- Andrew Fedorov made a definition for Lua
+- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
+  Nginx config
+- [Vladimir Moskva][vm] made a definition for TeX
+
+[pl]: http://kung-fu-tzu.ru/
+[vm]: http://fulc.ru/
+
+Fixes for existing languages:
+
+- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
+  [YARD][] inline documentation
+- the definition of SQL has become more solid and now it shouldn't be overly
+  greedy when it comes to language detection
+
+[ls]: http://gnuu.org/
+[yard]: http://yardoc.org/
+
+The highlighter has become more usable as a library allowing to do highlighting
+from initialization code of JS frameworks and in ajax methods (see.
+readme.eng.txt).
+
+Also this version drops support for the [WordPress][wp] plugin. Everyone is
+welcome to [pick up its maintenance][p] if needed.
+
+[wp]: http://wordpress.org/
+[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
+
+
+## Version 5.8
+
+- Jan Berkel has contributed a definition for Scala. +1 to hotness!
+- All CSS-styles are rewritten to work only inside `
` tags to avoid
+  conflicts with host site styles.
+
+
+## Version 5.7.
+
+Fixed escaping of quotes in VBScript strings.
+
+
+## Version 5.5
+
+This version brings a small change: now .ini-files allow digits, underscores and
+square brackets in key names.
+
+
+## Version 5.4
+
+Fixed small but upsetting bug in the packer which caused incorrect highlighting
+of explicitly specified languages. Thanks to Andrew Fedorov for precise
+diagnostics!
+
+
+## Version 5.3
+
+The version to fulfil old promises.
+
+The most significant change is that highlight.js now preserves custom user
+markup in code along with its own highlighting markup. This means that now it's
+possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
+[initial proposal][1] and for making a proof-of-concept patch.
+
+Also in this version:
+
+- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
+  support for CSS @-rules and Ruby symbols.
+- Yura Zaripov has sent two styles: Brown Paper and School Book.
+- Oleg Volchkov has sent a definition for [Parser 3][p3].
+
+[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
+[p3]: http://www.parser.ru/
+[vp]: http://vasily.polovnyov.ru/
+[vd]: http://dolzhenko.blogspot.com/
+
+
+## Version 5.2
+
+- at last it's possible to replace indentation TABs with something sensible (e.g. 2 or 4 spaces)
+- new keywords and built-ins for 1C by Sergey Baranov
+- a couple of small fixes to Apache highlighting
+
+
+## Version 5.1
+
+This is one of those nice version consisting entirely of new and shiny
+contributions!
+
+- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
+- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
+  original visual style for it is now available for all highlight.js languages
+  under the name "Magula".
+- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
+  languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
+  the matter.
+
+[vooon]: http://vehq.ru/about/
+[rukeba]: http://rukeba.com/
+[drake]: http://drakeguan.org/
+[ke]: http://k-evdokimenko.moikrug.ru/
+
+
+## Version 5.0
+
+The main change in the new major version of highlight.js is a mechanism for
+packing several languages along with the library itself into a single compressed
+file. Now sites using several languages will load considerably faster because
+the library won't dynamically include additional files while loading.
+
+Also this version fixes a long-standing bug with Javascript highlighting that
+couldn't distinguish between regular expressions and division operations.
+
+And as usually there were a couple of minor correctness fixes.
+
+Great thanks to all contributors! Keep using highlight.js.
+
+
+## Version 4.3
+
+This version comes with two contributions from [Jason Diamond][jd]:
+
+- language definition for C# (yes! it was a long-missed thing!)
+- Visual Studio-like highlighting style
+
+Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
+
+[jd]: http://jason.diamond.name/weblog/
+
+
+## Version 4.2
+
+The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
+somewhat experimental meaning that for highlighting "keywords" it doesn't use
+any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
+in parentheses wherever it makes sense. I'd like to ask people programming in
+Lisp to confirm if it's a good idea and send feedback to [the forum][f].
+
+Other changes:
+
+- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
+- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
+  test.html
+- comments now allowed inside Ruby function definition
+- [MEL][] language from [Shuen-Huei Guan][drake]
+- whitespace now allowed between `
` and ``
+- better auto-detection of C++ and PHP
+- HTML allows embedded VBScript (`<% .. %>`)
+
+[f]: http://softwaremaniacs.org/forum/highlightjs/
+[voldmar]: http://voldmar.ya.ru/
+[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
+[drake]: http://drakeguan.org/
+
+
+## Version 4.1
+
+Languages:
+
+- Bash from Vah
+- DOS bat-files from Alexander Makarov (Sam)
+- Diff files from Vasily Polovnyov
+- Ini files from myself though initial idea was from Sam
+
+Styles:
+
+- Zenburn from Vladimir Epifanov, this is an imitation of a
+  [well-known theme for Vim][zenburn].
+- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
+  just one color in only three gradations :-)
+
+In other news. [One small bug][bug] was fixed, built-in keywords were added for
+Python and C++ which improved auto-detection for the latter (it was shame that
+[my wife's blog][alenacpp] had issues with it from time to time). And lastly
+thanks go to Sam for getting rid of my stylistic comments in code that were
+getting in the way of [JSMin][].
+
+[zenburn]: http://en.wikipedia.org/wiki/Zenburn
+[alenacpp]: http://alenacpp.blogspot.com/
+[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
+[jsmin]: http://code.google.com/p/jsmin-php/
+
+
+## Version 4.0
+
+New major version is a result of vast refactoring and of many contributions.
+
+Visible new features:
+
+- Highlighting of embedded languages. Currently is implemented highlighting of
+  Javascript and CSS inside HTML.
+- Bundled 5 ready-made style themes!
+
+Invisible new features:
+
+- Highlight.js no longer pollutes global namespace. Only one object and one
+  function for backward compatibility.
+- Performance is further increased by about 15%.
+
+Changing of a major version number caused by a new format of language definition
+files. If you use some third-party language files they should be updated.
+
+
+## Version 3.5
+
+A very nice version in my opinion fixing a number of small bugs and slightly
+increased speed in a couple of corner cases. Thanks to everybody who reports
+bugs in he [forum][f] and by email!
+
+There is also a new language — XML. A custom XML formerly was detected as HTML
+and didn't highlight custom tags. In this version I tried to make custom XML to
+be detected and highlighted by its own rules. Which by the way include such
+things as CDATA sections and processing instructions (``).
+
+[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
+
+
+## Version 3.3
+
+[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
+File export.html contains a little program that shows and allows to copy and
+paste an HTML code generated by the highlighter for any code snippet. This can
+be useful in situations when one can't use the script itself on a site.
+
+
+[xonix]: http://xonixx.blogspot.com/
+
+
+## Version 3.2 consists completely of contributions:
+
+- Vladimir Gubarkov has described SmallTalk
+- Yuri Ivanov has described 1C
+- Peter Leonov has packaged the highlighter as a Firefox extension
+- Vladimir Ermakov has compiled a mod for phpBB
+
+Many thanks to you all!
+
+
+## Version 3.1
+
+Three new languages are available: Django templates, SQL and Axapta. The latter
+two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
+SQL definition but I'd never started it be it from the ground up :-)
+
+The engine itself has got a long awaited feature of grouping keywords
+("keyword", "built-in function", "literal"). No more hacks!
+
+[1]: http://roudakov.ru/
+
+
+## Version 3.0
+
+It is major mainly because now highlight.js has grown large and has become
+modular. Now when you pass it a list of languages to highlight it will
+dynamically load into a browser only those languages.
+
+Also:
+
+- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
+  RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
+  languages!
+- Heuristics for C++ and HTML got better.
+- I've implemented (at last) a correct handling of backslash escapes in C-like
+  languages.
+
+There is also a small backwards incompatible change in the new version. The
+function initHighlighting that was used to initialize highlighting instead of
+initHighlightingOnLoad a long time ago no longer works. If you by chance still
+use it — replace it with the new one.
+
+[RibKit]: http://ribkit.sourceforge.net/
+
+
+## Version 2.9
+
+Highlight.js is a parser, not just a couple of regular expressions. That said
+I'm glad to announce that in the new version 2.9 has support for:
+
+- in-string substitutions for Ruby -- `#{...}`
+- strings from from numeric symbol codes (like #XX) for Delphi
+
+
+## Version 2.8
+
+A maintenance release with more tuned heuristics. Fully backwards compatible.
+
+
+## Version 2.7
+
+- Nikita Ledyaev presents highlighting for VBScript, yay!
+- A couple of bugs with escaping in strings were fixed thanks to Mickle
+- Ongoing tuning of heuristics
+
+Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
+
+
+## Version 2.4
+
+- Peter Leonov provides another improved highlighting for Perl
+- Javascript gets a new kind of keywords — "literals". These are the words
+  "true", "false" and "null"
+
+Also highlight.js homepage now lists sites that use the library. Feel free to
+add your site by [dropping me a message][mail] until I find the time to build a
+submit form.
+
+[mail]: mailto:Maniac@SoftwareManiacs.Org
+
+
+## Version 2.3
+
+This version fixes IE breakage in previous version. My apologies to all who have
+already downloaded that one!
+
+
+## Version 2.2
+
+- added highlighting for Javascript
+- at last fixed parsing of Delphi's escaped apostrophes in strings
+- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
+  Perl
+
+
+## Version 2.0
+
+- Ruby support by [Anton Kovalyov][ak]
+- speed increased by orders of magnitude due to new way of parsing
+- this same way allows now correct highlighting of keywords in some tricky
+  places (like keyword "End" at the end of Delphi classes)
+
+[ak]: http://anton.kovalyov.net/
+
+
+## Version 1.0
+
+Version 1.0 of javascript syntax highlighter is released!
+
+It's the first version available with English description. Feel free to post
+your comments and question to [highlight.js forum][forum]. And don't be afraid
+if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
+
+[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
new file mode 100644
index 00000000..422deb73
--- /dev/null
+++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of highlight.js nor the names of its contributors 
+      may be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
new file mode 100644
index 00000000..be85f6ad
--- /dev/null
+++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
@@ -0,0 +1,171 @@
+# Highlight.js
+
+Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах,
+форумах и вообще на любых веб-страницах. Пользоваться им очень просто,
+потому что работает он автоматически: сам находит блоки кода, сам
+определяет язык, сам подсвечивает.
+
+Автоопределением языка можно управлять, когда оно не справляется само (см.
+дальше "Эвристика").
+
+
+## Простое использование
+
+Подключите библиотеку и стиль на страницу и повесть вызов подсветки на
+загрузку страницы:
+
+```html
+
+
+
+```
+
+Весь код на странице, обрамлённый в теги `
 .. 
` +будет автоматически подсвечен. Если вы используете другие теги или хотите +подсвечивать блоки кода динамически, читайте "Инициализацию вручную" ниже. + +- Вы можете скачать собственную версию "highlight.pack.js" или сослаться + на захостенный файл, как описано на странице загрузки: + + +- Стилевые темы можно найти в загруженном архиве или также использовать + захостенные. Чтобы сделать собственный стиль для своего сайта, вам + будет полезен [CSS classes reference][cr], который тоже есть в архиве. + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html + + +## node.js + +Highlight.js можно использовать в node.js. Библиотеку со всеми возможными языками можно +установить с NPM: + + npm install highlight.js + +Также её можно собрать из исходников с только теми языками, которые нужны: + + python3 tools/build.py -tnode lang1 lang2 .. + +Использование библиотеки: + +```javascript +var hljs = require('highlight.js'); + +// Если вы знаете язык +hljs.highlight(lang, code).value; + +// Автоопределение языка +hljs.highlightAuto(code).value; +``` + + +## AMD + +Highlight.js можно использовать с загрузчиком AMD-модулей. Для этого его +нужно собрать из исходников следующей командой: + +```bash +$ python3 tools/build.py -tamd lang1 lang2 .. +``` + +Она создаст файл `build/highlight.pack.js`, который является загружаемым +AMD-модулем и содержит все выбранные при сборке языки. Используется он так: + +```javascript +require(["highlight.js/build/highlight.pack"], function(hljs){ + + // Если вы знаете язык + hljs.highlight(lang, code).value; + + // Автоопределение языка + hljs.highlightAuto(code).value; +}); +``` + + +## Замена TABов + +Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на +фиксированное количество пробелов или на отдельный ``, чтобы задать ему +какой-нибудь специальный стиль: + +```html + +``` + + +## Инициализация вручную + +Если вы используете другие теги для блоков кода, вы можете инициализировать их +явно с помощью функции `highlightBlock(code)`. Она принимает DOM-элемент с +текстом расцвечиваемого кода и опционально - строчку для замены символов TAB. + +Например с использованием jQuery код инициализации может выглядеть так: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); +}); +``` + +`highlightBlock` можно также использовать, чтобы подсветить блоки кода, +добавленные на страницу динамически. Только убедитесь, что вы не делаете этого +повторно для уже раскрашенных блоков. + +Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не +`
`), включите опцию `useBR`:
+
+```javascript
+hljs.configure({useBR: true});
+$('div.code').each(function(i, e) {hljs.highlightBlock(e)});
+```
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу ``:
+
+```html
+
...
+``` + +Можно использовать рекомендованные в HTML5 названия классов: +"language-html", "language-php". Также можно назначать классы на элемент +`
`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+```html
+
...
+``` + + +## Экспорт + +В файле export.html находится небольшая программка, которая показывает и дает +скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода. +Это может понадобится например на сайте, на котором нельзя подключить сам скрипт +highlight.js. + + +## Координаты + +- Версия: 8.0 +- URL: http://highlightjs.org/ + +Лицензионное соглашение читайте в файле LICENSE. +Список авторов и соавторов читайте в файле AUTHORS.ru.txt diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js new file mode 100644 index 00000000..627f79e2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js @@ -0,0 +1 @@ +var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBLCLM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,i:/[:"<>]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{k:d,l:c,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css new file mode 100644 index 00000000..c2a55bbe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css @@ -0,0 +1,160 @@ +/* +Date: 17.V.2011 +Author: pumbur +*/ + +.hljs +{ + display: block; padding: 0.5em; + background: #222; +} + +.profile .hljs-header *, +.ini .hljs-title, +.nginx .hljs-title +{ + color: #fff; +} + +.hljs-comment, +.hljs-javadoc, +.hljs-preprocessor, +.hljs-preprocessor .hljs-title, +.hljs-pragma, +.hljs-shebang, +.profile .hljs-summary, +.diff, +.hljs-pi, +.hljs-doctype, +.hljs-tag, +.hljs-template_comment, +.css .hljs-rules, +.tex .hljs-special +{ + color: #444; +} + +.hljs-string, +.hljs-symbol, +.diff .hljs-change, +.hljs-regexp, +.xml .hljs-attribute, +.smalltalk .hljs-char, +.xml .hljs-value, +.ini .hljs-value, +.clojure .hljs-attribute, +.coffeescript .hljs-attribute +{ + color: #ffcc33; +} + +.hljs-number, +.hljs-addition +{ + color: #00cc66; +} + +.hljs-built_in, +.hljs-literal, +.vhdl .hljs-typename, +.go .hljs-constant, +.go .hljs-typename, +.ini .hljs-keyword, +.lua .hljs-title, +.perl .hljs-variable, +.php .hljs-variable, +.mel .hljs-variable, +.django .hljs-variable, +.css .funtion, +.smalltalk .method, +.hljs-hexcolor, +.hljs-important, +.hljs-flow, +.hljs-inheritance, +.parser3 .hljs-variable +{ + color: #32AAEE; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.css .hljs-tag, +.css .hljs-class, +.css .hljs-id, +.css .hljs-pseudo, +.css .hljs-attr_selector, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-winutils, +.tex .hljs-command, +.hljs-request, +.hljs-status +{ + color: #6644aa; +} + +.hljs-title, +.ruby .hljs-constant, +.vala .hljs-constant, +.hljs-parent, +.hljs-deletion, +.hljs-template_tag, +.css .hljs-keyword, +.objectivec .hljs-class .hljs-id, +.smalltalk .hljs-class, +.lisp .hljs-keyword, +.apache .hljs-tag, +.nginx .hljs-variable, +.hljs-envvar, +.bash .hljs-variable, +.go .hljs-built_in, +.vbscript .hljs-built_in, +.lua .hljs-built_in, +.rsl .hljs-built_in, +.tail, +.avrasm .hljs-label, +.tex .hljs-formula, +.tex .hljs-formula * +{ + color: #bb1166; +} + +.hljs-yardoctag, +.hljs-phpdoc, +.profile .hljs-header, +.ini .hljs-title, +.apache .hljs-tag, +.parser3 .hljs-title +{ + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata +{ + opacity: 0.6; +} + +.hljs, +.javascript, +.css, +.xml, +.hljs-subst, +.diff .hljs-chunk, +.css .hljs-value, +.css .hljs-attribute, +.lisp .hljs-string, +.lisp .hljs-number, +.tail .hljs-params, +.hljs-container, +.haskell *, +.erlang *, +.erlang_repl * +{ + color: #aaa; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css new file mode 100644 index 00000000..89c5fe2f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css @@ -0,0 +1,50 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-filter .hljs-argument, +.hljs-addition, +.hljs-change, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #888; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-shebang, +.hljs-doctype, +.hljs-pi, +.hljs-javadoc, +.hljs-deletion, +.apache .hljs-sqbracket { + color: #CCC; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.ini .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.http .hljs-title, +.nginx .hljs-title, +.css .hljs-tag, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css new file mode 100644 index 00000000..4cfc77ca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Dark Comment */ +.hljs-comment, +.hljs-title { + color: #999580; +} + +/* Atelier Dune Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Dark Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Dark Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #292824; + color: #a6a28c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css new file mode 100644 index 00000000..3501bf82 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Light Comment */ +.hljs-comment, +.hljs-title { + color: #7d7a68; +} + +/* Atelier Dune Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Light Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #fefbec; + color: #6e6b5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css new file mode 100644 index 00000000..9c26b7be --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9c9491; +} + +/* Atelier Forest Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Dark Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #2c2421; + color: #a8a19f; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css new file mode 100644 index 00000000..3de3dadb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Light Comment */ +.hljs-comment, +.hljs-title { + color: #766e6b; +} + +/* Atelier Forest Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Light Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #f1efee; + color: #68615e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css new file mode 100644 index 00000000..df1446c1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9e8f9e; +} + +/* Atelier Heath Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Dark Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #292329; + color: #ab9bab; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css new file mode 100644 index 00000000..a737a082 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Light Comment */ +.hljs-comment, +.hljs-title { + color: #776977; +} + +/* Atelier Heath Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Light Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #f7f3f7; + color: #695d69; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css new file mode 100644 index 00000000..43c5b4ea --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #7195a8; +} + +/* Atelier Lakeside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Dark Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #1f292e; + color: #7ea2b4; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css new file mode 100644 index 00000000..5a782694 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Light Comment */ +.hljs-comment, +.hljs-title { + color: #5a7b8c; +} + +/* Atelier Lakeside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Light Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #ebf8ff; + color: #516d7b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css new file mode 100644 index 00000000..3bea9b36 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #809980; +} + +/* Atelier Seaside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Dark Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #242924; + color: #8ca68c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css new file mode 100644 index 00000000..e86c44d6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Light Comment */ +.hljs-comment, +.hljs-title { + color: #687d68; +} + +/* Atelier Seaside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Light Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #f0fff0; + color: #5e6e5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css new file mode 100644 index 00000000..0838fb8f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css @@ -0,0 +1,105 @@ +/* + +Brown Paper style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 0.5em; + background:#b7a68e url(./brown_papersq.png); +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-request, +.hljs-status { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #363C69; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-number { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #802022; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.8; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png new file mode 100644 index 00000000..3813903d Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css new file mode 100644 index 00000000..b9426c37 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css @@ -0,0 +1,105 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #444; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: white; +} + +.hljs, +.hljs-subst { + color: #DDD; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.ini .hljs-title, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.coffeescript .hljs-attribute { + color: #D88; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #777; +} + +.hljs-keyword, +.hljs-literal, +.hljs-title, +.css .hljs-id, +.hljs-phpdoc, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css new file mode 100644 index 00000000..ae9af353 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css @@ -0,0 +1,153 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #F0F0F0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88F +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css new file mode 100644 index 00000000..5026d6cf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css @@ -0,0 +1,132 @@ +/* +Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #f8f8ff +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #408080; + font-style: italic +} + +.hljs-keyword, +.assignment, +.hljs-literal, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + color: #954121; +} + +.hljs-number, +.hljs-hexcolor { + color: #40a070 +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #219161; +} + +.hljs-title, +.hljs-id { + color: #19469D; +} +.hljs-params { + color: #00F; +} + +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-label, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.instancevar, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #B68 +} + +.hljs-class { + color: #458; + font-weight: bold +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-keyword, +.ruby .hljs-symbol .keymethods, +.lisp .hljs-keyword, +.tex .hljs-special, +.input_number { + color: #990073 +} + +.builtin, +.constructor, +.hljs-built_in, +.lisp .hljs-title { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} + +.tex .hljs-formula { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css new file mode 100644 index 00000000..be505362 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css @@ -0,0 +1,113 @@ +/* + +FAR Style (c) MajestiC + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000080; +} + +.hljs, +.hljs-subst { + color: #0FF; +} + +.hljs-string, +.ruby .hljs-string, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.css .hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.clojure .hljs-title, +.coffeescript .hljs-attribute { + color: #FF0; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.hljs-winutils, +.hljs-flow, +.hljs-change, +.hljs-envvar, +.bash .hljs-variable, +.tex .hljs-special, +.clojure .hljs-built_in { + color: #FFF; +} + +.hljs-comment, +.hljs-phpdoc, +.hljs-javadoc, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-deletion, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.clojure .hljs-attribute { + color: #0F0; +} + +.python .hljs-decorator, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.xml .hljs-pi, +.diff .hljs-header, +.hljs-chunk, +.hljs-shebang, +.nginx .hljs-built_in, +.hljs-prompt { + color: #008080; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css new file mode 100644 index 00000000..0710a10f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css @@ -0,0 +1,133 @@ +/* +Description: Foundation 4 docs style for highlight.js +Author: Dan Allen +Website: http://foundation.zurb.com/docs/ +Version: 1.0 +Date: 2013-04-02 +*/ + +.hljs { + display: block; padding: 0.5em; + background: #eee; +} + +.hljs-header, +.hljs-decorator, +.hljs-annotation { + color: #000077; +} + +.hljs-horizontal_rule, +.hljs-link_url, +.hljs-emphasis, +.hljs-attribute { + color: #070; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-link_label, +.hljs-strong, +.hljs-value, +.hljs-string, +.scss .hljs-value .hljs-string { + color: #d14; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-blockquote, +.hljs-comment { + color: #998; + font-style: italic; +} + +.asciidoc .hljs-title, +.hljs-function .hljs-title { + color: #900; +} + +.hljs-class { + color: #458; +} + +.hljs-id, +.hljs-pseudo, +.hljs-constant, +.hljs-hexcolor { + color: teal; +} + +.hljs-variable { + color: #336699; +} + +.hljs-bullet, +.hljs-javadoc { + color: #997700; +} + +.hljs-pi, +.hljs-doctype { + color: #3344bb; +} + +.hljs-code, +.hljs-number { + color: #099; +} + +.hljs-important { + color: #f00; +} + +.smartquote, +.hljs-label { + color: #970; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #579; +} + +.hljs-reserved, +.hljs-keyword, +.scss .hljs-value { + color: #000; +} + +.hljs-regexp { + background-color: #fff0ff; + color: #880088; +} + +.hljs-symbol { + color: #990073; +} + +.hljs-symbol .hljs-string { + color: #a60; +} + +.hljs-tag { + color: #007700; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #088; +} + +.hljs-at_rule .hljs-preprocessor { + color: #808; +} + +.scss .hljs-tag, +.scss .hljs-attribute { + color: #339; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css new file mode 100644 index 00000000..5517086b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css @@ -0,0 +1,125 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #333; + background: #f8f8f8 +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14 +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #009926 +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073 +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css new file mode 100644 index 00000000..5cc49b68 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css @@ -0,0 +1,147 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #800; +} + +.hljs-keyword, +.method, +.hljs-list .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp, +.coffeescript .hljs-attribute { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-literal, +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-attribute { + color: #066; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.hljs-variable, +.clojure .hljs-title { + color: #606; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #444; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css new file mode 100644 index 00000000..3e810c5f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css @@ -0,0 +1,122 @@ +/* + +Intellij Idea-like styling (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.diff .hljs-header { + color: #808080; + font-style: italic; +} + +.hljs-annotation, +.hljs-decorator, +.hljs-preprocessor, +.hljs-pragma, +.hljs-doctype, +.hljs-pi, +.hljs-chunk, +.hljs-shebang, +.apache .hljs-cbracket, +.hljs-prompt, +.http .hljs-title { + color: #808000; +} + +.hljs-tag, +.hljs-pi { + background: #efefef; +} + +.hljs-tag .hljs-title, +.hljs-id, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-literal, +.hljs-keyword, +.hljs-hexcolor, +.css .hljs-function, +.ini .hljs-title, +.css .hljs-class, +.hljs-list .hljs-title, +.clojure .hljs-title, +.nginx .hljs-title, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-rules .hljs-keyword, +.hljs-number, +.hljs-date, +.hljs-regexp, +.tex .hljs-special { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp { + font-weight: normal; +} + +.hljs-string, +.hljs-value, +.hljs-filter .hljs-argument, +.css .hljs-function .hljs-params, +.apache .hljs-tag { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-char, +.tex .hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-phpdoc, +.hljs-yardoctag, +.hljs-javadoctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-envvar, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.diff .hljs-change { + background: #bccff9; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css new file mode 100644 index 00000000..66f7c193 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css @@ -0,0 +1,105 @@ +/* + IR_Black style (c) Vasily Mikhailitchenko +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-shebang, +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #7c7c7c; +} + +.hljs-keyword, +.hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #96CBFE; +} + +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title, +.nginx .hljs-title { + color: #FFFFB6; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.coffeescript .hljs-attribute { + color: #A8FF60; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-decorator, +.tex .hljs-special, +.haskell .hljs-type, +.hljs-constant, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.nginx .hljs-built_in { + color: #FFFFB6; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.hljs-variable, +.vbscript, +.hljs-literal { + color: #C6C5FE; +} + +.css .hljs-tag { + color: #96CBFE; +} + +.css .hljs-rules .hljs-property, +.css .hljs-id { + color: #FFFFB6; +} + +.css .hljs-class { + color: #FFF; +} + +.hljs-hexcolor { + color: #C6C5FE; +} + +.hljs-number { + color:#FF73FD; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css new file mode 100644 index 00000000..bc69a377 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css @@ -0,0 +1,122 @@ +/* +Description: Magula style for highligh.js +Author: Ruslan Keba +Website: http://rukeba.com/ +Version: 1.0 +Date: 2009-01-03 +Music: Aphex Twin / Xtal +*/ + +.hljs { + display: block; padding: 0.5em; + background-color: #f4f4f4; +} + +.hljs, +.hljs-subst, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-cbracket, +.coffeescript .hljs-attribute { + color: #050; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk { + color: #777; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.hljs-change, +.tex .hljs-special { + color: #800; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.hljs-prompt, +.clojure .hljs-attribute { + color: #00e; +} + +.hljs-keyword, +.hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.xml .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: navy; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +/* --- */ +.apache .hljs-tag { + font-weight: bold; + color: blue; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css new file mode 100644 index 00000000..bfe2495b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css @@ -0,0 +1,62 @@ +/* + Five-color theme from a single blue hue. +*/ +.hljs { + display: block; padding: 0.5em; + background: #EAEEF3; color: #00193A; +} + +.hljs-keyword, +.hljs-title, +.hljs-important, +.hljs-request, +.hljs-header, +.hljs-javadoctag { + font-weight: bold; +} + +.hljs-comment, +.hljs-chunk, +.hljs-template_comment { + color: #738191; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-built_in, +.hljs-literal, +.hljs-filename, +.hljs-value, +.hljs-addition, +.hljs-tag, +.hljs-argument, +.hljs-link_label, +.hljs-blockquote, +.hljs-header { + color: #0048AB; +} + +.hljs-decorator, +.hljs-prompt, +.hljs-yardoctag, +.hljs-subst, +.hljs-symbol, +.hljs-doctype, +.hljs-regexp, +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-attribute, +.hljs-attr_selector, +.hljs-javadoc, +.hljs-xmlDocTag, +.hljs-deletion, +.hljs-shebang, +.hljs-string .hljs-variable, +.hljs-link_url, +.hljs-bullet, +.hljs-sqbracket, +.hljs-phony { + color: #4C81C9; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css new file mode 100644 index 00000000..34cd4f9e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css @@ -0,0 +1,127 @@ +/* +Monokai style - ported by Luigi Maselli - http://grigio.org +*/ + +.hljs { + display: block; padding: 0.5em; + background: #272822; +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-keyword, +.hljs-literal, +.hljs-strong, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: #F92672; +} + +.hljs { + color: #DDD; +} + +.hljs .hljs-constant, +.asciidoc .hljs-code { + color: #66D9EF; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-link_label, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-value, +.hljs-regexp { + color: #BF79DB; +} + +.hljs-link_url, +.hljs-tag .hljs-value, +.hljs-string, +.hljs-bullet, +.hljs-subst, +.hljs-title, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #A6E22E; +} + +.hljs-comment, +.java .hljs-annotation, +.smartquote, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715E; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css new file mode 100644 index 00000000..2d216333 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css @@ -0,0 +1,149 @@ +/* + +Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #23241f; +} + +.hljs, +.hljs-tag, +.css .hljs-rules, +.css .hljs-value, +.css .hljs-function +.hljs-preprocessor, +.hljs-pragma { + color: #f8f8f2; +} + +.hljs-strongemphasis, +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-blockquote, +.hljs-horizontal_rule, +.hljs-number, +.hljs-regexp, +.alias .hljs-keyword, +.hljs-literal, +.hljs-hexcolor { + color: #ae81ff; +} + +.hljs-tag .hljs-value, +.hljs-code, +.hljs-title, +.css .hljs-class, +.hljs-class .hljs-title:last-child { + color: #a6e22e; +} + +.hljs-link_url { + font-size: 80%; +} + +.hljs-strong, +.hljs-strongemphasis { + font-weight: bold; +} + +.hljs-emphasis, +.hljs-strongemphasis, +.hljs-class .hljs-title:last-child { + font-style: italic; +} + +.hljs-keyword, +.hljs-function, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-header, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-tag .hljs-title, +.hljs-value, +.alias .hljs-keyword:first-child, +.css .hljs-tag, +.css .unit, +.css .hljs-important { + color: #F92672; +} + +.hljs-function .hljs-keyword, +.hljs-class .hljs-keyword:first-child, +.hljs-constant, +.css .hljs-attribute { + color: #66d9ef; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #f8f8f2; +} + +.hljs-string, +.css .hljs-id, +.hljs-subst, +.haskell .hljs-type, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.hljs-link_label, +.hljs-link_url { + color: #e6db74; +} + +.hljs-comment, +.hljs-javadoc, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715e; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata, +.xml .php, +.php .xml { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css new file mode 100644 index 00000000..68259fc8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css @@ -0,0 +1,154 @@ +/** + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +.hljs { + display: block; padding: 0.5em; + background: #282B2E; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.css .hljs-id, +.tex .hljs-special { + color: #93C763; +} + +.hljs-number { + color: #FFCD22; +} + +.hljs { + color: #E0E2E4; +} + +.css .hljs-tag, +.css .hljs-pseudo { + color: #D0D2B5; +} + +.hljs-attribute, +.hljs .hljs-constant { + color: #668BB0; +} + +.xml .hljs-attribute { + color: #B3B689; +} + +.xml .hljs-tag .hljs-value { + color: #E8E2B7; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-class, +.hljs-hexcolor { + color: #93C763; +} + +.hljs-regexp { + color: #D39745; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #A082BD; +} + +.hljs-doctype { + color: #557182; +} + +.hljs-link_url, +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #8CBBAD; +} + +.hljs-string { + color: #EC7600; +} + +.hljs-comment, +.java .hljs-annotation, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #818E96; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-at_rule .hljs-keyword, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css new file mode 100644 index 00000000..55d02f1d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css @@ -0,0 +1,93 @@ +/* + Paraíso (dark) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #8d8687; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #2f1e2e; + color: #a39e9b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css new file mode 100644 index 00000000..d29ee1b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css @@ -0,0 +1,93 @@ +/* + Paraíso (light) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #776e71; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #e7e9db; + color: #4f424c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css new file mode 100644 index 00000000..86307929 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css @@ -0,0 +1,106 @@ +/* + +Pojoaque Style by Jason Tate +http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +Based on Solarized Style from http://ethanschoonover.com/solarized + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #DCCF8F; + background: url(./pojoaque.jpg) repeat scroll left top #181914; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; + font-style: italic; +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.method, +.hljs-addition, +.css .hljs-tag, +.clojure .hljs-title, +.nginx .hljs-title { + color: #B64926; +} + +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #468966; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-identifier, +.hljs-id { + color: #FFB03B; +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type { + color: #b58900; +} + +.css .hljs-attribute { + color: #b89859; +} + +.css .hljs-number, +.css .hljs-hexcolor { + color: #DCCF8F; +} + +.css .hljs-class { + color: #d3a60c; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #cb4b16; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg new file mode 100644 index 00000000..9c07d4ab Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css new file mode 100644 index 00000000..83d0cde5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css @@ -0,0 +1,182 @@ +/* + +Railscasts-like style (c) Visoft, Inc. (Damien White) + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #232323; + color: #E6E1DC; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-shebang { + color: #BC9458; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.method, +.hljs-list .hljs-title { + color: #C26230; +} + +.hljs-string, +.hljs-number, +.hljs-regexp, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.markdown .hljs-link_label { + color: #A5C261; +} + +.hljs-subst { + color: #519F50; +} + +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-tag .hljs-title, +.hljs-doctype, +.hljs-sub .hljs-identifier, +.hljs-pi, +.input_number { + color: #E8BF6A; +} + +.hljs-identifier { + color: #D0D0FF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: none; +} + +.hljs-constant { + color: #DA4939; +} + + +.hljs-symbol, +.hljs-built_in, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-identifier, +.markdown .hljs-link_url, +.hljs-attribute { + color: #6D9CBE; +} + +.markdown .hljs-link_url { + text-decoration: underline; +} + + + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #D0D0FF; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #8996A8 !important; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #A5C261; +} + +.hljs-title, +.hljs-decorator, +.css .hljs-function { + color: #FFC66D; +} + +.diff .hljs-header, +.hljs-chunk { + background-color: #2F33AB; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; + display: inline-block; + width: 100%; +} + +.hljs-addition { + background-color: #144212; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css new file mode 100644 index 00000000..08142466 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css @@ -0,0 +1,112 @@ +/* + +Style with support for rainbow parens + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #474949; color: #D1D9E1; +} + + +.hljs-body, +.hljs-collection { + color: #D1D9E1; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #969896; + font-style: italic; +} + +.hljs-keyword, +.clojure .hljs-attribute, +.hljs-winutils, +.javascript .hljs-title, +.hljs-addition, +.css .hljs-tag { + color: #cc99cc; +} + +.hljs-number { color: #f99157; } + +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #8abeb7; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.hljs-identifier +{ + color: #b5bd68; +} + +.hljs-class .hljs-keyword +{ + color: #f2777a; +} + +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-label, +.hljs-id, +.lisp .hljs-title, +.clojure .hljs-title .hljs-built_in { + color: #ffcc66; +} + +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword, +.clojure .hljs-title .hljs-built_in { + font-weight: bold; +} + +.hljs-attribute, +.clojure .hljs-title { + color: #81a2be; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #f99157; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css new file mode 100644 index 00000000..a36e8362 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css @@ -0,0 +1,113 @@ +/* + +School Book style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 15px 0.5em 0.5em 30px; + font-size: 11px !important; + line-height:16px !important; +} + +pre{ + background:#f6f6ae url(./school_book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #3E5915; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket { + color: #E60415; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png new file mode 100644 index 00000000..956e9790 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css new file mode 100644 index 00000000..970d5f81 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #002b36; + color: #839496; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css new file mode 100644 index 00000000..8e1f4365 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #93a1a1; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css new file mode 100644 index 00000000..8816520c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css @@ -0,0 +1,160 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #E28964; +} + +.hljs-function .hljs-keyword, +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title { + color: #99CF50; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #65B042; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.hljs-shebang, +.hljs-prompt { + color: #89BDFF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: underline; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number { + color: #3387CC; +} + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #3E87E3; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #8996A8; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #DD7B3B; +} + +.css .hljs-function { + color: #DAD085; +} + +.diff .hljs-header, +.hljs-chunk, +.tex .hljs-formula { + background-color: #0E2231; + color: #F8F8F8; + font-style: italic; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; +} + +.hljs-addition { + background-color: #253B22; + color: #F8F8F8; +} + +.hljs-deletion { + background-color: #420E09; + color: #F8F8F8; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css new file mode 100644 index 00000000..e63ab3de --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Blue Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #7285b7; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ff9da4; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #ffc58f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffeead; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #d1f1a9; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #99ffff; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #bbdaff; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ebbbff; +} + +.hljs { + display: block; + background: #002451; + color: white; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css new file mode 100644 index 00000000..3bbf367d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Bright Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d54e53; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #e78c45; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #e7c547; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b9ca4a; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #70c0b1; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #7aa6da; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #c397d8; +} + +.hljs { + display: block; + background: black; + color: #eaeaea; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css new file mode 100644 index 00000000..b8de0dbf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Eighties Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #999999; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f2777a; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99157; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffcc66; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #99cc99; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #66cccc; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6699cc; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #cc99cc; +} + +.hljs { + display: block; + background: #2d2d2d; + color: #cccccc; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css new file mode 100644 index 00000000..54ceb585 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css new file mode 100644 index 00000000..a81a2e85 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css @@ -0,0 +1,90 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #8e908c; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #c82829; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f5871f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #eab700; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #718c00; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #3e999f; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #4271ae; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #8959a8; +} + +.hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css new file mode 100644 index 00000000..5ebf4541 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css @@ -0,0 +1,89 @@ +/* + +Visual Studio-like style based on original C# coloring by Jason Diamond + +*/ +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.apache .hljs-cbracket { + color: #008000; +} + +.hljs-keyword, +.hljs-id, +.hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.xml .hljs-tag, +.xml .hljs-tag .hljs-value { + color: #00f; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.apache .hljs-tag, +.hljs-date, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #a31515; +} + +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.hljs-preprocessor, +.hljs-pragma, +.userType, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-special, +.hljs-prompt { + color: #2b91af; +} + +.hljs-phpdoc, +.hljs-javadoc, +.hljs-xmlDocTag { + color: #808080; +} + +.vhdl .hljs-typename { font-weight: bold; } +.vhdl .hljs-string { color: #666666; } +.vhdl .hljs-literal { color: #a31515; } +.vhdl .hljs-attribute { color: #00B0E8; } + +.xml .hljs-attribute { color: #f00; } diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css new file mode 100644 index 00000000..8d54da72 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css @@ -0,0 +1,158 @@ +/* + +XCode style (c) Angel Garcia + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #fff; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #006a00; +} + +.hljs-keyword, +.hljs-literal, +.nginx .hljs-title { + color: #aa0d91; +} +.method, +.hljs-list .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string { + color: #c41a16; +} +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-title, +.clojure .hljs-built_in, +.hljs-function .hljs-title, +.coffeescript .hljs-attribute { + color: #1c00cf; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.clojure .hljs-attribute { + color: #5c2699; +} + +.hljs-variable { + color: #3f6e74; +} +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #643820; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} + +.method .hljs-id { + color: #000; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css new file mode 100644 index 00000000..3e6a6871 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css @@ -0,0 +1,116 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #3F3F3F; + color: #DCDCDC; +} + +.hljs-keyword, +.hljs-tag, +.css .hljs-class, +.css .hljs-id, +.lisp .hljs-title, +.nginx .hljs-title, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #E3CEAB; +} + +.django .hljs-template_tag, +.django .hljs-variable, +.django .hljs-filter .hljs-argument { + color: #DCDCDC; +} + +.hljs-number, +.hljs-date { + color: #8CD0D3; +} + +.dos .hljs-envvar, +.dos .hljs-stream, +.hljs-variable, +.apache .hljs-sqbracket { + color: #EFDCBC; +} + +.dos .hljs-flow, +.diff .hljs-change, +.python .exception, +.python .hljs-built_in, +.hljs-literal, +.tex .hljs-special { + color: #EFEFAF; +} + +.diff .hljs-chunk, +.hljs-subst { + color: #8F8F8F; +} + +.dos .hljs-keyword, +.python .hljs-decorator, +.hljs-title, +.haskell .hljs-type, +.diff .hljs-header, +.ruby .hljs-class .hljs-parent, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.hljs-prompt { + color: #efef8f; +} + +.dos .hljs-winutils, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-string { + color: #DCA3A3; +} + +.diff .hljs-deletion, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.sql .hljs-aggregate, +.hljs-javadoc, +.smalltalk .hljs-class, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.css .hljs-rules .hljs-value, +.hljs-attr_selector, +.hljs-pseudo, +.apache .hljs-cbracket, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #CC9393; +} + +.hljs-shebang, +.diff .hljs-addition, +.hljs-comment, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype { + color: #7F9F7F; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/codesnippet/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/plugin.js new file mode 100644 index 00000000..7301255b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/codesnippet/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){CKEDITOR.tools.extend(this,a);this.queue=[];this.init?this.init(CKEDITOR.tools.bind(function(){for(var a;a=this.queue.pop();)a.call(this);this.ready=!0},this)):this.ready=!0}function l(a){var b=a.config.codeSnippet_codeClass,c=/\r?\n/g,h=new CKEDITOR.dom.element("textarea");a.widgets.add("codeSnippet",{allowedContent:"pre; code(language-*)",requiredContent:"pre",styleableElements:"pre",template:'
',dialog:"codeSnippet",pathName:a.lang.codesnippet.pathName, +mask:!0,parts:{pre:"pre",code:"code"},highlight:function(){var e=this,f=this.data,b=function(a){e.parts.code.setHtml(k?a:a.replace(c,"
"))};b(CKEDITOR.tools.htmlEncode(f.code));a._.codesnippet.highlighter.highlight(f.code,f.lang,function(e){a.fire("lockSnapshot");b(e);a.fire("unlockSnapshot")})},data:function(){var a=this.data,b=this.oldData;a.code&&this.parts.code.setHtml(CKEDITOR.tools.htmlEncode(a.code));b&&a.lang!=b.lang&&this.parts.code.removeClass("language-"+b.lang);a.lang&&(this.parts.code.addClass("language-"+ +a.lang),this.highlight());this.oldData=CKEDITOR.tools.copy(a)},upcast:function(e,f){if("pre"==e.name){for(var c=[],d=e.children,i,j=d.length-1;0<=j;j--)i=d[j],(i.type!=CKEDITOR.NODE_TEXT||!i.value.match(m))&&c.push(i);var g;if(!(1!=c.length||"code"!=(g=c[0]).name))if(!(1!=g.children.length||g.children[0].type!=CKEDITOR.NODE_TEXT)){if(c=a._.codesnippet.langsRegex.exec(g.attributes["class"]))f.lang=c[1];h.setHtml(g.getHtml());f.code=h.getValue();g.addClass(b);return e}}},downcast:function(a){var c= +a.getFirst("code");c.children.length=0;c.removeClass(b);c.add(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.code)));return a}});var m=/^[\s\n\r]*$/}var k=!CKEDITOR.env.ie||8
',f.auto,'
');for(d=0;d");var e=i[d].split("/"),l=e[0],n=e[1]||l;e[1]||(l="#"+l.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));e=c.lang.colorbutton.colors[n]||n;h.push('')}k&&h.push('");h.push("
',f.more,"
");return h.join("")}function p(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var j=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(o("TextColor","fore",f.textColorTitle,10),o("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF"; +CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}}; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js new file mode 100644 index 00000000..d91dcc65 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("colordialog",function(t){function n(){f.getById(o).removeStyle("background-color");p.getContentElement("picker","selectedColor").setValue("");j&&j.removeAttribute("aria-selected");j=null}function u(a){var a=a.data.getTarget(),b;if("td"==a.getName()&&(b=a.getChild(0).getHtml()))j=a,j.setAttribute("aria-selected",!0),p.getContentElement("picker","selectedColor").setValue(b)}function y(a){for(var a=a.replace(/^#/,""),b=0,c=[];2>=b;b++)c[b]=parseInt(a.substr(2*b,2),16);return"#"+ +(165<=0.2126*c[0]+0.7152*c[1]+0.0722*c[2]?"000":"fff")}function v(a){!a.name&&(a=new CKEDITOR.event(a));var b=!/mouse/.test(a.name),c=a.data.getTarget(),e;if("td"==c.getName()&&(e=c.getChild(0).getHtml()))q(a),b?g=c:w=c,b&&(c.setStyle("border-color",y(e)),c.setStyle("border-style","dotted")),f.getById(k).setStyle("background-color",e),f.getById(l).setHtml(e)}function q(a){if(a=!/mouse/.test(a.name)&&g){var b=a.getChild(0).getHtml();a.setStyle("border-color",b);a.setStyle("border-style","solid")}!g&& +!w&&(f.getById(k).removeStyle("background-color"),f.getById(l).setHtml(" "))}function z(a){var b=a.data,c=b.getTarget(),e=b.getKeystroke(),d="rtl"==t.lang.dir;switch(e){case 38:if(a=c.getParent().getPrevious())a=a.getChild([c.getIndex()]),a.focus();b.preventDefault();break;case 40:if(a=c.getParent().getNext())(a=a.getChild([c.getIndex()]))&&1==a.type&&a.focus();b.preventDefault();break;case 32:case 13:u(a);b.preventDefault();break;case d?37:39:if(a=c.getNext())1==a.type&&(a.focus(),b.preventDefault(!0)); +else if(a=c.getParent().getNext())if((a=a.getChild([0]))&&1==a.type)a.focus(),b.preventDefault(!0);break;case d?39:37:if(a=c.getPrevious())a.focus(),b.preventDefault(!0);else if(a=c.getParent().getPrevious())a=a.getLast(),a.focus(),b.preventDefault(!0)}}var r=CKEDITOR.dom.element,f=CKEDITOR.document,h=t.lang.colordialog,p,x={type:"html",html:" "},j,g,w,m=function(a){return CKEDITOR.tools.getNextId()+"_"+a},k=m("hicolor"),l=m("hicolortext"),o=m("selhicolor"),i;(function(){function a(a,d){for(var s= +a;sg;g++)b(e.$,"#"+c[f]+c[g]+c[s])}}function b(a,c){var b=new r(a.insertCell(-1));b.setAttribute("class","ColorCell");b.setAttribute("tabIndex",-1);b.setAttribute("role","gridcell");b.on("keydown",z);b.on("click",u);b.on("focus",v);b.on("blur",q);b.setStyle("background-color",c);b.setStyle("border","1px solid "+c);b.setStyle("width","14px");b.setStyle("height","14px");var d=m("color_table_cell"); +b.setAttribute("aria-labelledby",d);b.append(CKEDITOR.dom.element.createFromHtml(''+c+"",CKEDITOR.document))}i=CKEDITOR.dom.element.createFromHtml('
'+h.options+'
');i.on("mouseover",v);i.on("mouseout",q);var c="00 33 66 99 cc ff".split(" ");a(0,0);a(3,0);a(0, +3);a(3,3);var e=new r(i.$.insertRow(-1));e.setAttribute("role","row");for(var d=0;6>d;d++)b(e.$,"#"+c[d]+c[d]+c[d]);for(d=0;12>d;d++)b(e.$,"#000000")})();return{title:h.title,minWidth:360,minHeight:220,onLoad:function(){p=this},onHide:function(){n();var a=g.getChild(0).getHtml();g.setStyle("border-color",a);g.setStyle("border-style","solid");f.getById(k).removeStyle("background-color");f.getById(l).setHtml(" ");g=null},contents:[{id:"picker",label:h.title,accessKey:"I",elements:[{type:"hbox", +padding:0,widths:["70%","10%","30%"],children:[{type:"html",html:"
",onLoad:function(){CKEDITOR.document.getById(this.domId).append(i)},focus:function(){(g||this.getElement().getElementsByTag("td").getItem(0)).focus()}},x,{type:"vbox",padding:0,widths:["70%","5%","25%"],children:[{type:"html",html:""+h.highlight+'\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t
 
'+h.selected+ +'\t\t\t\t\t\t\t\t\t\t\t\t
'},{type:"text",label:h.selected,labelStyle:"display:none",id:"selectedColor",style:"width: 76px;margin-top:4px",onChange:function(){try{f.getById(o).setStyle("background-color",this.getValue())}catch(a){n()}}},x,{type:"button",id:"clear",label:h.clear,onClick:n}]}]}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/af.js new file mode 100644 index 00000000..9a6d5746 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","af",{clear:"Herstel",highlight:"Aktief",options:"Kleuropsies",selected:"Geselekteer",title:"Kies kleur"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ar.js new file mode 100644 index 00000000..3b4a4977 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ar",{clear:"مسح",highlight:"تحديد",options:"اختيارات الألوان",selected:"اللون المختار",title:"اختر اللون"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bg.js new file mode 100644 index 00000000..f57a3a9c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bg",{clear:"Изчистване",highlight:"Осветяване",options:"Цветови опции",selected:"Изберете цвят",title:"Изберете цвят"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bn.js new file mode 100644 index 00000000..1cd50972 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bs.js new file mode 100644 index 00000000..e8ea577b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bs",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ca.js new file mode 100644 index 00000000..9e76e9e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ca",{clear:"Neteja",highlight:"Destacat",options:"Opcions del color",selected:"Color Seleccionat",title:"Seleccioni el color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/cs.js new file mode 100644 index 00000000..4de1f1fc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cs",{clear:"Vyčistit",highlight:"Zvýraznit",options:"Nastavení barvy",selected:"Vybráno",title:"Výběr barvy"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/cy.js new file mode 100644 index 00000000..6536226b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cy",{clear:"Clirio",highlight:"Uwcholeuo",options:"Opsiynau Lliw",selected:"Lliw a Ddewiswyd",title:"Dewis lliw"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/da.js new file mode 100644 index 00000000..df1c5c85 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","da",{clear:"Nulstil",highlight:"Markér",options:"Farvemuligheder",selected:"Valgt farve",title:"Vælg farve"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/de.js new file mode 100644 index 00000000..7ccd5b6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","de",{clear:"Entfernen",highlight:"Hervorheben",options:"Farbeoptionen",selected:"Ausgewählte Farbe",title:"Farbe wählen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/el.js new file mode 100644 index 00000000..1447a1c4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","el",{clear:"Εκκαθάριση",highlight:"Σήμανση",options:"Επιλογές Χρωμάτων",selected:"Επιλεγμένο Χρώμα",title:"Επιλογή χρώματος"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-au.js new file mode 100644 index 00000000..cdde12b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-au",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js new file mode 100644 index 00000000..535acfca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-ca",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js new file mode 100644 index 00000000..1ec95ff2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-gb",{clear:"Clear",highlight:"Highlight",options:"Colour Options",selected:"Selected Colour",title:"Select colour"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en.js new file mode 100644 index 00000000..21a79bc0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/eo.js new file mode 100644 index 00000000..aaa8cf96 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eo",{clear:"Forigi",highlight:"Detaloj",options:"Opcioj pri koloroj",selected:"Selektita koloro",title:"Selekti koloron"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/es.js new file mode 100644 index 00000000..ae4688f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","es",{clear:"Borrar",highlight:"Muestra",options:"Opciones de colores",selected:"Elegido",title:"Elegir color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/et.js new file mode 100644 index 00000000..4a51ac6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","et",{clear:"Eemalda",highlight:"Näidis",options:"Värvi valikud",selected:"Valitud värv",title:"Värvi valimine"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/eu.js new file mode 100644 index 00000000..09a91290 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eu",{clear:"Garbitu",highlight:"Nabarmendu",options:"Kolore Aukerak",selected:"Hautatutako Kolorea",title:"Kolorea Hautatu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fa.js new file mode 100644 index 00000000..8b0de9df --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fa",{clear:"پاک کردن",highlight:"متمایز",options:"گزینه​های رنگ",selected:"رنگ انتخاب شده",title:"انتخاب رنگ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fi.js new file mode 100644 index 00000000..8a9a1fe3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fi",{clear:"Poista",highlight:"Korostus",options:"Värin ominaisuudet",selected:"Valittu",title:"Valitse väri"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fo.js new file mode 100644 index 00000000..575a9d47 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fo",{clear:"Strika",highlight:"Framheva",options:"Litmøguleikar",selected:"Valdur litur",title:"Vel lit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js new file mode 100644 index 00000000..d321a839 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr-ca",{clear:"Effacer",highlight:"Surligner",options:"Options de couleur",selected:"Couleur sélectionnée",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fr.js new file mode 100644 index 00000000..b99e1b92 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr",{clear:"Effacer",highlight:"Détails",options:"Option des couleurs",selected:"Couleur choisie",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/gl.js new file mode 100644 index 00000000..13fcd5fb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gl",{clear:"Limpar",highlight:"Resaltar",options:"Opcións de cor",selected:"Cor seleccionado",title:"Seleccione unha cor"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/gu.js new file mode 100644 index 00000000..658cb5a3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gu",{clear:"સાફ કરવું",highlight:"હાઈઈટ",options:"રંગના વિકલ્પ",selected:"પસંદ કરેલો રંગ",title:"રંગ પસંદ કરો"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/he.js new file mode 100644 index 00000000..c5700716 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","he",{clear:"ניקוי",highlight:"סימון",options:"אפשרויות צבע",selected:"בחירה",title:"בחירת צבע"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hi.js new file mode 100644 index 00000000..d14f1a84 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hi",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hr.js new file mode 100644 index 00000000..5a99c466 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hr",{clear:"Očisti",highlight:"Istaknuto",options:"Opcije boje",selected:"Odabrana boja",title:"Odaberi boju"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hu.js new file mode 100644 index 00000000..f905e8f0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hu",{clear:"Ürítés",highlight:"Nagyítás",options:"Szín opciók",selected:"Kiválasztott",title:"Válasszon színt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/is.js new file mode 100644 index 00000000..35044395 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","is",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/it.js new file mode 100644 index 00000000..cb5ca860 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","it",{clear:"cancella",highlight:"Evidenzia",options:"Opzioni colore",selected:"Seleziona il colore",title:"Selezionare il colore"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ja.js new file mode 100644 index 00000000..01f28518 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ja",{clear:"クリア",highlight:"ハイライト",options:"カラーオプション",selected:"選択された色",title:"色選択"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ka.js new file mode 100644 index 00000000..d11c4849 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ka",{clear:"გასუფთავება",highlight:"ჩვენება",options:"ფერის პარამეტრები",selected:"არჩეული ფერი",title:"ფერის შეცვლა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/km.js new file mode 100644 index 00000000..9be3d0f0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","km",{clear:"សម្អាត",highlight:"បន្លិច​ពណ៌",options:"ជម្រើស​ពណ៌",selected:"ពណ៌​ដែល​បាន​រើស",title:"រើស​ពណ៌"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ko.js new file mode 100644 index 00000000..25715bf3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ko",{clear:"제거",highlight:"하이라이트",options:"색상 옵션",selected:"색상 선택됨",title:"색상 선택"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ku.js new file mode 100644 index 00000000..5b590758 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ku",{clear:"پاکیکەوە",highlight:"نیشانکردن",options:"هەڵبژاردەی ڕەنگەکان",selected:"ڕەنگی هەڵبژێردراو",title:"هەڵبژاردنی ڕەنگ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/lt.js new file mode 100644 index 00000000..4e3f2506 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lt",{clear:"Išvalyti",highlight:"Paryškinti",options:"Spalvos nustatymai",selected:"Pasirinkta spalva",title:"Pasirinkite spalvą"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/lv.js new file mode 100644 index 00000000..0e4c7b8b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lv",{clear:"Notīrīt",highlight:"Paraugs",options:"Krāsas uzstādījumi",selected:"Izvēlētā krāsa",title:"Izvēlies krāsu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/mk.js new file mode 100644 index 00000000..870e2325 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mk",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/mn.js new file mode 100644 index 00000000..0547d82c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ms.js new file mode 100644 index 00000000..65c6e817 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ms",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/nb.js new file mode 100644 index 00000000..dab73fd5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nb",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/nl.js new file mode 100644 index 00000000..c2ed1223 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nl",{clear:"Wissen",highlight:"Actief",options:"Kleuropties",selected:"Geselecteerde kleur",title:"Selecteer kleur"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/no.js new file mode 100644 index 00000000..7a853026 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","no",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pl.js new file mode 100644 index 00000000..3be00f6e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pl",{clear:"Wyczyść",highlight:"Zaznacz",options:"Opcje koloru",selected:"Wybrany",title:"Wybierz kolor"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js new file mode 100644 index 00000000..90c14fd7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt-br",{clear:"Limpar",highlight:"Grifar",options:"Opções de Cor",selected:"Cor Selecionada",title:"Selecione uma Cor"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pt.js new file mode 100644 index 00000000..ac11b30d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt",{clear:"Limpar",highlight:"Realçar",options:"Opções da Cor",selected:"Cor Selecionada",title:"Selecionar Cor"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ro.js new file mode 100644 index 00000000..85d83ffb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ro",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ru.js new file mode 100644 index 00000000..7fe16d27 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ru",{clear:"Очистить",highlight:"Под курсором",options:"Настройки цвета",selected:"Выбранный цвет",title:"Выберите цвет"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/si.js new file mode 100644 index 00000000..54bb6924 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","si",{clear:"පැහැදිලි",highlight:"මතුකර පෙන්වන්න",options:"වර්ණ විකල්ප",selected:"තෙරු වර්ණ",title:"වර්ණ තෝරන්න"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sk.js new file mode 100644 index 00000000..be5f13a3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sk",{clear:"Vyčistiť",highlight:"Zvýrazniť",options:"Možnosti farby",selected:"Vybraná farba",title:"Vyberte farbu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sl.js new file mode 100644 index 00000000..610c269a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sl",{clear:"Počisti",highlight:"Poudarjeno",options:"Barvne Možnosti",selected:"Izbrano",title:"Izberi barvo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sq.js new file mode 100644 index 00000000..f739ac4d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sq",{clear:"Pastro",highlight:"Thekso",options:"Përzgjedhjet e Ngjyrave",selected:"Ngjyra e Përzgjedhur",title:"Përzgjidh një ngjyrë"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js new file mode 100644 index 00000000..cd518c98 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr-latn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sr.js new file mode 100644 index 00000000..227ed2ea --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sv.js new file mode 100644 index 00000000..d527156a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sv",{clear:"Rensa",highlight:"Markera",options:"Färgalternativ",selected:"Vald färg",title:"Välj färg"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/th.js new file mode 100644 index 00000000..8f352d9d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","th",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/tr.js new file mode 100644 index 00000000..c416c061 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tr",{clear:"Temizle",highlight:"İşaretle",options:"Renk Seçenekleri",selected:"Seçilmiş",title:"Renk seç"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/tt.js new file mode 100644 index 00000000..df9d32ae --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tt",{clear:"Бушату",highlight:"Билгеләү",options:"Төс көйләүләре",selected:"Сайланган төсләр",title:"Төс сайлау"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ug.js new file mode 100644 index 00000000..f89a948c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ug",{clear:"تازىلا",highlight:"يورۇت",options:"رەڭ تاللانمىسى",selected:"رەڭ تاللاڭ",title:"رەڭ تاللاڭ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/uk.js new file mode 100644 index 00000000..c59d1de8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","uk",{clear:"Очистити",highlight:"Колір, на який вказує курсор",options:"Опції кольорів",selected:"Обраний колір",title:"Обрати колір"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/vi.js new file mode 100644 index 00000000..dae8623e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","vi",{clear:"Xóa bỏ",highlight:"Màu chọn",options:"Tùy chọn màu",selected:"Màu đã chọn",title:"Chọn màu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js new file mode 100644 index 00000000..25e3b000 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh-cn",{clear:"清除",highlight:"高亮",options:"颜色选项",selected:"选择颜色",title:"选择颜色"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/zh.js new file mode 100644 index 00000000..57868b94 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh",{clear:"清除",highlight:"高亮",options:"色彩選項",selected:"選取的色彩",title:"選取色彩"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/colordialog/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/colordialog/plugin.js new file mode 100644 index 00000000..9f393004 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/colordialog/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.colordialog={requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var c=new CKEDITOR.dialogCommand("colordialog");c.editorFocus=!1;b.addCommand("colordialog",c);CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(c,f){var d=function(a){this.removeListener("ok", +d);this.removeListener("cancel",d);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;c.call(f,a)},e=function(a){a.on("ok",d);a.on("cancel",d)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)e(b._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){e(this);b.onLoad=a;"function"==typeof a&& +a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt new file mode 100644 index 00000000..8e09cb23 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 5 Missing: 0 +cs.js Found: 5 Missing: 0 +cy.js Found: 5 Missing: 0 +da.js Found: 5 Missing: 0 +de.js Found: 5 Missing: 0 +el.js Found: 5 Missing: 0 +eo.js Found: 5 Missing: 0 +et.js Found: 5 Missing: 0 +fa.js Found: 5 Missing: 0 +fi.js Found: 5 Missing: 0 +fr.js Found: 5 Missing: 0 +gu.js Found: 5 Missing: 0 +he.js Found: 5 Missing: 0 +hr.js Found: 5 Missing: 0 +it.js Found: 5 Missing: 0 +nb.js Found: 5 Missing: 0 +nl.js Found: 5 Missing: 0 +no.js Found: 5 Missing: 0 +pl.js Found: 5 Missing: 0 +tr.js Found: 5 Missing: 0 +ug.js Found: 5 Missing: 0 +uk.js Found: 5 Missing: 0 +vi.js Found: 5 Missing: 0 +zh-cn.js Found: 5 Missing: 0 diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ar.js new file mode 100644 index 00000000..c781fcfc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ar",{title:"معلومات العنصر",dialogName:"إسم نافذة الحوار",tabName:"إسم التبويب",elementId:"إسم العنصر",elementType:"نوع العنصر"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/bg.js new file mode 100644 index 00000000..6432b5d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","bg",{title:"Информация за елемента",dialogName:"Име на диалоговия прозорец",tabName:"Име на таб",elementId:"ID на елемента",elementType:"Тип на елемента"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ca.js new file mode 100644 index 00000000..7505a8d8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ca",{title:"Informació de l'element",dialogName:"Nom de la finestra de quadre de diàleg",tabName:"Nom de la pestanya",elementId:"ID de l'element",elementType:"Tipus d'element"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/cs.js new file mode 100644 index 00000000..5a2573fe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cs",{title:"Informace o prvku",dialogName:"Název dialogového okna",tabName:"Název karty",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/cy.js new file mode 100644 index 00000000..ffd1c8ac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cy",{title:"Gwybodaeth am yr Elfen",dialogName:"Enw ffenestr y deialog",tabName:"Enw'r tab",elementId:"ID yr Elfen",elementType:"Math yr elfen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/da.js new file mode 100644 index 00000000..5bac0651 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","da",{title:"Information på elementet",dialogName:"Dialogboks",tabName:"Tab beskrivelse",elementId:"ID på element",elementType:"Type af element"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/de.js new file mode 100644 index 00000000..6b350ca3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","de",{title:"Elementinformation",dialogName:"Dialogfenstername",tabName:"Reitername",elementId:"Element ID",elementType:"Elementtyp"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/el.js new file mode 100644 index 00000000..3b53133d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","el",{title:"Πληροφορίες Στοιχείου",dialogName:"Όνομα παραθύρου διαλόγου",tabName:"Όνομα καρτέλας",elementId:"Αναγνωριστικό Στοιχείου",elementType:"Τύπος στοιχείου"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/en-gb.js new file mode 100644 index 00000000..bdadf923 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en-gb",{title:"Element Information",dialogName:"Dialogue window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/en.js new file mode 100644 index 00000000..e3022855 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en",{title:"Element Information",dialogName:"Dialog window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/eo.js new file mode 100644 index 00000000..bc67c556 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eo",{title:"Informo pri la elemento",dialogName:"Nomo de la dialogfenestro",tabName:"Langetnomo",elementId:"ID de la elemento",elementType:"Tipo de la elemento"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/es.js new file mode 100644 index 00000000..681809ed --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","es",{title:"Información del Elemento",dialogName:"Nombre de la ventana de diálogo",tabName:"Nombre de la pestaña",elementId:"ID del Elemento",elementType:"Tipo del elemento"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/et.js new file mode 100644 index 00000000..548e5865 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","et",{title:"Elemendi andmed",dialogName:"Dialoogiakna nimi",tabName:"Saki nimi",elementId:"Elemendi ID",elementType:"Elemendi liik"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/eu.js new file mode 100644 index 00000000..ec05883a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eu",{title:"Elementuaren Informazioa",dialogName:"Elkarrizketa leihoaren izena",tabName:"Fitxaren izena",elementId:"Elementuaren ID-a",elementType:"Elementu mota"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fa.js new file mode 100644 index 00000000..d89f8fe3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fa",{title:"اطلاعات عنصر",dialogName:"نام پنجره محاوره‌ای",tabName:"نام برگه",elementId:"ID عنصر",elementType:"نوع عنصر"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fi.js new file mode 100644 index 00000000..0eef32cc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fi",{title:"Elementin tiedot",dialogName:"Dialogi-ikkunan nimi",tabName:"Välilehden nimi",elementId:"Elementin ID",elementType:"Elementin tyyppi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js new file mode 100644 index 00000000..074bd4f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr-ca",{title:"Information de l'élément",dialogName:"Nom de la fenêtre",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fr.js new file mode 100644 index 00000000..b0686908 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr",{title:"Information sur l'élément",dialogName:"Nom de la fenêtre de dialogue",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/gl.js new file mode 100644 index 00000000..11e1c2a6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gl",{title:"Información do elemento",dialogName:"Nome da xanela de diálogo",tabName:"Nome da lapela",elementId:"ID do elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/gu.js new file mode 100644 index 00000000..e7ef6677 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/gu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gu",{title:"પ્રાથમિક માહિતી",dialogName:"વિન્ડોનું નામ",tabName:"ટેબનું નામ",elementId:"પ્રાથમિક આઈડી",elementType:"પ્રાથમિક પ્રકાર"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/he.js new file mode 100644 index 00000000..aaf968ad --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","he",{title:"מידע על האלמנט",dialogName:"שם הדיאלוג",tabName:"שם הטאב",elementId:"ID של האלמנט",elementType:"סוג האלמנט"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/hr.js new file mode 100644 index 00000000..0ec29f36 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hr",{title:"Informacije elementa",dialogName:"Naziv prozora za dijalog",tabName:"Naziva jahača",elementId:"ID elementa",elementType:"Vrsta elementa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/hu.js new file mode 100644 index 00000000..2f3c5653 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hu",{title:"Elem információ",dialogName:"Párbeszédablak neve",tabName:"Fül neve",elementId:"Elem ID",elementType:"Elem típusa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/id.js new file mode 100644 index 00000000..e988b2f4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","id",{title:"Informasi Elemen",dialogName:"Nama jendela dialog",tabName:"Nama tab",elementId:"ID Elemen",elementType:"Tipe elemen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/it.js new file mode 100644 index 00000000..79a18eab --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","it",{title:"Informazioni elemento",dialogName:"Nome finestra di dialogo",tabName:"Nome Tab",elementId:"ID Elemento",elementType:"Tipo elemento"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ja.js new file mode 100644 index 00000000..6e7bc0fd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ja",{title:"エレメント情報",dialogName:"ダイアログウィンドウ名",tabName:"タブ名",elementId:"エレメントID",elementType:"要素タイプ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/km.js new file mode 100644 index 00000000..d9de2802 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","km",{title:"ព័ត៌មាន​នៃ​ធាតុ",dialogName:"ឈ្មោះ​ប្រអប់​វីនដូ",tabName:"ឈ្មោះ​ផ្ទាំង",elementId:"អត្តលេខ​ធាតុ",elementType:"ប្រភេទ​ធាតុ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ko.js new file mode 100644 index 00000000..a41c6a8e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ko",{title:"구성 요소 정보",dialogName:"다이얼로그 윈도우 이름",tabName:"탭 이름",elementId:"요소 ID",elementType:"요소 형식"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ku.js new file mode 100644 index 00000000..12372f43 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ku",{title:"زانیاری توخم",dialogName:"ناوی پەنجەرەی دیالۆگ",tabName:"ناوی بازدەر تاب",elementId:"ناسنامەی توخم",elementType:"جۆری توخم"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/lt.js new file mode 100644 index 00000000..8ed88b6f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/lt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lt",{title:"Elemento informacija",dialogName:"Dialogo lango pavadinimas",tabName:"Auselės pavadinimas",elementId:"Elemento ID",elementType:"Elemento tipas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/lv.js new file mode 100644 index 00000000..95a2d235 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lv",{title:"Elementa informācija",dialogName:"Dialoga loga nosaukums",tabName:"Cilnes nosaukums",elementId:"Elementa ID",elementType:"Elementa tips"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/nb.js new file mode 100644 index 00000000..0a8bd3d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nb",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/nl.js new file mode 100644 index 00000000..587fedfb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nl",{title:"Elementinformatie",dialogName:"Naam dialoogvenster",tabName:"Tabnaam",elementId:"Element ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/no.js new file mode 100644 index 00000000..7461a121 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","no",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pl.js new file mode 100644 index 00000000..1ef3d228 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pl",{title:"Informacja o elemencie",dialogName:"Nazwa okna dialogowego",tabName:"Nazwa zakładki",elementId:"ID elementu",elementType:"Typ elementu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pt-br.js new file mode 100644 index 00000000..f75850fc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt-br",{title:"Informação do Elemento",dialogName:"Nome da janela de diálogo",tabName:"Nome da aba",elementId:"ID do Elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pt.js new file mode 100644 index 00000000..a9c96a8c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt",{title:"Informação do Elemento",dialogName:"Nome da janela do diálogo",tabName:"Nome do Separador",elementId:"Id. do Elemento",elementType:"Tipo de Elemento"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ru.js new file mode 100644 index 00000000..36c4b1de --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ru",{title:"Информация об элементе",dialogName:"Имя окна диалога",tabName:"Имя вкладки",elementId:"ID элемента",elementType:"Тип элемента"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/si.js new file mode 100644 index 00000000..a1fb3707 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","si",{title:"මුලද්‍රව්‍ය ",dialogName:"දෙබස් කවුළුවේ නම",tabName:"තීරුවේ නම",elementId:"මුලද්‍රව්‍ය කේතය",elementType:"මුලද්‍රව්‍ය වර්ගය"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sk.js new file mode 100644 index 00000000..e80a613d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sk",{title:"Informácie o prvku",dialogName:"Názov okna dialógu",tabName:"Názov záložky",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sl.js new file mode 100644 index 00000000..6f1df087 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sl",{title:"Podatki elementa",dialogName:"Ime pogovornega okna",tabName:"Ime zavihka",elementId:"ID elementa",elementType:"Tip elementa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sq.js new file mode 100644 index 00000000..bb173c47 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sq",{title:"Të dhënat e elementit",dialogName:"Emri i dritares së dialogut",tabName:"Emri i fletës",elementId:"ID e elementit",elementType:"Lloji i elementit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sv.js new file mode 100644 index 00000000..1c73e5e9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sv",{title:"Elementinformation",dialogName:"Dialogrutans namn",tabName:"Fliknamn",elementId:"Elementet-ID",elementType:"Elementet-typ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/tr.js new file mode 100644 index 00000000..293d3ced --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tr",{title:"Eleman Bilgisi",dialogName:"İletişim pencere ismi",tabName:"Sekme adı",elementId:"Eleman ID",elementType:"Eleman türü"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/tt.js new file mode 100644 index 00000000..e3f94b34 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tt",{title:"Элемент тасвирламасы",dialogName:"Диалог тәрәзәсе исеме",tabName:"Өстәмә бит исеме",elementId:"Элемент идентификаторы",elementType:"Элемент төре"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ug.js new file mode 100644 index 00000000..b5c98762 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ug",{title:"ئېلېمېنت ئۇچۇرى",dialogName:"سۆزلەشكۈ كۆزنەك ئاتى",tabName:"Tab ئاتى",elementId:"ئېلېمېنت كىملىكى",elementType:"ئېلېمېنت تىپى"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/uk.js new file mode 100644 index 00000000..3974ef87 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","uk",{title:"Відомості про Елемент",dialogName:"Заголовок діалогового вікна",tabName:"Назва вкладки",elementId:"Ідентифікатор Елемента",elementType:"Тип Елемента"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/vi.js new file mode 100644 index 00000000..08076e51 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","vi",{title:"Thông tin thành ph",dialogName:"Tên hộp tho",tabName:"Tên th",elementId:"Mã thành ph",elementType:"Loại thành ph"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js new file mode 100644 index 00000000..ae1b8e0b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh-cn",{title:"元素信息",dialogName:"对话框窗口名称",tabName:"选项卡名称",elementId:"元素 ID",elementType:"元素类型"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/zh.js new file mode 100644 index 00000000..613e9edf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh",{title:"元件資訊",dialogName:"對話視窗名稱",tabName:"標籤名稱",elementId:"元件 ID",elementType:"元件類型"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/devtools/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/devtools/plugin.js new file mode 100644 index 00000000..be0a2de6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/devtools/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("devtools",{lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,gu,he,hr,hu,id,it,ja,km,ko,ku,lt,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",init:function(i){i._.showDialogDefinitionTooltips=1},onLoad:function(){CKEDITOR.document.appendStyleText(CKEDITOR.config.devtools_styles||"#cke_tooltip { padding: 5px; border: 2px solid #333; background: #ffffff }#cke_tooltip h2 { font-size: 1.1em; border-bottom: 1px solid; margin: 0; padding: 1px; }#cke_tooltip ul { padding: 0pt; list-style-type: none; }")}}); +(function(){function i(a,c,b,f){var a=a.lang.devtools,j=''+(b?b.type:"content")+"",c="

"+a.title+"

  • "+a.dialogName+" : "+c.getName()+"
  • "+a.tabName+" : "+f+"
  • ";b&&(c+="
  • "+a.elementId+" : "+b.id+"
  • ");c+="
  • "+a.elementType+" : "+j+"
  • ";return c+"
"}function k(d, +c,b,f,j,g){var e=c.getDocumentPosition(),h={"z-index":CKEDITOR.dialog._.currentZIndex+10,top:e.y+c.getSize("height")+"px"};a.setHtml(d(b,f,j,g));a.show();"rtl"==b.lang.dir?(d=CKEDITOR.document.getWindow().getViewPaneSize(),h.right=d.width-e.x-c.getSize("width")+"px"):h.left=e.x+"px";a.setStyles(h)}var a;CKEDITOR.on("reset",function(){a&&a.remove();a=null});CKEDITOR.on("dialogDefinition",function(d){var c=d.editor;if(c._.showDialogDefinitionTooltips){a||(a=CKEDITOR.dom.element.createFromHtml('
', +CKEDITOR.document),a.hide(),a.on("mouseover",function(){this.show()}),a.on("mouseout",function(){this.hide()}),a.appendTo(CKEDITOR.document.getBody()));var b=d.data.definition.dialog,f=c.config.devtools_textCallback||i;b.on("load",function(){for(var d=b.parts.tabs.getChildren(),g,e=0,h=d.count();e
');a.ui.space("contents").append(b);b=a.editable(b);b.detach=CKEDITOR.tools.override(b.detach,function(a){return function(){a.apply(this,arguments);this.remove()}});a.setData(a.getData(1),c);a.fire("contentDom")})}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js new file mode 100644 index 00000000..28d043f5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js @@ -0,0 +1,25 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("docProps",function(g){function p(a,d){var e=function(){b(this);d(this,this._.parentDialog)},b=function(a){a.removeListener("ok",e);a.removeListener("cancel",b)},f=function(a){a.on("ok",e);a.on("cancel",b)};g.execCommand(a);if(g._.storedDialogs.colordialog)f(g._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(b){if(b.data.name==a){var d=b.data.definition;b.removeListener();d.onLoad=CKEDITOR.tools.override(d.onLoad,function(a){return function(){f(this);d.onLoad= +a;"function"==typeof a&&a.call(this)}})}})}function l(){var a=this.getDialog().getContentElement("general",this.id+"Other");a&&("other"==this.getValue()?(a.getInputElement().removeAttribute("readOnly"),a.focus(),a.getElement().removeClass("cke_disabled")):(a.getInputElement().setAttribute("readOnly",!0),a.getElement().addClass("cke_disabled")))}function i(a,d,e){return function(b,f,c){f=k;b="undefined"!=typeof e?e:this.getValue();!b&&a in f?f[a].remove():b&&a in f?f[a].setAttribute("content",b):b&& +(f=new CKEDITOR.dom.element("meta",g.document),f.setAttribute(d?"http-equiv":"name",a),f.setAttribute("content",b),c.append(f))}}function j(a,d){return function(){var e=k,e=a in e?e[a].getAttribute("content")||"":"";if(d)return e;this.setValue(e);return null}}function m(a){return function(d,e,b,f){f.removeAttribute("margin"+a);d=this.getValue();""!==d?f.setStyle("margin-"+a,CKEDITOR.tools.cssLength(d)):f.removeStyle("margin-"+a)}}function n(a,d,e){a.removeStyle(d);a.getComputedStyle(d)!=e&&a.setStyle(d, +e)}var c=g.lang.docprops,h=g.lang.common,k={},o=function(a,d,e){return{type:"hbox",padding:0,widths:["60%","40%"],children:[CKEDITOR.tools.extend({type:"text",id:a,label:c[d]},e||{},1),{type:"button",id:a+"Choose",label:c.chooseColor,className:"colorChooser",onClick:function(){var b=this;p("colordialog",function(d){var e=b.getDialog();e.getContentElement(e._.currentTabId,a).setValue(d.getContentElement("picker","selectedColor").getValue())})}}]}},q="javascript:void((function(){"+encodeURIComponent("document.open();"+ +(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+'document.write( \''+c.previewHtml+"' );document.close();")+"})())";return{title:c.title,minHeight:330,minWidth:500,onShow:function(){for(var a=g.document,d=a.getElementsByTag("html").getItem(0),e=a.getHead(),b=a.getBody(),f={},c=a.getElementsByTag("meta"),h=c.count(),i=0;i'],["XHTML 1.0 Transitional",''],["XHTML 1.0 Strict",''],["XHTML 1.0 Frameset",''], +["HTML 5",""],["HTML 4.01 Transitional",''],["HTML 4.01 Strict",''],["HTML 4.01 Frameset",''],["HTML 3.2",''],["HTML 2.0",''],[c.other, +"other"]],onChange:l,setup:function(){if(g.docType&&(this.setValue(g.docType),!this.getValue())){this.setValue("other");var a=this.getDialog().getContentElement("general","docTypeOther");a&&a.setValue(g.docType)}l.call(this)},commit:function(a,d,c,b,f){f||(a=this.getValue(),d=this.getDialog().getContentElement("general","docTypeOther"),g.docType="other"==a?d?d.getValue():"":a)}},{type:"text",id:"docTypeOther",label:c.docTypeOther}]},{type:"checkbox",id:"xhtmlDec",label:c.xhtmlDec,setup:function(){this.setValue(!!g.xmlDeclaration)}, +commit:function(a,d,c,b,f){f||(this.getValue()?(g.xmlDeclaration='',d.setAttribute("xmlns","http://www.w3.org/1999/xhtml")):(g.xmlDeclaration="",d.removeAttribute("xmlns")))}}]},{id:"design",label:c.design,elements:[{type:"hbox",widths:["60%","40%"],children:[{type:"vbox",children:[o("txtColor","txtColor",{setup:function(a,d,c,b){this.setValue(b.getComputedStyle("color"))},commit:function(a,d,c,b,f){if(this.isChanged()|| +f)b.removeAttribute("text"),(a=this.getValue())?b.setStyle("color",a):b.removeStyle("color")}}),o("bgColor","bgColor",{setup:function(a,d,c,b){a=b.getComputedStyle("background-color")||"";this.setValue("transparent"==a?"":a)},commit:function(a,d,c,b,f){if(this.isChanged()||f)b.removeAttribute("bgcolor"),(a=this.getValue())?b.setStyle("background-color",a):n(b,"background-color","transparent")}}),{type:"hbox",widths:["60%","40%"],padding:1,children:[{type:"text",id:"bgImage",label:c.bgImage,setup:function(a, +d,c,b){a=b.getComputedStyle("background-image")||"";a="none"==a?"":a.replace(/url\(\s*(["']?)\s*([^\)]*)\s*\1\s*\)/i,function(a,b,d){return d});this.setValue(a)},commit:function(a,d,c,b){b.removeAttribute("background");(a=this.getValue())?b.setStyle("background-image","url("+a+")"):n(b,"background-image","none")}},{type:"button",id:"bgImageChoose",label:h.browseServer,style:"display:inline-block;margin-top:10px;",hidden:!0,filebrowser:"design:bgImage"}]},{type:"checkbox",id:"bgFixed",label:c.bgFixed, +setup:function(a,d,c,b){this.setValue("fixed"==b.getComputedStyle("background-attachment"))},commit:function(a,d,c,b){this.getValue()?b.setStyle("background-attachment","fixed"):n(b,"background-attachment","scroll")}}]},{type:"vbox",children:[{type:"html",id:"marginTitle",html:'
'+c.margin+"
"},{type:"text",id:"marginTop",label:c.marginTop,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-top")||b.getAttribute("margintop")||"")},commit:m("top")},{type:"hbox",children:[{type:"text",id:"marginLeft",label:c.marginLeft,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,d,c,b){this.setValue(b.getStyle("margin-left")||b.getAttribute("marginleft")||"")},commit:m("left")},{type:"text",id:"marginRight",label:c.marginRight,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-right")||b.getAttribute("marginright")||"")},commit:m("right")}]},{type:"text",id:"marginBottom",label:c.marginBottom,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,c,e,b){this.setValue(b.getStyle("margin-bottom")||b.getAttribute("marginbottom")||"")},commit:m("bottom")}]}]}]},{id:"meta",label:c.meta,elements:[{type:"textarea",id:"metaKeywords",label:c.metaKeywords,setup:j("keywords"), +commit:i("keywords")},{type:"textarea",id:"metaDescription",label:c.metaDescription,setup:j("description"),commit:i("description")},{type:"text",id:"metaAuthor",label:c.metaAuthor,setup:j("author"),commit:i("author")},{type:"text",id:"metaCopyright",label:c.metaCopyright,setup:j("copyright"),commit:i("copyright")}]},{id:"preview",label:h.preview,elements:[{type:"html",id:"previewHtml",html:'', +onLoad:function(){this.getDialog().on("selectPage",function(a){if("preview"==a.data.page){var c=this;setTimeout(function(){var a=CKEDITOR.document.getById("cke_docProps_preview_iframe").getFrameDocument(),b=a.getElementsByTag("html").getItem(0),f=a.getHead(),g=a.getBody();c.commitContent(a,b,f,g,1)},50)}});CKEDITOR.document.getById("cke_docProps_preview_iframe").getAscendant("table").setStyle("height","100%")}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png new file mode 100644 index 00000000..ed286a25 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/docprops.png b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/docprops.png new file mode 100644 index 00000000..8bfdcb91 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/docprops.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png new file mode 100644 index 00000000..4a966da0 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png new file mode 100644 index 00000000..a66c8697 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/af.js new file mode 100644 index 00000000..dbda4d7b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","af",{bgColor:"Agtergrond kleur",bgFixed:"Vasgeklemde Agtergrond",bgImage:"Agtergrond Beeld URL",charset:"Karakterstel Kodeering",charsetASCII:"ASCII",charsetCE:"Sentraal Europa",charsetCR:"Cyrillic",charsetCT:"Chinees Traditioneel (Big5)",charsetGR:"Grieks",charsetJP:"Japanees",charsetKR:"Koreans",charsetOther:"Ander Karakterstel Kodeering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Kies",design:"Design",docTitle:"Bladsy Opskrif", +docType:"Dokument Opskrif Soort",docTypeOther:"Ander Dokument Opskrif Soort",label:"Dokument Eienskappe",margin:"Bladsy Rante",marginBottom:"Onder",marginLeft:"Links",marginRight:"Regs",marginTop:"Bo",meta:"Meta Data",metaAuthor:"Skrywer",metaCopyright:"Kopiereg",metaDescription:"Dokument Beskrywing",metaKeywords:"Dokument Index Sleutelwoorde(comma verdeelt)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Dokument Eienskappe", +txtColor:"Tekskleur",xhtmlDec:"Voeg XHTML verklaring by"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ar.js new file mode 100644 index 00000000..bd26b491 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ar",{bgColor:"لون الخلفية",bgFixed:"جعلها علامة مائية",bgImage:"رابط الصورة الخلفية",charset:"ترميز الحروف",charsetASCII:"ASCII",charsetCE:"أوروبا الوسطى",charsetCR:"السيريلية",charsetCT:"الصينية التقليدية (Big5)",charsetGR:"اليونانية",charsetJP:"اليابانية",charsetKR:"الكورية",charsetOther:"ترميز آخر",charsetTR:"التركية",charsetUN:"Unicode (UTF-8)",charsetWE:"أوروبا الغربية",chooseColor:"اختر",design:"تصميم",docTitle:"عنوان الصفحة",docType:"ترويسة نوع الصفحة", +docTypeOther:"ترويسة نوع صفحة أخرى",label:"خصائص الصفحة",margin:"هوامش الصفحة",marginBottom:"سفلي",marginLeft:"أيسر",marginRight:"أيمن",marginTop:"علوي",meta:"المعرّفات الرأسية",metaAuthor:"الكاتب",metaCopyright:"المالك",metaDescription:"وصف الصفحة",metaKeywords:"الكلمات الأساسية (مفصولة بفواصل)َ",other:"<أخرى>",previewHtml:'

هذه مجرد كتابة بسيطةمن أجل التمثيل. CKEditor.

',title:"خصائص الصفحة",txtColor:"لون النص",xhtmlDec:"تضمين إعلانات لغة XHTMLَ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bg.js new file mode 100644 index 00000000..5faba47d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bg",{bgColor:"Фон",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Кодова таблица",charsetASCII:"ASCII",charsetCE:"Централна европейска",charsetCR:"Cyrillic",charsetCT:"Китайски традиционен",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Друга кодова таблица",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Изберете",design:"Дизайн",docTitle:"Заглавие на страницата", +docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Настройки на документа",margin:"Page Margins",marginBottom:"Долу",marginLeft:"Ляво",marginRight:"Дясно",marginTop:"Горе",meta:"Мета етикети",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Други...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Настройки на документа",txtColor:"Цвят на шрифт",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bn.js new file mode 100644 index 00000000..838cbc8f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bn",{bgColor:"ব্যাকগ্রাউন্ড রং",bgFixed:"স্ক্রলহীন ব্যাকগ্রাউন্ড",bgImage:"ব্যাকগ্রাউন্ড ছবির URL",charset:"ক্যারেক্টার সেট এনকোডিং",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"অন্য ক্যারেক্টার সেট এনকোডিং",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"পেজ শীর্ষক", +docType:"ডক্যুমেন্ট টাইপ হেডিং",docTypeOther:"অন্য ডক্যুমেন্ট টাইপ হেডিং",label:"ডক্যুমেন্ট প্রোপার্টি",margin:"পেজ মার্জিন",marginBottom:"নীচে",marginLeft:"বামে",marginRight:"ডানে",marginTop:"উপর",meta:"মেটাডেটা",metaAuthor:"লেখক",metaCopyright:"কপীরাইট",metaDescription:"ডক্যূমেন্ট বর্ণনা",metaKeywords:"ডক্যুমেন্ট ইন্ডেক্স কিওয়ার্ড (কমা দ্বারা বিচ্ছিন্ন)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"ডক্যুমেন্ট প্রোপার্টি", +txtColor:"টেক্স্ট রং",xhtmlDec:"XHTML ডেক্লারেশন যুক্ত কর"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bs.js new file mode 100644 index 00000000..624acfc4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bs",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Dno",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Boja teksta",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ca.js new file mode 100644 index 00000000..6eafe7fe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ca",{bgColor:"Color de fons",bgFixed:"Fons sense desplaçament (Fixe)",bgImage:"URL de la imatge de fons",charset:"Codificació de conjunt de caràcters",charsetASCII:"ASCII",charsetCE:"Europeu Central",charsetCR:"Ciríl·lic",charsetCT:"Xinès tradicional (Big5)",charsetGR:"Grec",charsetJP:"Japonès",charsetKR:"Coreà",charsetOther:"Una altra codificació de caràcters",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeu occidental",chooseColor:"Triar",design:"Disseny", +docTitle:"Títol de la pàgina",docType:"Capçalera de tipus de document",docTypeOther:"Un altra capçalera de tipus de document",label:"Propietats del document",margin:"Marges de pàgina",marginBottom:"Peu",marginLeft:"Esquerra",marginRight:"Dreta",marginTop:"Cap",meta:"Metadades",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripció del document",metaKeywords:"Paraules clau per a indexació (separats per coma)",other:"Altre...",previewHtml:'

Aquest és un text d\'exemple. Estàs utilitzant CKEditor.

', +title:"Propietats del document",txtColor:"Color de Text",xhtmlDec:"Incloure declaracions XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/cs.js new file mode 100644 index 00000000..568bac85 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cs",{bgColor:"Barva pozadí",bgFixed:"Nerolovatelné (Pevné) pozadí",bgImage:"URL obrázku na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Středoevropské jazyky",charsetCR:"Cyrilice",charsetCT:"Tradiční čínština (Big5)",charsetGR:"Řečtina",charsetJP:"Japonština",charsetKR:"Korejština",charsetOther:"Další znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západoevropské jazyky",chooseColor:"Výběr",design:"Vzhled",docTitle:"Titulek stránky", +docType:"Typ dokumentu",docTypeOther:"Jiný typ dokumetu",label:"Vlastnosti dokumentu",margin:"Okraje stránky",marginBottom:"Dolní",marginLeft:"Levý",marginRight:"Pravý",marginTop:"Horní",meta:"Metadata",metaAuthor:"Autor",metaCopyright:"Autorská práva",metaDescription:"Popis dokumentu",metaKeywords:"Klíčová slova (oddělená čárkou)",other:"",previewHtml:'

Toto je ukázkový text. Používáte CKEditor.

',title:"Vlastnosti dokumentu",txtColor:"Barva textu", +xhtmlDec:"Zahrnout deklarace XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/cy.js new file mode 100644 index 00000000..ef7e1cc9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cy",{bgColor:"Lliw Cefndir",bgFixed:"Cefndir Sefydlog (Ddim yn Sgrolio)",bgImage:"URL Delwedd Cefndir",charset:"Amgodio Set Nodau",charsetASCII:"ASCII",charsetCE:"Ewropeaidd Canol",charsetCR:"Syrilig",charsetCT:"Tsieinëeg Traddodiadol (Big5)",charsetGR:"Groeg",charsetJP:"Siapanëeg",charsetKR:"Corëeg",charsetOther:"Amgodio Set Nodau Arall",charsetTR:"Tyrceg",charsetUN:"Unicode (UTF-8)",charsetWE:"Ewropeaidd Gorllewinol",chooseColor:"Dewis",design:"Cynllunio",docTitle:"Teitl y Dudalen", +docType:"Pennawd Math y Ddogfen",docTypeOther:"Pennawd Math y Ddogfen Arall",label:"Priodweddau Dogfen",margin:"Ffin y Dudalen",marginBottom:"Gwaelod",marginLeft:"Chwith",marginRight:"Dde",marginTop:"Brig",meta:"Tagiau Meta",metaAuthor:"Awdur",metaCopyright:"Hawlfraint",metaDescription:"Disgrifiad y Ddogfen",metaKeywords:"Allweddeiriau Indecsio Dogfen (gwahanu gyda choma)",other:"Arall...",previewHtml:'

Dyma ychydig o destun sampl. Rydych chi\'n defnyddio CKEditor.

', +title:"Priodweddau Dogfen",txtColor:"Lliw y Testun",xhtmlDec:"Cynnwys Datganiadau XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/da.js new file mode 100644 index 00000000..0a10cf09 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","da",{bgColor:"Baggrundsfarve",bgFixed:"Fastlåst baggrund",bgImage:"Baggrundsbillede URL",charset:"Tegnsætskode",charsetASCII:"ASCII",charsetCE:"Centraleuropæisk",charsetCR:"Kyrillisk",charsetCT:"Traditionel kinesisk (Big5)",charsetGR:"Græsk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Anden tegnsætskode",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropæisk",chooseColor:"Vælg",design:"Design",docTitle:"Sidetitel",docType:"Dokumenttype kategori", +docTypeOther:"Anden dokumenttype kategori",label:"Egenskaber for dokument",margin:"Sidemargen",marginBottom:"Nederst",marginLeft:"Venstre",marginRight:"Højre",marginTop:"Øverst",meta:"Metatags",metaAuthor:"Forfatter",metaCopyright:"Copyright",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument index nøgleord (kommasepareret)",other:"",previewHtml:'

Dette er et eksempel på noget tekst. Du benytter CKEditor.

',title:"Egenskaber for dokument", +txtColor:"Tekstfarve",xhtmlDec:"Inkludere XHTML deklartion"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/de.js new file mode 100644 index 00000000..6dee2e4a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","de",{bgColor:"Hintergrundfarbe",bgFixed:"feststehender Hintergrund",bgImage:"Hintergrundbild URL",charset:"Zeichenkodierung",charsetASCII:"ASCII",charsetCE:"Zentraleuropäisch",charsetCR:"Kyrillisch",charsetCT:"traditionell Chinesisch (Big5)",charsetGR:"Griechisch",charsetJP:"Japanisch",charsetKR:"Koreanisch",charsetOther:"Andere Zeichenkodierung",charsetTR:"Türkisch",charsetUN:"Unicode (UTF-8)",charsetWE:"Westeuropäisch",chooseColor:"Wählen",design:"Design",docTitle:"Seitentitel", +docType:"Dokumententyp",docTypeOther:"Anderer Dokumententyp",label:"Dokument-Eigenschaften",margin:"Seitenränder",marginBottom:"Unten",marginLeft:"Links",marginRight:"Rechts",marginTop:"Oben",meta:"Metadaten",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Dokument-Beschreibung",metaKeywords:"Schlüsselwörter (durch Komma getrennt)",other:"",previewHtml:'

Das ist ein Beispieltext. Du schreibst in CKEditor.

',title:"Dokument-Eigenschaften", +txtColor:"Textfarbe",xhtmlDec:"Beziehe XHTML Deklarationen ein"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/el.js new file mode 100644 index 00000000..3f0999c5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","el",{bgColor:"Χρώμα Φόντου",bgFixed:"Φόντο Χωρίς Κύλιση (Σταθερό)",bgImage:"Διεύθυνση Εικόνας Φόντου",charset:"Κωδικοποίηση Χαρακτήρων",charsetASCII:"ASCII",charsetCE:"Κεντρικής Ευρώπης",charsetCR:"Κυριλλική",charsetCT:"Παραδοσιακή Κινέζικη (Big5)",charsetGR:"Ελληνική",charsetJP:"Ιαπωνική",charsetKR:"Κορεάτικη",charsetOther:"Άλλη Κωδικοποίηση Χαρακτήρων",charsetTR:"Τουρκική",charsetUN:"Διεθνής (UTF-8)",charsetWE:"Δυτικής Ευρώπης",chooseColor:"Επιλέξτε",design:"Σχεδιασμός", +docTitle:"Τίτλος Σελίδας",docType:"Κεφαλίδα Τύπου Εγγράφου",docTypeOther:"Άλλη Κεφαλίδα Τύπου Εγγράφου",label:"Ιδιότητες Εγγράφου",margin:"Περιθώρια Σελίδας",marginBottom:"Κάτω",marginLeft:"Αριστερά",marginRight:"Δεξιά",marginTop:"Κορυφή",meta:"Μεταδεδομένα",metaAuthor:"Δημιουργός",metaCopyright:"Πνευματικά Δικαιώματα",metaDescription:"Περιγραφή Εγγράφου",metaKeywords:"Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",other:"Άλλο...",previewHtml:'

Αυτό είναι ένα παραδειγματικό κείμενο. Χρησιμοποιείτε το CKEditor.

', +title:"Ιδιότητες Εγγράφου",txtColor:"Χρώμα Κειμένου",xhtmlDec:"Να Συμπεριληφθούν οι Δηλώσεις XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-au.js new file mode 100644 index 00000000..1991fce7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-au",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-ca.js new file mode 100644 index 00000000..f135acfa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-ca",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-gb.js new file mode 100644 index 00000000..4ae5c6f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-gb",{bgColor:"Background Colour",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma-separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Colour",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en.js new file mode 100644 index 00000000..73926df2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/eo.js new file mode 100644 index 00000000..182ea18b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eo",{bgColor:"Fona Koloro",bgFixed:"Neruluma Fono",bgImage:"URL de Fona Bildo",charset:"Signara Kodo",charsetASCII:"ASCII",charsetCE:"Centra Eŭropa",charsetCR:"Cirila",charsetCT:"Tradicia Ĉina (Big5)",charsetGR:"Greka",charsetJP:"Japana",charsetKR:"Korea",charsetOther:"Alia Signara Kodo",charsetTR:"Turka",charsetUN:"Unikodo (UTF-8)",charsetWE:"Okcidenta Eŭropa",chooseColor:"Elektu",design:"Dizajno",docTitle:"Paĝotitolo",docType:"Dokumenta Tipo",docTypeOther:"Alia Dokumenta Tipo", +label:"Dokumentaj Atributoj",margin:"Paĝaj Marĝenoj",marginBottom:"Malsupra",marginLeft:"Maldekstra",marginRight:"Dekstra",marginTop:"Supra",meta:"Metadatenoj",metaAuthor:"Verkinto",metaCopyright:"Kopirajto",metaDescription:"Dokumenta Priskribo",metaKeywords:"Ŝlosilvortoj de la Dokumento (apartigitaj de komoj)",other:"",previewHtml:'

Tio estas sampla teksto. Vi estas uzanta CKEditor.

',title:"Dokumentaj Atributoj",txtColor:"Teksta Koloro", +xhtmlDec:"Inkluzivi XHTML Deklarojn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/es.js new file mode 100644 index 00000000..8170464f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","es",{bgColor:"Color de fondo",bgFixed:"Fondo fijo (no se desplaza)",bgImage:"Imagen de fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro Europeo",charsetCR:"Ruso",charsetCT:"Chino Tradicional (Big5)",charsetGR:"Griego",charsetJP:"Japonés",charsetKR:"Koreano",charsetOther:"Otra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Elegir",design:"Diseño",docTitle:"Título de página", +docType:"Tipo de documento",docTypeOther:"Otro tipo de documento",label:"Propiedades del documento",margin:"Márgenes",marginBottom:"Inferior",marginLeft:"Izquierdo",marginRight:"Derecho",marginTop:"Superior",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripción del documento",metaKeywords:"Palabras claves del documento separadas por coma (meta keywords)",other:"Otro...",previewHtml:'

Este es un texto de ejemplo. Usted está usando CKEditor.

', +title:"Propiedades del documento",txtColor:"Color del texto",xhtmlDec:"Incluir declaración XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/et.js new file mode 100644 index 00000000..43ad55d2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","et",{bgColor:"Taustavärv",bgFixed:"Mittekeritav tagataust",bgImage:"Taustapildi URL",charset:"Märgistiku kodeering",charsetASCII:"ASCII",charsetCE:"Kesk-Euroopa",charsetCR:"Kirillisa",charsetCT:"Hiina traditsiooniline (Big5)",charsetGR:"Kreeka",charsetJP:"Jaapani",charsetKR:"Korea",charsetOther:"Ülejäänud märgistike kodeeringud",charsetTR:"Türgi",charsetUN:"Unicode (UTF-8)",charsetWE:"Lääne-Euroopa",chooseColor:"Vali",design:"Disain",docTitle:"Lehekülje tiitel", +docType:"Dokumendi tüüppäis",docTypeOther:"Teised dokumendi tüüppäised",label:"Dokumendi omadused",margin:"Lehekülje äärised",marginBottom:"Alaserv",marginLeft:"Vasakserv",marginRight:"Paremserv",marginTop:"Ülaserv",meta:"Meta andmed",metaAuthor:"Autor",metaCopyright:"Autoriõigus",metaDescription:"Dokumendi kirjeldus",metaKeywords:"Dokumendi võtmesõnad (eraldatud komadega)",other:"",previewHtml:'

See on näidistekst. Sa kasutad CKEditori.

', +title:"Dokumendi omadused",txtColor:"Teksti värv",xhtmlDec:"Arva kaasa XHTML deklaratsioonid"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/eu.js new file mode 100644 index 00000000..16175cc1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eu",{bgColor:"Atzeko Kolorea",bgFixed:"Korritze gabeko Atzealdea",bgImage:"Atzeko Irudiaren URL-a",charset:"Karaktere Multzoaren Kodeketa",charsetASCII:"ASCII",charsetCE:"Erdialdeko Europakoa",charsetCR:"Zirilikoa",charsetCT:"Txinatar Tradizionala (Big5)",charsetGR:"Grekoa",charsetJP:"Japoniarra",charsetKR:"Korearra",charsetOther:"Beste Karaktere Multzoko Kodeketa",charsetTR:"Turkiarra",charsetUN:"Unicode (UTF-8)",charsetWE:"Mendebaldeko Europakoa",chooseColor:"Choose", +design:"Diseinua",docTitle:"Orriaren Izenburua",docType:"Document Type Goiburua",docTypeOther:"Beste Document Type Goiburua",label:"Dokumentuaren Ezarpenak",margin:"Orrialdearen marjinak",marginBottom:"Behean",marginLeft:"Ezkerrean",marginRight:"Eskuman",marginTop:"Goian",meta:"Meta Informazioa",metaAuthor:"Egilea",metaCopyright:"Copyright",metaDescription:"Dokumentuaren Deskribapena",metaKeywords:"Dokumentuaren Gako-hitzak (komarekin bananduta)",other:"",previewHtml:'

Hau adibideko testua da. CKEditor erabiltzen ari zara.

', +title:"Dokumentuaren Ezarpenak",txtColor:"Testu Kolorea",xhtmlDec:"XHTML Ezarpenak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fa.js new file mode 100644 index 00000000..078e3838 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","fa",{bgColor:"رنگ پس​زمینه",bgFixed:"پس​زمینهٴ ثابت (بدون حرکت)",bgImage:"URL تصویر پسزمینه",charset:"رمزگذاری نویسه​گان",charsetASCII:"اسکی",charsetCE:"اروپای مرکزی",charsetCR:"سیریلیک",charsetCT:"چینی رسمی (Big5)",charsetGR:"یونانی",charsetJP:"ژاپنی",charsetKR:"کره​ای",charsetOther:"رمزگذاری نویسه​گان دیگر",charsetTR:"ترکی",charsetUN:"یونیکد (UTF-8)",charsetWE:"اروپای غربی",chooseColor:"انتخاب",design:"طراحی",docTitle:"عنوان صفحه",docType:"عنوان نوع سند",docTypeOther:"عنوان نوع سند دیگر", +label:"ویژگی​های سند",margin:"حاشیه​های صفحه",marginBottom:"پایین",marginLeft:"چپ",marginRight:"راست",marginTop:"بالا",meta:"فراداده",metaAuthor:"نویسنده",metaCopyright:"حق انتشار",metaDescription:"توصیف سند",metaKeywords:"کلیدواژگان نمایه​گذاری سند (با کاما جدا شوند)",other:"<سایر>",previewHtml:'

این یک متن نمونه است. شما در حال استفاده از CKEditor هستید.

',title:"ویژگی​های سند",txtColor:"رنگ متن",xhtmlDec:"شامل تعاریف XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fi.js new file mode 100644 index 00000000..22a9740a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fi",{bgColor:"Taustaväri",bgFixed:"Paikallaanpysyvä tausta",bgImage:"Taustakuva",charset:"Merkistökoodaus",charsetASCII:"ASCII",charsetCE:"Keskieurooppalainen",charsetCR:"Kyrillinen",charsetCT:"Kiina, perinteinen (Big5)",charsetGR:"Kreikka",charsetJP:"Japani",charsetKR:"Korealainen",charsetOther:"Muu merkistökoodaus",charsetTR:"Turkkilainen",charsetUN:"Unicode (UTF-8)",charsetWE:"Länsieurooppalainen",chooseColor:"Valitse",design:"Sommittelu",docTitle:"Sivun nimi", +docType:"Dokumentin tyyppi",docTypeOther:"Muu dokumentin tyyppi",label:"Dokumentin ominaisuudet",margin:"Sivun marginaalit",marginBottom:"Ala",marginLeft:"Vasen",marginRight:"Oikea",marginTop:"Ylä",meta:"Metatieto",metaAuthor:"Tekijä",metaCopyright:"Tekijänoikeudet",metaDescription:"Kuvaus",metaKeywords:"Hakusanat (pilkulla erotettuna)",other:"",previewHtml:'

Tämä on esimerkkitekstiä. Käytät juuri CKEditoria.

',title:"Dokumentin ominaisuudet", +txtColor:"Tekstiväri",xhtmlDec:"Lisää XHTML julistukset"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fo.js new file mode 100644 index 00000000..ef352698 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fo",{bgColor:"Bakgrundslitur",bgFixed:"Læst bakgrund (rullar ikki)",bgImage:"Leið til bakgrundsmynd (URL)",charset:"Teknsett koda",charsetASCII:"ASCII",charsetCE:"Miðeuropa",charsetCR:"Cyrilliskt",charsetCT:"Kinesiskt traditionelt (Big5)",charsetGR:"Grikst",charsetJP:"Japanskt",charsetKR:"Koreanskt",charsetOther:"Onnur teknsett koda",charsetTR:"Turkiskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestureuropa",chooseColor:"Vel",design:"Design",docTitle:"Síðuheiti", +docType:"Dokumentslag yvirskrift",docTypeOther:"Annað dokumentslag yvirskrift",label:"Eginleikar fyri dokument",margin:"Síðubreddar",marginBottom:"Niðast",marginLeft:"Vinstra",marginRight:"Høgra",marginTop:"Ovast",meta:"META-upplýsingar",metaAuthor:"Høvundur",metaCopyright:"Upphavsrættindi",metaDescription:"Dokumentlýsing",metaKeywords:"Dokument index lyklaorð (sundurbýtt við komma)",other:"",previewHtml:'

Hetta er ein royndartekstur. Tygum brúka CKEditor.

', +title:"Eginleikar fyri dokument",txtColor:"Tekstlitur",xhtmlDec:"Viðfest XHTML deklaratiónir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js new file mode 100644 index 00000000..31a809e8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr-ca",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage",charsetASCII:"ACSII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grecque",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage",charsetTR:"Turque",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Sélectionner",design:"Design",docTitle:"Titre de la page",docType:"Type de document", +docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Méta-données",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"Autre...",previewHtml:'

Voici un example de texte. Vous utilisez CKEditor.

',title:"Propriétés du document",txtColor:"Couleur de caractère", +xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fr.js new file mode 100644 index 00000000..f22e2493 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage de caractère",charsetASCII:"ASCII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grec",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage de caractère",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Choisissez",design:"Design",docTitle:"Titre de la page", +docType:"Type de document",docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Métadonnées",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"",previewHtml:'

Ceci est un texte d\'exemple. Vous utilisez CKEditor.

',title:"Propriétés du document", +txtColor:"Couleur de texte",xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/gl.js new file mode 100644 index 00000000..f8b0c21d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gl",{bgColor:"Cor do fondo",bgFixed:"Fondo fixo (non se despraza)",bgImage:"URL da imaxe do fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro europeo",charsetCR:"Cirílico",charsetCT:"Chinés tradicional (Big5)",charsetGR:"Grego",charsetJP:"Xaponés",charsetKR:"Coreano",charsetOther:"Outra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Escoller",design:"Deseño", +docTitle:"Título da páxina",docType:"Cabeceira do tipo de documento",docTypeOther:"Outra cabeceira do tipo de documento",label:"Propiedades do documento",margin:"Marxes da páxina",marginBottom:"Abaixo",marginLeft:"Esquerda",marginRight:"Dereita",marginTop:"Arriba",meta:"Meta etiquetas",metaAuthor:"Autor",metaCopyright:"Dereito de autoría",metaDescription:"Descrición do documento",metaKeywords:"Palabras clave de indexación do documento (separadas por comas)",other:"Outro...",previewHtml:'

Este é un texto de exemplo. Vostede esta a empregar o CKEditor.

', +title:"Propiedades do documento",txtColor:"Cor do texto",xhtmlDec:"Incluír as declaracións XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/gu.js new file mode 100644 index 00000000..7458ffe6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gu",{bgColor:"બૅકગ્રાઉન્ડ રંગ",bgFixed:"સ્ક્રોલ ન થાય તેવું બૅકગ્રાઉન્ડ",bgImage:"બૅકગ્રાઉન્ડ ચિત્ર URL",charset:"કેરેક્ટર સેટ એન્કોડિંગ",charsetASCII:"ASCII",charsetCE:"મધ્ય યુરોપિઅન (Central European)",charsetCR:"સિરીલિક (Cyrillic)",charsetCT:"ચાઇનીઝ (Chinese Traditional Big5)",charsetGR:"ગ્રીક (Greek)",charsetJP:"જાપાનિઝ (Japanese)",charsetKR:"કોરીયન (Korean)",charsetOther:"અન્ય કેરેક્ટર સેટ એન્કોડિંગ",charsetTR:"ટર્કિ (Turkish)",charsetUN:"યૂનિકોડ (UTF-8)", +charsetWE:"પશ્ચિમ યુરોપિઅન (Western European)",chooseColor:"વિકલ્પ",design:"ડીસા",docTitle:"પેજ મથાળું/ટાઇટલ",docType:"ડૉક્યુમન્ટ પ્રકાર શીર્ષક",docTypeOther:"અન્ય ડૉક્યુમન્ટ પ્રકાર શીર્ષક",label:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",margin:"પેજ માર્જિન",marginBottom:"નીચે",marginLeft:"ડાબી",marginRight:"જમણી",marginTop:"ઉપર",meta:"મેટાડૅટા",metaAuthor:"લેખક",metaCopyright:"કૉપિરાઇટ",metaDescription:"ડૉક્યુમન્ટ વર્ણન",metaKeywords:"ડૉક્યુમન્ટ ઇન્ડેક્સ સંકેતશબ્દ (અલ્પવિરામ (,) થી અલગ કરો)",other:"",previewHtml:'

આ એક સેમ્પલ ટેક્ષ્ત્ છે. તમે CKEditor વાપરો છો.

', +title:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",txtColor:"શબ્દનો રંગ",xhtmlDec:"XHTML સૂચના સમાવિષ્ટ કરવી"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/he.js new file mode 100644 index 00000000..d71d1586 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","he",{bgColor:"צבע רקע",bgFixed:"רקע לא נגלל (צמוד)",bgImage:"כתובת של תמונת רקע",charset:"קידוד תווים",charsetASCII:"ASCII",charsetCE:"מרכז אירופאי",charsetCR:"קירילי",charsetCT:"סיני מסורתי (Big5)",charsetGR:"יווני",charsetJP:"יפני",charsetKR:"קוריאני",charsetOther:"קידוד תווים אחר",charsetTR:"טורקי",charsetUN:"יוניקוד (UTF-8)",charsetWE:"מערב אירופאי",chooseColor:"בחירה",design:"עיצוב",docTitle:"כותרת עמוד",docType:"כותר סוג מסמך",docTypeOther:"כותר סוג מסמך אחר", +label:"מאפייני מסמך",margin:"מרווחי עמוד",marginBottom:"תחתון",marginLeft:"שמאלי",marginRight:"ימני",marginTop:"עליון",meta:"תגי Meta",metaAuthor:"מחבר/ת",metaCopyright:"זכויות יוצרים",metaDescription:"תיאור המסמך",metaKeywords:"מילות מפתח של המסמך (מופרדות בפסיק)",other:"אחר...",previewHtml:'

זהו טקסט הדגמה. את/ה משתמש/ת בCKEditor.

',title:"מאפייני מסמך",txtColor:"צבע טקסט",xhtmlDec:"כלול הכרזות XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hi.js new file mode 100644 index 00000000..68266186 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hi",{bgColor:"बैक्ग्राउन्ड रंग",bgFixed:"स्क्रॉल न करने वाला बैक्ग्राउन्ड",bgImage:"बैक्ग्राउन्ड तस्वीर URL",charset:"करेक्टर सॅट ऍन्कोडिंग",charsetASCII:"ASCII",charsetCE:"मध्य यूरोपीय (Central European)",charsetCR:"सिरीलिक (Cyrillic)",charsetCT:"चीनी (Chinese Traditional Big5)",charsetGR:"यवन (Greek)",charsetJP:"जापानी (Japanese)",charsetKR:"कोरीयन (Korean)",charsetOther:"अन्य करेक्टर सॅट ऍन्कोडिंग",charsetTR:"तुर्की (Turkish)",charsetUN:"यूनीकोड (UTF-8)",charsetWE:"पश्चिम यूरोपीय (Western European)", +chooseColor:"Choose",design:"Design",docTitle:"पेज शीर्षक",docType:"डॉक्यूमॅन्ट प्रकार शीर्षक",docTypeOther:"अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",label:"डॉक्यूमॅन्ट प्रॉपर्टीज़",margin:"पेज मार्जिन",marginBottom:"नीचे",marginLeft:"बायें",marginRight:"दायें",marginTop:"ऊपर",meta:"मॅटाडेटा",metaAuthor:"लेखक",metaCopyright:"कॉपीराइट",metaDescription:"डॉक्यूमॅन्ट करॅक्टरन",metaKeywords:"डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",other:"<अन्य>",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"डॉक्यूमॅन्ट प्रॉपर्टीज़",txtColor:"टेक्स्ट रंग",xhtmlDec:"XHTML सूचना सम्मिलित करें"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hr.js new file mode 100644 index 00000000..3477c6f0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hr",{bgColor:"Boja pozadine",bgFixed:"Pozadine se ne pomiče",bgImage:"URL slike pozadine",charset:"Enkodiranje znakova",charsetASCII:"ASCII",charsetCE:"Središnja Europa",charsetCR:"Ćirilica",charsetCT:"Tradicionalna kineska (Big5)",charsetGR:"Grčka",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Ostalo enkodiranje znakova",charsetTR:"Turska",charsetUN:"Unicode (UTF-8)",charsetWE:"Zapadna Europa",chooseColor:"Odaberi",design:"Dizajn",docTitle:"Naslov stranice", +docType:"Zaglavlje vrste dokumenta",docTypeOther:"Ostalo zaglavlje vrste dokumenta",label:"Svojstva dokumenta",margin:"Margine stranice",marginBottom:"Dolje",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne riječi dokumenta (odvojene zarezom)",other:"",previewHtml:'

Ovo je neki primjer teksta. Vi koristite CKEditor.

', +title:"Svojstva dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ubaci XHTML deklaracije"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hu.js new file mode 100644 index 00000000..beeed2b5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hu",{bgColor:"Háttérszín",bgFixed:"Nem gördíthető háttér",bgImage:"Háttérkép cím",charset:"Karakterkódolás",charsetASCII:"ASCII",charsetCE:"Közép-Európai",charsetCR:"Cyrill",charsetCT:"Kínai Tradicionális (Big5)",charsetGR:"Görög",charsetJP:"Japán",charsetKR:"Koreai",charsetOther:"Más karakterkódolás",charsetTR:"Török",charsetUN:"Unicode (UTF-8)",charsetWE:"Nyugat-Európai",chooseColor:"Válasszon",design:"Design",docTitle:"Oldalcím",docType:"Dokumentum típus fejléc", +docTypeOther:"Más dokumentum típus fejléc",label:"Dokumentum tulajdonságai",margin:"Oldal margók",marginBottom:"Alsó",marginLeft:"Bal",marginRight:"Jobb",marginTop:"Felső",meta:"Meta adatok",metaAuthor:"Szerző",metaCopyright:"Szerzői jog",metaDescription:"Dokumentum leírás",metaKeywords:"Dokumentum keresőszavak (vesszővel elválasztva)",other:"",previewHtml:'

Ez itt egy példa. A CKEditor-t használod.

',title:"Dokumentum tulajdonságai",txtColor:"Betűszín", +xhtmlDec:"XHTML deklarációk beillesztése"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/id.js new file mode 100644 index 00000000..9716026d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","id",{bgColor:"Warna Latar Belakang",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Pilih",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/is.js new file mode 100644 index 00000000..9085a4f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","is",{bgColor:"Bakgrunnslitur",bgFixed:"Læstur bakgrunnur",bgImage:"Slóð bakgrunnsmyndar",charset:"Letursett",charsetASCII:"ASCII",charsetCE:"Mið-evrópskt",charsetCR:"Kýrilskt",charsetCT:"Kínverskt, hefðbundið (Big5)",charsetGR:"Grískt",charsetJP:"Japanskt",charsetKR:"Kóreskt",charsetOther:"Annað letursett",charsetTR:"Tyrkneskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestur-evrópst",chooseColor:"Choose",design:"Design",docTitle:"Titill síðu",docType:"Flokkur skjalategunda", +docTypeOther:"Annar flokkur skjalategunda",label:"Eigindi skjals",margin:"Hliðarspássía",marginBottom:"Neðst",marginLeft:"Vinstri",marginRight:"Hægri",marginTop:"Efst",meta:"Lýsigögn",metaAuthor:"Höfundur",metaCopyright:"Höfundarréttur",metaDescription:"Lýsing skjals",metaKeywords:"Lykilorð efnisorðaskrár (aðgreind með kommum)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Eigindi skjals",txtColor:"Litur texta", +xhtmlDec:"Fella inn XHTML lýsingu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/it.js new file mode 100644 index 00000000..56edb3af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","it",{bgColor:"Colore di sfondo",bgFixed:"Sfondo fissato",bgImage:"Immagine di sfondo",charset:"Set di caretteri",charsetASCII:"ASCII",charsetCE:"Europa Centrale",charsetCR:"Cirillico",charsetCT:"Cinese Tradizionale (Big5)",charsetGR:"Greco",charsetJP:"Giapponese",charsetKR:"Coreano",charsetOther:"Altro set di caretteri",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Occidentale",chooseColor:"Scegli",design:"Disegna",docTitle:"Titolo pagina",docType:"Intestazione DocType", +docTypeOther:"Altra intestazione DocType",label:"Proprietà del Documento",margin:"Margini",marginBottom:"In Basso",marginLeft:"A Sinistra",marginRight:"A Destra",marginTop:"In Alto",meta:"Meta Data",metaAuthor:"Autore",metaCopyright:"Copyright",metaDescription:"Descrizione documento",metaKeywords:"Chiavi di indicizzazione documento (separate da virgola)",other:"",previewHtml:'

Questo è un testo di esempio. State usando CKEditor.

',title:"Proprietà del Documento", +txtColor:"Colore testo",xhtmlDec:"Includi dichiarazione XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ja.js new file mode 100644 index 00000000..34f57912 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ja",{bgColor:"背景色",bgFixed:"スクロールしない背景",bgImage:"背景画像 URL",charset:"文字コード",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"日本語",charsetKR:"Korean",charsetOther:"他の文字セット符号化",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"色の選択",design:"デザイン",docTitle:"ページタイトル",docType:"文書タイプヘッダー",docTypeOther:"その他文書タイプヘッダー",label:"文書 プロパティ",margin:"ページ・マージン", +marginBottom:"下部",marginLeft:"左",marginRight:"右",marginTop:"上部",meta:"メタデータ",metaAuthor:"文書の作者",metaCopyright:"文書の著作権",metaDescription:"文書の概要",metaKeywords:"文書のキーワード(カンマ区切り)",other:"<その他の>",previewHtml:'

これはテキストサンプルです。 あなたは、CKEditorを使っています。

',title:"文書 プロパティ",txtColor:"テキスト色",xhtmlDec:"XHTML宣言をインクルード"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ka.js new file mode 100644 index 00000000..50f71dee --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ka",{bgColor:"ფონის ფერი",bgFixed:"უმოძრაო (ფიქსირებული) ფონი",bgImage:"ფონური სურათის URL",charset:"კოდირება",charsetASCII:"ამერიკული (ASCII)",charsetCE:"ცენტრალურ ევროპული",charsetCR:"კირილური",charsetCT:"ტრადიციული ჩინური (Big5)",charsetGR:"ბერძნული",charsetJP:"იაპონური",charsetKR:"კორეული",charsetOther:"სხვა კოდირებები",charsetTR:"თურქული",charsetUN:"უნიკოდი (UTF-8)",charsetWE:"დასავლეთ ევროპული",chooseColor:"არჩევა",design:"დიზაინი",docTitle:"გვერდის სათაური", +docType:"დოკუმენტის ტიპი",docTypeOther:"სხვა ტიპის დოკუმენტი",label:"დოკუმენტის პარამეტრები",margin:"გვერდის კიდეები",marginBottom:"ქვედა",marginLeft:"მარცხენა",marginRight:"მარჯვენა",marginTop:"ზედა",meta:"მეტაTag-ები",metaAuthor:"ავტორი",metaCopyright:"Copyright",metaDescription:"დოკუმენტის აღწერა",metaKeywords:"დოკუმენტის საკვანძო სიტყვები (მძიმით გამოყოფილი)",other:"სხვა...",previewHtml:'

ეს არის საცდელი ტექსტი. თქვენ CKEditor-ით სარგებლობთ.

', +title:"დოკუმენტის პარამეტრები",txtColor:"ტექსტის ფერი",xhtmlDec:"XHTML დეკლარაციების ჩართვა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/km.js new file mode 100644 index 00000000..34272904 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","km",{bgColor:"ពណ៌​ផ្ទៃ​ក្រោយ",bgFixed:"ផ្ទៃ​ក្រោយ​គ្មាន​ការ​រំកិល (នឹង​ថ្កល់)",bgImage:"URL រូបភាព​ផ្ទៃ​ក្រោយ",charset:"ការ​អ៊ិនកូដ​តួ​អក្សរ",charsetASCII:"ASCII",charsetCE:"អឺរ៉ុប​កណ្ដាល",charsetCR:"Cyrillic",charsetCT:"ចិន​បុរាណ (Big5)",charsetGR:"ក្រិក",charsetJP:"ជប៉ុន",charsetKR:"កូរ៉េ",charsetOther:"កំណត់លេខកូតភាសាផ្សេងទៀត",charsetTR:"ទួរគី",charsetUN:"យូនីកូដ (UTF-8)",charsetWE:"អឺរ៉ុប​ខាង​លិច",chooseColor:"រើស",design:"រចនា",docTitle:"ចំណងជើងទំព័រ",docType:"ប្រភេទក្បាលទំព័រ​ឯកសារ", +docTypeOther:"ប្រភេទក្បាលទំព័រឯកសារ​ផ្សេងទៀត",label:"លក្ខណៈ​សម្បត្តិ​ឯកសារ",margin:"រឹម​ទំព័រ",marginBottom:"បាត​ក្រោម",marginLeft:"ឆ្វេង",marginRight:"ស្ដាំ",marginTop:"លើ",meta:"ស្លាក​មេតា",metaAuthor:"អ្នកនិពន្ធ",metaCopyright:"រក្សាសិទ្ធិ",metaDescription:"សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",metaKeywords:"ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",other:"ដទៃ​ទៀត...",previewHtml:'

នេះ​គឺ​ជាអក្សរ​គំរូ​ខ្លះៗ។ អ្នក​កំពុង​ប្រើ CKEditor

',title:"ការកំណត់ ឯកសារ", +txtColor:"ពណ៌អក្សរ",xhtmlDec:"បញ្ជូល XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ko.js new file mode 100644 index 00000000..168e9b17 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ko",{bgColor:"배경색상",bgFixed:"스크롤되지 않는 배경",bgImage:"배경 이미지 URL",charset:"캐릭터셋 인코딩",charsetASCII:"ASCII",charsetCE:"중앙 유럽",charsetCR:"키릴 문자",charsetCT:"중국어 (Big5)",charsetGR:"그리스어",charsetJP:"일본어",charsetKR:"한국어",charsetOther:"다른 캐릭터셋 인코딩",charsetTR:"터키어",charsetUN:"유니코드 (UTF-8)",charsetWE:"서유럽",chooseColor:"선택하기",design:"디자인",docTitle:"페이지명",docType:"문서 헤드",docTypeOther:"다른 문서헤드",label:"문서 속성",margin:"페이지 여백",marginBottom:"아래",marginLeft:"왼쪽",marginRight:"오른쪽", +marginTop:"위",meta:"메타데이터",metaAuthor:"작성자",metaCopyright:"저작권",metaDescription:"문서 설명",metaKeywords:"문서 키워드 (콤마로 구분)",other:"<기타>",previewHtml:'

이것은 예문입니다. 여러분은 지금 CKEditor를 사용하고 있습니다.

',title:"문서 속성",txtColor:"글자 색상",xhtmlDec:"XHTML 문서정의 포함"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ku.js new file mode 100644 index 00000000..f2dd2844 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ku",{bgColor:"ڕەنگی پاشبنەما",bgFixed:"بێ هاتووچوپێکردنی (چەسپاو) پاشبنەمای وێنه",bgImage:"ناونیشانی بەستەری وێنەی پاشبنەما",charset:"دەستەی نووسەی بەکۆدکەر",charsetASCII:"ASCII",charsetCE:"ناوەڕاستی ئەوروپا",charsetCR:"سیریلیك",charsetCT:"چینی(Big5)",charsetGR:"یۆنانی",charsetJP:"ژاپۆنی",charsetKR:"کۆریا",charsetOther:"دەستەی نووسەی بەکۆدکەری تر",charsetTR:"تورکی",charsetUN:"Unicode (UTF-8)",charsetWE:"ڕۆژئاوای ئەوروپا",chooseColor:"هەڵبژێرە",design:"شێوەکار", +docTitle:"سەردێڕی پەڕه",docType:"سەرپەڕەی جۆری پەڕه",docTypeOther:"سەرپەڕەی جۆری پەڕەی تر",label:"خاسییەتی پەڕه",margin:"تەنیشت پەڕه",marginBottom:"ژێرەوه",marginLeft:"چەپ",marginRight:"ڕاست",marginTop:"سەرەوه",meta:"زانیاری مێتا",metaAuthor:"نووسەر",metaCopyright:"مافی بڵاوکردنەوەی",metaDescription:"پێناسەی لاپەڕه",metaKeywords:"بەڵگەنامەی وشەی کاریگەر(به کۆما لێکیان جیابکەوه)",other:"هیتر...",previewHtml:'

ئەمە وەك نموونەی دەقه. تۆ بەکاردەهێنیت CKEditor.

', +title:"خاسییەتی پەڕه",txtColor:"ڕەنگی دەق",xhtmlDec:"بەیاننامەکانی XHTML لەگەڵدابێت"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/lt.js new file mode 100644 index 00000000..b2e1ba95 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lt",{bgColor:"Fono spalva",bgFixed:"Neslenkantis fonas",bgImage:"Fono paveikslėlio nuoroda (URL)",charset:"Simbolių kodavimo lentelė",charsetASCII:"ASCII",charsetCE:"Centrinės Europos",charsetCR:"Kirilica",charsetCT:"Tradicinės kinų (Big5)",charsetGR:"Graikų",charsetJP:"Japonų",charsetKR:"Korėjiečių",charsetOther:"Kita simbolių kodavimo lentelė",charsetTR:"Turkų",charsetUN:"Unikodas (UTF-8)",charsetWE:"Vakarų Europos",chooseColor:"Pasirinkite",design:"Išdėstymas", +docTitle:"Puslapio antraštė",docType:"Dokumento tipo antraštė",docTypeOther:"Kita dokumento tipo antraštė",label:"Dokumento savybės",margin:"Puslapio kraštinės",marginBottom:"Apačioje",marginLeft:"Kairėje",marginRight:"Dešinėje",marginTop:"Viršuje",meta:"Meta duomenys",metaAuthor:"Autorius",metaCopyright:"Autorinės teisės",metaDescription:"Dokumento apibūdinimas",metaKeywords:"Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",other:"",previewHtml:'

Tai yra pavyzdinis tekstas. Jūs naudojate CKEditor.

', +title:"Dokumento savybės",txtColor:"Teksto spalva",xhtmlDec:"Įtraukti XHTML deklaracijas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/lv.js new file mode 100644 index 00000000..61014944 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lv",{bgColor:"Fona krāsa",bgFixed:"Fona attēls ir fiksēts",bgImage:"Fona attēla hipersaite",charset:"Simbolu kodējums",charsetASCII:"ASCII",charsetCE:"Centrāleiropas",charsetCR:"Kirilica",charsetCT:"Ķīniešu tradicionālā (Big5)",charsetGR:"Grieķu",charsetJP:"Japāņu",charsetKR:"Korejiešu",charsetOther:"Cits simbolu kodējums",charsetTR:"Turku",charsetUN:"Unikods (UTF-8)",charsetWE:"Rietumeiropas",chooseColor:"Izvēlēties",design:"Dizains",docTitle:"Dokumenta virsraksts ", +docType:"Dokumenta tips",docTypeOther:"Cits dokumenta tips",label:"Dokumenta īpašības",margin:"Lapas robežas",marginBottom:"Apakšā",marginLeft:"Pa kreisi",marginRight:"Pa labi",marginTop:"Augšā",meta:"META dati",metaAuthor:"Autors",metaCopyright:"Autortiesības",metaDescription:"Dokumenta apraksts",metaKeywords:"Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",other:"<cits>",previewHtml:'<p>Šis ir <strong>parauga teksts</strong>. Jūs izmantojiet <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Dokumenta īpašības",txtColor:"Teksta krāsa",xhtmlDec:"Ietvert XHTML deklarācijas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/mk.js new file mode 100644 index 00000000..7f48e61c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mk",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/mn.js new file mode 100644 index 00000000..8907ba39 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mn",{bgColor:"Фоно өнгө",bgFixed:"Гүйдэггүй фоно",bgImage:"Фоно зурагны URL",charset:"Encoding тэмдэгт",charsetASCII:"ASCII",charsetCE:"Төв европ",charsetCR:"Крил",charsetCT:"Хятадын уламжлалт (Big5)",charsetGR:"Гред",charsetJP:"Япон",charsetKR:"Солонгос",charsetOther:"Encoding-д өөр тэмдэгт оноох",charsetTR:"Tурк",charsetUN:"Юникод (UTF-8)",charsetWE:"Баруун европ",chooseColor:"Сонгох",design:"Design",docTitle:"Хуудасны гарчиг",docType:"Баримт бичгийн төрөл Heading", +docTypeOther:"Бусад баримт бичгийн төрөл Heading",label:"Баримт бичиг шинж чанар",margin:"Хуудасны захын зай",marginBottom:"Доод тал",marginLeft:"Зүүн тал",marginRight:"Баруун тал",marginTop:"Дээд тал",meta:"Meta өгөгдөл",metaAuthor:"Зохиогч",metaCopyright:"Зохиогчийн эрх",metaDescription:"Баримт бичгийн тайлбар",metaKeywords:"Баримт бичгийн индекс түлхүүр үг (таслалаар тусгаарлагдана)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Баримт бичиг шинж чанар",txtColor:"Фонтны өнгө",xhtmlDec:"XHTML-ийн мэдээллийг агуулах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ms.js new file mode 100644 index 00000000..fe51ef5a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ms",{bgColor:"Warna Latarbelakang",bgFixed:"Imej Latarbelakang tanpa Skrol",bgImage:"URL Gambar Latarbelakang",charset:"Enkod Set Huruf",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Enkod Set Huruf yang Lain",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Tajuk Muka Surat", +docType:"Jenis Kepala Dokumen",docTypeOther:"Jenis Kepala Dokumen yang Lain",label:"Ciri-ciri dokumen",margin:"Margin Muka Surat",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Data Meta",metaAuthor:"Penulis",metaCopyright:"Hakcipta",metaDescription:"Keterangan Dokumen",metaKeywords:"Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",other:"<lain>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Ciri-ciri dokumen",txtColor:"Warna Text",xhtmlDec:"Masukkan pemula kod XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/nb.js new file mode 100644 index 00000000..87926ab8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nb",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/nl.js new file mode 100644 index 00000000..7425a0aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nl",{bgColor:"Achtergrondkleur",bgFixed:"Niet-scrollend (gefixeerde) achtergrond",bgImage:"Achtergrondafbeelding URL",charset:"Tekencodering",charsetASCII:"ASCII",charsetCE:"Centraal Europees",charsetCR:"Cyrillisch",charsetCT:"Traditioneel Chinees (Big5)",charsetGR:"Grieks",charsetJP:"Japans",charsetKR:"Koreaans",charsetOther:"Andere tekencodering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"West Europees",chooseColor:"Kies",design:"Ontwerp",docTitle:"Paginatitel", +docType:"Documenttype-definitie",docTypeOther:"Andere documenttype-definitie",label:"Documenteigenschappen",margin:"Pagina marges",marginBottom:"Onder",marginLeft:"Links",marginRight:"Rechts",marginTop:"Boven",meta:"Meta tags",metaAuthor:"Auteur",metaCopyright:"Auteursrechten",metaDescription:"Documentbeschrijving",metaKeywords:"Trefwoorden voor indexering (komma-gescheiden)",other:"Anders...",previewHtml:'<p>Dit is <strong>voorbeeld tekst</strong>. Je gebruikt <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Documenteigenschappen",txtColor:"Tekstkleur",xhtmlDec:"XHTML declaratie invoegen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/no.js new file mode 100644 index 00000000..11dddcff --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","no",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pl.js new file mode 100644 index 00000000..4fb43438 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pl",{bgColor:"Kolor tła",bgFixed:"Tło nieruchome (nieprzewijające się)",bgImage:"Adres URL obrazka tła",charset:"Kodowanie znaków",charsetASCII:"ASCII",charsetCE:"Środkowoeuropejskie",charsetCR:"Cyrylica",charsetCT:"Chińskie tradycyjne (Big5)",charsetGR:"Greckie",charsetJP:"Japońskie",charsetKR:"Koreańskie",charsetOther:"Inne kodowanie znaków",charsetTR:"Tureckie",charsetUN:"Unicode (UTF-8)",charsetWE:"Zachodnioeuropejskie",chooseColor:"Wybierz",design:"Projekt strony", +docTitle:"Tytuł strony",docType:"Definicja typu dokumentu",docTypeOther:"Inna definicja typu dokumentu",label:"Właściwości dokumentu",margin:"Marginesy strony",marginBottom:"Dolny",marginLeft:"Lewy",marginRight:"Prawy",marginTop:"Górny",meta:"Znaczniki meta",metaAuthor:"Autor",metaCopyright:"Prawa autorskie",metaDescription:"Opis dokumentu",metaKeywords:"Słowa kluczowe dokumentu (oddzielone przecinkami)",other:"Inne",previewHtml:'<p>To jest <strong>przykładowy tekst</strong>. Korzystasz z programu <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Właściwości dokumentu",txtColor:"Kolor tekstu",xhtmlDec:"Uwzględnij deklaracje XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pt-br.js new file mode 100644 index 00000000..c671fed0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt-br",{bgColor:"Cor do Plano de Fundo",bgFixed:"Plano de Fundo Fixo",bgImage:"URL da Imagem de Plano de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Tradicional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Escolher",design:"Design", +docTitle:"Título da Página",docType:"Cabeçalho Tipo de Documento",docTypeOther:"Outro Tipo de Documento",label:"Propriedades Documento",margin:"Margens da Página",marginBottom:"Inferior",marginLeft:"Inferior",marginRight:"Direita",marginTop:"Superior",meta:"Meta Dados",metaAuthor:"Autor",metaCopyright:"Direitos Autorais",metaDescription:"Descrição do Documento",metaKeywords:"Palavras-chave de Indexação do Documento (separadas por vírgula)",other:"<outro>",previewHtml:'<p>Este é um <strong>texto de exemplo</strong>. Você está usando <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pt.js new file mode 100644 index 00000000..ec1514d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt",{bgColor:"Cor de Fundo",bgFixed:"Fundo Fixo",bgImage:"Caminho para a Imagem de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Traditional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Choose",design:"Desenho",docTitle:"Título da Página", +docType:"Tipo de Cabeçalho do Documento",docTypeOther:"Outro Tipo de Cabeçalho do Documento",label:"Propriedades do Documento",margin:"Margem das Páginas",marginBottom:"Fundo",marginLeft:"Esquerda",marginRight:"Direita",marginTop:"Topo",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Direitos de Autor",metaDescription:"Descrição do Documento",metaKeywords:"Palavras de Indexação do Documento (separadas por virgula)",other:"<outro>",previewHtml:'<p>Isto é algum <strong>texto amostra</strong>. Está a usar o <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades do Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ro.js new file mode 100644 index 00000000..9aa0e6d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ro",{bgColor:"Culoarea fundalului (Background Color)",bgFixed:"Fundal neflotant, fix (Non-scrolling Background)",bgImage:"URL-ul imaginii din fundal (Background Image URL)",charset:"Encoding setului de caractere",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Chirilic",charsetCT:"Chinezesc tradiţional (Big5)",charsetGR:"Grecesc",charsetJP:"Japonez",charsetKR:"Corean",charsetOther:"Alt encoding al setului de caractere",charsetTR:"Turcesc",charsetUN:"Unicode (UTF-8)", +charsetWE:"Vest european",chooseColor:"Alege",design:"Design",docTitle:"Titlul paginii",docType:"Document Type Heading",docTypeOther:"Alt Document Type Heading",label:"Proprietăţile documentului",margin:"Marginile paginii",marginBottom:"Jos",marginLeft:"Stânga",marginRight:"Dreapta",marginTop:"Sus",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Drepturi de autor",metaDescription:"Descrierea documentului",metaKeywords:"Cuvinte cheie după care se va indexa documentul (separate prin virgulă)",other:"<alt>", +previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Proprietăţile documentului",txtColor:"Culoarea textului",xhtmlDec:"Include declaraţii XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ru.js new file mode 100644 index 00000000..01d585f6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ru",{bgColor:"Цвет фона",bgFixed:"Фон прикреплён (не проматывается)",bgImage:"Ссылка на фоновое изображение",charset:"Кодировка набора символов",charsetASCII:"ASCII",charsetCE:"Центрально-европейская",charsetCR:"Кириллица",charsetCT:"Китайская традиционная (Big5)",charsetGR:"Греческая",charsetJP:"Японская",charsetKR:"Корейская",charsetOther:"Другая кодировка набора символов",charsetTR:"Турецкая",charsetUN:"Юникод (UTF-8)",charsetWE:"Западно-европейская",chooseColor:"Выберите", +design:"Дизайн",docTitle:"Заголовок страницы",docType:"Заголовок типа документа",docTypeOther:"Другой заголовок типа документа",label:"Свойства документа",margin:"Отступы страницы",marginBottom:"Нижний",marginLeft:"Левый",marginRight:"Правый",marginTop:"Верхний",meta:"Метаданные",metaAuthor:"Автор",metaCopyright:"Авторские права",metaDescription:"Описание документа",metaKeywords:"Ключевые слова документа (через запятую)",other:"Другой ...",previewHtml:'<p>Это <strong>пример</strong> текста, написанного с помощью <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Свойства документа",txtColor:"Цвет текста",xhtmlDec:"Включить объявления XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/si.js new file mode 100644 index 00000000..19a7d6fa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","si",{bgColor:"පසුබිම් වර්ණය",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"පසුබිම් ",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"මාධ්‍ය ",charsetCR:"සිරිලික් හෝඩිය",charsetCT:"චීන සම්ප්‍රදාය",charsetGR:"ග්‍රීක",charsetJP:"ජපාන",charsetKR:"Korean",charsetOther:"අනෙකුත් අක්ෂර කොටස්",charsetTR:"තුර්කි",charsetUN:"Unicode (UTF-8)",charsetWE:"බස්නාහිර ",chooseColor:"තෝරන්න",design:"Design",docTitle:"පිටු මාතෘකාව",docType:"ලිපිගොනු වර්ගයේ මාතෘකාව", +docTypeOther:"අනෙකුත් ලිපිගොනු වර්ගයේ මාතෘකා",label:"ලිපිගොනු ",margin:"පිටු සීමාවන්",marginBottom:"පහල",marginLeft:"වම",marginRight:"දකුණ",marginTop:"ඉ",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"ප්‍රකාශන ",metaDescription:"ලිපිගොනු ",metaKeywords:"ලිපිගොනු පෙලගේසමේ විශේෂ වචන (කොමා වලින් වෙන්කරන ලද)",other:"අනෙකුත්",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"පෝරමයේ ගුණ/",txtColor:"අක්ෂර වර්ණ",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sk.js new file mode 100644 index 00000000..b347ab05 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sk",{bgColor:"Farba pozadia",bgFixed:"Fixné pozadie",bgImage:"URL obrázka na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Stredoeurópska",charsetCR:"Cyrillika",charsetCT:"Čínština tradičná (Big5)",charsetGR:"Gréčtina",charsetJP:"Japončina",charsetKR:"Korejčina",charsetOther:"Iná znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západná európa",chooseColor:"Vybrať",design:"Design",docTitle:"Titulok stránky",docType:"Typ záhlavia dokumentu", +docTypeOther:"Iný typ záhlavia dokumentu",label:"Vlastnosti dokumentu",margin:"Okraje stránky (margins)",marginBottom:"Dolný",marginLeft:"Ľavý",marginRight:"Pravý",marginTop:"Horný",meta:"Meta značky",metaAuthor:"Autor",metaCopyright:"Autorské práva (copyright)",metaDescription:"Popis dokumentu",metaKeywords:"Indexované kľúčové slová dokumentu (oddelené čiarkou)",other:"Iný...",previewHtml:'<p>Toto je nejaký <strong>ukážkový text</strong>. Používate <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Vlastnosti dokumentu",txtColor:"Farba textu",xhtmlDec:"Vložiť deklarácie XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sl.js new file mode 100644 index 00000000..7017e1bd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sl",{bgColor:"Barva ozadja",bgFixed:"Nepremično ozadje",bgImage:"URL slike za ozadje",charset:"Kodna tabela",charsetASCII:"ASCII",charsetCE:"Srednjeevropsko",charsetCR:"Cirilica",charsetCT:"Tradicionalno Kitajsko (Big5)",charsetGR:"Grško",charsetJP:"Japonsko",charsetKR:"Korejsko",charsetOther:"Druga kodna tabela",charsetTR:"Turško",charsetUN:"Unicode (UTF-8)",charsetWE:"Zahodnoevropsko",chooseColor:"Izberi",design:"Oblika",docTitle:"Naslov strani",docType:"Glava tipa dokumenta", +docTypeOther:"Druga glava tipa dokumenta",label:"Lastnosti dokumenta",margin:"Zamiki strani",marginBottom:"Spodaj",marginLeft:"Levo",marginRight:"Desno",marginTop:"Na vrhu",meta:"Meta podatki",metaAuthor:"Avtor",metaCopyright:"Avtorske pravice",metaDescription:"Opis strani",metaKeywords:"Ključne besede (ločene z vejicami)",other:"<drug>",previewHtml:'<p>Tole je<strong>primer besedila</strong>. Uporabljate <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Lastnosti dokumenta",txtColor:"Barva besedila", +xhtmlDec:"Vstavi XHTML deklaracije"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sq.js new file mode 100644 index 00000000..373c7293 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sq",{bgColor:"Ngjyra e Prapavijës",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"URL e Fotografisë së Prapavijës",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Evropës Qendrore",charsetCR:"Sllave",charsetCT:"Kinezisht Tradicional (Big5)",charsetGR:"Greke",charsetJP:"Japoneze",charsetKR:"Koreane",charsetOther:"Other Character Set Encoding",charsetTR:"Turke",charsetUN:"Unicode (UTF-8)",charsetWE:"Evropiano Perëndimor",chooseColor:"Përzgjidh", +design:"Dizajni",docTitle:"Titulli i Faqes",docType:"Document Type Heading",docTypeOther:"Koka e Llojit Tjetër të Dokumentit",label:"Karakteristikat e Dokumentit",margin:"Kufijtë e Faqes",marginBottom:"Poshtë",marginLeft:"Majtas",marginRight:"Djathtas",marginTop:"Lart",meta:"Meta Tags",metaAuthor:"Autori",metaCopyright:"Të drejtat e kopjimit",metaDescription:"Përshkrimi i Dokumentit",metaKeywords:"Fjalët kyçe të indeksimit të dokumentit (të ndarë me presje)",other:"Tjera...",previewHtml:'<p>Ky është nje <strong>tekst shembull</strong>. Ju jeni duke shfrytëzuar <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Karakteristikat e Dokumentit",txtColor:"Ngjyra e Tekstit",xhtmlDec:"Përfshij XHTML Deklarimet"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js new file mode 100644 index 00000000..77312ffb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr-latn",{bgColor:"Boja pozadine",bgFixed:"Fiksirana pozadina",bgImage:"URL pozadinske slike",charset:"Kodiranje skupa karaktera",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Ostala kodiranja skupa karaktera",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Naslov stranice", +docType:"Zaglavlje tipa dokumenta",docTypeOther:"Ostala zaglavlja tipa dokumenta",label:"Osobine dokumenta",margin:"Margine stranice",marginBottom:"Donja",marginLeft:"Leva",marginRight:"Desna",marginTop:"Gornja",meta:"Metapodaci",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne reci za indeksiranje dokumenta (razdvojene zarezima)",other:"<остало>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Osobine dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ukljuci XHTML deklaracije"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sr.js new file mode 100644 index 00000000..f50c3e4a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr",{bgColor:"Боја позадине",bgFixed:"Фиксирана позадина",bgImage:"УРЛ позадинске слике",charset:"Кодирање скупа карактера",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Остала кодирања скупа карактера",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Наслов странице", +docType:"Заглавље типа документа",docTypeOther:"Остала заглавља типа документа",label:"Особине документа",margin:"Маргине странице",marginBottom:"Доња",marginLeft:"Лева",marginRight:"Десна",marginTop:"Горња",meta:"Метаподаци",metaAuthor:"Аутор",metaCopyright:"Ауторска права",metaDescription:"Опис документа",metaKeywords:"Кључне речи за индексирање документа (раздвојене зарезом)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Особине документа",txtColor:"Боја текста",xhtmlDec:"Улључи XHTML декларације"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sv.js new file mode 100644 index 00000000..363de9bc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","sv",{bgColor:"Bakgrundsfärg",bgFixed:"Fast bakgrund",bgImage:"Bakgrundsbildens URL",charset:"Teckenuppsättningar",charsetASCII:"ASCII",charsetCE:"Central Europa",charsetCR:"Kyrillisk",charsetCT:"Traditionell Kinesisk (Big5)",charsetGR:"Grekiska",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Övriga teckenuppsättningar",charsetTR:"Turkiska",charsetUN:"Unicode (UTF-8)",charsetWE:"Väst Europa",chooseColor:"Välj",design:"Design",docTitle:"Sidtitel",docType:"Sidhuvud", +docTypeOther:"Övriga sidhuvuden",label:"Dokumentegenskaper",margin:"Sidmarginal",marginBottom:"Botten",marginLeft:"Vänster",marginRight:"Höger",marginTop:"Topp",meta:"Metadata",metaAuthor:"Författare",metaCopyright:"Upphovsrätt",metaDescription:"Sidans beskrivning",metaKeywords:"Sidans nyckelord (kommaseparerade)",other:"Annan...",previewHtml:'<p>Detta är en <strong>exempel text</strong>. Du använder <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Textfärg",xhtmlDec:"Inkludera XHTML deklaration"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/th.js new file mode 100644 index 00000000..2befc7f7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","th",{bgColor:"สีพื้นหลัง",bgFixed:"พื้นหลังแบบไม่มีแถบเลื่อน",bgImage:"ที่อยู่อ้างอิงออนไลน์ของรูปพื้นหลัง (Image URL)",charset:"ชุดตัวอักษร",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"ชุดตัวอักษรอื่นๆ",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"ออกแบบ",docTitle:"ชื่อไตเติ้ล", +docType:"ประเภทของเอกสาร",docTypeOther:"ประเภทเอกสารอื่นๆ",label:"คุณสมบัติของเอกสาร",margin:"ระยะขอบของหน้าเอกสาร",marginBottom:"ด้านล่าง",marginLeft:"ด้านซ้าย",marginRight:"ด้านขวา",marginTop:"ด้านบน",meta:"ข้อมูลสำหรับเสิร์ชเอนจิ้น",metaAuthor:"ผู้สร้างเอกสาร",metaCopyright:"สงวนลิขสิทธิ์",metaDescription:"ประโยคอธิบายเกี่ยวกับเอกสาร",metaKeywords:"คำสำคัญอธิบายเอกสาร (คั่นคำด้วย คอมม่า)",other:"<อื่น ๆ>",previewHtml:'<p>นี่เป็น <strong>ข้อความตัวอย่าง</strong>. คุณกำลังใช้งาน <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"คุณสมบัติของเอกสาร",txtColor:"สีตัวอักษร",xhtmlDec:"รวมเอา XHTML Declarations ไว้ด้วย"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/tr.js new file mode 100644 index 00000000..00a35d43 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tr",{bgColor:"Arka Plan Rengi",bgFixed:"Sabit Arka Plan",bgImage:"Arka Plan Resim URLsi",charset:"Karakter Kümesi Kodlaması",charsetASCII:"ASCII",charsetCE:"Orta Avrupa",charsetCR:"Kiril",charsetCT:"Geleneksel Çince (Big5)",charsetGR:"Yunanca",charsetJP:"Japonca",charsetKR:"Korece",charsetOther:"Diğer Karakter Kümesi Kodlaması",charsetTR:"Türkçe",charsetUN:"Evrensel Kod (UTF-8)",charsetWE:"Batı Avrupa",chooseColor:"Seçiniz",design:"Dizayn",docTitle:"Sayfa Başlığı", +docType:"Belge Türü Başlığı",docTypeOther:"Diğer Belge Türü Başlığı",label:"Belge Özellikleri",margin:"Kenar Boşlukları",marginBottom:"Alt",marginLeft:"Sol",marginRight:"Sağ",marginTop:"Tepe",meta:"Tanım Bilgisi (Meta)",metaAuthor:"Yazar",metaCopyright:"Telif",metaDescription:"Belge Tanımı",metaKeywords:"Belge Dizinleme Anahtar Kelimeleri (virgülle ayrılmış)",other:"<diğer>",previewHtml:'<p>Bu bir <strong>örnek metindir</strong>. <a href="javascript:void(0)">CKEditor</a> kullanıyorsunuz.</p>',title:"Belge Özellikleri", +txtColor:"Yazı Rengi",xhtmlDec:"XHTML Bildirimlerini Dahil Et"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/tt.js new file mode 100644 index 00000000..c1c6ce14 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tt",{bgColor:"Фон төсе",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Урта Ауропа",charsetCR:"Кириллик",charsetCT:"Гадәти кытай (Big5)",charsetGR:"Грек",charsetJP:"Япон",charsetKR:"Корей",charsetOther:"Other Character Set Encoding",charsetTR:"Төрек",charsetUN:"Юникод (UTF-8)",charsetWE:"Көнбатыш Ауропа",chooseColor:"Сайлау",design:"Дизайн",docTitle:"Page Title",docType:"Document Type Heading", +docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Аска",marginLeft:"Сул",marginRight:"Right",marginTop:"Өскә",meta:"Meta Tags",metaAuthor:"Автор",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Башка...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Document Properties",txtColor:"Текст төсе", +xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ug.js new file mode 100644 index 00000000..424d13a0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ug",{bgColor:"تەگلىك رەڭگى",bgFixed:"تەگلىك سۈرەتنى دومىلاتما",bgImage:"تەگلىك سۈرەت",charset:"ھەرپ كودلىنىشى",charsetASCII:"ASCII",charsetCE:"ئوتتۇرا ياۋرۇپا",charsetCR:"سىلاۋيانچە",charsetCT:"مۇرەككەپ خەنزۇچە (Big5)",charsetGR:"گىرېكچە",charsetJP:"ياپونچە",charsetKR:"كۆرىيەچە",charsetOther:"باشقا ھەرپ كودلىنىشى",charsetTR:"تۈركچە",charsetUN:"يۇنىكود (UTF-8)",charsetWE:"غەربىي ياۋرۇپا",chooseColor:"تاللاڭ",design:"لايىھە",docTitle:"بەت ماۋزۇسى",docType:"پۈتۈك تىپى", +docTypeOther:"باشقا پۈتۈك تىپى",label:"بەت خاسلىقى",margin:"بەت گىرۋەك",marginBottom:"ئاستى",marginLeft:"سول",marginRight:"ئوڭ",marginTop:"ئۈستى",meta:"مېتا سانلىق مەلۇمات",metaAuthor:"يازغۇچى",metaCopyright:"نەشر ھوقۇقى",metaDescription:"بەت يۈزى چۈشەندۈرۈشى",metaKeywords:"بەت يۈزى ئىندېكىس ھالقىلىق سۆزى (ئىنگلىزچە پەش [,] بىلەن ئايرىلىدۇ)",other:"باشقا",previewHtml:'<p>بۇ بىر قىسىم <strong>كۆرسەتمىگە ئىشلىتىدىغان تېكىست </strong>سىز نۆۋەتتە <a href="javascript:void(0)">CKEditor</a>.نى ئىشلىتىۋاتىسىز.</p>', +title:"بەت خاسلىقى",txtColor:"تېكىست رەڭگى",xhtmlDec:"XHTML ئېنىقلىمىسىنى ئۆز ئىچىگە ئالىدۇ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/uk.js new file mode 100644 index 00000000..c1027967 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","uk",{bgColor:"Колір тла",bgFixed:"Тло без прокрутки",bgImage:"URL зображення тла",charset:"Кодування набору символів",charsetASCII:"ASCII",charsetCE:"Центрально-європейська",charsetCR:"Кирилиця",charsetCT:"Китайська традиційна (Big5)",charsetGR:"Грецька",charsetJP:"Японська",charsetKR:"Корейська",charsetOther:"Інше кодування набору символів",charsetTR:"Турецька",charsetUN:"Юнікод (UTF-8)",charsetWE:"Західно-европейская",chooseColor:"Обрати",design:"Дизайн",docTitle:"Заголовок сторінки", +docType:"Заголовок типу документу",docTypeOther:"Інший заголовок типу документу",label:"Властивості документа",margin:"Відступи сторінки",marginBottom:"Нижній",marginLeft:"Лівий",marginRight:"Правий",marginTop:"Верхній",meta:"Мета дані",metaAuthor:"Автор",metaCopyright:"Авторські права",metaDescription:"Опис документа",metaKeywords:"Ключові слова документа (розділені комами)",other:"<інший>",previewHtml:'<p>Це приклад<strong>тексту</strong>. Ви використовуєте<a href="javascript:void(0)"> CKEditor </a>.</p>', +title:"Властивості документа",txtColor:"Колір тексту",xhtmlDec:"Ввімкнути XHTML оголошення"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/vi.js new file mode 100644 index 00000000..b4583767 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","vi",{bgColor:"Màu nền",bgFixed:"Không cuộn nền",bgImage:"URL của Hình ảnh nền",charset:"Bảng mã ký tự",charsetASCII:"ASCII",charsetCE:"Trung Âu",charsetCR:"Tiếng Kirin",charsetCT:"Tiếng Trung Quốc (Big5)",charsetGR:"Tiếng Hy Lạp",charsetJP:"Tiếng Nhật",charsetKR:"Tiếng Hàn",charsetOther:"Bảng mã ký tự khác",charsetTR:"Tiếng Thổ Nhĩ Kỳ",charsetUN:"Unicode (UTF-8)",charsetWE:"Tây Âu",chooseColor:"Chọn màu",design:"Thiết kế",docTitle:"Tiêu đề Trang",docType:"Kiểu Đề mục Tài liệu", +docTypeOther:"Kiểu Đề mục Tài liệu khác",label:"Thuộc tính Tài liệu",margin:"Đường biên của Trang",marginBottom:"Dưới",marginLeft:"Trái",marginRight:"Phải",marginTop:"Trên",meta:"Siêu dữ liệu",metaAuthor:"Tác giả",metaCopyright:"Bản quyền",metaDescription:"Mô tả tài liệu",metaKeywords:"Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",other:"<khác>",previewHtml:'<p>Đây là một số <strong>văn bản mẫu</strong>. Bạn đang sử dụng <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Thuộc tính Tài liệu", +txtColor:"Màu chữ",xhtmlDec:"Bao gồm cả định nghĩa XHTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js new file mode 100644 index 00000000..d8c87e71 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh-cn",{bgColor:"背景颜色",bgFixed:"不滚动背景图像",bgImage:"背景图像",charset:"字符编码",charsetASCII:"ASCII",charsetCE:"中欧",charsetCR:"西里尔文",charsetCT:"繁体中文 (Big5)",charsetGR:"希腊文",charsetJP:"日文",charsetKR:"韩文",charsetOther:"其它字符编码",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西欧",chooseColor:"选择",design:"设计",docTitle:"页面标题",docType:"文档类型",docTypeOther:"其它文档类型",label:"页面属性",margin:"页面边距",marginBottom:"下",marginLeft:"左",marginRight:"右",marginTop:"上",meta:"Meta 数据",metaAuthor:"作者", +metaCopyright:"版权",metaDescription:"页面说明",metaKeywords:"页面索引关键字 (用半角逗号[,]分隔)",other:"<其他>",previewHtml:'<p>这是一些<strong>演示用文字</strong>。您当前正在使用<a href="javascript:void(0)">CKEditor</a>。</p>',title:"页面属性",txtColor:"文本颜色",xhtmlDec:"包含 XHTML 声明"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/zh.js new file mode 100644 index 00000000..193a57da --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh",{bgColor:"背景顏色",bgFixed:"非捲動 (固定) 背景",bgImage:"背景圖像 URL",charset:"字元集編碼",charsetASCII:"ASCII",charsetCE:"中歐語系",charsetCR:"斯拉夫文",charsetCT:"正體中文 (Big5)",charsetGR:"希臘文",charsetJP:"日文",charsetKR:"韓文",charsetOther:"其他字元集編碼",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西歐語系",chooseColor:"選擇",design:"設計模式",docTitle:"頁面標題",docType:"文件類型標題",docTypeOther:"其他文件類型標題",label:"文件屬性",margin:"頁面邊界",marginBottom:"底端",marginLeft:"左",marginRight:"右",marginTop:"頂端", +meta:"Meta 標籤",metaAuthor:"作者",metaCopyright:"版權資訊",metaDescription:"文件描述",metaKeywords:"文件索引關鍵字 (以逗號分隔)",other:"其他…",previewHtml:'<p>此為簡短的<strong>範例文字</strong>。您正在使用 <a href="javascript:void(0)">CKEditor</a>。</p>',title:"文件屬性",txtColor:"文字顏色",xhtmlDec:"包含 XHTML 宣告"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/docprops/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/docprops/plugin.js new file mode 100644 index 00000000..efbe090f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/docprops/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("docprops",{requires:"wysiwygarea,dialog,colordialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"docprops,docprops-rtl",hidpi:!0,init:function(a){var b=new CKEDITOR.dialogCommand("docProps");b.modes={wysiwyg:a.config.fullPage};b.allowedContent={body:{styles:"*",attributes:"dir"},html:{attributes:"lang,xml:lang"}}; +b.requiredContent="body";a.addCommand("docProps",b);CKEDITOR.dialog.add("docProps",this.path+"dialogs/docprops.js");a.ui.addButton&&a.ui.addButton("DocProps",{label:a.lang.docprops.label,command:"docProps",toolbar:"document,30"})}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/dialogs/find.js b/platforms/browser/www/lib/ckeditor/plugins/find/dialogs/find.js new file mode 100644 index 00000000..0ad6a589 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/dialogs/find.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(c){return c.type==CKEDITOR.NODE_TEXT&&0<c.getLength()&&(!o||!c.isReadOnly())}function s(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)))}var o,t=function(){return{textNode:this.textNode,offset:this.offset,character:this.textNode?this.textNode.getText().charAt(this.offset):null,hitMatchBoundary:this._.matchBoundary}},u=["find","replace"],p=[["txtFindFind","txtFindReplace"],["txtFindCaseChk", +"txtReplaceCaseChk"],["txtFindWordChk","txtReplaceWordChk"],["txtFindCyclic","txtReplaceCyclic"]],n=function(c,g){function n(a,b){var d=c.createRange();d.setStart(a.textNode,b?a.offset:a.offset+1);d.setEndAt(c.editable(),CKEDITOR.POSITION_BEFORE_END);return d}function q(a){var b=c.getSelection(),d=c.editable();b&&!a?(a=b.getRanges()[0].clone(),a.collapse(!0)):(a=c.createRange(),a.setStartAt(d,CKEDITOR.POSITION_AFTER_START));a.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);return a}var v=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1}, +fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},c.config.find_highlight,!0)),l=function(a,b){var d=this,c=new CKEDITOR.dom.walker(a);c.guard=b?s:function(a){!s(a)&&(d._.matchBoundary=!0)};c.evaluator=y;c.breakOnFalse=1;a.startContainer.type==CKEDITOR.NODE_TEXT&&(this.textNode=a.startContainer,this.offset=a.startOffset-1);this._={matchWord:b,walker:c,matchBoundary:!1}};l.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(a){var b=this.textNode; +if(null===b)return t.call(this);this._.matchBoundary=!1;if(b&&a&&0<this.offset)this.offset--;else if(b&&this.offset<b.getLength()-1)this.offset++;else{for(b=null;!b&&!(b=this._.walker[a?"previous":"next"].call(this._.walker),this._.matchWord&&!b||this._.walker._.end););this.offset=(this.textNode=b)?a?b.getLength()-1:0:0}return t.call(this)}};var r=function(a,b){this._={walker:a,cursors:[],rangeLength:b,highlightRange:null,isMatched:0}};r.prototype={toDomRange:function(){var a=c.createRange(),b=this._.cursors; +if(1>b.length){var d=this._.walker.textNode;if(d)a.setStartAfter(d);else return null}else d=b[0],b=b[b.length-1],a.setStart(d.textNode,d.offset),a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new l(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1> +this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();v.applyToRange(a,c);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();v.removeFromRange(this._.highlightRange,c);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange); +this._.highlightRange=null}},isReadOnly:function(){return!this._.highlightRange?0:this._.highlightRange.startContainer.isReadOnly()},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a);b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors; +return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,d;d=this._.cursors;d=(b=d[d.length-1])&&b.textNode?new l(n(b)):this._.walker;return new r(d,a)},getCursors:function(){return this._.cursors}};var w=function(a,b){var d=[-1];b&&(a=a.toLowerCase());for(var c=0;c<a.length;c++)for(d.push(d[c]+1);0<d[c+1]&&a.charAt(c)!=a.charAt(d[c+1]-1);)d[c+1]=d[d[c+1]-1]+1;this._={overlap:d,state:0,ignoreCase:!!b,pattern:a}};w.prototype={feedCharacter:function(a){for(this._.ignoreCase&& +(a=a.toLowerCase());;){if(a==this._.pattern.charAt(this._.state))return this._.state++,this._.state==this._.pattern.length?(this._.state=0,2):1;if(this._.state)this._.state=this._.overlap[this._.state];else return 0}return null},reset:function(){this._.state=0}};var z=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,x=function(a){if(!a)return!0;var b=a.charCodeAt(0);return 9<=b&&13>=b||8192<=b&&8202>=b||z.test(a)},e={searchRange:null,matchRange:null,find:function(a,b,d,f,e,A){this.matchRange? +(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(a.length)):this.matchRange=new r(new l(this.searchRange),a.length);for(var i=new w(a,!b),j=0,k="%";null!==k;){for(this.matchRange.moveNext();k=this.matchRange.getEndCharacter();){j=i.feedCharacter(k);if(2==j)break;this.matchRange.moveNext().hitMatchBoundary&&i.reset()}if(2==j){if(d){var h=this.matchRange.getCursors(),m=h[h.length-1],h=h[0],g=c.createRange();g.setStartAt(c.editable(),CKEDITOR.POSITION_AFTER_START); +g.setEnd(h.textNode,h.offset);h=g;m=n(m);h.trim();m.trim();h=new l(h,!0);m=new l(m,!0);if(!x(h.back().character)||!x(m.next().character))continue}this.matchRange.setMatched();!1!==e&&this.matchRange.highlight();return!0}}this.matchRange.clearMatched();this.matchRange.removeHighlight();return f&&!A?(this.searchRange=q(1),this.matchRange=null,arguments.callee.apply(this,Array.prototype.slice.call(arguments).concat([!0]))):!1},replaceCounter:0,replace:function(a,b,d,f,e,g,i){o=1;a=0;if(this.matchRange&& +this.matchRange.isMatched()&&!this.matchRange._.isReplaced&&!this.matchRange.isReadOnly()){this.matchRange.removeHighlight();b=this.matchRange.toDomRange();d=c.document.createText(d);if(!i){var j=c.getSelection();j.selectRanges([b]);c.fire("saveSnapshot")}b.deleteContents();b.insertNode(d);i||(j.selectRanges([b]),c.fire("saveSnapshot"));this.matchRange.updateFromDomRange(b);i||this.matchRange.highlight();this.matchRange._.isReplaced=!0;this.replaceCounter++;a=1}else a=this.find(b,f,e,g,!i);o=0;return a}}, +f=c.lang.find;return{title:f.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton(c,{label:c.lang.common.close})],contents:[{id:"find",label:f.find,title:f.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:f.find,onClick:function(){var a=this.getDialog(); +e.find(a.getValueOf("find","txtFindFind"),a.getValueOf("find","txtFindCaseChk"),a.getValueOf("find","txtFindWordChk"),a.getValueOf("find","txtFindCyclic"))||alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0, +label:f.matchCyclic}]}]}]},{id:"replace",label:f.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindReplace",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:f.replace,onClick:function(){var a=this.getDialog();e.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace", +"txtReplaceWordChk"),a.getValueOf("replace","txtReplaceCyclic"))||alert(f.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtReplace",label:f.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:f.replaceAll,isChanged:!1,onClick:function(){var a=this.getDialog();e.replaceCounter=0;e.searchRange=q(1);e.matchRange&&(e.matchRange.removeHighlight(),e.matchRange=null);for(c.fire("saveSnapshot");e.replace(a, +a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),!1,!0););e.replaceCounter?(alert(f.replaceSuccessMsg.replace(/%1/,e.replaceCounter)),c.fire("saveSnapshot")):alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtReplaceWordChk", +isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:f.matchCyclic}]}]}]}],onLoad:function(){var a=this,b,c=0;this.on("hide",function(){c=0});this.on("show",function(){c=1});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(f){return function(e){f.call(a,e);var g=a._.tabs[e],i;i="find"===e?"txtFindWordChk":"txtReplaceWordChk";b=a.getContentElement(e,"find"===e?"txtFindFind":"txtFindReplace");a.getContentElement(e,i);g.initialized||(CKEDITOR.document.getById(b._.inputId), +g.initialized=!0);if(c){var j,e="find"===e?1:0,g=1-e,k,h=p.length;for(k=0;k<h;k++)i=this.getContentElement(u[e],p[k][e]),j=this.getContentElement(u[g],p[k][g]),j.setValue(i.getValue())}}})},onShow:function(){e.searchRange=q();var a=this.getParentEditor().getSelection().getSelectedText(),b=this.getContentElement(g,"find"==g?"txtFindFind":"txtFindReplace");b.setValue(a);b.select();this.selectPage(g);this[("find"==g&&this._.editor.readOnly?"hide":"show")+"Page"]("replace")},onHide:function(){var a;e.matchRange&& +e.matchRange.isMatched()&&(e.matchRange.removeHighlight(),c.focus(),(a=e.matchRange.toDomRange())&&c.getSelection().selectRanges([a]));delete e.matchRange},onFocus:function(){return"replace"==g?this.getContentElement("replace","txtFindReplace"):this.getContentElement("find","txtFindFind")}}};CKEDITOR.dialog.add("find",function(c){return n(c,"find")});CKEDITOR.dialog.add("replace",function(c){return n(c,"replace")})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/icons/find-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/find/icons/find-rtl.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/find/icons/find-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/icons/find.png b/platforms/browser/www/lib/ckeditor/plugins/find/icons/find.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/find/icons/find.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/find.png b/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/find.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/find.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png b/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png new file mode 100644 index 00000000..9efd8bbd Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/icons/replace.png b/platforms/browser/www/lib/ckeditor/plugins/find/icons/replace.png new file mode 100644 index 00000000..e68afcbe Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/find/icons/replace.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/af.js new file mode 100644 index 00000000..79e13e84 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","af",{find:"Soek",findOptions:"Find Options",findWhat:"Soek na:",matchCase:"Hoof/kleinletter sensitief",matchCyclic:"Soek deurlopend",matchWord:"Hele woord moet voorkom",notFoundMsg:"Teks nie gevind nie.",replace:"Vervang",replaceAll:"Vervang alles",replaceSuccessMsg:"%1 voorkoms(te) vervang.",replaceWith:"Vervang met:",title:"Soek en vervang"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ar.js new file mode 100644 index 00000000..e995c89d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ar",{find:"بحث",findOptions:"Find Options",findWhat:"البحث بـ:",matchCase:"مطابقة حالة الأحرف",matchCyclic:"مطابقة دورية",matchWord:"مطابقة بالكامل",notFoundMsg:"لم يتم العثور على النص المحدد.",replace:"إستبدال",replaceAll:"إستبدال الكل",replaceSuccessMsg:"تم استبدال 1% من الحالات ",replaceWith:"إستبدال بـ:",title:"بحث واستبدال"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/bg.js new file mode 100644 index 00000000..844a0b27 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bg",{find:"Търсене",findOptions:"Find Options",findWhat:"Търси за:",matchCase:"Съвпадение",matchCyclic:"Циклично съвпадение",matchWord:"Съвпадение с дума",notFoundMsg:"Указаният текст не е намерен.",replace:"Препокриване",replaceAll:"Препокрий всички",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Препокрива с:",title:"Търсене и препокриване"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/bn.js new file mode 100644 index 00000000..f80be452 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bn",{find:"খোজো",findOptions:"Find Options",findWhat:"যা খুঁজতে হবে:",matchCase:"কেস মিলাও",matchCyclic:"Match cyclic",matchWord:"পুরা শব্দ মেলাও",notFoundMsg:"আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",replace:"রিপ্লেস",replaceAll:"সব বদলে দাও",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"যার সাথে বদলাতে হবে:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/bs.js new file mode 100644 index 00000000..4941067b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bs",{find:"Naði",findOptions:"Find Options",findWhat:"Naði šta:",matchCase:"Uporeðuj velika/mala slova",matchCyclic:"Match cyclic",matchWord:"Uporeðuj samo cijelu rijeè",notFoundMsg:"Traženi tekst nije pronaðen.",replace:"Zamjeni",replaceAll:"Zamjeni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zamjeni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ca.js new file mode 100644 index 00000000..85448cf4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ca",{find:"Cerca",findOptions:"Opcions de Cerca",findWhat:"Cerca el:",matchCase:"Distingeix majúscules/minúscules",matchCyclic:"Coincidència cíclica",matchWord:"Només paraules completes",notFoundMsg:"El text especificat no s'ha trobat.",replace:"Reemplaça",replaceAll:"Reemplaça-ho tot",replaceSuccessMsg:"%1 ocurrència/es reemplaçada/es.",replaceWith:"Reemplaça amb:",title:"Cerca i reemplaça"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/cs.js new file mode 100644 index 00000000..a63cd194 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cs",{find:"Hledat",findOptions:"Možnosti hledání",findWhat:"Co hledat:",matchCase:"Rozlišovat velikost písma",matchCyclic:"Procházet opakovaně",matchWord:"Pouze celá slova",notFoundMsg:"Hledaný text nebyl nalezen.",replace:"Nahradit",replaceAll:"Nahradit vše",replaceSuccessMsg:"%1 nahrazení.",replaceWith:"Čím nahradit:",title:"Najít a nahradit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/cy.js new file mode 100644 index 00000000..3e87336f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cy",{find:"Chwilio",findOptions:"Opsiynau Chwilio",findWhat:"Chwilio'r term:",matchCase:"Cydweddu'r cas",matchCyclic:"Cydweddu'n gylchol",matchWord:"Cydweddu gair cyfan",notFoundMsg:"Nid oedd y testun wedi'i ddarganfod.",replace:"Amnewid Un",replaceAll:"Amnewid Pob",replaceSuccessMsg:"Amnewidiwyd %1 achlysur.",replaceWith:"Amnewid gyda:",title:"Chwilio ac Amnewid"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/da.js new file mode 100644 index 00000000..35693e27 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","da",{find:"Søg",findOptions:"Find muligheder",findWhat:"Søg efter:",matchCase:"Forskel på store og små bogstaver",matchCyclic:"Match cyklisk",matchWord:"Kun hele ord",notFoundMsg:"Søgeteksten blev ikke fundet",replace:"Erstat",replaceAll:"Erstat alle",replaceSuccessMsg:"%1 forekomst(er) erstattet.",replaceWith:"Erstat med:",title:"Søg og erstat"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/de.js new file mode 100644 index 00000000..5295d06e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","de",{find:"Suchen",findOptions:"Suchoptionen",findWhat:"Suche nach:",matchCase:"Groß-Kleinschreibung beachten",matchCyclic:"Zyklische Suche",matchWord:"Nur ganze Worte suchen",notFoundMsg:"Der gesuchte Text wurde nicht gefunden.",replace:"Ersetzen",replaceAll:"Alle ersetzen",replaceSuccessMsg:"%1 vorkommen ersetzt.",replaceWith:"Ersetze mit:",title:"Suchen und Ersetzen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/el.js new file mode 100644 index 00000000..f559f2a0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","el",{find:"Εύρεση",findOptions:"Επιλογές Εύρεσης",findWhat:"Εύρεση για:",matchCase:"Ταίριασμα πεζών/κεφαλαίων",matchCyclic:"Αναδρομική εύρεση",matchWord:"Εύρεση μόνο πλήρων λέξεων",notFoundMsg:"Το κείμενο δεν βρέθηκε.",replace:"Αντικατάσταση",replaceAll:"Αντικατάσταση Όλων",replaceSuccessMsg:"Ο(ι) όρος(-οι) αντικαταστήθηκε(-αν) %1 φορές.",replaceWith:"Αντικατάσταση με:",title:"Εύρεση και Αντικατάσταση"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-au.js new file mode 100644 index 00000000..ad033791 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-au",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-ca.js new file mode 100644 index 00000000..d217f653 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-ca",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-gb.js new file mode 100644 index 00000000..dfbafb7e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-gb",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en.js new file mode 100644 index 00000000..6865f0b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/eo.js new file mode 100644 index 00000000..9fde69e3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eo",{find:"Serĉi",findOptions:"Opcioj pri Serĉado",findWhat:"Serĉi:",matchCase:"Kongruigi Usklecon",matchCyclic:"Cikla Serĉado",matchWord:"Tuta Vorto",notFoundMsg:"La celteksto ne estas trovita.",replace:"Anstataŭigi",replaceAll:"Anstataŭigi Ĉion",replaceSuccessMsg:"%1 anstataŭigita(j) apero(j).",replaceWith:"Anstataŭigi per:",title:"Serĉi kaj Anstataŭigi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/es.js new file mode 100644 index 00000000..2efd39ce --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","es",{find:"Buscar",findOptions:"Opciones de búsqueda",findWhat:"Texto a buscar:",matchCase:"Coincidir may/min",matchCyclic:"Buscar en todo el contenido",matchWord:"Coincidir toda la palabra",notFoundMsg:"El texto especificado no ha sido encontrado.",replace:"Reemplazar",replaceAll:"Reemplazar Todo",replaceSuccessMsg:"La expresión buscada ha sido reemplazada %1 veces.",replaceWith:"Reemplazar con:",title:"Buscar y Reemplazar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/et.js new file mode 100644 index 00000000..bcc39210 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","et",{find:"Otsi",findOptions:"Otsingu valikud",findWhat:"Otsitav:",matchCase:"Suur- ja väiketähtede eristamine",matchCyclic:"Jätkatakse algusest",matchWord:"Ainult terved sõnad",notFoundMsg:"Otsitud teksti ei leitud.",replace:"Asenda",replaceAll:"Asenda kõik",replaceSuccessMsg:"%1 vastet asendati.",replaceWith:"Asendus:",title:"Otsimine ja asendamine"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/eu.js new file mode 100644 index 00000000..f082555f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eu",{find:"Bilatu",findOptions:"Find Options",findWhat:"Zer bilatu:",matchCase:"Maiuskula/minuskula",matchCyclic:"Bilaketa ziklikoa",matchWord:"Esaldi osoa bilatu",notFoundMsg:"Idatzitako testua ez da topatu.",replace:"Ordezkatu",replaceAll:"Ordeztu Guztiak",replaceSuccessMsg:"Zenbat aldiz ordeztua: %1",replaceWith:"Zerekin ordeztu:",title:"Bilatu eta Ordeztu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fa.js new file mode 100644 index 00000000..2339c6dd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fa",{find:"جستجو",findOptions:"گزینه​های جستجو",findWhat:"چه چیز را مییابید:",matchCase:"همسانی در بزرگی و کوچکی نویسه​ها",matchCyclic:"همسانی با چرخه",matchWord:"همسانی با واژهٴ کامل",notFoundMsg:"متن موردنظر یافت نشد.",replace:"جایگزینی",replaceAll:"جایگزینی همهٴ یافته​ها",replaceSuccessMsg:"%1 رخداد جایگزین شد.",replaceWith:"جایگزینی با:",title:"جستجو و جایگزینی"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fi.js new file mode 100644 index 00000000..79daf814 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fi",{find:"Etsi",findOptions:"Hakuasetukset",findWhat:"Etsi mitä:",matchCase:"Sama kirjainkoko",matchCyclic:"Kierrä ympäri",matchWord:"Koko sana",notFoundMsg:"Etsittyä tekstiä ei löytynyt.",replace:"Korvaa",replaceAll:"Korvaa kaikki",replaceSuccessMsg:"%1 esiintymä(ä) korvattu.",replaceWith:"Korvaa tällä:",title:"Etsi ja korvaa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fo.js new file mode 100644 index 00000000..1e3dc043 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fo",{find:"Leita",findOptions:"Finn møguleikar",findWhat:"Finn:",matchCase:"Munur á stórum og smáum bókstavum",matchCyclic:"Match cyclic",matchWord:"Bert heil orð",notFoundMsg:"Leititeksturin varð ikki funnin",replace:"Yvirskriva",replaceAll:"Yvirskriva alt",replaceSuccessMsg:"%1 úrslit broytt.",replaceWith:"Yvirskriva við:",title:"Finn og broyt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fr-ca.js new file mode 100644 index 00000000..59a8e22c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr-ca",{find:"Rechercher",findOptions:"Options de recherche",findWhat:"Rechercher:",matchCase:"Respecter la casse",matchCyclic:"Recherche cyclique",matchWord:"Mot entier",notFoundMsg:"Le texte indiqué est introuvable.",replace:"Remplacer",replaceAll:"Tout remplacer",replaceSuccessMsg:"%1 remplacements.",replaceWith:"Remplacer par:",title:"Rechercher et remplacer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fr.js new file mode 100644 index 00000000..a7b4218e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr",{find:"Trouver",findOptions:"Options de recherche",findWhat:"Expression à trouver: ",matchCase:"Respecter la casse",matchCyclic:"Boucler",matchWord:"Mot entier uniquement",notFoundMsg:"Le texte spécifié ne peut être trouvé.",replace:"Remplacer",replaceAll:"Remplacer tout",replaceSuccessMsg:"%1 occurrence(s) replacée(s).",replaceWith:"Remplacer par: ",title:"Trouver et remplacer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/gl.js new file mode 100644 index 00000000..be892489 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gl",{find:"Buscar",findOptions:"Buscar opcións",findWhat:"Texto a buscar:",matchCase:"Coincidir Mai./min.",matchCyclic:"Coincidencia cíclica",matchWord:"Coincidencia coa palabra completa",notFoundMsg:"Non se atopou o texto indicado.",replace:"Substituir",replaceAll:"Substituír todo",replaceSuccessMsg:"%1 concorrencia(s) substituída(s).",replaceWith:"Substituír con:",title:"Buscar e substituír"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/gu.js new file mode 100644 index 00000000..572afcfd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gu",{find:"શોધવું",findOptions:"વીકલ્પ શોધો",findWhat:"આ શોધો",matchCase:"કેસ સરખા રાખો",matchCyclic:"સરખાવવા બધા",matchWord:"બઘા શબ્દ સરખા રાખો",notFoundMsg:"તમે શોધેલી ટેક્સ્ટ નથી મળી",replace:"રિપ્લેસ/બદલવું",replaceAll:"બઘા બદલી ",replaceSuccessMsg:"%1 ફેરફારો બાદલાયા છે.",replaceWith:"આનાથી બદલો",title:"શોધવું અને બદલવું"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/he.js new file mode 100644 index 00000000..ea4e4224 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","he",{find:"חיפוש",findOptions:"אפשרויות חיפוש",findWhat:"חיפוש מחרוזת:",matchCase:"הבחנה בין אותיות רשיות לקטנות (Case)",matchCyclic:"התאמה מחזורית",matchWord:"התאמה למילה המלאה",notFoundMsg:"הטקסט המבוקש לא נמצא.",replace:"החלפה",replaceAll:"החלפה בכל העמוד",replaceSuccessMsg:"%1 טקסטים הוחלפו.",replaceWith:"החלפה במחרוזת:",title:"חיפוש והחלפה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/hi.js new file mode 100644 index 00000000..d67da0a3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hi",{find:"खोजें",findOptions:"Find Options",findWhat:"यह खोजें:",matchCase:"केस मिलायें",matchCyclic:"Match cyclic",matchWord:"पूरा शब्द मिलायें",notFoundMsg:"आपके द्वारा दिया गया टेक्स्ट नहीं मिला",replace:"रीप्लेस",replaceAll:"सभी रिप्लेस करें",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"इससे रिप्लेस करें:",title:"खोजें और बदलें"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/hr.js new file mode 100644 index 00000000..bcca21eb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hr",{find:"Pronađi",findOptions:"Opcije traženja",findWhat:"Pronađi:",matchCase:"Usporedi mala/velika slova",matchCyclic:"Usporedi kružno",matchWord:"Usporedi cijele riječi",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamijeni",replaceAll:"Zamijeni sve",replaceSuccessMsg:"Zamijenjeno %1 pojmova.",replaceWith:"Zamijeni s:",title:"Pronađi i zamijeni"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/hu.js new file mode 100644 index 00000000..6ca2b808 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hu",{find:"Keresés",findOptions:"Find Options",findWhat:"Keresett szöveg:",matchCase:"kis- és nagybetű megkülönböztetése",matchCyclic:"Ciklikus keresés",matchWord:"csak ha ez a teljes szó",notFoundMsg:"A keresett szöveg nem található.",replace:"Csere",replaceAll:"Az összes cseréje",replaceSuccessMsg:"%1 egyezőség cserélve.",replaceWith:"Csere erre:",title:"Keresés és csere"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/id.js new file mode 100644 index 00000000..4257045a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","id",{find:"Temukan",findOptions:"Opsi menemukan",findWhat:"Temukan apa:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Ganti",replaceAll:"Ganti Semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Ganti dengan:",title:"Temukan dan Ganti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/is.js new file mode 100644 index 00000000..d69cba6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","is",{find:"Leita",findOptions:"Find Options",findWhat:"Leita að:",matchCase:"Gera greinarmun á¡ há¡- og lágstöfum",matchCyclic:"Match cyclic",matchWord:"Aðeins heil orð",notFoundMsg:"Leitartexti fannst ekki!",replace:"Skipta út",replaceAll:"Skipta út allsstaðar",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Skipta út fyrir:",title:"Finna og skipta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/it.js new file mode 100644 index 00000000..2aed2adc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","it",{find:"Trova",findOptions:"Opzioni di ricerca",findWhat:"Trova:",matchCase:"Maiuscole/minuscole",matchCyclic:"Ricerca ciclica",matchWord:"Solo parole intere",notFoundMsg:"L'elemento cercato non è stato trovato.",replace:"Sostituisci",replaceAll:"Sostituisci tutto",replaceSuccessMsg:"%1 occorrenza(e) sostituite.",replaceWith:"Sostituisci con:",title:"Cerca e Sostituisci"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ja.js new file mode 100644 index 00000000..f2043d1f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ja",{find:"検索",findOptions:"検索オプション",findWhat:"検索する文字列:",matchCase:"大文字と小文字を区別する",matchCyclic:"末尾に逹したら先頭に戻る",matchWord:"単語単位で探す",notFoundMsg:"指定された文字列は見つかりませんでした。",replace:"置換",replaceAll:"すべて置換",replaceSuccessMsg:"%1 個置換しました。",replaceWith:"置換後の文字列:",title:"検索と置換"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ka.js new file mode 100644 index 00000000..d5d8dda9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ka",{find:"ძებნა",findOptions:"Find Options",findWhat:"საძიებელი ტექსტი:",matchCase:"დიდი და პატარა ასოების დამთხვევა",matchCyclic:"დოკუმენტის ბოლოში გასვლის მერე თავიდან დაწყება",matchWord:"მთელი სიტყვის დამთხვევა",notFoundMsg:"მითითებული ტექსტი არ მოიძებნა.",replace:"შეცვლა",replaceAll:"ყველას შეცვლა",replaceSuccessMsg:"%1 მოძებნილი შეიცვალა.",replaceWith:"შეცვლის ტექსტი:",title:"ძებნა და შეცვლა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/km.js new file mode 100644 index 00000000..3815f2ca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","km",{find:"ស្វែងរក",findOptions:"ជម្រើស​ស្វែង​រក",findWhat:"ស្វែងរកអ្វី:",matchCase:"ករណី​ដំណូច",matchCyclic:"ត្រូវ​នឹង cyclic",matchWord:"ដូច​នឹង​ពាក្យ​ទាំង​មូល",notFoundMsg:"រក​មិន​ឃើញ​ពាក្យ​ដែល​បាន​បញ្ជាក់។",replace:"ជំនួស",replaceAll:"ជំនួសទាំងអស់",replaceSuccessMsg:"ការ​ជំនួស​ចំនួន %1 បាន​កើត​ឡើង។",replaceWith:"ជំនួសជាមួយ:",title:"រក​និង​ជំនួស"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ko.js new file mode 100644 index 00000000..e17dce40 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ko",{find:"찾기",findOptions:"Find Options",findWhat:"찾을 문자열:",matchCase:"대소문자 구분",matchCyclic:"Match cyclic",matchWord:"온전한 단어",notFoundMsg:"문자열을 찾을 수 없습니다.",replace:"바꾸기",replaceAll:"모두 바꾸기",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"바꿀 문자열:",title:"찾기 & 바꾸기"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ku.js new file mode 100644 index 00000000..54cc3c93 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ku",{find:"گەڕان",findOptions:"هەڵبژاردەکانی گەڕان",findWhat:"گەڕان بەدووای:",matchCase:"جیاکردنەوه لەنێوان پیتی گەورەو بچووك",matchCyclic:"گەڕان لەهەموو پەڕەکه",matchWord:"تەنەا هەموو وشەکه",notFoundMsg:"هیچ دەقه گەڕانێك نەدۆزراوه.",replace:"لەبریدانان",replaceAll:"لەبریدانانی هەمووی",replaceSuccessMsg:" پێشهاتە(ی) لەبری دانرا. %1",replaceWith:"لەبریدانان به:",title:"گەڕان و لەبریدانان"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/lt.js new file mode 100644 index 00000000..2c55039e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lt",{find:"Rasti",findOptions:"Paieškos nustatymai",findWhat:"Surasti tekstą:",matchCase:"Skirti didžiąsias ir mažąsias raides",matchCyclic:"Sutampantis cikliškumas",matchWord:"Atitikti pilną žodį",notFoundMsg:"Nurodytas tekstas nerastas.",replace:"Pakeisti",replaceAll:"Pakeisti viską",replaceSuccessMsg:"%1 sutapimas(ų) buvo pakeisti.",replaceWith:"Pakeisti tekstu:",title:"Surasti ir pakeisti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/lv.js new file mode 100644 index 00000000..12a554cc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lv",{find:"Meklēt",findOptions:"Meklēt uzstādījumi",findWhat:"Meklēt:",matchCase:"Reģistrjūtīgs",matchCyclic:"Sakrist cikliski",matchWord:"Jāsakrīt pilnībā",notFoundMsg:"Norādītā frāze netika atrasta.",replace:"Nomainīt",replaceAll:"Aizvietot visu",replaceSuccessMsg:"%1 gadījums(i) aizvietoti",replaceWith:"Nomainīt uz:",title:"Meklēt un aizvietot"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/mk.js new file mode 100644 index 00000000..8c41cfc1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mk",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/mn.js new file mode 100644 index 00000000..28498167 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mn",{find:"Хайх",findOptions:"Хайх сонголтууд",findWhat:"Хайх үг/үсэг:",matchCase:"Тэнцэх төлөв",matchCyclic:"Match cyclic",matchWord:"Тэнцэх бүтэн үг",notFoundMsg:"Хайсан бичвэрийг олсонгүй.",replace:"Орлуулах",replaceAll:"Бүгдийг нь солих",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Солих үг:",title:"Хайж орлуулах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ms.js new file mode 100644 index 00000000..75f96037 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ms",{find:"Cari",findOptions:"Find Options",findWhat:"Perkataan yang dicari:",matchCase:"Padanan case huruf",matchCyclic:"Match cyclic",matchWord:"Padana Keseluruhan perkataan",notFoundMsg:"Text yang dicari tidak dijumpai.",replace:"Ganti",replaceAll:"Ganti semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Diganti dengan:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/nb.js new file mode 100644 index 00000000..6779f499 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nb",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/nl.js new file mode 100644 index 00000000..156a9da5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nl",{find:"Zoeken",findOptions:"Zoekopties",findWhat:"Zoeken naar:",matchCase:"Hoofdlettergevoelig",matchCyclic:"Doorlopend zoeken",matchWord:"Hele woord moet voorkomen",notFoundMsg:"De opgegeven tekst is niet gevonden.",replace:"Vervangen",replaceAll:"Alles vervangen",replaceSuccessMsg:"%1 resultaten vervangen.",replaceWith:"Vervangen met:",title:"Zoeken en vervangen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/no.js new file mode 100644 index 00000000..e098a7c5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","no",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/pl.js new file mode 100644 index 00000000..1144fd8b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pl",{find:"Znajdź",findOptions:"Opcje wyszukiwania",findWhat:"Znajdź:",matchCase:"Uwzględnij wielkość liter",matchCyclic:"Cykliczne dopasowanie",matchWord:"Całe słowa",notFoundMsg:"Nie znaleziono szukanego hasła.",replace:"Zamień",replaceAll:"Zamień wszystko",replaceSuccessMsg:"%1 wystąpień zastąpionych.",replaceWith:"Zastąp przez:",title:"Znajdź i zamień"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/pt-br.js new file mode 100644 index 00000000..b9e438c8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt-br",{find:"Localizar",findOptions:"Opções",findWhat:"Procurar por:",matchCase:"Coincidir Maiúsculas/Minúsculas",matchCyclic:"Coincidir cíclico",matchWord:"Coincidir a palavra inteira",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 ocorrência(s) substituída(s).",replaceWith:"Substituir por:",title:"Localizar e Substituir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/pt.js new file mode 100644 index 00000000..bb8c1a6a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt",{find:"Procurar",findOptions:"Find Options",findWhat:"Texto a Procurar:",matchCase:"Maiúsculas/Minúsculas",matchCyclic:"Match cyclic",matchWord:"Coincidir com toda a palavra",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Substituir por:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ro.js new file mode 100644 index 00000000..7ec8b9d6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ro",{find:"Găseşte",findOptions:"Find Options",findWhat:"Găseşte:",matchCase:"Deosebeşte majuscule de minuscule (Match case)",matchCyclic:"Potrivește ciclic",matchWord:"Doar cuvintele întregi",notFoundMsg:"Textul specificat nu a fost găsit.",replace:"Înlocuieşte",replaceAll:"Înlocuieşte tot",replaceSuccessMsg:"%1 căutări înlocuite.",replaceWith:"Înlocuieşte cu:",title:"Găseşte şi înlocuieşte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ru.js new file mode 100644 index 00000000..b611c271 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ru",{find:"Найти",findOptions:"Опции поиска",findWhat:"Найти:",matchCase:"Учитывать регистр",matchCyclic:"По всему тексту",matchWord:"Только слово целиком",notFoundMsg:"Искомый текст не найден.",replace:"Заменить",replaceAll:"Заменить всё",replaceSuccessMsg:"Успешно заменено %1 раз(а).",replaceWith:"Заменить на:",title:"Поиск и замена"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/si.js new file mode 100644 index 00000000..1e1d1457 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","si",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"හිලව් කිරීම",replaceAll:"සියල්ලම හිලව් කරන්න",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sk.js new file mode 100644 index 00000000..11821e7a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sk",{find:"Hľadať",findOptions:"Nájsť možnosti",findWhat:"Čo hľadať:",matchCase:"Rozlišovať malé a veľké písmená",matchCyclic:"Cykliť zhodu",matchWord:"Len celé slová",notFoundMsg:"Hľadaný text nebol nájdený.",replace:"Nahradiť",replaceAll:"Nahradiť všetko",replaceSuccessMsg:"%1 výskyt(ov) nahradených.",replaceWith:"Čím nahradiť:",title:"Nájsť a nahradiť"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sl.js new file mode 100644 index 00000000..32dea7e3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sl",{find:"Najdi",findOptions:"Find Options",findWhat:"Najdi:",matchCase:"Razlikuj velike in male črke",matchCyclic:"Primerjaj znake v cirilici",matchWord:"Samo cele besede",notFoundMsg:"Navedeno besedilo ni bilo najdeno.",replace:"Zamenjaj",replaceAll:"Zamenjaj vse",replaceSuccessMsg:"%1 pojavitev je bilo zamenjano.",replaceWith:"Zamenjaj z:",title:"Najdi in zamenjaj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sq.js new file mode 100644 index 00000000..ae034f6d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sq",{find:"Gjej",findOptions:"Gjejë Alternativat",findWhat:"Gjej çka:",matchCase:"Rasti i përputhjes",matchCyclic:"Përputh ciklikun",matchWord:"Përputh fjalën e tërë",notFoundMsg:"Teksti i caktuar nuk mundej të gjendet.",replace:"Zëvendëso",replaceAll:"Zëvendëso të gjitha",replaceSuccessMsg:"%1 rast(e) u zëvendësua(n).",replaceWith:"Zëvendëso me:",title:"Gjej dhe Zëvendëso"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sr-latn.js new file mode 100644 index 00000000..40a40064 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr-latn",{find:"Pretraga",findOptions:"Find Options",findWhat:"Pronadi:",matchCase:"Razlikuj mala i velika slova",matchCyclic:"Match cyclic",matchWord:"Uporedi cele reci",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamena",replaceAll:"Zameni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zameni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sr.js new file mode 100644 index 00000000..57ca6296 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr",{find:"Претрага",findOptions:"Find Options",findWhat:"Пронађи:",matchCase:"Разликуј велика и мала слова",matchCyclic:"Match cyclic",matchWord:"Упореди целе речи",notFoundMsg:"Тражени текст није пронађен.",replace:"Замена",replaceAll:"Замени све",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Замени са:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sv.js new file mode 100644 index 00000000..f86c7d28 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sv",{find:"Sök",findOptions:"Sökalternativ",findWhat:"Sök efter:",matchCase:"Skiftläge",matchCyclic:"Matcha cykliska",matchWord:"Inkludera hela ord",notFoundMsg:"Angiven text kunde ej hittas.",replace:"Ersätt",replaceAll:"Ersätt alla",replaceSuccessMsg:"%1 förekomst(er) ersatta.",replaceWith:"Ersätt med:",title:"Sök och ersätt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/th.js new file mode 100644 index 00000000..877ab909 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","th",{find:"ค้นหา",findOptions:"Find Options",findWhat:"ค้นหาคำว่า:",matchCase:"ตัวโหญ่-เล็ก ต้องตรงกัน",matchCyclic:"Match cyclic",matchWord:"ต้องตรงกันทุกคำ",notFoundMsg:"ไม่พบคำที่ค้นหา.",replace:"ค้นหาและแทนที่",replaceAll:"แทนที่ทั้งหมดที่พบ",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"แทนที่ด้วย:",title:"Find and Replace"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/tr.js new file mode 100644 index 00000000..a0fc4f0a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tr",{find:"Bul",findOptions:"Seçenekleri Bul",findWhat:"Aranan:",matchCase:"Büyük/küçük harf duyarlı",matchCyclic:"Eşleşen döngü",matchWord:"Kelimenin tamamı uysun",notFoundMsg:"Belirtilen yazı bulunamadı.",replace:"Değiştir",replaceAll:"Tümünü Değiştir",replaceSuccessMsg:"%1 bulunanlardan değiştirildi.",replaceWith:"Bununla değiştir:",title:"Bul ve Değiştir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/tt.js new file mode 100644 index 00000000..90a66914 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tt",{find:"Эзләү",findOptions:"Эзләү көйләүләре",findWhat:"Нәрсә эзләргә:",matchCase:"Баш һәм юл хәрефләрен исәпкә алу",matchCyclic:"Кабатлап эзләргә",matchWord:"Сүзләрне тулысынча гына эзләү",notFoundMsg:"Эзләнгән текст табылмады.",replace:"Алмаштыру",replaceAll:"Барысын да алмаштыру",replaceSuccessMsg:"%1 урында(ларда) алмаштырылган.",replaceWith:"Нәрсәгә алмаштыру:",title:"Эзләп табу һәм алмаштыру"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ug.js new file mode 100644 index 00000000..9a3e7542 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ug",{find:"ئىزدە",findOptions:"ئىزدەش تاللانمىسى",findWhat:"ئىزدە:",matchCase:"چوڭ كىچىك ھەرپنى پەرقلەندۈر",matchCyclic:"ئايلانما ماسلىشىش",matchWord:"پۈتۈن سۆز ماسلىشىش",notFoundMsg:"بەلگىلەنگەن تېكىستنى تاپالمىدى",replace:"ئالماشتۇر",replaceAll:"ھەممىنى ئالماشتۇر",replaceSuccessMsg:"جەمئى %1 جايدىكى ئالماشتۇرۇش تاماملاندى",replaceWith:"ئالماشتۇر:",title:"ئىزدەپ ئالماشتۇر"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/uk.js new file mode 100644 index 00000000..12bf2eb6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","uk",{find:"Пошук",findOptions:"Параметри Пошуку",findWhat:"Шукати:",matchCase:"Враховувати регістр",matchCyclic:"Циклічна заміна",matchWord:"Збіг цілих слів",notFoundMsg:"Вказаний текст не знайдено.",replace:"Заміна",replaceAll:"Замінити все",replaceSuccessMsg:"%1 співпадінь(ня) замінено.",replaceWith:"Замінити на:",title:"Знайти і замінити"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/vi.js new file mode 100644 index 00000000..07936d94 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","vi",{find:"Tìm kiếm",findOptions:"Tìm tùy chọn",findWhat:"Tìm chuỗi:",matchCase:"Phân biệt chữ hoa/thường",matchCyclic:"Giống một phần",matchWord:"Giống toàn bộ từ",notFoundMsg:"Không tìm thấy chuỗi cần tìm.",replace:"Thay thế",replaceAll:"Thay thế tất cả",replaceSuccessMsg:"%1 vị trí đã được thay thế.",replaceWith:"Thay bằng:",title:"Tìm kiếm và thay thế"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/zh-cn.js new file mode 100644 index 00000000..746626af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh-cn",{find:"查找",findOptions:"查找选项",findWhat:"查找:",matchCase:"区分大小写",matchCyclic:"循环匹配",matchWord:"全字匹配",notFoundMsg:"指定的文本没有找到。",replace:"替换",replaceAll:"全部替换",replaceSuccessMsg:"共完成 %1 处替换。",replaceWith:"替换:",title:"查找和替换"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/find/lang/zh.js new file mode 100644 index 00000000..4d6656ae --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh",{find:"尋找",findOptions:"尋找選項",findWhat:"尋找目標:",matchCase:"大小寫須相符",matchCyclic:"循環搜尋",matchWord:"全字拼寫須相符",notFoundMsg:"找不到指定的文字。",replace:"取代",replaceAll:"全部取代",replaceSuccessMsg:"已取代 %1 個指定項目。",replaceWith:"取代成:",title:"尋找及取代"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/find/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/find/plugin.js new file mode 100644 index 00000000..103b530d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/find/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("find",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"find,find-rtl,replace",hidpi:!0,init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&& +(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("replace",this.path+"dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}}; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/dialogs/flash.js b/platforms/browser/www/lib/ckeditor/plugins/flash/dialogs/flash.js new file mode 100644 index 00000000..6592f8e4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/dialogs/flash.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function b(a,b,c){var k=n[this.id];if(k)for(var f=this instanceof CKEDITOR.ui.dialog.checkbox,e=0;e<k.length;e++){var d=k[e];switch(d.type){case g:if(!a)continue;if(null!==a.getAttribute(d.name)){a=a.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case o:if(!a)continue;if(d.name in c){a=c[d.name];f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case i:if(!b)continue; +if(b.getAttribute(d.name)){a=b.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"])}}}function c(a,b,c){var k=n[this.id];if(k)for(var f=""===this.getValue(),e=this instanceof CKEDITOR.ui.dialog.checkbox,d=0;d<k.length;d++){var h=k[d];switch(h.type){case g:if(!a||"data"==h.name&&b&&!a.hasAttribute("data"))continue;var l=this.getValue();f||e&&l===h["default"]?a.removeAttribute(h.name):a.setAttribute(h.name,l);break;case o:if(!a)continue; +l=this.getValue();if(f||e&&l===h["default"])h.name in c&&c[h.name].remove();else if(h.name in c)c[h.name].setAttribute("value",l);else{var p=CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>",a.getDocument());p.setAttributes({name:h.name,value:l});1>a.getChildCount()?p.appendTo(a):p.insertBefore(a.getFirst())}break;case i:if(!b)continue;l=this.getValue();f||e&&l===h["default"]?b.removeAttribute(h.name):b.setAttribute(h.name,l)}}}for(var g=1,o=2,i=4,n={id:[{type:g,name:"id"}],classid:[{type:g, +name:"classid"}],codebase:[{type:g,name:"codebase"}],pluginspage:[{type:i,name:"pluginspage"}],src:[{type:o,name:"movie"},{type:i,name:"src"},{type:g,name:"data"}],name:[{type:i,name:"name"}],align:[{type:g,name:"align"}],"class":[{type:g,name:"class"},{type:i,name:"class"}],width:[{type:g,name:"width"},{type:i,name:"width"}],height:[{type:g,name:"height"},{type:i,name:"height"}],hSpace:[{type:g,name:"hSpace"},{type:i,name:"hSpace"}],vSpace:[{type:g,name:"vSpace"},{type:i,name:"vSpace"}],style:[{type:g, +name:"style"},{type:i,name:"style"}],type:[{type:i,name:"type"}]},m="play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "),j=0;j<m.length;j++)n[m[j]]=[{type:i,name:m[j]},{type:o,name:m[j]}];m=["play","loop","menu"];for(j=0;j<m.length;j++)n[m[j]][0]["default"]=n[m[j]][1]["default"]=!0;CKEDITOR.dialog.add("flash",function(a){var g=!a.config.flashEmbedTagOnly,i=a.config.flashAddEmbedTag||a.config.flashEmbedTagOnly,k,f="<div>"+CKEDITOR.tools.htmlEncode(a.lang.common.preview)+ +'<br><div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div><div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';return{title:a.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){this.fakeImage=this.objectNode=this.embedNode=null;k=new CKEDITOR.dom.element("embed",a.document);var e=this.getSelectedElement();if(e&&e.data("cke-real-element-type")&&"flash"==e.data("cke-real-element-type")){this.fakeImage= +e;var d=a.restoreRealElement(e),h=null,b=null,c={};if("cke:object"==d.getName()){h=d;d=h.getElementsByTag("embed","cke");0<d.count()&&(b=d.getItem(0));for(var d=h.getElementsByTag("param","cke"),g=0,i=d.count();g<i;g++){var f=d.getItem(g),j=f.getAttribute("name"),f=f.getAttribute("value");c[j]=f}}else"cke:embed"==d.getName()&&(b=d);this.objectNode=h;this.embedNode=b;this.setupContent(h,b,c,e)}},onOk:function(){var e=null,d=null,b=null;if(this.fakeImage)e=this.objectNode,d=this.embedNode;else if(g&& +(e=CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>",a.document),e.setAttributes({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"})),i)d=CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>",a.document),d.setAttributes({type:"application/x-shockwave-flash",pluginspage:"http://www.macromedia.com/go/getflashplayer"}),e&&d.appendTo(e);if(e)for(var b={},c=e.getElementsByTag("param", +"cke"),f=0,j=c.count();f<j;f++)b[c.getItem(f).getAttribute("name")]=c.getItem(f);c={};f={};this.commitContent(e,d,b,c,f);e=a.createFakeElement(e||d,"cke_flash","flash",!0);e.setAttributes(f);e.setStyles(c);this.fakeImage?(e.replace(this.fakeImage),a.getSelection().selectElement(e)):a.insertElement(e)},onHide:function(){this.preview&&this.preview.setHtml("")},contents:[{id:"info",label:a.lang.common.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"], +align:"right",children:[{id:"src",type:"text",label:a.lang.common.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc),setup:b,commit:c,onLoad:function(){var a=this.getDialog(),b=function(b){k.setAttribute("src",b);a.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(k.getAttribute("src"))+'" type="application/x-shockwave-flash"></embed>')};a.preview=a.getContentElement("info","preview").getElement().getChild(3);this.on("change",function(a){a.data&& +a.data.value&&b(a.data.value)});this.getInputElement().on("change",function(){b(this.getValue())},this)}},{type:"button",id:"browse",filebrowser:"info:src",hidden:!0,style:"display:inline-block;margin-top:14px;",label:a.lang.common.browseServer}]}]},{type:"hbox",widths:["25%","25%","25%","25%","25%"],children:[{type:"text",id:"width",requiredContent:"embed[width]",style:"width:95px",label:a.lang.common.width,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1", +a.lang.common.width)),setup:b,commit:c},{type:"text",id:"height",requiredContent:"embed[height]",style:"width:95px",label:a.lang.common.height,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",a.lang.common.height)),setup:b,commit:c},{type:"text",id:"hSpace",requiredContent:"embed[hspace]",style:"width:95px",label:a.lang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace),setup:b,commit:c},{type:"text",id:"vSpace",requiredContent:"embed[vspace]", +style:"width:95px",label:a.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace),setup:b,commit:c}]},{type:"vbox",children:[{type:"html",id:"preview",style:"width:95%;",html:f}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:a.lang.common.upload,elements:[{type:"file",id:"upload",label:a.lang.common.upload,size:38},{type:"fileButton",id:"uploadButton",label:a.lang.common.uploadSubmit,filebrowser:"info:src","for":["Upload","upload"]}]},{id:"properties", +label:a.lang.flash.propertiesTab,elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"scale",type:"select",requiredContent:"embed[scale]",label:a.lang.flash.scale,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.scaleAll,"showall"],[a.lang.flash.scaleNoBorder,"noborder"],[a.lang.flash.scaleFit,"exactfit"]],setup:b,commit:c},{id:"allowScriptAccess",type:"select",requiredContent:"embed[allowscriptaccess]",label:a.lang.flash.access,"default":"",style:"width : 100%;", +items:[[a.lang.common.notSet,""],[a.lang.flash.accessAlways,"always"],[a.lang.flash.accessSameDomain,"samedomain"],[a.lang.flash.accessNever,"never"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"wmode",type:"select",requiredContent:"embed[wmode]",label:a.lang.flash.windowMode,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.windowModeWindow,"window"],[a.lang.flash.windowModeOpaque,"opaque"],[a.lang.flash.windowModeTransparent,"transparent"]], +setup:b,commit:c},{id:"quality",type:"select",requiredContent:"embed[quality]",label:a.lang.flash.quality,"default":"high",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.qualityBest,"best"],[a.lang.flash.qualityHigh,"high"],[a.lang.flash.qualityAutoHigh,"autohigh"],[a.lang.flash.qualityMedium,"medium"],[a.lang.flash.qualityAutoLow,"autolow"],[a.lang.flash.qualityLow,"low"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"align",type:"select",requiredContent:"object[align]", +label:a.lang.common.align,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.flash.alignAbsBottom,"absBottom"],[a.lang.flash.alignAbsMiddle,"absMiddle"],[a.lang.flash.alignBaseline,"baseline"],[a.lang.common.alignBottom,"bottom"],[a.lang.common.alignMiddle,"middle"],[a.lang.common.alignRight,"right"],[a.lang.flash.alignTextTop,"textTop"],[a.lang.common.alignTop,"top"]],setup:b,commit:function(a,b,f,g,i){var j=this.getValue();c.apply(this,arguments); +j&&(i.align=j)}},{type:"html",html:"<div></div>"}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"menu",label:a.lang.flash.chkMenu,"default":!0,setup:b,commit:c},{type:"checkbox",id:"play",label:a.lang.flash.chkPlay,"default":!0,setup:b,commit:c},{type:"checkbox",id:"loop",label:a.lang.flash.chkLoop,"default":!0,setup:b,commit:c},{type:"checkbox",id:"allowFullScreen",label:a.lang.flash.chkFull,"default":!0, +setup:b,commit:c}]}]}]},{id:"advanced",label:a.lang.common.advancedTab,elements:[{type:"hbox",children:[{type:"text",id:"id",requiredContent:"object[id]",label:a.lang.common.id,setup:b,commit:c}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",id:"bgcolor",requiredContent:"embed[bgcolor]",label:a.lang.flash.bgcolor,setup:b,commit:c},{type:"text",id:"class",requiredContent:"embed(cke-xyz)",label:a.lang.common.cssClass,setup:b,commit:c}]},{type:"text",id:"style",requiredContent:"embed{cke-xyz}", +validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),label:a.lang.common.cssStyle,setup:b,commit:c}]}]}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/icons/flash.png b/platforms/browser/www/lib/ckeditor/plugins/flash/icons/flash.png new file mode 100644 index 00000000..df7b1c60 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/flash/icons/flash.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png b/platforms/browser/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png new file mode 100644 index 00000000..7ad0e388 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/images/placeholder.png b/platforms/browser/www/lib/ckeditor/plugins/flash/images/placeholder.png new file mode 100644 index 00000000..0bc6caa7 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/flash/images/placeholder.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/af.js new file mode 100644 index 00000000..9ee64f1f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","af",{access:"Skrip toegang",accessAlways:"Altyd",accessNever:"Nooit",accessSameDomain:"Selfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-middel",alignBaseline:"Basislyn",alignTextTop:"Teks bo",bgcolor:"Agtergrondkleur",chkFull:"Laat volledige skerm toe",chkLoop:"Herhaal",chkMenu:"Flash spyskaart aan",chkPlay:"Speel outomaties",flashvars:"Veranderlikes vir Flash",hSpace:"HSpasie",properties:"Flash eienskappe",propertiesTab:"Eienskappe",quality:"Kwaliteit", +qualityAutoHigh:"Outomaties hoog",qualityAutoLow:"Outomaties laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Skaal",scaleAll:"Wys alles",scaleFit:"Presiese pas",scaleNoBorder:"Geen rand",title:"Flash eienskappe",vSpace:"VSpasie",validateHSpace:"HSpasie moet 'n heelgetal wees.",validateSrc:"Voeg die URL in",validateVSpace:"VSpasie moet 'n heelgetal wees.",windowMode:"Venster modus",windowModeOpaque:"Ondeursigtig",windowModeTransparent:"Deursigtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ar.js new file mode 100644 index 00000000..5b89e5b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ar",{access:"دخول النص البرمجي",accessAlways:"دائماً",accessNever:"مطلقاً",accessSameDomain:"نفس النطاق",alignAbsBottom:"أسفل النص",alignAbsMiddle:"وسط السطر",alignBaseline:"على السطر",alignTextTop:"أعلى النص",bgcolor:"لون الخلفية",chkFull:"ملء الشاشة",chkLoop:"تكرار",chkMenu:"تمكين قائمة فيلم الفلاش",chkPlay:"تشغيل تلقائي",flashvars:"متغيرات الفلاش",hSpace:"تباعد أفقي",properties:"خصائص الفلاش",propertiesTab:"الخصائص",quality:"جودة",qualityAutoHigh:"عالية تلقائياً", +qualityAutoLow:"منخفضة تلقائياً",qualityBest:"أفضل",qualityHigh:"عالية",qualityLow:"منخفضة",qualityMedium:"متوسطة",scale:"الحجم",scaleAll:"إظهار الكل",scaleFit:"ضبط تام",scaleNoBorder:"بلا حدود",title:"خصائص فيلم الفلاش",vSpace:"تباعد عمودي",validateHSpace:"HSpace يجب أن يكون عدداً.",validateSrc:"فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",validateVSpace:"VSpace يجب أن يكون عدداً.",windowMode:"وضع النافذة",windowModeOpaque:"غير شفاف",windowModeTransparent:"شفاف",windowModeWindow:"نافذة"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bg.js new file mode 100644 index 00000000..a60e86c5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","bg",{access:"Достъп до скрипт",accessAlways:"Винаги",accessNever:"Никога",accessSameDomain:"Същият домейн",alignAbsBottom:"Най-долу",alignAbsMiddle:"Точно по средата",alignBaseline:"Базова линия",alignTextTop:"Върху текста",bgcolor:"Цвят на фона",chkFull:"Включи на цял екран",chkLoop:"Цикъл",chkMenu:"Разрешено Flash меню",chkPlay:"Авто. пускане",flashvars:"Променливи за Флаш",hSpace:"Хоризонтален отстъп",properties:"Настройки за флаш",propertiesTab:"Настройки",quality:"Качество", +qualityAutoHigh:"Авто. високо",qualityAutoLow:"Авто. ниско",qualityBest:"Отлично",qualityHigh:"Високо",qualityLow:"Ниско",qualityMedium:"Средно",scale:"Оразмеряване",scaleAll:"Показва всичко",scaleFit:"Според мястото",scaleNoBorder:"Без рамка",title:"Настройки за флаш",vSpace:"Вертикален отстъп",validateHSpace:"HSpace трябва да е число.",validateSrc:"Уеб адреса не трябва да е празен.",validateVSpace:"VSpace трябва да е число.",windowMode:"Режим на прозореца",windowModeOpaque:"Плътност",windowModeTransparent:"Прозрачност", +windowModeWindow:"Прозорец"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bn.js new file mode 100644 index 00000000..2eed56b1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs নীচে",alignAbsMiddle:"Abs উপর",alignBaseline:"মূল রেখা",alignTextTop:"টেক্সট উপর",bgcolor:"বেকগ্রাউন্ড রং",chkFull:"Allow Fullscreen",chkLoop:"লূপ",chkMenu:"ফ্ল্যাশ মেনু এনাবল কর",chkPlay:"অটো প্লে",flashvars:"Variables for Flash",hSpace:"হরাইজন্টাল স্পেস",properties:"ফ্লাশ প্রোপার্টি",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"স্কেল",scaleAll:"সব দেখাও",scaleFit:"নিখুঁত ফিট",scaleNoBorder:"কোনো বর্ডার নেই",title:"ফ্ল্যাশ প্রোপার্টি",vSpace:"ভার্টিকেল স্পেস",validateHSpace:"HSpace must be a number.",validateSrc:"অনুগ্রহ করে URL লিংক টাইপ করুন",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bs.js new file mode 100644 index 00000000..4d5f4b4b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bs",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Molimo ukucajte URL link",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ca.js new file mode 100644 index 00000000..c1e16027 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ca",{access:"Accés a scripts",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"El mateix domini",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Superior",bgcolor:"Color de Fons",chkFull:"Permetre la pantalla completa",chkLoop:"Bucle",chkMenu:"Habilita menú Flash",chkPlay:"Reprodució automàtica",flashvars:"Variables de Flash",hSpace:"Espaiat horitzontal",properties:"Propietats del Flash",propertiesTab:"Propietats", +quality:"Qualitat",qualityAutoHigh:"Alta automàtica",qualityAutoLow:"Baixa automàtica",qualityBest:"La millor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Mitjana",scale:"Escala",scaleAll:"Mostra-ho tot",scaleFit:"Mida exacta",scaleNoBorder:"Sense vores",title:"Propietats del Flash",vSpace:"Espaiat vertical",validateHSpace:"L'espaiat horitzontal ha de ser un número.",validateSrc:"La URL no pot estar buida.",validateVSpace:"L'espaiat vertical ha de ser un número.",windowMode:"Mode de la finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparent",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/cs.js new file mode 100644 index 00000000..51087ed4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","cs",{access:"Přístup ke skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Ve stejné doméně",alignAbsBottom:"Zcela dolů",alignAbsMiddle:"Doprostřed",alignBaseline:"Na účaří",alignTextTop:"Na horní okraj textu",bgcolor:"Barva pozadí",chkFull:"Povolit celoobrazovkový režim",chkLoop:"Opakování",chkMenu:"Nabídka Flash",chkPlay:"Automatické spuštění",flashvars:"Proměnné pro Flash",hSpace:"Horizontální mezera",properties:"Vlastnosti Flashe",propertiesTab:"Vlastnosti", +quality:"Kvalita",qualityAutoHigh:"Vysoká - auto",qualityAutoLow:"Nízká - auto",qualityBest:"Nejlepší",qualityHigh:"Vysoká",qualityLow:"Nejnižší",qualityMedium:"Střední",scale:"Zobrazit",scaleAll:"Zobrazit vše",scaleFit:"Přizpůsobit",scaleNoBorder:"Bez okraje",title:"Vlastnosti Flashe",vSpace:"Vertikální mezera",validateHSpace:"Zadaná horizontální mezera musí být číslo.",validateSrc:"Zadejte prosím URL odkazu",validateVSpace:"Zadaná vertikální mezera musí být číslo.",windowMode:"Režim okna",windowModeOpaque:"Neprůhledné", +windowModeTransparent:"Průhledné",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/cy.js new file mode 100644 index 00000000..b6ae1ef3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","cy",{access:"Mynediad Sgript",accessAlways:"Pob amser",accessNever:"Byth",accessSameDomain:"R'un parth",alignAbsBottom:"Gwaelod Abs",alignAbsMiddle:"Canol Abs",alignBaseline:"Baslinell",alignTextTop:"Testun Top",bgcolor:"Lliw cefndir",chkFull:"Caniatàu Sgrin Llawn",chkLoop:"Lwpio",chkMenu:"Galluogi Dewislen Flash",chkPlay:"AwtoChwarae",flashvars:"Newidynnau ar gyfer Flash",hSpace:"BwlchLl",properties:"Priodweddau Flash",propertiesTab:"Priodweddau",quality:"Ansawdd", +qualityAutoHigh:"Uchel Awto",qualityAutoLow:"Isel Awto",qualityBest:"Gorau",qualityHigh:"Uchel",qualityLow:"Isel",qualityMedium:"Canolig",scale:"Graddfa",scaleAll:"Dangos pob",scaleFit:"Ffit Union",scaleNoBorder:"Dim Ymyl",title:"Priodweddau Flash",vSpace:"BwlchF",validateHSpace:"Rhaid i'r BwlchLl fod yn rhif.",validateSrc:"Ni all yr URL fod yn wag.",validateVSpace:"Rhaid i'r BwlchF fod yn rhif.",windowMode:"Modd ffenestr",windowModeOpaque:"Afloyw",windowModeTransparent:"Tryloyw",windowModeWindow:"Ffenestr"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/da.js new file mode 100644 index 00000000..a55294d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","da",{access:"Scriptadgang",accessAlways:"Altid",accessNever:"Aldrig",accessSameDomain:"Samme domæne",alignAbsBottom:"Absolut nederst",alignAbsMiddle:"Absolut centreret",alignBaseline:"Grundlinje",alignTextTop:"Toppen af teksten",bgcolor:"Baggrundsfarve",chkFull:"Tillad fuldskærm",chkLoop:"Gentagelse",chkMenu:"Vis Flash-menu",chkPlay:"Automatisk afspilning",flashvars:"Variabler for Flash",hSpace:"Vandret margen",properties:"Egenskaber for Flash",propertiesTab:"Egenskaber", +quality:"Kvalitet",qualityAutoHigh:"Auto høj",qualityAutoLow:"Auto lav",qualityBest:"Bedste",qualityHigh:"Høj",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skalér",scaleAll:"Vis alt",scaleFit:"Tilpas størrelse",scaleNoBorder:"Ingen ramme",title:"Egenskaber for Flash",vSpace:"Lodret margen",validateHSpace:"Vandret margen skal være et tal.",validateSrc:"Indtast hyperlink URL!",validateVSpace:"Lodret margen skal være et tal.",windowMode:"Vinduestilstand",windowModeOpaque:"Gennemsigtig (opaque)",windowModeTransparent:"Transparent", +windowModeWindow:"Vindue"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/de.js new file mode 100644 index 00000000..44d7237a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","de",{access:"Skript Zugang",accessAlways:"Immer",accessNever:"Nie",accessSameDomain:"Gleiche Domain",alignAbsBottom:"Abs Unten",alignAbsMiddle:"Abs Mitte",alignBaseline:"Baseline",alignTextTop:"Text Oben",bgcolor:"Hintergrundfarbe",chkFull:"Vollbildmodus erlauben",chkLoop:"Endlosschleife",chkMenu:"Flash-Menü aktivieren",chkPlay:"Automatisch Abspielen",flashvars:"Variablen für Flash",hSpace:"Horizontal-Abstand",properties:"Flash-Eigenschaften",propertiesTab:"Eigenschaften", +quality:"Qualität",qualityAutoHigh:"Auto Hoch",qualityAutoLow:"Auto Niedrig",qualityBest:"Beste",qualityHigh:"Hoch",qualityLow:"Niedrig",qualityMedium:"Medium",scale:"Skalierung",scaleAll:"Alles anzeigen",scaleFit:"Passgenau",scaleNoBorder:"Ohne Rand",title:"Flash-Eigenschaften",vSpace:"Vertikal-Abstand",validateHSpace:"HSpace muss eine Zahl sein.",validateSrc:"Bitte geben Sie die Link-URL an",validateVSpace:"VSpace muss eine Zahl sein.",windowMode:"Fenster Modus",windowModeOpaque:"Deckend",windowModeTransparent:"Transparent", +windowModeWindow:"Fenster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/el.js new file mode 100644 index 00000000..4904d1b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","el",{access:"Πρόσβαση Script",accessAlways:"Πάντα",accessNever:"Ποτέ",accessSameDomain:"Ίδιο όνομα τομέα",alignAbsBottom:"Απόλυτα Κάτω",alignAbsMiddle:"Απόλυτα στη Μέση",alignBaseline:"Γραμμή Βάσης",alignTextTop:"Κορυφή Κειμένου",bgcolor:"Χρώμα Υποβάθρου",chkFull:"Να Επιτρέπεται η Προβολή σε Πλήρη Οθόνη",chkLoop:"Επανάληψη",chkMenu:"Ενεργοποίηση Flash Menu",chkPlay:"Αυτόματη Εκτέλεση",flashvars:"Μεταβλητές για Flash",hSpace:"Οριζόντιο Διάστημα",properties:"Ιδιότητες Flash", +propertiesTab:"Ιδιότητες",quality:"Ποιότητα",qualityAutoHigh:"Αυτόματη Υψηλή",qualityAutoLow:"Αυτόματη Χαμηλή",qualityBest:"Καλύτερη",qualityHigh:"Υψηλή",qualityLow:"Χαμηλή",qualityMedium:"Μεσαία",scale:"Μεγέθυνση",scaleAll:"Εμφάνιση όλων",scaleFit:"Ακριβές Μέγεθος",scaleNoBorder:"Χωρίς Περίγραμμα",title:"Ιδιότητες Flash",vSpace:"Κάθετο Διάστημα",validateHSpace:"Το HSpace πρέπει να είναι αριθμός.",validateSrc:"Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",validateVSpace:"Το VSpace πρέπει να είναι αριθμός.", +windowMode:"Τρόπος λειτουργίας παραθύρου",windowModeOpaque:"Συμπαγές",windowModeTransparent:"Διάφανο",windowModeWindow:"Παράθυρο"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-au.js new file mode 100644 index 00000000..e066c740 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-au",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-ca.js new file mode 100644 index 00000000..9c6fdc4a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-ca",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-gb.js new file mode 100644 index 00000000..ccbc28af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-gb",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en.js new file mode 100644 index 00000000..13380310 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/eo.js new file mode 100644 index 00000000..30218bc1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eo",{access:"Atingi skriptojn",accessAlways:"Ĉiam",accessNever:"Neniam",accessSameDomain:"Sama domajno",alignAbsBottom:"Absoluta Malsupro",alignAbsMiddle:"Absoluta Centro",alignBaseline:"TekstoMalsupro",alignTextTop:"TekstoSupro",bgcolor:"Fona Koloro",chkFull:"Permesi tutekranon",chkLoop:"Iteracio",chkMenu:"Ebligi flaŝmenuon",chkPlay:"Aŭtomata legado",flashvars:"Variabloj por Flaŝo",hSpace:"Horizontala Spaco",properties:"Flaŝatributoj",propertiesTab:"Atributoj",quality:"Kvalito", +qualityAutoHigh:"Aŭtomate alta",qualityAutoLow:"Aŭtomate malalta",qualityBest:"Plej bona",qualityHigh:"Alta",qualityLow:"Malalta",qualityMedium:"Meza",scale:"Skalo",scaleAll:"Montri ĉion",scaleFit:"Origina grando",scaleNoBorder:"Neniu bordero",title:"Flaŝatributoj",vSpace:"Vertikala Spaco",validateHSpace:"Horizontala Spaco devas esti nombro.",validateSrc:"Bonvolu entajpi la retadreson (URL)",validateVSpace:"Vertikala Spaco devas esti nombro.",windowMode:"Fenestra reĝimo",windowModeOpaque:"Opaka", +windowModeTransparent:"Travidebla",windowModeWindow:"Fenestro"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/es.js new file mode 100644 index 00000000..296239e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","es",{access:"Acceso de scripts",accessAlways:"Siempre",accessNever:"Nunca",accessSameDomain:"Mismo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Línea de base",alignTextTop:"Tope del texto",bgcolor:"Color de Fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar Menú Flash",chkPlay:"Autoejecución",flashvars:"Opciones",hSpace:"Esp.Horiz",properties:"Propiedades de Flash",propertiesTab:"Propiedades",quality:"Calidad", +qualityAutoHigh:"Auto Alta",qualityAutoLow:"Auto Baja",qualityBest:"La mejor",qualityHigh:"Alta",qualityLow:"Baja",qualityMedium:"Media",scale:"Escala",scaleAll:"Mostrar todo",scaleFit:"Ajustado",scaleNoBorder:"Sin Borde",title:"Propiedades de Flash",vSpace:"Esp.Vert",validateHSpace:"Esp.Horiz debe ser un número.",validateSrc:"Por favor escriba el vínculo URL",validateVSpace:"Esp.Vert debe ser un número.",windowMode:"WindowMode",windowModeOpaque:"Opaco",windowModeTransparent:"Transparente",windowModeWindow:"Ventana"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/et.js new file mode 100644 index 00000000..9ac2b3cd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","et",{access:"Skriptide ligipääs",accessAlways:"Kõigile",accessNever:"Mitte ühelegi",accessSameDomain:"Samalt domeenilt",alignAbsBottom:"Abs alla",alignAbsMiddle:"Abs keskele",alignBaseline:"Baasjoonele",alignTextTop:"Tekstist üles",bgcolor:"Tausta värv",chkFull:"Täisekraan lubatud",chkLoop:"Korduv",chkMenu:"Flashi menüü lubatud",chkPlay:"Automaatne start ",flashvars:"Flashi muutujad",hSpace:"H. vaheruum",properties:"Flashi omadused",propertiesTab:"Omadused",quality:"Kvaliteet", +qualityAutoHigh:"Automaatne kõrge",qualityAutoLow:"Automaatne madal",qualityBest:"Parim",qualityHigh:"Kõrge",qualityLow:"Madal",qualityMedium:"Keskmine",scale:"Mastaap",scaleAll:"Näidatakse kõike",scaleFit:"Täpne sobivus",scaleNoBorder:"Äärist ei ole",title:"Flashi omadused",vSpace:"V. vaheruum",validateHSpace:"H. vaheruum peab olema number.",validateSrc:"Palun kirjuta lingi URL",validateVSpace:"V. vaheruum peab olema number.",windowMode:"Akna režiim",windowModeOpaque:"Läbipaistmatu",windowModeTransparent:"Läbipaistev", +windowModeWindow:"Aken"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/eu.js new file mode 100644 index 00000000..5cf12025 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eu",{access:"Scriptak baimendu",accessAlways:"Beti",accessNever:"Inoiz ere ez",accessSameDomain:"Domeinu berdinekoak",alignAbsBottom:"Abs Behean",alignAbsMiddle:"Abs Erdian",alignBaseline:"Oinan",alignTextTop:"Testua Goian",bgcolor:"Atzeko kolorea",chkFull:"Onartu Pantaila osoa",chkLoop:"Begizta",chkMenu:"Flasharen Menua Gaitu",chkPlay:"Automatikoki Erreproduzitu",flashvars:"Flash Aldagaiak",hSpace:"HSpace",properties:"Flasharen Ezaugarriak",propertiesTab:"Ezaugarriak", +quality:"Kalitatea",qualityAutoHigh:"Auto Altua",qualityAutoLow:"Auto Baxua",qualityBest:"Hoberena",qualityHigh:"Altua",qualityLow:"Baxua",qualityMedium:"Ertaina",scale:"Eskalatu",scaleAll:"Dena erakutsi",scaleFit:"Doitu",scaleNoBorder:"Ertzik gabe",title:"Flasharen Ezaugarriak",vSpace:"VSpace",validateHSpace:"HSpace zenbaki bat izan behar da.",validateSrc:"Mesedez URL esteka idatzi",validateVSpace:"VSpace zenbaki bat izan behar da.",windowMode:"Leihoaren modua",windowModeOpaque:"Opakoa",windowModeTransparent:"Gardena", +windowModeWindow:"Leihoa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fa.js new file mode 100644 index 00000000..ac4a6092 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","fa",{access:"دسترسی به اسکریپت",accessAlways:"همیشه",accessNever:"هرگز",accessSameDomain:"همان دامنه",alignAbsBottom:"پائین مطلق",alignAbsMiddle:"وسط مطلق",alignBaseline:"خط پایه",alignTextTop:"متن بالا",bgcolor:"رنگ پس​زمینه",chkFull:"اجازه تمام صفحه",chkLoop:"اجرای پیاپی",chkMenu:"در دسترس بودن منوی فلش",chkPlay:"آغاز خودکار",flashvars:"مقادیر برای فلش",hSpace:"فاصلهٴ افقی",properties:"ویژگی​های فلش",propertiesTab:"ویژگی​ها",quality:"کیفیت",qualityAutoHigh:"بالا - خودکار", +qualityAutoLow:"پایین - خودکار",qualityBest:"بهترین",qualityHigh:"بالا",qualityLow:"پایین",qualityMedium:"متوسط",scale:"مقیاس",scaleAll:"نمایش همه",scaleFit:"جایگیری کامل",scaleNoBorder:"بدون کران",title:"ویژگی​های فلش",vSpace:"فاصلهٴ عمودی",validateHSpace:"مقدار فاصله گذاری افقی باید یک عدد باشد.",validateSrc:"لطفا URL پیوند را بنویسید",validateVSpace:"مقدار فاصله گذاری عمودی باید یک عدد باشد.",windowMode:"حالت پنجره",windowModeOpaque:"مات",windowModeTransparent:"شفاف",windowModeWindow:"پنجره"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fi.js new file mode 100644 index 00000000..c40fe43d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fi",{access:"Skriptien pääsy",accessAlways:"Aina",accessNever:"Ei koskaan",accessSameDomain:"Sama verkkotunnus",alignAbsBottom:"Aivan alas",alignAbsMiddle:"Aivan keskelle",alignBaseline:"Alas (teksti)",alignTextTop:"Ylös (teksti)",bgcolor:"Taustaväri",chkFull:"Salli kokoruututila",chkLoop:"Toisto",chkMenu:"Näytä Flash-valikko",chkPlay:"Automaattinen käynnistys",flashvars:"Muuttujat Flash:lle",hSpace:"Vaakatila",properties:"Flash-ominaisuudet",propertiesTab:"Ominaisuudet", +quality:"Laatu",qualityAutoHigh:"Automaattinen korkea",qualityAutoLow:"Automaattinen matala",qualityBest:"Paras",qualityHigh:"Korkea",qualityLow:"Matala",qualityMedium:"Keskitaso",scale:"Levitä",scaleAll:"Näytä kaikki",scaleFit:"Tarkka koko",scaleNoBorder:"Ei rajaa",title:"Flash ominaisuudet",vSpace:"Pystytila",validateHSpace:"Vaakatilan täytyy olla numero.",validateSrc:"Linkille on kirjoitettava URL",validateVSpace:"Pystytilan täytyy olla numero.",windowMode:"Ikkuna tila",windowModeOpaque:"Läpinäkyvyys", +windowModeTransparent:"Läpinäkyvä",windowModeWindow:"Ikkuna"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fo.js new file mode 100644 index 00000000..d02410a1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fo",{access:"Script atgongd",accessAlways:"Altíð",accessNever:"Ongantíð",accessSameDomain:"Sama navnaøki",alignAbsBottom:"Abs botnur",alignAbsMiddle:"Abs miðja",alignBaseline:"Basislinja",alignTextTop:"Tekst toppur",bgcolor:"Bakgrundslitur",chkFull:"Loyv fullan skerm",chkLoop:"Endurspæl",chkMenu:"Ger Flash skrá virkna",chkPlay:"Avspælingin byrjar sjálv",flashvars:"Variablar fyri Flash",hSpace:"Høgri breddi",properties:"Flash eginleikar",propertiesTab:"Eginleikar", +quality:"Góðska",qualityAutoHigh:"Auto høg",qualityAutoLow:"Auto Lág",qualityBest:"Besta",qualityHigh:"Høg",qualityLow:"Lág",qualityMedium:"Meðal",scale:"Skalering",scaleAll:"Vís alt",scaleFit:"Neyv skalering",scaleNoBorder:"Eingin bordi",title:"Flash eginleikar",vSpace:"Vinstri breddi",validateHSpace:"HSpace má vera eitt tal.",validateSrc:"Vinarliga skriva tilknýti (URL)",validateVSpace:"VSpace má vera eitt tal.",windowMode:"Slag av rúti",windowModeOpaque:"Ikki transparent",windowModeTransparent:"Transparent", +windowModeWindow:"Rútur"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fr-ca.js new file mode 100644 index 00000000..8218f119 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr-ca",{access:"Accès au script",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur de fond",chkFull:"Permettre le plein-écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Lecture automatique",flashvars:"Variables pour Flash",hSpace:"Espacement horizontal",properties:"Propriétés de l'animation Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute auto",qualityAutoLow:"Basse auto",qualityBest:"Meilleur",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Échelle",scaleAll:"Afficher tout",scaleFit:"Ajuster aux dimensions",scaleNoBorder:"Sans bordure",title:"Propriétés de l'animation Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un entier.",validateSrc:"Veuillez saisir l'URL",validateVSpace:"L'espacement vertical doit être un entier.", +windowMode:"Mode de fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fr.js new file mode 100644 index 00000000..fdc543c6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr",{access:"Accès aux scripts",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur d'arrière-plan",chkFull:"Permettre le plein écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Jouer automatiquement",flashvars:"Variables du Flash",hSpace:"Espacement horizontal",properties:"Propriétés du Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute Auto",qualityAutoLow:"Basse Auto",qualityBest:"Meilleure",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Echelle",scaleAll:"Afficher tout",scaleFit:"Taille d'origine",scaleNoBorder:"Pas de bordure",title:"Propriétés du Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un nombre.",validateSrc:"L'adresse ne doit pas être vide.",validateVSpace:"L'espacement vertical doit être un nombre.", +windowMode:"Mode fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/gl.js new file mode 100644 index 00000000..38e85081 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","gl",{access:"Acceso de scripts",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs Inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Liña de base",alignTextTop:"Tope do texto",bgcolor:"Cor do fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar o menú do «Flash»",chkPlay:"Reprodución auomática",flashvars:"Opcións do «Flash»",hSpace:"Esp. Horiz.",properties:"Propiedades do «Flash»",propertiesTab:"Propiedades", +quality:"Calidade",qualityAutoHigh:"Alta, automática",qualityAutoLow:"Baixa, automática",qualityBest:"A mellor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Media",scale:"Escalar",scaleAll:"Amosar todo",scaleFit:"Encaixar axustando",scaleNoBorder:"Sen bordo",title:"Propiedades do «Flash»",vSpace:"Esp.Vert.",validateHSpace:"O espazado horizontal debe ser un número.",validateSrc:"O URL non pode estar baleiro.",validateVSpace:"O espazado vertical debe ser un número.",windowMode:"Modo da xanela", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Xanela"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/gu.js new file mode 100644 index 00000000..601bb61c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","gu",{access:"સ્ક્રીપ્ટ એક્સેસ",accessAlways:"હમેશાં",accessNever:"નહી",accessSameDomain:"એજ ડોમેન",alignAbsBottom:"Abs નીચે",alignAbsMiddle:"Abs ઉપર",alignBaseline:"આધાર લીટી",alignTextTop:"ટેક્સ્ટ ઉપર",bgcolor:"બૅકગ્રાઉન્ડ રંગ,",chkFull:"ફૂલ સ્ક્રીન કરવું",chkLoop:"લૂપ",chkMenu:"ફ્લૅશ મેન્યૂ નો પ્રયોગ કરો",chkPlay:"ઑટો/સ્વયં પ્લે",flashvars:"ફલેશ ના વિકલ્પો",hSpace:"સમસ્તરીય જગ્યા",properties:"ફ્લૅશના ગુણ",propertiesTab:"ગુણ",quality:"ગુણધર્મ",qualityAutoHigh:"ઓટો ઊંચું", +qualityAutoLow:"ઓટો નીચું",qualityBest:"શ્રેષ્ઠ",qualityHigh:"ઊંચું",qualityLow:"નીચું",qualityMedium:"મધ્યમ",scale:"સ્કેલ",scaleAll:"સ્કેલ ઓલ/બધુ બતાવો",scaleFit:"સ્કેલ એકદમ ફીટ",scaleNoBorder:"સ્કેલ બોર્ડર વગર",title:"ફ્લૅશ ગુણ",vSpace:"લંબરૂપ જગ્યા",validateHSpace:"HSpace આંકડો હોવો જોઈએ.",validateSrc:"લિંક URL ટાઇપ કરો",validateVSpace:"VSpace આંકડો હોવો જોઈએ.",windowMode:"વિન્ડો મોડ",windowModeOpaque:"અપારદર્શક",windowModeTransparent:"પારદર્શક",windowModeWindow:"વિન્ડો"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/he.js new file mode 100644 index 00000000..6870ea2a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","he",{access:"גישת סקריפט",accessAlways:"תמיד",accessNever:"אף פעם",accessSameDomain:"דומיין זהה",alignAbsBottom:"לתחתית האבסולוטית",alignAbsMiddle:"מרכוז אבסולוטי",alignBaseline:"לקו התחתית",alignTextTop:"לראש הטקסט",bgcolor:"צבע רקע",chkFull:"אפשר חלון מלא",chkLoop:"לולאה",chkMenu:"אפשר תפריט פלאש",chkPlay:"ניגון אוטומטי",flashvars:"משתנים לפלאש",hSpace:"מרווח אופקי",properties:"מאפייני פלאש",propertiesTab:"מאפיינים",quality:"איכות",qualityAutoHigh:"גבוהה אוטומטית", +qualityAutoLow:"נמוכה אוטומטית",qualityBest:"מעולה",qualityHigh:"גבוהה",qualityLow:"נמוכה",qualityMedium:"ממוצעת",scale:"גודל",scaleAll:"הצג הכל",scaleFit:"התאמה מושלמת",scaleNoBorder:"ללא גבולות",title:"מאפיני פלאש",vSpace:"מרווח אנכי",validateHSpace:"המרווח האופקי חייב להיות מספר.",validateSrc:"יש להקליד את כתובת סרטון הפלאש (URL)",validateVSpace:"המרווח האנכי חייב להיות מספר.",windowMode:"מצב חלון",windowModeOpaque:"אטום",windowModeTransparent:"שקוף",windowModeWindow:"חלון"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hi.js new file mode 100644 index 00000000..2f3b6e99 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hi",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs नीचे",alignAbsMiddle:"Abs ऊपर",alignBaseline:"मूल रेखा",alignTextTop:"टेक्स्ट ऊपर",bgcolor:"बैक्ग्राउन्ड रंग",chkFull:"Allow Fullscreen",chkLoop:"लूप",chkMenu:"फ़्लैश मॅन्यू का प्रयोग करें",chkPlay:"ऑटो प्ले",flashvars:"Variables for Flash",hSpace:"हॉरिज़ॉन्टल स्पेस",properties:"फ़्लैश प्रॉपर्टीज़",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"स्केल",scaleAll:"सभी दिखायें",scaleFit:"बिल्कुल फ़िट",scaleNoBorder:"कोई बॉर्डर नहीं",title:"फ़्लैश प्रॉपर्टीज़",vSpace:"वर्टिकल स्पेस",validateHSpace:"HSpace must be a number.",validateSrc:"लिंक URL टाइप करें",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hr.js new file mode 100644 index 00000000..ae7c82f4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hr",{access:"Script Access",accessAlways:"Uvijek",accessNever:"Nikad",accessSameDomain:"Ista domena",alignAbsBottom:"Abs dolje",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Omogući Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Omogući Flash izbornik",chkPlay:"Auto Play",flashvars:"Varijable za Flash",hSpace:"HSpace",properties:"Flash svojstva",propertiesTab:"Svojstva",quality:"Kvaliteta",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Omjer",scaleAll:"Prikaži sve",scaleFit:"Točna veličina",scaleNoBorder:"Bez okvira",title:"Flash svojstva",vSpace:"VSpace",validateHSpace:"HSpace mora biti broj.",validateSrc:"Molimo upišite URL link",validateVSpace:"VSpace mora biti broj.",windowMode:"Vrsta prozora",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hu.js new file mode 100644 index 00000000..92620909 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","hu",{access:"Szkript hozzáférés",accessAlways:"Mindig",accessNever:"Soha",accessSameDomain:"Azonos domainről",alignAbsBottom:"Legaljára",alignAbsMiddle:"Közepére",alignBaseline:"Alapvonalhoz",alignTextTop:"Szöveg tetejére",bgcolor:"Háttérszín",chkFull:"Teljes képernyő engedélyezése",chkLoop:"Folyamatosan",chkMenu:"Flash menü engedélyezése",chkPlay:"Automata lejátszás",flashvars:"Flash változók",hSpace:"Vízsz. táv",properties:"Flash tulajdonságai",propertiesTab:"Tulajdonságok", +quality:"Minőség",qualityAutoHigh:"Automata jó",qualityAutoLow:"Automata gyenge",qualityBest:"Legjobb",qualityHigh:"Jó",qualityLow:"Gyenge",qualityMedium:"Közepes",scale:"Méretezés",scaleAll:"Mindent mutat",scaleFit:"Teljes kitöltés",scaleNoBorder:"Keret nélkül",title:"Flash tulajdonságai",vSpace:"Függ. táv",validateHSpace:"A vízszintes távolsűág mezőbe csak számokat írhat.",validateSrc:"Adja meg a hivatkozás webcímét",validateVSpace:"A függőleges távolsűág mezőbe csak számokat írhat.",windowMode:"Ablak mód", +windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/id.js new file mode 100644 index 00000000..9272c08d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","id",{access:"Script Access",accessAlways:"Selalu",accessNever:"Tidak Pernah",accessSameDomain:"Domain yang sama",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Dasar",alignTextTop:"Text Top",bgcolor:"Warna Latar Belakang",chkFull:"Izinkan Layar Penuh",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Mainkan Otomatis",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properti",quality:"Kualitas", +qualityAutoHigh:"Tinggi Otomatis",qualityAutoLow:"Rendah Otomatis",qualityBest:"Terbaik",qualityHigh:"Tinggi",qualityLow:"Rendah",qualityMedium:"Sedang",scale:"Scale",scaleAll:"Perlihatkan semua",scaleFit:"Exact Fit",scaleNoBorder:"Tanpa Batas",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace harus sebuah angka",validateSrc:"URL tidak boleh kosong",validateVSpace:"VSpace harus sebuah angka",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparan",windowModeWindow:"Jendela"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/is.js new file mode 100644 index 00000000..0b0d71b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","is",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs neðst",alignAbsMiddle:"Abs miðjuð",alignBaseline:"Grunnlína",alignTextTop:"Efri brún texta",bgcolor:"Bakgrunnslitur",chkFull:"Allow Fullscreen",chkLoop:"Endurtekning",chkMenu:"Sýna Flash-valmynd",chkPlay:"Sjálfvirk spilun",flashvars:"Variables for Flash",hSpace:"Vinstri bil",properties:"Eigindi Flash",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skali",scaleAll:"Sýna allt",scaleFit:"Fella skala að stærð",scaleNoBorder:"Án ramma",title:"Eigindi Flash",vSpace:"Hægri bil",validateHSpace:"HSpace must be a number.",validateSrc:"Sláðu inn veffang stiklunnar!",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/it.js new file mode 100644 index 00000000..7c5e09f4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","it",{access:"Accesso Script",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"Solo stesso dominio",alignAbsBottom:"In basso assoluto",alignAbsMiddle:"Centrato assoluto",alignBaseline:"Linea base",alignTextTop:"In alto al testo",bgcolor:"Colore sfondo",chkFull:"Permetti la modalità tutto schermo",chkLoop:"Riavvio automatico",chkMenu:"Abilita Menu di Flash",chkPlay:"Avvio Automatico",flashvars:"Variabili per Flash",hSpace:"HSpace",properties:"Proprietà Oggetto Flash", +propertiesTab:"Proprietà",quality:"Qualità",qualityAutoHigh:"Alta Automatica",qualityAutoLow:"Bassa Automatica",qualityBest:"Massima",qualityHigh:"Alta",qualityLow:"Bassa",qualityMedium:"Intermedia",scale:"Ridimensiona",scaleAll:"Mostra Tutto",scaleFit:"Dimensione Esatta",scaleNoBorder:"Senza Bordo",title:"Proprietà Oggetto Flash",vSpace:"VSpace",validateHSpace:"L'HSpace dev'essere un numero.",validateSrc:"Devi inserire l'URL del collegamento",validateVSpace:"Il VSpace dev'essere un numero.",windowMode:"Modalità finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Trasparente",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ja.js new file mode 100644 index 00000000..8a2238b4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ja",{access:"スプリクトアクセス(AllowScriptAccess)",accessAlways:"すべての場合に通信可能(Always)",accessNever:"すべての場合に通信不可能(Never)",accessSameDomain:"同一ドメインのみに通信可能(Same domain)",alignAbsBottom:"下部(絶対的)",alignAbsMiddle:"中央(絶対的)",alignBaseline:"ベースライン",alignTextTop:"テキスト上部",bgcolor:"背景色",chkFull:"フルスクリーン許可",chkLoop:"ループ再生",chkMenu:"Flashメニュー可能",chkPlay:"再生",flashvars:"フラッシュに渡す変数(FlashVars)",hSpace:"横間隔",properties:"Flash プロパティ",propertiesTab:"プロパティ",quality:"画質",qualityAutoHigh:"自動/高", +qualityAutoLow:"自動/低",qualityBest:"品質優先",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"拡大縮小設定",scaleAll:"すべて表示",scaleFit:"上下左右にフィット",scaleNoBorder:"外が見えない様に拡大",title:"Flash プロパティ",vSpace:"縦間隔",validateHSpace:"横間隔は数値で入力してください。",validateSrc:"リンクURLを入力してください。",validateVSpace:"縦間隔は数値で入力してください。",windowMode:"ウィンドウモード",windowModeOpaque:"背景を不透明設定",windowModeTransparent:"背景を透過設定",windowModeWindow:"標準"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ka.js new file mode 100644 index 00000000..fb482eca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ka",{access:"სკრიპტის წვდომა",accessAlways:"ყოველთვის",accessNever:"არასდროს",accessSameDomain:"იგივე დომენი",alignAbsBottom:"ჩარჩოს ქვემოთა ნაწილის სწორება ტექსტისთვის",alignAbsMiddle:"ჩარჩოს შუა ნაწილის სწორება ტექსტისთვის",alignBaseline:"საბაზისო ხაზის სწორება",alignTextTop:"ტექსტი ზემოდან",bgcolor:"ფონის ფერი",chkFull:"მთელი ეკრანის დაშვება",chkLoop:"ჩაციკლვა",chkMenu:"Flash-ის მენიუს დაშვება",chkPlay:"ავტო გაშვება",flashvars:"ცვლადები Flash-ისთვის",hSpace:"ჰორიზ. სივრცე", +properties:"Flash-ის პარამეტრები",propertiesTab:"პარამეტრები",quality:"ხარისხი",qualityAutoHigh:"მაღალი (ავტომატური)",qualityAutoLow:"ძალიან დაბალი",qualityBest:"საუკეთესო",qualityHigh:"მაღალი",qualityLow:"დაბალი",qualityMedium:"საშუალო",scale:"მასშტაბირება",scaleAll:"ყველაფრის ჩვენება",scaleFit:"ზუსტი ჩასმა",scaleNoBorder:"ჩარჩოს გარეშე",title:"Flash-ის პარამეტრები",vSpace:"ვერტ. სივრცე",validateHSpace:"ჰორიზონტალური სივრცე არ უნდა იყოს ცარიელი.",validateSrc:"URL არ უნდა იყოს ცარიელი.",validateVSpace:"ვერტიკალური სივრცე არ უნდა იყოს ცარიელი.", +windowMode:"ფანჯრის რეჟიმი",windowModeOpaque:"გაუმჭვირვალე",windowModeTransparent:"გამჭვირვალე",windowModeWindow:"ფანჯარა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/km.js new file mode 100644 index 00000000..a4babe9e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","km",{access:"Script Access",accessAlways:"ជានិច្ច",accessNever:"កុំ",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"បន្ទាត់ជាមូលដ្ឋាន",alignTextTop:"លើអត្ថបទ",bgcolor:"ពណ៌ផ្ទៃខាងក្រោយ",chkFull:"អនុញ្ញាត​ឲ្យ​ពេញ​អេក្រង់",chkLoop:"ចំនួនដង",chkMenu:"បង្ហាញ មឺនុយរបស់ Flash",chkPlay:"លេងដោយស្វ័យប្រវត្ត",flashvars:"អថេរ Flash",hSpace:"គំលាតទទឹង",properties:"ការកំណត់ Flash",propertiesTab:"លក្ខណៈ​សម្បត្តិ",quality:"គុណភាព", +qualityAutoHigh:"ខ្ពស់​ស្វ័យ​ប្រវត្តិ",qualityAutoLow:"ទាប​ស្វ័យ​ប្រវត្តិ",qualityBest:"ល្អ​បំផុត",qualityHigh:"ខ្ពស់",qualityLow:"ទាប",qualityMedium:"មធ្យម",scale:"ទំហំ",scaleAll:"បង្ហាញទាំងអស់",scaleFit:"ត្រូវល្មម",scaleNoBorder:"មិនបង្ហាញស៊ុម",title:"ការកំណត់ Flash",vSpace:"គំលាតបណ្តោយ",validateHSpace:"HSpace must be a number.",validateSrc:"សូមសរសេរ អាស័យដ្ឋាន URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"ភាព​ថ្លា",windowModeWindow:"វីនដូ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ko.js new file mode 100644 index 00000000..514c74a8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ko",{access:"스크립트 허용",accessAlways:"항상 허용",accessNever:"허용 안함",accessSameDomain:"Same domain",alignAbsBottom:"줄아래(Abs Bottom)",alignAbsMiddle:"줄중간(Abs Middle)",alignBaseline:"기준선",alignTextTop:"글자상단",bgcolor:"배경 색상",chkFull:"전체화면 ",chkLoop:"반복",chkMenu:"플래쉬메뉴 가능",chkPlay:"자동재생",flashvars:"Variables for Flash",hSpace:"수평여백",properties:"플래쉬 속성",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High", +qualityLow:"Low",qualityMedium:"Medium",scale:"영역",scaleAll:"모두보기",scaleFit:"영역자동조절",scaleNoBorder:"경계선없음",title:"플래쉬 등록정보",vSpace:"수직여백",validateHSpace:"HSpace must be a number.",validateSrc:"링크 URL을 입력하십시요.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ku.js new file mode 100644 index 00000000..e9618955 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ku",{access:"دەستپێگەیشتنی نووسراو",accessAlways:"هەمیشه",accessNever:"هەرگیز",accessSameDomain:"هەمان دۆمەین",alignAbsBottom:"له ژێرەوه",alignAbsMiddle:"لەناوەند",alignBaseline:"هێڵەبنەڕەت",alignTextTop:"دەق لەسەرەوه",bgcolor:"ڕەنگی پاشبنەما",chkFull:"ڕێپێدان بە پڕی شاشه",chkLoop:"گرێ",chkMenu:"چالاککردنی لیستەی فلاش",chkPlay:"پێکردنی یان لێدانی خۆکار",flashvars:"گۆڕاوەکان بۆ فلاش",hSpace:"بۆشایی ئاسۆیی",properties:"خاسیەتی فلاش",propertiesTab:"خاسیەت",quality:"جۆرایەتی", +qualityAutoHigh:"بەرزی خۆکار",qualityAutoLow:"نزمی خۆکار",qualityBest:"باشترین",qualityHigh:"بەرزی",qualityLow:"نزم",qualityMedium:"مامناوەند",scale:"پێوانه",scaleAll:"نیشاندانی هەموو",scaleFit:"بەوردی بگونجێت",scaleNoBorder:"بێ پەراوێز",title:"خاسیەتی فلاش",vSpace:"بۆشایی ئەستونی",validateHSpace:"بۆشایی ئاسۆیی دەبێت ژمارە بێت.",validateSrc:"ناونیشانی بەستەر نابێت خاڵی بێت",validateVSpace:"بۆشایی ئەستونی دەبێت ژماره بێت.",windowMode:"شێوازی پەنجەره",windowModeOpaque:"ناڕوون",windowModeTransparent:"ڕۆشن", +windowModeWindow:"پەنجەره"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/lt.js new file mode 100644 index 00000000..8e013f24 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lt",{access:"Skripto priėjimas",accessAlways:"Visada",accessNever:"Niekada",accessSameDomain:"Tas pats domenas",alignAbsBottom:"Absoliučią apačią",alignAbsMiddle:"Absoliutų vidurį",alignBaseline:"Apatinę liniją",alignTextTop:"Teksto viršūnę",bgcolor:"Fono spalva",chkFull:"Leisti per visą ekraną",chkLoop:"Ciklas",chkMenu:"Leisti Flash meniu",chkPlay:"Automatinis paleidimas",flashvars:"Flash kintamieji",hSpace:"Hor.Erdvė",properties:"Flash savybės",propertiesTab:"Nustatymai", +quality:"Kokybė",qualityAutoHigh:"Automatiškai Gera",qualityAutoLow:"Automatiškai Žema",qualityBest:"Geriausia",qualityHigh:"Gera",qualityLow:"Žema",qualityMedium:"Vidutinė",scale:"Mastelis",scaleAll:"Rodyti visą",scaleFit:"Tikslus atitikimas",scaleNoBorder:"Be rėmelio",title:"Flash savybės",vSpace:"Vert.Erdvė",validateHSpace:"HSpace turi būti skaičius.",validateSrc:"Prašome įvesti nuorodos URL",validateVSpace:"VSpace turi būti skaičius.",windowMode:"Lango režimas",windowModeOpaque:"Nepermatomas", +windowModeTransparent:"Permatomas",windowModeWindow:"Langas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/lv.js new file mode 100644 index 00000000..30edb939 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lv",{access:"Skripta pieeja",accessAlways:"Vienmēr",accessNever:"Nekad",accessSameDomain:"Tas pats domēns",alignAbsBottom:"Absolūti apakšā",alignAbsMiddle:"Absolūti vertikāli centrēts",alignBaseline:"Pamatrindā",alignTextTop:"Teksta augšā",bgcolor:"Fona krāsa",chkFull:"Pilnekrāns",chkLoop:"Nepārtraukti",chkMenu:"Atļaut Flash izvēlni",chkPlay:"Automātiska atskaņošana",flashvars:"Flash mainīgie",hSpace:"Horizontālā telpa",properties:"Flash īpašības",propertiesTab:"Uzstādījumi", +quality:"Kvalitāte",qualityAutoHigh:"Automātiski Augsta",qualityAutoLow:"Automātiski Zema",qualityBest:"Labākā",qualityHigh:"Augsta",qualityLow:"Zema",qualityMedium:"Vidēja",scale:"Mainīt izmēru",scaleAll:"Rādīt visu",scaleFit:"Precīzs izmērs",scaleNoBorder:"Bez rāmja",title:"Flash īpašības",vSpace:"Vertikālā telpa",validateHSpace:"Hspace jābūt skaitlim",validateSrc:"Lūdzu norādi hipersaiti",validateVSpace:"Vspace jābūt skaitlim",windowMode:"Loga režīms",windowModeOpaque:"Necaurspīdīgs",windowModeTransparent:"Caurspīdīgs", +windowModeWindow:"Logs"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/mk.js new file mode 100644 index 00000000..ae22f2a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mk",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/mn.js new file mode 100644 index 00000000..6759d77d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mn",{access:"Script Access",accessAlways:"Онцлогууд",accessNever:"Хэзээ ч үгүй",accessSameDomain:"Байнга",alignAbsBottom:"Abs доод талд",alignAbsMiddle:"Abs Дунд талд",alignBaseline:"Baseline",alignTextTop:"Текст дээр",bgcolor:"Дэвсгэр өнгө",chkFull:"Allow Fullscreen",chkLoop:"Давтах",chkMenu:"Флаш цэс идвэхжүүлэх",chkPlay:"Автоматаар тоглох",flashvars:"Variables for Flash",hSpace:"Хөндлөн зай",properties:"Флаш шинж чанар",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Өргөгтгөх",scaleAll:"Бүгдийг харуулах",scaleFit:"Яг тааруулах",scaleNoBorder:"Хүрээгүй",title:"Флаш шинж чанар",vSpace:"Босоо зай",validateHSpace:"HSpace must be a number.",validateSrc:"Линк URL-ээ төрөлжүүлнэ үү",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ms.js new file mode 100644 index 00000000..9012a684 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ms",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Bawah Mutlak",alignAbsMiddle:"Pertengahan Mutlak",alignBaseline:"Garis Dasar",alignTextTop:"Atas Text",bgcolor:"Warna Latarbelakang",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"Ruang Melintang",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"Ruang Menegak",validateHSpace:"HSpace must be a number.",validateSrc:"Sila taip sambungan URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/nb.js new file mode 100644 index 00000000..c03f61f7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","nb",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/nl.js new file mode 100644 index 00000000..193591ba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","nl",{access:"Script toegang",accessAlways:"Altijd",accessNever:"Nooit",accessSameDomain:"Zelfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-midden",alignBaseline:"Basislijn",alignTextTop:"Boven tekst",bgcolor:"Achtergrondkleur",chkFull:"Schermvullend toestaan",chkLoop:"Herhalen",chkMenu:"Flashmenu's inschakelen",chkPlay:"Automatisch afspelen",flashvars:"Variabelen voor Flash",hSpace:"HSpace",properties:"Eigenschappen Flash",propertiesTab:"Eigenschappen", +quality:"Kwaliteit",qualityAutoHigh:"Automatisch hoog",qualityAutoLow:"Automatisch laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Schaal",scaleAll:"Alles tonen",scaleFit:"Precies passend",scaleNoBorder:"Geen rand",title:"Eigenschappen Flash",vSpace:"VSpace",validateHSpace:"De HSpace moet een getal zijn.",validateSrc:"De URL mag niet leeg zijn.",validateVSpace:"De VSpace moet een getal zijn.",windowMode:"Venster modus",windowModeOpaque:"Ondoorzichtig", +windowModeTransparent:"Doorzichtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/no.js new file mode 100644 index 00000000..4f660ce4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","no",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pl.js new file mode 100644 index 00000000..aa3da87e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pl",{access:"Dostęp skryptów",accessAlways:"Zawsze",accessNever:"Nigdy",accessSameDomain:"Ta sama domena",alignAbsBottom:"Do dołu",alignAbsMiddle:"Do środka w pionie",alignBaseline:"Do linii bazowej",alignTextTop:"Do góry tekstu",bgcolor:"Kolor tła",chkFull:"Zezwól na pełny ekran",chkLoop:"Pętla",chkMenu:"Włącz menu",chkPlay:"Autoodtwarzanie",flashvars:"Zmienne obiektu Flash",hSpace:"Odstęp poziomy",properties:"Właściwości obiektu Flash",propertiesTab:"Właściwości", +quality:"Jakość",qualityAutoHigh:"Auto wysoka",qualityAutoLow:"Auto niska",qualityBest:"Najlepsza",qualityHigh:"Wysoka",qualityLow:"Niska",qualityMedium:"Średnia",scale:"Skaluj",scaleAll:"Pokaż wszystko",scaleFit:"Dokładne dopasowanie",scaleNoBorder:"Bez obramowania",title:"Właściwości obiektu Flash",vSpace:"Odstęp pionowy",validateHSpace:"Odstęp poziomy musi być liczbą.",validateSrc:"Podaj adres URL",validateVSpace:"Odstęp pionowy musi być liczbą.",windowMode:"Tryb okna",windowModeOpaque:"Nieprzezroczyste", +windowModeTransparent:"Przezroczyste",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pt-br.js new file mode 100644 index 00000000..4be3e143 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt-br",{access:"Acesso ao script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Acessar Mesmo Domínio",alignAbsBottom:"Inferior Absoluto",alignAbsMiddle:"Centralizado Absoluto",alignBaseline:"Baseline",alignTextTop:"Superior Absoluto",bgcolor:"Cor do Plano de Fundo",chkFull:"Permitir tela cheia",chkLoop:"Tocar Infinitamente",chkMenu:"Habilita Menu Flash",chkPlay:"Tocar Automaticamente",flashvars:"Variáveis do Flash",hSpace:"HSpace",properties:"Propriedades do Flash", +propertiesTab:"Propriedades",quality:"Qualidade",qualityAutoHigh:"Qualidade Alta Automática",qualityAutoLow:"Qualidade Baixa Automática",qualityBest:"Qualidade Melhor",qualityHigh:"Qualidade Alta",qualityLow:"Qualidade Baixa",qualityMedium:"Qualidade Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Escala Exata",scaleNoBorder:"Sem Borda",title:"Propriedades do Flash",vSpace:"VSpace",validateHSpace:"O HSpace tem que ser um número",validateSrc:"Por favor, digite o endereço do link",validateVSpace:"O VSpace tem que ser um número.", +windowMode:"Modo da janela",windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pt.js new file mode 100644 index 00000000..374ffae8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt",{access:"Acesso ao Script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Linha de base",alignTextTop:"Topo do texto",bgcolor:"Cor de Fundo",chkFull:"Permitir Ecrã inteiro",chkLoop:"Loop",chkMenu:"Permitir Menu do Flash",chkPlay:"Reproduzir automaticamente",flashvars:"Variaveis para o Flash",hSpace:"Esp.Horiz",properties:"Propriedades do Flash",propertiesTab:"Propriedades", +quality:"Qualidade",qualityAutoHigh:"Alta Automaticamente",qualityAutoLow:"Baixa Automaticamente",qualityBest:"Melhor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Tamanho Exacto",scaleNoBorder:"Sem Limites",title:"Propriedades do Flash",vSpace:"Esp.Vert",validateHSpace:"HSpace tem de ser um numero.",validateSrc:"Por favor introduza a hiperligação URL",validateVSpace:"VSpace tem de ser um numero.",windowMode:"Modo de janela",windowModeOpaque:"Opaco", +windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ro.js new file mode 100644 index 00000000..8be6b18f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ro",{access:"Acces script",accessAlways:"Întotdeauna",accessNever:"Niciodată",accessSameDomain:"Același domeniu",alignAbsBottom:"Jos absolut (Abs Bottom)",alignAbsMiddle:"Mijloc absolut (Abs Middle)",alignBaseline:"Linia de jos (Baseline)",alignTextTop:"Text sus",bgcolor:"Coloarea fundalului",chkFull:"Permite pe tot ecranul",chkLoop:"Repetă (Loop)",chkMenu:"Activează meniul flash",chkPlay:"Rulează automat",flashvars:"Variabile pentru flash",hSpace:"HSpace",properties:"Proprietăţile flashului", +propertiesTab:"Proprietăți",quality:"Calitate",qualityAutoHigh:"Auto înaltă",qualityAutoLow:"Auto Joasă",qualityBest:"Cea mai bună",qualityHigh:"Înaltă",qualityLow:"Joasă",qualityMedium:"Medie",scale:"Scală",scaleAll:"Arată tot",scaleFit:"Potriveşte",scaleNoBorder:"Fără bordură (No border)",title:"Proprietăţile flashului",vSpace:"VSpace",validateHSpace:"Hspace trebuie să fie un număr.",validateSrc:"Vă rugăm să scrieţi URL-ul",validateVSpace:"VSpace trebuie să fie un număr",windowMode:"Mod fereastră", +windowModeOpaque:"Opacă",windowModeTransparent:"Transparentă",windowModeWindow:"Fereastră"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ru.js new file mode 100644 index 00000000..d4f39fb5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ru",{access:"Доступ к скриптам",accessAlways:"Всегда",accessNever:"Никогда",accessSameDomain:"В том же домене",alignAbsBottom:"По низу текста",alignAbsMiddle:"По середине текста",alignBaseline:"По базовой линии",alignTextTop:"По верху текста",bgcolor:"Цвет фона",chkFull:"Разрешить полноэкранный режим",chkLoop:"Повторять",chkMenu:"Включить меню Flash",chkPlay:"Автоматическое воспроизведение",flashvars:"Переменные для Flash",hSpace:"Гориз. отступ",properties:"Свойства Flash", +propertiesTab:"Свойства",quality:"Качество",qualityAutoHigh:"Запуск на высоком",qualityAutoLow:"Запуск на низком",qualityBest:"Лучшее",qualityHigh:"Высокое",qualityLow:"Низкое",qualityMedium:"Среднее",scale:"Масштабировать",scaleAll:"Пропорционально",scaleFit:"Заполнять",scaleNoBorder:"Заходить за границы",title:"Свойства Flash",vSpace:"Вертик. отступ",validateHSpace:"Горизонтальный отступ задается числом.",validateSrc:"Вы должны ввести ссылку",validateVSpace:"Вертикальный отступ задается числом.", +windowMode:"Взаимодействие с окном",windowModeOpaque:"Непрозрачный",windowModeTransparent:"Прозрачный",windowModeWindow:"Обычный"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/si.js new file mode 100644 index 00000000..6184682d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","si",{access:"පිටපත් ප්‍රවේශය",accessAlways:"හැමවිටම",accessNever:"කිසිදා නොවේ",accessSameDomain:"එකම වසමේ",alignAbsBottom:"පතුල",alignAbsMiddle:"Abs ",alignBaseline:"පාද රේඛාව",alignTextTop:"වගන්තිය ඉහල",bgcolor:"පසුබිම් වර්ණය",chkFull:"පුර්ණ තිරය සදහා අවසර",chkLoop:"පුඩුව",chkMenu:"සක්‍රිය බබලන මෙනුව",chkPlay:"ස්‌වයංක්‍රිය ක්‍රියාත්මක වීම",flashvars:"වෙනස්වන දත්ත",hSpace:"HSpace",properties:"බබලන ගුණ",propertiesTab:"ගුණ",quality:"තත්වය",qualityAutoHigh:"ස්‌වයංක්‍රිය ", +qualityAutoLow:" ස්‌වයංක්‍රිය ",qualityBest:"වඩාත් ගැලපෙන",qualityHigh:"ඉහළ",qualityLow:"පහළ",qualityMedium:"මධ්‍ය",scale:"පරිමාණ",scaleAll:"සියල්ල ",scaleFit:"හරියටම ගැලපෙන",scaleNoBorder:"මාඉම් නොමැති",title:"බබලන ",vSpace:"VSpace",validateHSpace:"HSpace සංක්‍යාවක් විය යුතුය.",validateSrc:"URL හිස් නොවිය ",validateVSpace:"VSpace සංක්‍යාවක් විය යුතුය",windowMode:"ජනෙල ක්‍රමය",windowModeOpaque:"විනිවිද පෙනෙන",windowModeTransparent:"විනිවිද පෙනෙන",windowModeWindow:"ජනෙල"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sk.js new file mode 100644 index 00000000..e959ca02 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sk",{access:"Prístup skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Rovnaká doména",alignAbsBottom:"Úplne dole",alignAbsMiddle:"Do stredu",alignBaseline:"Na základnú čiaru",alignTextTop:"Na horný okraj textu",bgcolor:"Farba pozadia",chkFull:"Povoliť zobrazenie na celú obrazovku (fullscreen)",chkLoop:"Opakovanie",chkMenu:"Povoliť Flash Menu",chkPlay:"Automatické prehrávanie",flashvars:"Premenné pre Flash",hSpace:"H-medzera",properties:"Vlastnosti Flashu", +propertiesTab:"Vlastnosti",quality:"Kvalita",qualityAutoHigh:"Automaticky vysoká",qualityAutoLow:"Automaticky nízka",qualityBest:"Najlepšia",qualityHigh:"Vysoká",qualityLow:"Nízka",qualityMedium:"Stredná",scale:"Mierka",scaleAll:"Zobraziť všetko",scaleFit:"Roztiahnuť, aby sedelo presne",scaleNoBorder:"Bez okrajov",title:"Vlastnosti Flashu",vSpace:"V-medzera",validateHSpace:"H-medzera musí byť číslo.",validateSrc:"URL nesmie byť prázdne.",validateVSpace:"V-medzera musí byť číslo",windowMode:"Mód okna", +windowModeOpaque:"Nepriehľadný",windowModeTransparent:"Priehľadný",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sl.js new file mode 100644 index 00000000..3de6413e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sl",{access:"Dostop skript",accessAlways:"Vedno",accessNever:"Nikoli",accessSameDomain:"Samo ista domena",alignAbsBottom:"Popolnoma na dno",alignAbsMiddle:"Popolnoma v sredino",alignBaseline:"Na osnovno črto",alignTextTop:"Besedilo na vrh",bgcolor:"Barva ozadja",chkFull:"Dovoli celozaslonski način",chkLoop:"Ponavljanje",chkMenu:"Omogoči Flash Meni",chkPlay:"Samodejno predvajaj",flashvars:"Spremenljivke za Flash",hSpace:"Vodoravni razmik",properties:"Lastnosti Flash", +propertiesTab:"Lastnosti",quality:"Kakovost",qualityAutoHigh:"Samodejno visoka",qualityAutoLow:"Samodejno nizka",qualityBest:"Najvišja",qualityHigh:"Visoka",qualityLow:"Nizka",qualityMedium:"Srednja",scale:"Povečava",scaleAll:"Pokaži vse",scaleFit:"Natančno prileganje",scaleNoBorder:"Brez obrobe",title:"Lastnosti Flash",vSpace:"Navpični razmik",validateHSpace:"Vodoravni razmik mora biti število.",validateSrc:"Vnesite URL povezave",validateVSpace:"Navpični razmik mora biti število.",windowMode:"Vrsta okna", +windowModeOpaque:"Motno",windowModeTransparent:"Prosojno",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sq.js new file mode 100644 index 00000000..bded5272 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sq",{access:"Qasja në Skriptë",accessAlways:"Gjithnjë",accessNever:"Asnjëherë",accessSameDomain:"Fusha e Njëjtë",alignAbsBottom:"Abs në Fund",alignAbsMiddle:"Abs në Mes",alignBaseline:"Baza",alignTextTop:"Koka e Tekstit",bgcolor:"Ngjyra e Prapavijës",chkFull:"Lejo Ekran të Plotë",chkLoop:"Përsëritje",chkMenu:"Lejo Menynë për Flash",chkPlay:"Auto Play",flashvars:"Variablat për Flash",hSpace:"Hapësira Horizontale",properties:"Karakteristikat për Flash",propertiesTab:"Karakteristikat", +quality:"Kualiteti",qualityAutoHigh:"Automatikisht i Lartë",qualityAutoLow:"Automatikisht i Ulët",qualityBest:"Më i Miri",qualityHigh:"I Lartë",qualityLow:"Më i Ulti",qualityMedium:"I Mesëm",scale:"Shkalla",scaleAll:"Shfaq të Gjitha",scaleFit:"Përputhje të Plotë",scaleNoBorder:"Pa Kornizë",title:"Rekuizitat për Flash",vSpace:"Hapësira Vertikale",validateHSpace:"Hapësira Horizontale duhet të është numër.",validateSrc:"URL nuk duhet mbetur zbrazur.",validateVSpace:"Hapësira Vertikale duhet të është numër.", +windowMode:"Window mode",windowModeOpaque:"Errët",windowModeTransparent:"Tejdukshëm",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sr-latn.js new file mode 100644 index 00000000..641140c3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr-latn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Uključi fleš meni",chkPlay:"Automatski start",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Osobine fleša",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skaliraj",scaleAll:"Prikaži sve",scaleFit:"Popuni površinu",scaleNoBorder:"Bez ivice",title:"Osobine fleša",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Unesite URL linka",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sr.js new file mode 100644 index 00000000..c62614dc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs доле",alignAbsMiddle:"Abs средина",alignBaseline:"Базно",alignTextTop:"Врх текста",bgcolor:"Боја позадине",chkFull:"Allow Fullscreen",chkLoop:"Понављај",chkMenu:"Укључи флеш мени",chkPlay:"Аутоматски старт",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Особине Флеша",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Скалирај",scaleAll:"Прикажи све",scaleFit:"Попуни површину",scaleNoBorder:"Без ивице",title:"Особине флеша",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Унесите УРЛ линка",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sv.js new file mode 100644 index 00000000..7c6edcc4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sv",{access:"Script-tillgång",accessAlways:"Alltid",accessNever:"Aldrig",accessSameDomain:"Samma domän",alignAbsBottom:"Absolut nederkant",alignAbsMiddle:"Absolut centrering",alignBaseline:"Baslinje",alignTextTop:"Text överkant",bgcolor:"Bakgrundsfärg",chkFull:"Tillåt helskärm",chkLoop:"Upprepa/Loopa",chkMenu:"Aktivera Flashmeny",chkPlay:"Automatisk uppspelning",flashvars:"Variabler för Flash",hSpace:"Horis. marginal",properties:"Flashegenskaper",propertiesTab:"Egenskaper", +quality:"Kvalitet",qualityAutoHigh:"Auto Hög",qualityAutoLow:"Auto Låg",qualityBest:"Bäst",qualityHigh:"Hög",qualityLow:"Låg",qualityMedium:"Medium",scale:"Skala",scaleAll:"Visa allt",scaleFit:"Exakt passning",scaleNoBorder:"Ingen ram",title:"Flashegenskaper",vSpace:"Vert. marginal",validateHSpace:"HSpace måste vara ett nummer.",validateSrc:"Var god ange länkens URL",validateVSpace:"VSpace måste vara ett nummer.",windowMode:"Fönsterläge",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent", +windowModeWindow:"Fönster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/th.js new file mode 100644 index 00000000..49932348 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","th",{access:"การเข้าถึงสคริปต์",accessAlways:"ตลอดไป",accessNever:"ไม่เลย",accessSameDomain:"โดเมนเดียวกัน",alignAbsBottom:"ชิดด้านล่างสุด",alignAbsMiddle:"กึ่งกลาง",alignBaseline:"ชิดบรรทัด",alignTextTop:"ใต้ตัวอักษร",bgcolor:"สีพื้นหลัง",chkFull:"อนุญาตให้แสดงเต็มหน้าจอได้",chkLoop:"เล่นวนรอบ Loop",chkMenu:"ให้ใช้งานเมนูของ Flash",chkPlay:"เล่นอัตโนมัติ Auto Play",flashvars:"ตัวแปรสำหรับ Flas",hSpace:"ระยะแนวนอน",properties:"คุณสมบัติของไฟล์ Flash",propertiesTab:"คุณสมบัติ", +quality:"คุณภาพ",qualityAutoHigh:"ปรับคุณภาพสูงอัตโนมัติ",qualityAutoLow:"ปรับคุณภาพต่ำอัตโนมัติ",qualityBest:"ดีที่สุด",qualityHigh:"สูง",qualityLow:"ต่ำ",qualityMedium:"ปานกลาง",scale:"อัตราส่วน Scale",scaleAll:"แสดงให้เห็นทั้งหมด Show all",scaleFit:"แสดงให้พอดีกับพื้นที่ Exact Fit",scaleNoBorder:"ไม่แสดงเส้นขอบ No Border",title:"คุณสมบัติของไฟล์ Flash",vSpace:"ระยะแนวตั้ง",validateHSpace:"HSpace ต้องเป็นจำนวนตัวเลข",validateSrc:"กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",validateVSpace:"VSpace ต้องเป็นจำนวนตัวเลข", +windowMode:"โหมดหน้าต่าง",windowModeOpaque:"ความทึบแสง",windowModeTransparent:"ความโปรงแสง",windowModeWindow:"หน้าต่าง"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/tr.js new file mode 100644 index 00000000..8d76aa2b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tr",{access:"Kod İzni",accessAlways:"Herzaman",accessNever:"Asla",accessSameDomain:"Aynı domain",alignAbsBottom:"Tam Altı",alignAbsMiddle:"Tam Ortası",alignBaseline:"Taban Çizgisi",alignTextTop:"Yazı Tepeye",bgcolor:"Arka Renk",chkFull:"Tam ekrana İzinver",chkLoop:"Döngü",chkMenu:"Flash Menüsünü Kullan",chkPlay:"Otomatik Oynat",flashvars:"Flash Değerleri",hSpace:"Yatay Boşluk",properties:"Flash Özellikleri",propertiesTab:"Özellikler",quality:"Kalite",qualityAutoHigh:"Otomatik Yükseklik", +qualityAutoLow:"Otomatik Düşüklük",qualityBest:"En iyi",qualityHigh:"Yüksek",qualityLow:"Düşük",qualityMedium:"Orta",scale:"Boyutlandır",scaleAll:"Hepsini Göster",scaleFit:"Tam Sığdır",scaleNoBorder:"Kenar Yok",title:"Flash Özellikleri",vSpace:"Dikey Boşluk",validateHSpace:"HSpace sayı olmalıdır.",validateSrc:"Lütfen köprü URL'sini yazın",validateVSpace:"VSpace sayı olmalıdır.",windowMode:"Pencere modu",windowModeOpaque:"Opak",windowModeTransparent:"Şeffaf",windowModeWindow:"Pencere"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/tt.js new file mode 100644 index 00000000..db937890 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tt",{access:"Script Access",accessAlways:"Һəрвакыт",accessNever:"Беркайчан да",accessSameDomain:"Same domain",alignAbsBottom:"Иң аска",alignAbsMiddle:"Төгәл уртада",alignBaseline:"Таяныч сызыгы",alignTextTop:"Text Top",bgcolor:"Фон төсе",chkFull:"Allow Fullscreen",chkLoop:"Әйләнеш",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Флеш үзлекләре",propertiesTab:"Үзлекләр",quality:"Сыйфат",qualityAutoHigh:"Авто югары сыйфат", +qualityAutoLow:"Авто түбән сыйфат",qualityBest:"Иң югары сыйфат",qualityHigh:"Югары",qualityLow:"Түбəн",qualityMedium:"Уртача",scale:"Scale",scaleAll:"Барысын күрсәтү",scaleFit:"Exact Fit",scaleNoBorder:"Чиксез",title:"Флеш үзлекләре",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Тəрəзə тәртибе",windowModeOpaque:"Үтә күренмәле",windowModeTransparent:"Үтə күренмəле",windowModeWindow:"Тəрəзə"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ug.js new file mode 100644 index 00000000..36bdb424 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ug",{access:"قوليازما زىيارەتكە يول قوي",accessAlways:"ھەمىشە",accessNever:"ھەرگىز",accessSameDomain:"ئوخشاش دائىرىدە",alignAbsBottom:"مۇتلەق ئاستى",alignAbsMiddle:"مۇتلەق ئوتتۇرا",alignBaseline:"ئاساسىي سىزىق",alignTextTop:"تېكىست ئۈستىدە",bgcolor:"تەگلىك رەڭگى",chkFull:"پۈتۈن ئېكراننى قوزغات",chkLoop:"دەۋرىي",chkMenu:"Flash تىزىملىكنى قوزغات",chkPlay:"ئۆزلۈكىدىن چال",flashvars:"Flash ئۆزگەرگۈچى",hSpace:"توغرىسىغا ئارىلىق",properties:"Flash خاسلىق",propertiesTab:"خاسلىق", +quality:"سۈپەت",qualityAutoHigh:"يۇقىرى (ئاپتوماتىك)",qualityAutoLow:"تۆۋەن (ئاپتوماتىك)",qualityBest:"ئەڭ ياخشى",qualityHigh:"يۇقىرى",qualityLow:"تۆۋەن",qualityMedium:"ئوتتۇرا (ئاپتوماتىك)",scale:"نىسبىتى",scaleAll:"ھەممىنى كۆرسەت",scaleFit:"قەتئىي ماسلىشىش",scaleNoBorder:"گىرۋەك يوق",title:"ماۋزۇ",vSpace:"بويىغا ئارىلىق",validateHSpace:"توغرىسىغا ئارىلىق چوقۇم سان بولىدۇ",validateSrc:"ئەسلى ھۆججەت ئادرېسىنى كىرگۈزۈڭ",validateVSpace:"بويىغا ئارىلىق چوقۇم سان بولىدۇ",windowMode:"كۆزنەك ھالىتى",windowModeOpaque:"خىرە", +windowModeTransparent:"سۈزۈك",windowModeWindow:"كۆزنەك گەۋدىسى"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/uk.js new file mode 100644 index 00000000..cc458daf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","uk",{access:"Доступ до скрипта",accessAlways:"Завжди",accessNever:"Ніколи",accessSameDomain:"З того ж домена",alignAbsBottom:"По нижньому краю (abs)",alignAbsMiddle:"По середині (abs)",alignBaseline:"По базовій лінії",alignTextTop:"Текст по верхньому краю",bgcolor:"Колір фону",chkFull:"Дозволити повноекранний перегляд",chkLoop:"Циклічно",chkMenu:"Дозволити меню Flash",chkPlay:"Автопрогравання",flashvars:"Змінні Flash",hSpace:"Гориз. відступ",properties:"Властивості Flash", +propertiesTab:"Властивості",quality:"Якість",qualityAutoHigh:"Автом. відмінна",qualityAutoLow:"Автом. низька",qualityBest:"Відмінна",qualityHigh:"Висока",qualityLow:"Низька",qualityMedium:"Середня",scale:"Масштаб",scaleAll:"Показати все",scaleFit:"Поч. розмір",scaleNoBorder:"Без рамки",title:"Властивості Flash",vSpace:"Верт. відступ",validateHSpace:"Гориз. відступ повинен бути цілим числом.",validateSrc:"Будь ласка, вкажіть URL посилання",validateVSpace:"Верт. відступ повинен бути цілим числом.", +windowMode:"Віконний режим",windowModeOpaque:"Непрозорість",windowModeTransparent:"Прозорість",windowModeWindow:"Вікно"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/vi.js new file mode 100644 index 00000000..17a0c1b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","vi",{access:"Truy cập mã",accessAlways:"Luôn luôn",accessNever:"Không bao giờ",accessSameDomain:"Cùng tên miền",alignAbsBottom:"Dưới tuyệt đối",alignAbsMiddle:"Giữa tuyệt đối",alignBaseline:"Đường cơ sở",alignTextTop:"Phía trên chữ",bgcolor:"Màu nền",chkFull:"Cho phép toàn màn hình",chkLoop:"Lặp",chkMenu:"Cho phép bật menu của Flash",chkPlay:"Tự động chạy",flashvars:"Các biến số dành cho Flash",hSpace:"Khoảng đệm ngang",properties:"Thuộc tính Flash",propertiesTab:"Thuộc tính", +quality:"Chất lượng",qualityAutoHigh:"Cao tự động",qualityAutoLow:"Thấp tự động",qualityBest:"Tốt nhất",qualityHigh:"Cao",qualityLow:"Thấp",qualityMedium:"Trung bình",scale:"Tỷ lệ",scaleAll:"Hiển thị tất cả",scaleFit:"Vừa vặn",scaleNoBorder:"Không đường viền",title:"Thuộc tính Flash",vSpace:"Khoảng đệm dọc",validateHSpace:"Khoảng đệm ngang phải là số nguyên.",validateSrc:"Hãy đưa vào đường dẫn liên kết",validateVSpace:"Khoảng đệm dọc phải là số nguyên.",windowMode:"Chế độ cửa sổ",windowModeOpaque:"Mờ đục", +windowModeTransparent:"Trong suốt",windowModeWindow:"Cửa sổ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/zh-cn.js new file mode 100644 index 00000000..d7be33ba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh-cn",{access:"允许脚本访问",accessAlways:"总是",accessNever:"从不",accessSameDomain:"同域",alignAbsBottom:"绝对底部",alignAbsMiddle:"绝对居中",alignBaseline:"基线",alignTextTop:"文本上方",bgcolor:"背景颜色",chkFull:"启用全屏",chkLoop:"循环",chkMenu:"启用 Flash 菜单",chkPlay:"自动播放",flashvars:"Flash 变量",hSpace:"水平间距",properties:"Flash 属性",propertiesTab:"属性",quality:"质量",qualityAutoHigh:"高(自动)",qualityAutoLow:"低(自动)",qualityBest:"最好",qualityHigh:"高",qualityLow:"低",qualityMedium:"中(自动)",scale:"缩放",scaleAll:"全部显示", +scaleFit:"严格匹配",scaleNoBorder:"无边框",title:"标题",vSpace:"垂直间距",validateHSpace:"水平间距必须为数字格式",validateSrc:"请输入源文件地址",validateVSpace:"垂直间距必须为数字格式",windowMode:"窗体模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"窗体"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/zh.js new file mode 100644 index 00000000..83af6820 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh",{access:"腳本存取",accessAlways:"永遠",accessNever:"從不",accessSameDomain:"相同網域",alignAbsBottom:"絕對下方",alignAbsMiddle:"絕對置中",alignBaseline:"基準線",alignTextTop:"上層文字",bgcolor:"背景顏色",chkFull:"允許全螢幕",chkLoop:"重複播放",chkMenu:"啟用 Flash 選單",chkPlay:"自動播放",flashvars:"Flash 變數",hSpace:"HSpace",properties:"Flash 屬性​​",propertiesTab:"屬性",quality:"品質",qualityAutoHigh:"自動高",qualityAutoLow:"自動低",qualityBest:"最佳",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"縮放比例",scaleAll:"全部顯示", +scaleFit:"最適化",scaleNoBorder:"無框線",title:"Flash 屬性​​",vSpace:"VSpace",validateHSpace:"HSpace 必須為數字。",validateSrc:"URL 不可為空白。",validateVSpace:"VSpace 必須為數字。",windowMode:"視窗模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"視窗"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/flash/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/flash/plugin.js new file mode 100644 index 00000000..a2a786ac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/flash/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||f.test(a.src||"")}function e(a,b){return a.createFakeParserElement(b,"cke_flash","flash",!0)}var f=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"flash", +hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b="object[classid,codebase,height,hspace,vspace,width];param[name,value];embed[height,hspace,pluginspage,src,type,vspace,width]";CKEDITOR.dialog.isTabEnabled(a,"flash","properties")&&(b+=";object[align]; embed[allowscriptaccess,quality,scale,wmode]"); +CKEDITOR.dialog.isTabEnabled(a,"flash","advanced")&&(b+=";object[id]{*}; embed[bgcolor]{*}(*)");a.addCommand("flash",new CKEDITOR.dialogCommand("flash",{allowedContent:b,requiredContent:"embed"}));a.ui.addButton&&a.ui.addButton("Flash",{label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element; +b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!d(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!d(b.children[c]))break; +return e(a,b)}return null}return e(a,b)},"cke:embed":function(b){return!d(b)?null:e(a,b)}}},5)}})})();CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/af.js new file mode 100644 index 00000000..0473fe90 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","af",{fontSize:{label:"Grootte",voiceLabel:"Fontgrootte",panelTitle:"Fontgrootte"},label:"Font",panelTitle:"Fontnaam",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ar.js new file mode 100644 index 00000000..cf81e27a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ar",{fontSize:{label:"حجم الخط",voiceLabel:"حجم الخط",panelTitle:"حجم الخط"},label:"خط",panelTitle:"حجم الخط",voiceLabel:"حجم الخط"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/bg.js new file mode 100644 index 00000000..62e05fe6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bg",{fontSize:{label:"Размер",voiceLabel:"Размер на шрифт",panelTitle:"Размер на шрифт"},label:"Шрифт",panelTitle:"Име на шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/bn.js new file mode 100644 index 00000000..98cd2702 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bn",{fontSize:{label:"সাইজ",voiceLabel:"Font Size",panelTitle:"সাইজ"},label:"ফন্ট",panelTitle:"ফন্ট",voiceLabel:"ফন্ট"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/bs.js new file mode 100644 index 00000000..171cdc18 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bs",{fontSize:{label:"Velièina",voiceLabel:"Font Size",panelTitle:"Velièina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ca.js new file mode 100644 index 00000000..b710fa74 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ca",{fontSize:{label:"Mida",voiceLabel:"Mida de la lletra",panelTitle:"Mida de la lletra"},label:"Tipus de lletra",panelTitle:"Tipus de lletra",voiceLabel:"Tipus de lletra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/cs.js new file mode 100644 index 00000000..31c3d385 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cs",{fontSize:{label:"Velikost",voiceLabel:"Velikost písma",panelTitle:"Velikost"},label:"Písmo",panelTitle:"Písmo",voiceLabel:"Písmo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/cy.js new file mode 100644 index 00000000..d85cdff4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cy",{fontSize:{label:"Maint",voiceLabel:"Maint y Ffont",panelTitle:"Maint y Ffont"},label:"Ffont",panelTitle:"Enw'r Ffont",voiceLabel:"Ffont"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/da.js new file mode 100644 index 00000000..24b02926 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","da",{fontSize:{label:"Skriftstørrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrifttype",panelTitle:"Skrifttype",voiceLabel:"Skrifttype"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/de.js new file mode 100644 index 00000000..71bd88de --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","de",{fontSize:{label:"Größe",voiceLabel:"Schrifgröße",panelTitle:"Größe"},label:"Schriftart",panelTitle:"Schriftart",voiceLabel:"Schriftart"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/el.js new file mode 100644 index 00000000..ecb9a8b2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","el",{fontSize:{label:"Μέγεθος",voiceLabel:"Μέγεθος Γραμματοσειράς",panelTitle:"Μέγεθος Γραμματοσειράς"},label:"Γραμματοσειρά",panelTitle:"Όνομα Γραμματοσειράς",voiceLabel:"Γραμματοσειρά"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-au.js new file mode 100644 index 00000000..8b19ae02 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-au",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-ca.js new file mode 100644 index 00000000..a41715d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-ca",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-gb.js new file mode 100644 index 00000000..aa7fd0d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-gb",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en.js new file mode 100644 index 00000000..c332c074 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/eo.js new file mode 100644 index 00000000..bf6f5123 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eo",{fontSize:{label:"Grado",voiceLabel:"Tipara grado",panelTitle:"Tipara grado"},label:"Tiparo",panelTitle:"Tipara nomo",voiceLabel:"Tiparo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/es.js new file mode 100644 index 00000000..c452c865 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","es",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño de fuente",panelTitle:"Tamaño"},label:"Fuente",panelTitle:"Fuente",voiceLabel:"Fuente"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/et.js new file mode 100644 index 00000000..76f2b072 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","et",{fontSize:{label:"Suurus",voiceLabel:"Kirja suurus",panelTitle:"Suurus"},label:"Kiri",panelTitle:"Kiri",voiceLabel:"Kiri"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/eu.js new file mode 100644 index 00000000..941c541f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eu",{fontSize:{label:"Tamaina",voiceLabel:"Tamaina",panelTitle:"Tamaina"},label:"Letra-tipoa",panelTitle:"Letra-tipoa",voiceLabel:"Letra-tipoa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fa.js new file mode 100644 index 00000000..b4b4cfca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fa",{fontSize:{label:"اندازه",voiceLabel:"اندازه قلم",panelTitle:"اندازه قلم"},label:"قلم",panelTitle:"نام قلم",voiceLabel:"قلم"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fi.js new file mode 100644 index 00000000..59de601f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fi",{fontSize:{label:"Koko",voiceLabel:"Kirjaisimen koko",panelTitle:"Koko"},label:"Kirjaisinlaji",panelTitle:"Kirjaisinlaji",voiceLabel:"Kirjaisinlaji"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fo.js new file mode 100644 index 00000000..2080e025 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fo",{fontSize:{label:"Skriftstødd",voiceLabel:"Skriftstødd",panelTitle:"Skriftstødd"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Skrift"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fr-ca.js new file mode 100644 index 00000000..bcf3fc12 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr-ca",{fontSize:{label:"Taille",voiceLabel:"Taille",panelTitle:"Taille"},label:"Police",panelTitle:"Police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fr.js new file mode 100644 index 00000000..32486dc7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr",{fontSize:{label:"Taille",voiceLabel:"Taille de police",panelTitle:"Taille de police"},label:"Police",panelTitle:"Style de police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/gl.js new file mode 100644 index 00000000..74fdf0d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gl",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño da letra",panelTitle:"Tamaño da letra"},label:"Tipo de letra",panelTitle:"Nome do tipo de letra",voiceLabel:"Tipo de letra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/gu.js new file mode 100644 index 00000000..7c1a2670 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gu",{fontSize:{label:"ફૉન્ટ સાઇઝ/કદ",voiceLabel:"ફોન્ટ સાઈઝ",panelTitle:"ફૉન્ટ સાઇઝ/કદ"},label:"ફૉન્ટ",panelTitle:"ફૉન્ટ",voiceLabel:"ફોન્ટ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/he.js new file mode 100644 index 00000000..a712a5a3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","he",{fontSize:{label:"גודל",voiceLabel:"גודל",panelTitle:"גודל"},label:"גופן",panelTitle:"גופן",voiceLabel:"גופן"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/hi.js new file mode 100644 index 00000000..2c66d5f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hi",{fontSize:{label:"साइज़",voiceLabel:"Font Size",panelTitle:"साइज़"},label:"फ़ॉन्ट",panelTitle:"फ़ॉन्ट",voiceLabel:"फ़ॉन्ट"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/hr.js new file mode 100644 index 00000000..4cb480d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hr",{fontSize:{label:"Veličina",voiceLabel:"Veličina slova",panelTitle:"Veličina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/hu.js new file mode 100644 index 00000000..e9edbdb1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hu",{fontSize:{label:"Méret",voiceLabel:"Betűméret",panelTitle:"Méret"},label:"Betűtípus",panelTitle:"Betűtípus",voiceLabel:"Betűtípus"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/id.js new file mode 100644 index 00000000..22b03078 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","id",{fontSize:{label:"Ukuran",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/is.js new file mode 100644 index 00000000..9fbd17d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","is",{fontSize:{label:"Leturstærð ",voiceLabel:"Font Size",panelTitle:"Leturstærð "},label:"Leturgerð ",panelTitle:"Leturgerð ",voiceLabel:"Leturgerð "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/it.js new file mode 100644 index 00000000..146a8fb5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","it",{fontSize:{label:"Dimensione",voiceLabel:"Dimensione Carattere",panelTitle:"Dimensione"},label:"Carattere",panelTitle:"Carattere",voiceLabel:"Carattere"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ja.js new file mode 100644 index 00000000..c7e579ed --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ja",{fontSize:{label:"サイズ",voiceLabel:"フォントサイズ",panelTitle:"フォントサイズ"},label:"フォント",panelTitle:"フォント",voiceLabel:"フォント"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ka.js new file mode 100644 index 00000000..a45a4b5c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ka",{fontSize:{label:"ზომა",voiceLabel:"ტექსტის ზომა",panelTitle:"ტექსტის ზომა"},label:"ფონტი",panelTitle:"ფონტის სახელი",voiceLabel:"ფონტი"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/km.js new file mode 100644 index 00000000..b817819b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","km",{fontSize:{label:"ទំហំ",voiceLabel:"ទំហំ​អក្សរ",panelTitle:"ទំហំ​អក្សរ"},label:"ពុម្ព​អក្សរ",panelTitle:"ឈ្មោះ​ពុម្ព​អក្សរ",voiceLabel:"ពុម្ព​អក្សរ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ko.js new file mode 100644 index 00000000..b6b66210 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ko",{fontSize:{label:"글자 크기",voiceLabel:"Font Size",panelTitle:"글자 크기"},label:"폰트",panelTitle:"폰트",voiceLabel:"폰트"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ku.js new file mode 100644 index 00000000..9e2d5582 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ku",{fontSize:{label:"گەورەیی",voiceLabel:"گەورەیی فۆنت",panelTitle:"گەورەیی فۆنت"},label:"فۆنت",panelTitle:"ناوی فۆنت",voiceLabel:"فۆنت"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/lt.js new file mode 100644 index 00000000..c613a9d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lt",{fontSize:{label:"Šrifto dydis",voiceLabel:"Šrifto dydis",panelTitle:"Šrifto dydis"},label:"Šriftas",panelTitle:"Šriftas",voiceLabel:"Šriftas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/lv.js new file mode 100644 index 00000000..023b054f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lv",{fontSize:{label:"Izmērs",voiceLabel:"Fonta izmeŗs",panelTitle:"Izmērs"},label:"Šrifts",panelTitle:"Šrifts",voiceLabel:"Fonts"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/mk.js new file mode 100644 index 00000000..c47889e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mk",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/mn.js new file mode 100644 index 00000000..855b36e8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mn",{fontSize:{label:"Хэмжээ",voiceLabel:"Үсгийн хэмжээ",panelTitle:"Үсгийн хэмжээ"},label:"Үсгийн хэлбэр",panelTitle:"Үгсийн хэлбэрийн нэр",voiceLabel:"Үгсийн хэлбэр"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ms.js new file mode 100644 index 00000000..bf2cac96 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ms",{fontSize:{label:"Saiz",voiceLabel:"Font Size",panelTitle:"Saiz"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/nb.js new file mode 100644 index 00000000..3e85a266 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nb",{fontSize:{label:"Størrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/nl.js new file mode 100644 index 00000000..301a9424 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nl",{fontSize:{label:"Lettergrootte",voiceLabel:"Lettergrootte",panelTitle:"Lettergrootte"},label:"Lettertype",panelTitle:"Lettertype",voiceLabel:"Lettertype"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/no.js new file mode 100644 index 00000000..2e45e27c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","no",{fontSize:{label:"Størrelse",voiceLabel:"Font Størrelse",panelTitle:"Størrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/pl.js new file mode 100644 index 00000000..f15dd769 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pl",{fontSize:{label:"Rozmiar",voiceLabel:"Rozmiar czcionki",panelTitle:"Rozmiar"},label:"Czcionka",panelTitle:"Czcionka",voiceLabel:"Czcionka"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/pt-br.js new file mode 100644 index 00000000..bfe0147b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt-br",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da fonte",panelTitle:"Tamanho"},label:"Fonte",panelTitle:"Fonte",voiceLabel:"Fonte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/pt.js new file mode 100644 index 00000000..06de8cd0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da Letra",panelTitle:"Tamanho da Letra"},label:"Tipo de Letra",panelTitle:"Nome do Tipo de Letra",voiceLabel:"Tipo de Letra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ro.js new file mode 100644 index 00000000..2b101811 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ro",{fontSize:{label:"Mărime",voiceLabel:"Font Size",panelTitle:"Mărime"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ru.js new file mode 100644 index 00000000..c5407217 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ru",{fontSize:{label:"Размер",voiceLabel:"Размер шрифта",panelTitle:"Размер шрифта"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/si.js new file mode 100644 index 00000000..c6246daf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","si",{fontSize:{label:"විශාලත්වය",voiceLabel:"අක්ෂර විශාලත්වය",panelTitle:"අක්ෂර විශාලත්වය"},label:"අක්ෂරය",panelTitle:"අක්ෂර නාමය",voiceLabel:"අක්ෂර"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sk.js new file mode 100644 index 00000000..e09e8d4c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sk",{fontSize:{label:"Veľkosť",voiceLabel:"Veľkosť písma",panelTitle:"Veľkosť písma"},label:"Font",panelTitle:"Názov fontu",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sl.js new file mode 100644 index 00000000..061fea48 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sl",{fontSize:{label:"Velikost",voiceLabel:"Velikost",panelTitle:"Velikost"},label:"Pisava",panelTitle:"Pisava",voiceLabel:"Pisava"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sq.js new file mode 100644 index 00000000..c7c95938 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sq",{fontSize:{label:"Madhësia",voiceLabel:"Madhësia e Shkronjës",panelTitle:"Madhësia e Shkronjës"},label:"Shkronja",panelTitle:"Emri i Shkronjës",voiceLabel:"Shkronja"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sr-latn.js new file mode 100644 index 00000000..87604c2f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr-latn",{fontSize:{label:"Veličina fonta",voiceLabel:"Font Size",panelTitle:"Veličina fonta"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sr.js new file mode 100644 index 00000000..5e2276d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr",{fontSize:{label:"Величина фонта",voiceLabel:"Font Size",panelTitle:"Величина фонта"},label:"Фонт",panelTitle:"Фонт",voiceLabel:"Фонт"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sv.js new file mode 100644 index 00000000..6eb9e8e0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sv",{fontSize:{label:"Storlek",voiceLabel:"Teckenstorlek",panelTitle:"Teckenstorlek"},label:"Typsnitt",panelTitle:"Typsnitt",voiceLabel:"Typsnitt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/th.js new file mode 100644 index 00000000..464cab1f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","th",{fontSize:{label:"ขนาด",voiceLabel:"Font Size",panelTitle:"ขนาด"},label:"แบบอักษร",panelTitle:"แบบอักษร",voiceLabel:"แบบอักษร"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/tr.js new file mode 100644 index 00000000..424f6652 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tr",{fontSize:{label:"Boyut",voiceLabel:"Font Size",panelTitle:"Boyut"},label:"Yazı Türü",panelTitle:"Yazı Türü",voiceLabel:"Font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/tt.js new file mode 100644 index 00000000..623cbcb4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tt",{fontSize:{label:"Зурлык",voiceLabel:"Шрифт зурлыклары",panelTitle:"Шрифт зурлыклары"},label:"Шрифт",panelTitle:"Шрифт исеме",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ug.js new file mode 100644 index 00000000..235c677f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ug",{fontSize:{label:"چوڭلۇقى",voiceLabel:"خەت چوڭلۇقى",panelTitle:"چوڭلۇقى"},label:"خەت نۇسخا",panelTitle:"خەت نۇسخا",voiceLabel:"خەت نۇسخا"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/uk.js new file mode 100644 index 00000000..8a2387fe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","uk",{fontSize:{label:"Розмір",voiceLabel:"Розмір шрифту",panelTitle:"Розмір"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/vi.js new file mode 100644 index 00000000..e082b7b6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","vi",{fontSize:{label:"Cỡ chữ",voiceLabel:"Kích cỡ phông",panelTitle:"Cỡ chữ"},label:"Phông",panelTitle:"Phông",voiceLabel:"Phông"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/zh-cn.js new file mode 100644 index 00000000..370710a5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh-cn",{fontSize:{label:"大小",voiceLabel:"文字大小",panelTitle:"大小"},label:"字体",panelTitle:"字体",voiceLabel:"字体"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/font/lang/zh.js new file mode 100644 index 00000000..a2716813 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh",{fontSize:{label:"大小",voiceLabel:"字型大小",panelTitle:"字型大小"},label:"字型",panelTitle:"字型名稱",voiceLabel:"字型"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/font/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/font/plugin.js new file mode 100644 index 00000000..dba4cae1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/font/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(b,a,e,h,j,n,l,o){for(var p=b.config,k=new CKEDITOR.style(l),c=j.split(";"),j=[],g={},d=0;d<c.length;d++){var f=c[d];if(f){var f=f.split("/"),m={},i=c[d]=f[0];m[e]=j[d]=f[1]||i;g[i]=new CKEDITOR.style(l,m);g[i]._.definition.name=i}else c.splice(d--,1)}b.ui.addRichCombo(a,{label:h.label,title:h.panelTitle,toolbar:"styles,"+o,allowedContent:k,requiredContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(p.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}}, +init:function(){this.startGroup(h.panelTitle);for(var b=0;b<c.length;b++){var a=c[b];this.add(a,g[a].buildPreview(),a)}},onClick:function(a){b.focus();b.fire("saveSnapshot");var c=g[a];b[this.getValue()==a?"removeStyle":"applyStyle"](c);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){for(var c=this.getValue(),a=a.data.path.elements,d=0,f;d<a.length;d++){f=a[d];for(var e in g)if(g[e].checkElementMatch(f,!0,b)){e!=c&&this.setValue(e);return}}this.setValue("",n)},this)}, +refresh:function(){b.activeFilter.check(k)||this.setState(CKEDITOR.TRISTATE_DISABLED)}})}CKEDITOR.plugins.add("font",{requires:"richcombo",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var a=b.config;e(b,"Font","family",b.lang.font,a.font_names,a.font_defaultLabel,a.font_style,30);e(b,"FontSize","size", +b.lang.font.fontSize,a.fontSize_sizes,a.fontSize_defaultLabel,a.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif"; +CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]}; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/button.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/button.js new file mode 100644 index 00000000..56a4efdd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/button.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("button",function(b){function d(a){var b=this.getValue();b?(a.attributes[this.id]=b,"name"==this.id&&(a.attributes["data-cke-saved-name"]=b)):(delete a.attributes[this.id],"name"==this.id&&delete a.attributes["data-cke-saved-name"])}return{title:b.lang.forms.button.title,minWidth:350,minHeight:150,onShow:function(){delete this.button;var a=this.getParentEditor().getSelection().getSelectedElement();a&&a.is("input")&&a.getAttribute("type")in{button:1,reset:1,submit:1}&&(this.button= +a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.button,d=!b,c=b?CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]:new CKEDITOR.htmlParser.element("input");this.commitContent(c);var e=new CKEDITOR.htmlParser.basicWriter;c.writeHtml(e);c=CKEDITOR.dom.element.createFromHtml(e.getHtml(),a.document);d?a.insertElement(c):(c.replace(b),a.getSelection().selectElement(c))},contents:[{id:"info",label:b.lang.forms.button.title,title:b.lang.forms.button.title,elements:[{id:"name", +type:"text",label:b.lang.common.name,"default":"",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:d},{id:"value",type:"text",label:b.lang.forms.button.text,accessKey:"V","default":"",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:d},{id:"type",type:"select",label:b.lang.forms.button.type,"default":"button",accessKey:"T",items:[[b.lang.forms.button.typeBtn,"button"],[b.lang.forms.button.typeSbm,"submit"],[b.lang.forms.button.typeRst, +"reset"]],setup:function(a){this.setValue(a.getAttribute("type")||"")},commit:d}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js new file mode 100644 index 00000000..65f1be60 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkbox",function(d){return{title:d.lang.forms.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){delete this.checkbox;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"checkbox"==a.getAttribute("type")&&(this.checkbox=a,this.setupContent(a))},onOk:function(){var a,b=this.checkbox;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","checkbox"),a.insertElement(b));this.commitContent({element:b})},contents:[{id:"info", +label:d.lang.forms.checkboxAndRadio.checkboxTitle,title:d.lang.forms.checkboxAndRadio.checkboxTitle,startupFocus:"txtName",elements:[{id:"txtName",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",label:d.lang.forms.checkboxAndRadio.value, +"default":"",accessKey:"V",setup:function(a){a=a.getAttribute("value");this.setValue(CKEDITOR.env.ie&&"on"==a?"":a)},commit:function(a){var b=a.element,c=this.getValue();c&&!(CKEDITOR.env.ie&&"on"==c)?b.setAttribute("value",c):CKEDITOR.env.ie?(c=new CKEDITOR.dom.element("input",b.getDocument()),b.copyAttributes(c,{value:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c):b.removeAttribute("value")}},{id:"cmbSelected",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"", +accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=!!b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="checkbox"'+(e?' checked="checked"':"")+"/>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/form.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/form.js new file mode 100644 index 00000000..86267185 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/form.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("form",function(a){var d={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.forms.form.title,minWidth:350,minHeight:200,onShow:function(){delete this.form;var b=this.getParentEditor().elementPath().contains("form",1);b&&(this.form=b,this.setupContent(b))},onOk:function(){var b,a=this.form,c=!a;c&&(b=this.getParentEditor(),a=b.document.createElement("form"),a.appendBogus());c&&b.insertElement(a);this.commitContent(a)},onLoad:function(){function a(b){this.setValue(b.getAttribute(this.id)|| +"")}function e(a){this.getValue()?a.setAttribute(this.id,this.getValue()):a.removeAttribute(this.id)}this.foreach(function(c){d[c.id]&&(c.setup=a,c.commit=e)})},contents:[{id:"info",label:a.lang.forms.form.title,title:a.lang.forms.form.title,elements:[{id:"txtName",type:"text",label:a.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name", +!1),a.removeAttribute("name"))}},{id:"action",type:"text",label:a.lang.forms.form.action,"default":"",accessKey:"T"},{type:"hbox",widths:["45%","55%"],children:[{id:"id",type:"text",label:a.lang.common.id,"default":"",accessKey:"I"},{id:"enctype",type:"select",label:a.lang.forms.form.encoding,style:"width:100%",accessKey:"E","default":"",items:[[""],["text/plain"],["multipart/form-data"],["application/x-www-form-urlencoded"]]}]},{type:"hbox",widths:["45%","55%"],children:[{id:"target",type:"select", +label:a.lang.common.target,style:"width:100%",accessKey:"M","default":"",items:[[a.lang.common.notSet,""],[a.lang.common.targetNew,"_blank"],[a.lang.common.targetTop,"_top"],[a.lang.common.targetSelf,"_self"],[a.lang.common.targetParent,"_parent"]]},{id:"method",type:"select",label:a.lang.forms.form.method,accessKey:"M","default":"GET",items:[["GET","get"],["POST","post"]]}]}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js new file mode 100644 index 00000000..f4699b7d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("hiddenfield",function(d){return{title:d.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){delete this.hiddenField;var a=this.getParentEditor(),b=a.getSelection(),c=b.getSelectedElement();c&&(c.data("cke-real-element-type")&&"hiddenfield"==c.data("cke-real-element-type"))&&(this.hiddenField=c,c=a.restoreRealElement(this.hiddenField),this.setupContent(c),b.selectElement(this.hiddenField))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name"); +this.getValueOf("info","value");var b=this.getParentEditor(),a=CKEDITOR.env.ie&&!(8<=CKEDITOR.document.$.documentMode)?b.document.createElement('<input name="'+CKEDITOR.tools.htmlEncode(a)+'">'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title, +elements:[{id:"_cke_saved_name",type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()): +a.removeAttribute("value")}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/radio.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/radio.js new file mode 100644 index 00000000..1af693e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/radio.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("radio",function(d){return{title:d.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&("input"==a.getName()&&"radio"==a.getAttribute("type"))&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"));c&&a.insertElement(b);this.commitContent({element:b})}, +contents:[{id:"info",label:d.lang.forms.checkboxAndRadio.radioTitle,title:d.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:d.lang.forms.checkboxAndRadio.value,"default":"", +accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="radio"'+ +(e?' checked="checked"':"")+"></input>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/select.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/select.js new file mode 100644 index 00000000..a6c50e20 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/select.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("select",function(c){function h(a,b,e,d,c){a=f(a);d=d?d.createElement("OPTION"):document.createElement("OPTION");if(a&&d&&"option"==d.getName())CKEDITOR.env.ie?(isNaN(parseInt(c,10))?a.$.options.add(d.$):a.$.options.add(d.$,c),d.$.innerHTML=0<b.length?b:"",d.$.value=e):(null!==c&&c<a.getChildCount()?a.getChild(0>c?0:c).insertBeforeMe(d):a.append(d),d.setText(0<b.length?b:""),d.setValue(e));else return!1;return d}function m(a){for(var a=f(a),b=g(a),e=a.getChildren().count()-1;0<= +e;e--)a.getChild(e).$.selected&&a.getChild(e).remove();i(a,b)}function n(a,b,e,d){a=f(a);if(0>b)return!1;a=a.getChild(b);a.setText(e);a.setValue(d);return a}function k(a){for(a=f(a);a.getChild(0)&&a.getChild(0).remove(););}function j(a,b,e){var a=f(a),d=g(a);if(0>d)return!1;b=d+b;b=0>b?0:b;b=b>=a.getChildCount()?a.getChildCount()-1:b;if(d==b)return!1;var d=a.getChild(d),c=d.getText(),o=d.getValue();d.remove();d=h(a,c,o,!e?null:e,b);i(a,b);return d}function g(a){return(a=f(a))?a.$.selectedIndex:-1} +function i(a,b){a=f(a);if(0>b)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function l(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){delete this.selectBox;this.setupContent("clear");var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"select"==a.getName()){this.selectBox= +a;this.setupContent(a.getName(),a);for(var a=l(a),b=0;b<a.count();b++)this.setupContent("option",a.getItem(b))}},onOk:function(){var a=this.getParentEditor(),b=this.selectBox,e=!b;e&&(b=a.document.createElement("select"));this.commitContent(b);if(e&&(a.insertElement(b),CKEDITOR.env.ie)){var d=a.getSelection(),c=d.createBookmarks();setTimeout(function(){d.selectBookmarks(c)},0)}},contents:[{id:"info",label:c.lang.forms.select.selectInfo,title:c.lang.forms.select.selectInfo,accessKey:"",elements:[{id:"txtName", +type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.common.name,"default":"",accessKey:"N",style:"width:350px",setup:function(a,b){"clear"==a?this.setValue(this["default"]||""):"select"==a&&this.setValue(b.data("cke-saved-name")||b.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.forms.select.value, +style:"width:350px","default":"",className:"cke_disabled",onLoad:function(){this.getInputElement().setAttribute("readOnly",!0)},setup:function(a,b){"clear"==a?this.setValue(""):"option"==a&&b.getAttribute("selected")&&this.setValue(b.$.value)}},{type:"hbox",widths:["175px","170px"],children:[{id:"txtSize",type:"text",labelLayout:"horizontal",label:c.lang.forms.select.size,"default":"",accessKey:"S",style:"width:175px",validate:function(){var a=CKEDITOR.dialog.validate.integer(c.lang.common.validateNumberFailed); +return""===this.getValue()||a.apply(this)},setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("size")||"");CKEDITOR.env.webkit&&this.getInputElement().setStyle("width","86px")},commit:function(a){this.getValue()?a.setAttribute("size",this.getValue()):a.removeAttribute("size")}},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.lines)+"</span>"}]},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.opAvail)+"</span>"},{type:"hbox",widths:["115px", +"115px","100px"],children:[{type:"vbox",children:[{id:"txtOptName",type:"text",label:c.lang.forms.select.opText,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbName",label:"",title:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(this.getValue());a.setValue(b.getValue())}, +setup:function(a,b){"clear"==a?k(this):"option"==a&&h(this,b.getText(),b.getText(),this.getDialog().getParentEditor().document)},commit:function(a){var b=this.getDialog(),e=l(this),d=l(b.getContentElement("info","cmbValue")),c=b.getContentElement("info","txtValue").getValue();k(a);for(var f=0;f<e.count();f++){var g=h(a,e.getItem(f).getValue(),d.getItem(f).getValue(),b.getParentEditor().document);d.getItem(f).getValue()==c&&(g.setAttribute("selected","selected"),g.selected=!0)}}}]},{type:"vbox",children:[{id:"txtOptValue", +type:"text",label:c.lang.forms.select.opValue,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbValue",label:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(b.getValue());a.setValue(this.getValue())},setup:function(a,b){if("clear"==a)k(this);else if("option"== +a){var e=b.getValue();h(this,e,e,this.getDialog().getParentEditor().document);"selected"==b.getAttribute("selected")&&this.getDialog().getContentElement("info","txtValue").setValue(e)}}}]},{type:"vbox",padding:5,children:[{type:"button",id:"btnAdd",style:"",label:c.lang.forms.select.btnAdd,title:c.lang.forms.select.btnAdd,style:"width:100%;",onClick:function(){var a=this.getDialog();a.getParentEditor();var b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info", +"cmbName"),c=a.getContentElement("info","cmbValue");h(d,b.getValue(),b.getValue(),a.getParentEditor().document);h(c,e.getValue(),e.getValue(),a.getParentEditor().document);b.setValue("");e.setValue("")}},{type:"button",id:"btnModify",label:c.lang.forms.select.btnModify,title:c.lang.forms.select.btnModify,style:"width:100%;",onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info","cmbName"),a=a.getContentElement("info", +"cmbValue"),c=g(d);0<=c&&(n(d,c,b.getValue(),b.getValue()),n(a,c,e.getValue(),e.getValue()))}},{type:"button",id:"btnUp",style:"width:100%;",label:c.lang.forms.select.btnUp,title:c.lang.forms.select.btnUp,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,-1,a.getParentEditor().document);j(c,-1,a.getParentEditor().document)}},{type:"button",id:"btnDown",style:"width:100%;",label:c.lang.forms.select.btnDown,title:c.lang.forms.select.btnDown, +onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,1,a.getParentEditor().document);j(c,1,a.getParentEditor().document)}}]}]},{type:"hbox",widths:["40%","20%","40%"],children:[{type:"button",id:"btnSetValue",label:c.lang.forms.select.btnSetValue,title:c.lang.forms.select.btnSetValue,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue");a.getContentElement("info","txtValue").setValue(b.getValue())}}, +{type:"button",id:"btnDelete",label:c.lang.forms.select.btnDelete,title:c.lang.forms.select.btnDelete,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue"),d=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue");m(b);m(c);d.setValue("");a.setValue("")}},{id:"chkMulti",type:"checkbox",label:c.lang.forms.select.chkMulti,"default":"",accessKey:"M",value:"checked",setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("multiple")); +CKEDITOR.env.webkit&&this.getElement().getParent().setStyle("vertical-align","middle")},commit:function(a){this.getValue()?a.setAttribute("multiple",this.getValue()):a.removeAttribute("multiple")}}]}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/textarea.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/textarea.js new file mode 100644 index 00000000..de8b3187 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/textarea.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title, +elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed), +setup:function(a){this.setValue(a.hasAttribute("cols")&&a.getAttribute("cols")||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){this.setValue(a.hasAttribute("rows")&&a.getAttribute("rows")||"")},commit:function(a){this.getValue()?a.setAttribute("rows", +this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/textfield.js b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/textfield.js new file mode 100644 index 00000000..46b006e2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/dialogs/textfield.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textfield",function(b){function e(a){var a=a.element,c=this.getValue();c?a.setAttribute(this.id,c):a.removeAttribute(this.id)}function f(a){this.setValue(a.hasAttribute(this.id)&&a.getAttribute(this.id)||"")}var g={email:1,password:1,search:1,tel:1,text:1,url:1};return{title:b.lang.forms.textfield.title,minWidth:350,minHeight:150,onShow:function(){delete this.textField;var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"input"==a.getName()&&(g[a.getAttribute("type")]|| +!a.getAttribute("type")))this.textField=a,this.setupContent(a)},onOk:function(){var a=this.getParentEditor(),c=this.textField,b=!c;b&&(c=a.document.createElement("input"),c.setAttribute("type","text"));c={element:c};b&&a.insertElement(c.element);this.commitContent(c);b||a.getSelection().selectElement(c.element)},onLoad:function(){this.foreach(function(a){if(a.getValue&&(a.setup||(a.setup=f),!a.commit))a.commit=e})},contents:[{id:"info",label:b.lang.forms.textfield.title,title:b.lang.forms.textfield.title, +elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"_cke_saved_name",type:"text",label:b.lang.forms.textfield.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.textfield.value,"default":"",accessKey:"V",commit:function(a){if(CKEDITOR.env.ie&& +!this.getValue()){var c=a.element,d=new CKEDITOR.dom.element("input",b.document);c.copyAttributes(d,{value:1});d.replace(c);a.element=d}else e.call(this,a)}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"size",type:"text",label:b.lang.forms.textfield.charWidth,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)},{id:"maxLength",type:"text",label:b.lang.forms.textfield.maxChars,"default":"",accessKey:"M",style:"width:50px", +validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}],onLoad:function(){CKEDITOR.env.ie7Compat&&this.getElement().setStyle("zoom","100%")}},{id:"type",type:"select",label:b.lang.forms.textfield.type,"default":"text",accessKey:"M",items:[[b.lang.forms.textfield.typeEmail,"email"],[b.lang.forms.textfield.typePass,"password"],[b.lang.forms.textfield.typeSearch,"search"],[b.lang.forms.textfield.typeTel,"tel"],[b.lang.forms.textfield.typeText,"text"],[b.lang.forms.textfield.typeUrl, +"url"]],setup:function(a){this.setValue(a.getAttribute("type"))},commit:function(a){var c=a.element;if(CKEDITOR.env.ie){var d=c.getAttribute("type"),e=this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('<input type="'+e+'"></input>',b.document),c.copyAttributes(d,{type:1}),d.replace(c),a.element=d)}else c.setAttribute("type",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/button.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/button.png new file mode 100644 index 00000000..0bf68caa Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/button.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/checkbox.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/checkbox.png new file mode 100644 index 00000000..2f4eb2f4 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/checkbox.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/form.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/form.png new file mode 100644 index 00000000..08416674 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/form.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png new file mode 100644 index 00000000..fce4fccc Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png new file mode 100644 index 00000000..bd92b165 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png new file mode 100644 index 00000000..36be4aa0 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png new file mode 100644 index 00000000..4a02649c Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png new file mode 100644 index 00000000..cd5f3186 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png new file mode 100644 index 00000000..d2737963 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png new file mode 100644 index 00000000..2f0c72d6 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png new file mode 100644 index 00000000..42452e19 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png new file mode 100644 index 00000000..da2b066b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png new file mode 100644 index 00000000..60618a5b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png new file mode 100644 index 00000000..87073d22 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/imagebutton.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/imagebutton.png new file mode 100644 index 00000000..162df9a3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/imagebutton.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/radio.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/radio.png new file mode 100644 index 00000000..aaad523f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/radio.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/select-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/select-rtl.png new file mode 100644 index 00000000..029a0d22 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/select-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/select.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/select.png new file mode 100644 index 00000000..44b02b9d Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/select.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png new file mode 100644 index 00000000..8a15d688 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textarea.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textarea.png new file mode 100644 index 00000000..58e0fa02 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textarea.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textfield.png b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textfield.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/icons/textfield.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif b/platforms/browser/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif new file mode 100644 index 00000000..953f643b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/af.js new file mode 100644 index 00000000..27ed76df --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","af",{button:{title:"Knop eienskappe",text:"Teks (Waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Stuur",typeRst:"Maak leeg"},checkboxAndRadio:{checkboxTitle:"Merkhokkie eienskappe",radioTitle:"Radioknoppie eienskappe",value:"Waarde",selected:"Geselekteer"},form:{title:"Vorm eienskappe",menu:"Vorm eienskappe",action:"Aksie",method:"Metode",encoding:"Kodering"},hidden:{title:"Verborge veld eienskappe",name:"Naam",value:"Waarde"},select:{title:"Keuseveld eienskappe",selectInfo:"Info", +opAvail:"Beskikbare opsies",value:"Waarde",size:"Grootte",lines:"Lyne",chkMulti:"Laat meer as een keuse toe",opText:"Teks",opValue:"Waarde",btnAdd:"Byvoeg",btnModify:"Wysig",btnUp:"Op",btnDown:"Af",btnSetValue:"Stel as geselekteerde waarde",btnDelete:"Verwyder"},textarea:{title:"Teks-area eienskappe",cols:"Kolomme",rows:"Rye"},textfield:{title:"Teksveld eienskappe",name:"Naam",value:"Waarde",charWidth:"Breedte (karakters)",maxChars:"Maksimum karakters",type:"Soort",typeText:"Teks",typePass:"Wagwoord", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ar.js new file mode 100644 index 00000000..537ca014 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ar.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ar",{button:{title:"خصائص زر الضغط",text:"القيمة/التسمية",type:"نوع الزر",typeBtn:"زر",typeSbm:"إرسال",typeRst:"إعادة تعيين"},checkboxAndRadio:{checkboxTitle:"خصائص خانة الإختيار",radioTitle:"خصائص زر الخيار",value:"القيمة",selected:"محدد"},form:{title:"خصائص النموذج",menu:"خصائص النموذج",action:"اسم الملف",method:"الأسلوب",encoding:"تشفير"},hidden:{title:"خصائص الحقل المخفي",name:"الاسم",value:"القيمة"},select:{title:"خصائص اختيار الحقل",selectInfo:"اختار معلومات", +opAvail:"الخيارات المتاحة",value:"القيمة",size:"الحجم",lines:"الأسطر",chkMulti:"السماح بتحديدات متعددة",opText:"النص",opValue:"القيمة",btnAdd:"إضافة",btnModify:"تعديل",btnUp:"أعلى",btnDown:"أسفل",btnSetValue:"إجعلها محددة",btnDelete:"إزالة"},textarea:{title:"خصائص مساحة النص",cols:"الأعمدة",rows:"الصفوف"},textfield:{title:"خصائص مربع النص",name:"الاسم",value:"القيمة",charWidth:"عرض السمات",maxChars:"اقصى عدد للسمات",type:"نوع المحتوى",typeText:"نص",typePass:"كلمة مرور",typeEmail:"بريد إلكتروني",typeSearch:"بحث", +typeTel:"رقم الهاتف",typeUrl:"الرابط"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bg.js new file mode 100644 index 00000000..6761facd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bg",{button:{title:"Настройки на бутона",text:"Текст (стойност)",type:"Тип",typeBtn:"Бутон",typeSbm:"Добави",typeRst:"Нулиране"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Настройки на радиобутон",value:"Стойност",selected:"Избрано"},form:{title:"Настройки на формата",menu:"Настройки на формата",action:"Действие",method:"Метод",encoding:"Кодиране"},hidden:{title:"Настройки за скрито поле",name:"Име",value:"Стойност"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Налични опции",value:"Стойност",size:"Размер",lines:"линии",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Стойност",btnAdd:"Добави",btnModify:"Промени",btnUp:"На горе",btnDown:"На долу",btnSetValue:"Set as selected value",btnDelete:"Изтриване"},textarea:{title:"Опции за текстовата зона",cols:"Колони",rows:"Редове"},textfield:{title:"Настройки за текстово поле",name:"Име",value:"Стойност",charWidth:"Ширина на знаците",maxChars:"Макс. знаци",type:"Тип", +typeText:"Текст",typePass:"Парола",typeEmail:"Email",typeSearch:"Търсене",typeTel:"Телефонен номер",typeUrl:"Уеб адрес"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bn.js new file mode 100644 index 00000000..63773289 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bn",{button:{title:"বাটন প্রোপার্টি",text:"টেক্সট (ভ্যালু)",type:"প্রকার",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"চেক বক্স প্রোপার্টি",radioTitle:"রেডিও বাটন প্রোপার্টি",value:"ভ্যালু",selected:"সিলেক্টেড"},form:{title:"ফর্ম প্রোপার্টি",menu:"ফর্ম প্রোপার্টি",action:"একশ্যন",method:"পদ্ধতি",encoding:"Encoding"},hidden:{title:"গুপ্ত ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু"},select:{title:"বাছাই ফীল্ড প্রোপার্টি",selectInfo:"তথ্য", +opAvail:"অন্যান্য বিকল্প",value:"ভ্যালু",size:"সাইজ",lines:"লাইন সমূহ",chkMulti:"একাধিক সিলেকশন এলাউ কর",opText:"টেক্সট",opValue:"ভ্যালু",btnAdd:"যুক্ত",btnModify:"বদলে দাও",btnUp:"উপর",btnDown:"নীচে",btnSetValue:"বাছাই করা ভ্যালু হিসেবে সেট কর",btnDelete:"ডিলীট"},textarea:{title:"টেক্সট এরিয়া প্রোপার্টি",cols:"কলাম",rows:"রো"},textfield:{title:"টেক্সট ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু",charWidth:"ক্যারেক্টার প্রশস্ততা",maxChars:"সর্বাধিক ক্যারেক্টার",type:"টাইপ",typeText:"টেক্সট",typePass:"পাসওয়ার্ড", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bs.js new file mode 100644 index 00000000..cac69a36 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bs",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ca.js new file mode 100644 index 00000000..55da8f9b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ca",{button:{title:"Propietats del botó",text:"Text (Valor)",type:"Tipus",typeBtn:"Botó",typeSbm:"Transmet formulari",typeRst:"Reinicia formulari"},checkboxAndRadio:{checkboxTitle:"Propietats de la casella de verificació",radioTitle:"Propietats del botó d'opció",value:"Valor",selected:"Seleccionat"},form:{title:"Propietats del formulari",menu:"Propietats del formulari",action:"Acció",method:"Mètode",encoding:"Codificació"},hidden:{title:"Propietats del camp ocult", +name:"Nom",value:"Valor"},select:{title:"Propietats del camp de selecció",selectInfo:"Info",opAvail:"Opcions disponibles",value:"Valor",size:"Mida",lines:"Línies",chkMulti:"Permet múltiples seleccions",opText:"Text",opValue:"Valor",btnAdd:"Afegeix",btnModify:"Modifica",btnUp:"Amunt",btnDown:"Avall",btnSetValue:"Selecciona per defecte",btnDelete:"Elimina"},textarea:{title:"Propietats de l'àrea de text",cols:"Columnes",rows:"Files"},textfield:{title:"Propietats del camp de text",name:"Nom",value:"Valor", +charWidth:"Amplada",maxChars:"Nombre màxim de caràcters",type:"Tipus",typeText:"Text",typePass:"Contrasenya",typeEmail:"Correu electrònic",typeSearch:"Cercar",typeTel:"Número de telèfon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/cs.js new file mode 100644 index 00000000..5691de93 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cs",{button:{title:"Vlastnosti tlačítka",text:"Popisek",type:"Typ",typeBtn:"Tlačítko",typeSbm:"Odeslat",typeRst:"Obnovit"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacího políčka",radioTitle:"Vlastnosti přepínače",value:"Hodnota",selected:"Zaškrtnuto"},form:{title:"Vlastnosti formuláře",menu:"Vlastnosti formuláře",action:"Akce",method:"Metoda",encoding:"Kódování"},hidden:{title:"Vlastnosti skrytého pole",name:"Název",value:"Hodnota"},select:{title:"Vlastnosti seznamu", +selectInfo:"Info",opAvail:"Dostupná nastavení",value:"Hodnota",size:"Velikost",lines:"Řádků",chkMulti:"Povolit mnohonásobné výběry",opText:"Text",opValue:"Hodnota",btnAdd:"Přidat",btnModify:"Změnit",btnUp:"Nahoru",btnDown:"Dolů",btnSetValue:"Nastavit jako vybranou hodnotu",btnDelete:"Smazat"},textarea:{title:"Vlastnosti textové oblasti",cols:"Sloupců",rows:"Řádků"},textfield:{title:"Vlastnosti textového pole",name:"Název",value:"Hodnota",charWidth:"Šířka ve znacích",maxChars:"Maximální počet znaků", +type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hledat",typeTel:"Telefonní číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/cy.js new file mode 100644 index 00000000..332c861f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cy",{button:{title:"Priodweddau Botymau",text:"Testun (Gwerth)",type:"Math",typeBtn:"Botwm",typeSbm:"Anfon",typeRst:"Ailosod"},checkboxAndRadio:{checkboxTitle:"Priodweddau Blwch Ticio",radioTitle:"Priodweddau Botwm Radio",value:"Gwerth",selected:"Dewiswyd"},form:{title:"Priodweddau Ffurflen",menu:"Priodweddau Ffurflen",action:"Gweithred",method:"Dull",encoding:"Amgodio"},hidden:{title:"Priodweddau Maes Cudd",name:"Enw",value:"Gwerth"},select:{title:"Priodweddau Maes Dewis", +selectInfo:"Gwyb Dewis",opAvail:"Opsiynau ar Gael",value:"Gwerth",size:"Maint",lines:"llinellau",chkMulti:"Caniatàu aml-ddewisiadau",opText:"Testun",opValue:"Gwerth",btnAdd:"Ychwanegu",btnModify:"Newid",btnUp:"Lan",btnDown:"Lawr",btnSetValue:"Gosod fel gwerth a ddewiswyd",btnDelete:"Dileu"},textarea:{title:"Priodweddau Ardal Testun",cols:"Colofnau",rows:"Rhesi"},textfield:{title:"Priodweddau Maes Testun",name:"Enw",value:"Gwerth",charWidth:"Lled Nod",maxChars:"Uchafswm y Nodau",type:"Math",typeText:"Testun", +typePass:"Cyfrinair",typeEmail:"Ebost",typeSearch:"Chwilio",typeTel:"Rhif Ffôn",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/da.js new file mode 100644 index 00000000..cf4a1934 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","da",{button:{title:"Egenskaber for knap",text:"Tekst",type:"Type",typeBtn:"Knap",typeSbm:"Send",typeRst:"Nulstil"},checkboxAndRadio:{checkboxTitle:"Egenskaber for afkrydsningsfelt",radioTitle:"Egenskaber for alternativknap",value:"Værdi",selected:"Valgt"},form:{title:"Egenskaber for formular",menu:"Egenskaber for formular",action:"Handling",method:"Metode",encoding:"Kodning (encoding)"},hidden:{title:"Egenskaber for skjult felt",name:"Navn",value:"Værdi"},select:{title:"Egenskaber for liste", +selectInfo:"Generelt",opAvail:"Valgmuligheder",value:"Værdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillad flere valg",opText:"Tekst",opValue:"Værdi",btnAdd:"Tilføj",btnModify:"Redigér",btnUp:"Op",btnDown:"Ned",btnSetValue:"Sæt som valgt",btnDelete:"Slet"},textarea:{title:"Egenskaber for tekstboks",cols:"Kolonner",rows:"Rækker"},textfield:{title:"Egenskaber for tekstfelt",name:"Navn",value:"Værdi",charWidth:"Bredde (tegn)",maxChars:"Max. antal tegn",type:"Type",typeText:"Tekst",typePass:"Adgangskode", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/de.js new file mode 100644 index 00000000..483c7f9d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","de",{button:{title:"Button-Eigenschaften",text:"Text (Wert)",type:"Typ",typeBtn:"Button",typeSbm:"Absenden",typeRst:"Zurücksetzen"},checkboxAndRadio:{checkboxTitle:"Checkbox-Eigenschaften",radioTitle:"Optionsfeld-Eigenschaften",value:"Wert",selected:"ausgewählt"},form:{title:"Formular-Eigenschaften",menu:"Formular-Eigenschaften",action:"Action",method:"Method",encoding:"Zeichenkodierung"},hidden:{title:"Verstecktes Feld-Eigenschaften",name:"Name",value:"Wert"},select:{title:"Auswahlfeld-Eigenschaften", +selectInfo:"Info",opAvail:"Mögliche Optionen",value:"Wert",size:"Größe",lines:"Linien",chkMulti:"Erlaube Mehrfachauswahl",opText:"Text",opValue:"Wert",btnAdd:"Hinzufügen",btnModify:"Ändern",btnUp:"Hoch",btnDown:"Runter",btnSetValue:"Setze als Standardwert",btnDelete:"Entfernen"},textarea:{title:"Textfeld (mehrzeilig) Eigenschaften",cols:"Spalten",rows:"Reihen"},textfield:{title:"Textfeld (einzeilig) Eigenschaften",name:"Name",value:"Wert",charWidth:"Zeichenbreite",maxChars:"Max. Zeichen",type:"Typ", +typeText:"Text",typePass:"Passwort",typeEmail:"E-mail",typeSearch:"Suche",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/el.js new file mode 100644 index 00000000..2f42eff3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","el",{button:{title:"Ιδιότητες Κουμπιού",text:"Κείμενο (Τιμή)",type:"Τύπος",typeBtn:"Κουμπί",typeSbm:"Υποβολή",typeRst:"Επαναφορά"},checkboxAndRadio:{checkboxTitle:"Ιδιότητες Κουτιού Επιλογής",radioTitle:"Ιδιότητες Κουμπιού Επιλογής",value:"Τιμή",selected:"Επιλεγμένο"},form:{title:"Ιδιότητες Φόρμας",menu:"Ιδιότητες Φόρμας",action:"Ενέργεια",method:"Μέθοδος",encoding:"Κωδικοποίηση"},hidden:{title:"Ιδιότητες Κρυφού Πεδίου",name:"Όνομα",value:"Τιμή"},select:{title:"Ιδιότητες Πεδίου Επιλογής", +selectInfo:"Πληροφορίες Πεδίου Επιλογής",opAvail:"Διαθέσιμες Επιλογές",value:"Τιμή",size:"Μέγεθος",lines:"γραμμές",chkMulti:"Να επιτρέπονται οι πολλαπλές επιλογές",opText:"Κείμενο",opValue:"Τιμή",btnAdd:"Προσθήκη",btnModify:"Τροποποίηση",btnUp:"Πάνω",btnDown:"Κάτω",btnSetValue:"Θέση ως προεπιλογή",btnDelete:"Διαγραφή"},textarea:{title:"Ιδιότητες Περιοχής Κειμένου",cols:"Στήλες",rows:"Σειρές"},textfield:{title:"Ιδιότητες Πεδίου Κειμένου",name:"Όνομα",value:"Τιμή",charWidth:"Πλάτος Χαρακτήρων",maxChars:"Μέγιστοι χαρακτήρες", +type:"Τύπος",typeText:"Κείμενο",typePass:"Κωδικός",typeEmail:"Email",typeSearch:"Αναζήτηση",typeTel:"Αριθμός Τηλεφώνου",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-au.js new file mode 100644 index 00000000..e144ec74 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-au",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-ca.js new file mode 100644 index 00000000..8adf26e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-ca",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-gb.js new file mode 100644 index 00000000..d72b16c6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-gb",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"E-mail",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en.js new file mode 100644 index 00000000..95cf7753 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/eo.js new file mode 100644 index 00000000..26744b66 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eo",{button:{title:"Butonaj atributoj",text:"Teksto (Valoro)",type:"Tipo",typeBtn:"Butono",typeSbm:"Validigi (submit)",typeRst:"Remeti en la originstaton (Reset)"},checkboxAndRadio:{checkboxTitle:"Markobutonaj Atributoj",radioTitle:"Radiobutonaj Atributoj",value:"Valoro",selected:"Selektita"},form:{title:"Formularaj Atributoj",menu:"Formularaj Atributoj",action:"Ago",method:"Metodo",encoding:"Kodoprezento"},hidden:{title:"Atributoj de Kaŝita Kampo",name:"Nomo",value:"Valoro"}, +select:{title:"Atributoj de Elekta Kampo",selectInfo:"Informoj pri la rulummenuo",opAvail:"Elektoj Disponeblaj",value:"Valoro",size:"Grando",lines:"Linioj",chkMulti:"Permesi Plurajn Elektojn",opText:"Teksto",opValue:"Valoro",btnAdd:"Aldoni",btnModify:"Modifi",btnUp:"Supren",btnDown:"Malsupren",btnSetValue:"Agordi kiel Elektitan Valoron",btnDelete:"Forigi"},textarea:{title:"Atributoj de Teksta Areo",cols:"Kolumnoj",rows:"Linioj"},textfield:{title:"Atributoj de Teksta Kampo",name:"Nomo",value:"Valoro", +charWidth:"Signolarĝo",maxChars:"Maksimuma Nombro da Signoj",type:"Tipo",typeText:"Teksto",typePass:"Pasvorto",typeEmail:"retpoŝtadreso",typeSearch:"Serĉi",typeTel:"Telefonnumero",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/es.js new file mode 100644 index 00000000..e275cf88 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","es",{button:{title:"Propiedades de Botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Boton",typeSbm:"Enviar",typeRst:"Reestablecer"},checkboxAndRadio:{checkboxTitle:"Propiedades de Casilla",radioTitle:"Propiedades de Botón de Radio",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades de Formulario",menu:"Propiedades de Formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades de Campo Oculto",name:"Nombre",value:"Valor"}, +select:{title:"Propiedades de Campo de Selección",selectInfo:"Información",opAvail:"Opciones disponibles",value:"Valor",size:"Tamaño",lines:"Lineas",chkMulti:"Permitir múltiple selección",opText:"Texto",opValue:"Valor",btnAdd:"Agregar",btnModify:"Modificar",btnUp:"Subir",btnDown:"Bajar",btnSetValue:"Establecer como predeterminado",btnDelete:"Eliminar"},textarea:{title:"Propiedades de Area de Texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades de Campo de Texto",name:"Nombre",value:"Valor", +charWidth:"Caracteres de ancho",maxChars:"Máximo caracteres",type:"Tipo",typeText:"Texto",typePass:"Contraseña",typeEmail:"Correo electrónico",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/et.js new file mode 100644 index 00000000..0e1d62e2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","et",{button:{title:"Nupu omadused",text:"Tekst (väärtus)",type:"Liik",typeBtn:"Nupp",typeSbm:"Saada",typeRst:"Lähtesta"},checkboxAndRadio:{checkboxTitle:"Märkeruudu omadused",radioTitle:"Raadionupu omadused",value:"Väärtus",selected:"Märgitud"},form:{title:"Vormi omadused",menu:"Vormi omadused",action:"Toiming",method:"Meetod",encoding:"Kodeering"},hidden:{title:"Varjatud lahtri omadused",name:"Nimi",value:"Väärtus"},select:{title:"Valiklahtri omadused",selectInfo:"Info", +opAvail:"Võimalikud valikud:",value:"Väärtus",size:"Suurus",lines:"ridu",chkMulti:"Võimalik mitu valikut",opText:"Tekst",opValue:"Väärtus",btnAdd:"Lisa",btnModify:"Muuda",btnUp:"Üles",btnDown:"Alla",btnSetValue:"Määra vaikimisi",btnDelete:"Kustuta"},textarea:{title:"Tekstiala omadused",cols:"Veerge",rows:"Ridu"},textfield:{title:"Tekstilahtri omadused",name:"Nimi",value:"Väärtus",charWidth:"Laius (tähemärkides)",maxChars:"Maksimaalselt tähemärke",type:"Liik",typeText:"Tekst",typePass:"Parool",typeEmail:"E-mail", +typeSearch:"Otsi",typeTel:"Telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/eu.js new file mode 100644 index 00000000..cfb5e9a5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eu",{button:{title:"Botoiaren Ezaugarriak",text:"Testua (Balorea)",type:"Mota",typeBtn:"Botoia",typeSbm:"Bidali",typeRst:"Garbitu"},checkboxAndRadio:{checkboxTitle:"Kontrol-laukiko Ezaugarriak",radioTitle:"Aukera-botoiaren Ezaugarriak",value:"Balorea",selected:"Hautatuta"},form:{title:"Formularioaren Ezaugarriak",menu:"Formularioaren Ezaugarriak",action:"Ekintza",method:"Metodoa",encoding:"Kodeketa"},hidden:{title:"Ezkutuko Eremuaren Ezaugarriak",name:"Izena",value:"Balorea"}, +select:{title:"Hautespen Eremuaren Ezaugarriak",selectInfo:"Informazioa",opAvail:"Aukera Eskuragarriak",value:"Balorea",size:"Tamaina",lines:"lerro kopurura",chkMulti:"Hautaketa anitzak baimendu",opText:"Testua",opValue:"Balorea",btnAdd:"Gehitu",btnModify:"Aldatu",btnUp:"Gora",btnDown:"Behera",btnSetValue:"Aukeratutako balorea ezarri",btnDelete:"Ezabatu"},textarea:{title:"Testu-arearen Ezaugarriak",cols:"Zutabeak",rows:"Lerroak"},textfield:{title:"Testu Eremuaren Ezaugarriak",name:"Izena",value:"Balorea", +charWidth:"Zabalera",maxChars:"Zenbat karaktere gehienez",type:"Mota",typeText:"Testua",typePass:"Pasahitza",typeEmail:"E-posta",typeSearch:"Bilatu",typeTel:"Telefono Zenbakia",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fa.js new file mode 100644 index 00000000..326ada0d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fa.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fa",{button:{title:"ویژگی​های دکمه",text:"متن (مقدار)",type:"نوع",typeBtn:"دکمه",typeSbm:"ثبت",typeRst:"بازنشانی (Reset)"},checkboxAndRadio:{checkboxTitle:"ویژگی​های خانهٴ گزینه​ای",radioTitle:"ویژگی​های دکمهٴ رادیویی",value:"مقدار",selected:"برگزیده"},form:{title:"ویژگی​های فرم",menu:"ویژگی​های فرم",action:"رویداد",method:"متد",encoding:"رمزنگاری"},hidden:{title:"ویژگی​های فیلد پنهان",name:"نام",value:"مقدار"},select:{title:"ویژگی​های فیلد چندگزینه​ای",selectInfo:"اطلاعات", +opAvail:"گزینه​های دردسترس",value:"مقدار",size:"اندازه",lines:"خطوط",chkMulti:"گزینش چندگانه فراهم باشد",opText:"متن",opValue:"مقدار",btnAdd:"افزودن",btnModify:"ویرایش",btnUp:"بالا",btnDown:"پائین",btnSetValue:"تنظیم به عنوان مقدار برگزیده",btnDelete:"پاککردن"},textarea:{title:"ویژگی​های ناحیهٴ متنی",cols:"ستون​ها",rows:"سطرها"},textfield:{title:"ویژگی​های فیلد متنی",name:"نام",value:"مقدار",charWidth:"پهنای نویسه",maxChars:"بیشینهٴ نویسه​ها",type:"نوع",typeText:"متن",typePass:"گذرواژه",typeEmail:"ایمیل", +typeSearch:"جستجو",typeTel:"شماره تلفن",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fi.js new file mode 100644 index 00000000..31cf6d05 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fi",{button:{title:"Painikkeen ominaisuudet",text:"Teksti (arvo)",type:"Tyyppi",typeBtn:"Painike",typeSbm:"Lähetä",typeRst:"Tyhjennä"},checkboxAndRadio:{checkboxTitle:"Valintaruudun ominaisuudet",radioTitle:"Radiopainikkeen ominaisuudet",value:"Arvo",selected:"Valittu"},form:{title:"Lomakkeen ominaisuudet",menu:"Lomakkeen ominaisuudet",action:"Toiminto",method:"Tapa",encoding:"Enkoodaus"},hidden:{title:"Piilokentän ominaisuudet",name:"Nimi",value:"Arvo"},select:{title:"Valintakentän ominaisuudet", +selectInfo:"Info",opAvail:"Ominaisuudet",value:"Arvo",size:"Koko",lines:"Rivit",chkMulti:"Salli usea valinta",opText:"Teksti",opValue:"Arvo",btnAdd:"Lisää",btnModify:"Muuta",btnUp:"Ylös",btnDown:"Alas",btnSetValue:"Aseta valituksi",btnDelete:"Poista"},textarea:{title:"Tekstilaatikon ominaisuudet",cols:"Sarakkeita",rows:"Rivejä"},textfield:{title:"Tekstikentän ominaisuudet",name:"Nimi",value:"Arvo",charWidth:"Leveys",maxChars:"Maksimi merkkimäärä",type:"Tyyppi",typeText:"Teksti",typePass:"Salasana", +typeEmail:"Sähköposti",typeSearch:"Haku",typeTel:"Puhelinnumero",typeUrl:"Osoite"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fo.js new file mode 100644 index 00000000..3ff4950e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fo",{button:{title:"Eginleikar fyri knøtt",text:"Tekstur",type:"Slag",typeBtn:"Knøttur",typeSbm:"Send",typeRst:"Nullstilla"},checkboxAndRadio:{checkboxTitle:"Eginleikar fyri flugubein",radioTitle:"Eginleikar fyri radioknøtt",value:"Virði",selected:"Valt"},form:{title:"Eginleikar fyri Form",menu:"Eginleikar fyri Form",action:"Hending",method:"Háttur",encoding:"Encoding"},hidden:{title:"Eginleikar fyri fjaldan teig",name:"Navn",value:"Virði"},select:{title:"Eginleikar fyri valskrá", +selectInfo:"Upplýsingar",opAvail:"Tøkir møguleikar",value:"Virði",size:"Stødd",lines:"Linjur",chkMulti:"Loyv fleiri valmøguleikum samstundis",opText:"Tekstur",opValue:"Virði",btnAdd:"Legg afturat",btnModify:"Broyt",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Set sum valt virði",btnDelete:"Strika"},textarea:{title:"Eginleikar fyri tekstumráði",cols:"kolonnur",rows:"røðir"},textfield:{title:"Eginleikar fyri tekstteig",name:"Navn",value:"Virði",charWidth:"Breidd (sjónlig tekn)",maxChars:"Mest loyvdu tekn", +type:"Slag",typeText:"Tekstur",typePass:"Loyniorð",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fr-ca.js new file mode 100644 index 00000000..f44c8d63 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr-ca",{button:{title:"Propriétés du bouton",text:"Texte (Valeur)",type:"Type",typeBtn:"Bouton",typeSbm:"Soumettre",typeRst:"Réinitialiser"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom",value:"Valeur"}, +select:{title:"Propriétés du champ de sélection",selectInfo:"Info",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Monter",btnDown:"Descendre",btnSetValue:"Valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte",name:"Nom",value:"Valeur",charWidth:"Largeur de caractères", +maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"Courriel",typeSearch:"Recherche",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fr.js new file mode 100644 index 00000000..eff0fd02 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr",{button:{title:"Propriétés du bouton",text:"Texte (Value)",type:"Type",typeBtn:"Bouton",typeSbm:"Validation (submit)",typeRst:"Remise à zéro"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton Radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom", +value:"Valeur"},select:{title:"Propriétés du menu déroulant",selectInfo:"Informations sur le menu déroulant",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"Lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Haut",btnDown:"Bas",btnSetValue:"Définir comme valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte", +name:"Nom",value:"Valeur",charWidth:"Taille des caractères",maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"E-mail",typeSearch:"Rechercher",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/gl.js new file mode 100644 index 00000000..792ee3f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gl",{button:{title:"Propiedades do botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botón",typeSbm:"Enviar",typeRst:"Restabelever"},checkboxAndRadio:{checkboxTitle:"Propiedades da caixa de selección",radioTitle:"Propiedades do botón de opción",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades do formulario",menu:"Propiedades do formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades do campo agochado",name:"Nome", +value:"Valor"},select:{title:"Propiedades do campo de selección",selectInfo:"Información",opAvail:"Opcións dispoñíbeis",value:"Valor",size:"Tamaño",lines:"liñas",chkMulti:"Permitir múltiplas seleccións",opText:"Texto",opValue:"Valor",btnAdd:"Engadir",btnModify:"Modificar",btnUp:"Subir",btnDown:"Baixar",btnSetValue:"Estabelecer como valor seleccionado",btnDelete:"Eliminar"},textarea:{title:"Propiedades da área de texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades do campo de texto", +name:"Nome",value:"Valor",charWidth:"Largo do carácter",maxChars:"Núm. máximo de caracteres",type:"Tipo",typeText:"Texto",typePass:"Contrasinal",typeEmail:"Correo",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/gu.js new file mode 100644 index 00000000..976d136a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gu",{button:{title:"બટનના ગુણ",text:"ટેક્સ્ટ (વૅલ્યૂ)",type:"પ્રકાર",typeBtn:"બટન",typeSbm:"સબ્મિટ",typeRst:"રિસેટ"},checkboxAndRadio:{checkboxTitle:"ચેક બોક્સ ગુણ",radioTitle:"રેડિઓ બટનના ગુણ",value:"વૅલ્યૂ",selected:"સિલેક્ટેડ"},form:{title:"ફૉર્મ/પત્રકના ગુણ",menu:"ફૉર્મ/પત્રકના ગુણ",action:"ક્રિયા",method:"પદ્ધતિ",encoding:"અન્કોડીન્ગ"},hidden:{title:"ગુપ્ત ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ"},select:{title:"પસંદગી ક્ષેત્રના ગુણ",selectInfo:"સૂચના",opAvail:"ઉપલબ્ધ વિકલ્પ", +value:"વૅલ્યૂ",size:"સાઇઝ",lines:"લીટીઓ",chkMulti:"એકથી વધારે પસંદ કરી શકો",opText:"ટેક્સ્ટ",opValue:"વૅલ્યૂ",btnAdd:"ઉમેરવું",btnModify:"બદલવું",btnUp:"ઉપર",btnDown:"નીચે",btnSetValue:"પસંદ કરલી વૅલ્યૂ સેટ કરો",btnDelete:"રદ કરવું"},textarea:{title:"ટેક્સ્ટ એઅરિઆ, શબ્દ વિસ્તારના ગુણ",cols:"કૉલમ/ઊભી કટાર",rows:"પંક્તિઓ"},textfield:{title:"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ",charWidth:"કેરેક્ટરની પહોળાઈ",maxChars:"અધિકતમ કેરેક્ટર",type:"ટાઇપ",typeText:"ટેક્સ્ટ",typePass:"પાસવર્ડ", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/he.js new file mode 100644 index 00000000..102ba4c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","he",{button:{title:"מאפייני כפתור",text:"טקסט (ערך)",type:"סוג",typeBtn:"כפתור",typeSbm:"שליחה",typeRst:"איפוס"},checkboxAndRadio:{checkboxTitle:"מאפייני תיבת סימון",radioTitle:"מאפייני לחצן אפשרויות",value:"ערך",selected:"מסומן"},form:{title:"מאפיני טופס",menu:"מאפיני טופס",action:"שלח אל",method:"סוג שליחה",encoding:"קידוד"},hidden:{title:"מאפיני שדה חבוי",name:"שם",value:"ערך"},select:{title:"מאפייני שדה בחירה",selectInfo:"מידע",opAvail:"אפשרויות זמינות",value:"ערך", +size:"גודל",lines:"שורות",chkMulti:"איפשור בחירות מרובות",opText:"טקסט",opValue:"ערך",btnAdd:"הוספה",btnModify:"שינוי",btnUp:"למעלה",btnDown:"למטה",btnSetValue:"קביעה כברירת מחדל",btnDelete:"מחיקה"},textarea:{title:"מאפייני איזור טקסט",cols:"עמודות",rows:"שורות"},textfield:{title:"מאפייני שדה טקסט",name:"שם",value:"ערך",charWidth:"רוחב לפי תווים",maxChars:"מקסימום תווים",type:"סוג",typeText:"טקסט",typePass:"סיסמה",typeEmail:'דוא"ל',typeSearch:"חיפוש",typeTel:"מספר טלפון",typeUrl:"כתובת (URL)"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hi.js new file mode 100644 index 00000000..28f074e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hi",{button:{title:"बटन प्रॉपर्टीज़",text:"टेक्स्ट (वैल्यू)",type:"प्रकार",typeBtn:"बटन",typeSbm:"सब्मिट",typeRst:"रिसेट"},checkboxAndRadio:{checkboxTitle:"चॅक बॉक्स प्रॉपर्टीज़",radioTitle:"रेडिओ बटन प्रॉपर्टीज़",value:"वैल्यू",selected:"सॅलॅक्टॅड"},form:{title:"फ़ॉर्म प्रॉपर्टीज़",menu:"फ़ॉर्म प्रॉपर्टीज़",action:"क्रिया",method:"तरीका",encoding:"Encoding"},hidden:{title:"गुप्त फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू"},select:{title:"चुनाव फ़ील्ड प्रॉपर्टीज़",selectInfo:"सूचना", +opAvail:"उपलब्ध विकल्प",value:"वैल्यू",size:"साइज़",lines:"पंक्तियाँ",chkMulti:"एक से ज्यादा विकल्प चुनने दें",opText:"टेक्स्ट",opValue:"वैल्यू",btnAdd:"जोड़ें",btnModify:"बदलें",btnUp:"ऊपर",btnDown:"नीचे",btnSetValue:"चुनी गई वैल्यू सॅट करें",btnDelete:"डिलीट"},textarea:{title:"टेक्स्त एरिया प्रॉपर्टीज़",cols:"कालम",rows:"पंक्तियां"},textfield:{title:"टेक्स्ट फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू",charWidth:"करॅक्टर की चौढ़ाई",maxChars:"अधिकतम करॅक्टर",type:"टाइप",typeText:"टेक्स्ट",typePass:"पास्वर्ड", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hr.js new file mode 100644 index 00000000..9965827c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hr",{button:{title:"Button svojstva",text:"Tekst (vrijednost)",type:"Vrsta",typeBtn:"Gumb",typeSbm:"Pošalji",typeRst:"Poništi"},checkboxAndRadio:{checkboxTitle:"Checkbox svojstva",radioTitle:"Radio Button svojstva",value:"Vrijednost",selected:"Odabrano"},form:{title:"Form svojstva",menu:"Form svojstva",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Hidden Field svojstva",name:"Ime",value:"Vrijednost"},select:{title:"Selection svojstva",selectInfo:"Info", +opAvail:"Dostupne opcije",value:"Vrijednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruki odabir",opText:"Tekst",opValue:"Vrijednost",btnAdd:"Dodaj",btnModify:"Promijeni",btnUp:"Gore",btnDown:"Dolje",btnSetValue:"Postavi kao odabranu vrijednost",btnDelete:"Obriši"},textarea:{title:"Textarea svojstva",cols:"Kolona",rows:"Redova"},textfield:{title:"Text Field svojstva",name:"Ime",value:"Vrijednost",charWidth:"Širina",maxChars:"Najviše karaktera",type:"Vrsta",typeText:"Tekst",typePass:"Šifra", +typeEmail:"Email",typeSearch:"Traži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hu.js new file mode 100644 index 00000000..962606d8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hu",{button:{title:"Gomb tulajdonságai",text:"Szöveg (Érték)",type:"Típus",typeBtn:"Gomb",typeSbm:"Küldés",typeRst:"Alaphelyzet"},checkboxAndRadio:{checkboxTitle:"Jelölőnégyzet tulajdonságai",radioTitle:"Választógomb tulajdonságai",value:"Érték",selected:"Kiválasztott"},form:{title:"Űrlap tulajdonságai",menu:"Űrlap tulajdonságai",action:"Adatfeldolgozást végző hivatkozás",method:"Adatküldés módja",encoding:"Kódolás"},hidden:{title:"Rejtett mező tulajdonságai",name:"Név", +value:"Érték"},select:{title:"Legördülő lista tulajdonságai",selectInfo:"Alaptulajdonságok",opAvail:"Elérhető opciók",value:"Érték",size:"Méret",lines:"sor",chkMulti:"több sor is kiválasztható",opText:"Szöveg",opValue:"Érték",btnAdd:"Hozzáad",btnModify:"Módosít",btnUp:"Fel",btnDown:"Le",btnSetValue:"Legyen az alapértelmezett érték",btnDelete:"Töröl"},textarea:{title:"Szövegterület tulajdonságai",cols:"Karakterek száma egy sorban",rows:"Sorok száma"},textfield:{title:"Szövegmező tulajdonságai",name:"Név", +value:"Érték",charWidth:"Megjelenített karakterek száma",maxChars:"Maximális karakterszám",type:"Típus",typeText:"Szöveg",typePass:"Jelszó",typeEmail:"Ímél",typeSearch:"Keresés",typeTel:"Telefonszám",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/id.js new file mode 100644 index 00000000..7fdc87fe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","id",{button:{title:"Button Properties",text:"Teks (Nilai)",type:"Tipe",typeBtn:"Tombol",typeSbm:"Menyerahkan",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Nilai",selected:"Terpilih"},form:{title:"Form Properties",menu:"Form Properties",action:"Aksi",method:"Metode",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Nama",value:"Nilai"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Nilai",size:"Ukuran",lines:"garis",chkMulti:"Izinkan pemilihan ganda",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah",btnModify:"Modifikasi",btnUp:"Atas",btnDown:"Bawah",btnSetValue:"Set as selected value",btnDelete:"Hapus"},textarea:{title:"Textarea Properties",cols:"Kolom",rows:"Baris"},textfield:{title:"Text Field Properties",name:"Name",value:"Nilai",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Tipe",typeText:"Teks", +typePass:"Kata kunci",typeEmail:"Surel",typeSearch:"Cari",typeTel:"Nomor Telepon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/is.js new file mode 100644 index 00000000..7ca735ec --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","is",{button:{title:"Eigindi hnapps",text:"Texti",type:"Gerð",typeBtn:"Hnappur",typeSbm:"Staðfesta",typeRst:"Hreinsa"},checkboxAndRadio:{checkboxTitle:"Eigindi markreits",radioTitle:"Eigindi valhnapps",value:"Gildi",selected:"Valið"},form:{title:"Eigindi innsláttarforms",menu:"Eigindi innsláttarforms",action:"Aðgerð",method:"Aðferð",encoding:"Encoding"},hidden:{title:"Eigindi falins svæðis",name:"Nafn",value:"Gildi"},select:{title:"Eigindi lista",selectInfo:"Upplýsingar", +opAvail:"Kostir",value:"Gildi",size:"Stærð",lines:"línur",chkMulti:"Leyfa fleiri kosti",opText:"Texti",opValue:"Gildi",btnAdd:"Bæta við",btnModify:"Breyta",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Merkja sem valið",btnDelete:"Eyða"},textarea:{title:"Eigindi textasvæðis",cols:"Dálkar",rows:"Línur"},textfield:{title:"Eigindi textareits",name:"Nafn",value:"Gildi",charWidth:"Breidd (leturtákn)",maxChars:"Hámarksfjöldi leturtákna",type:"Gerð",typeText:"Texti",typePass:"Lykilorð",typeEmail:"Email",typeSearch:"Search", +typeTel:"Telephone Number",typeUrl:"Vefslóð"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/it.js new file mode 100644 index 00000000..90f4f584 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","it",{button:{title:"Proprietà bottone",text:"Testo (Valore)",type:"Tipo",typeBtn:"Bottone",typeSbm:"Invio",typeRst:"Annulla"},checkboxAndRadio:{checkboxTitle:"Proprietà checkbox",radioTitle:"Proprietà radio button",value:"Valore",selected:"Selezionato"},form:{title:"Proprietà modulo",menu:"Proprietà modulo",action:"Azione",method:"Metodo",encoding:"Codifica"},hidden:{title:"Proprietà campo nascosto",name:"Nome",value:"Valore"},select:{title:"Proprietà menu di selezione", +selectInfo:"Info",opAvail:"Opzioni disponibili",value:"Valore",size:"Dimensione",lines:"righe",chkMulti:"Permetti selezione multipla",opText:"Testo",opValue:"Valore",btnAdd:"Aggiungi",btnModify:"Modifica",btnUp:"Su",btnDown:"Gi",btnSetValue:"Imposta come predefinito",btnDelete:"Rimuovi"},textarea:{title:"Proprietà area di testo",cols:"Colonne",rows:"Righe"},textfield:{title:"Proprietà campo di testo",name:"Nome",value:"Valore",charWidth:"Larghezza",maxChars:"Numero massimo di caratteri",type:"Tipo", +typeText:"Testo",typePass:"Password",typeEmail:"Email",typeSearch:"Cerca",typeTel:"Numero di telefono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ja.js new file mode 100644 index 00000000..8e615cfd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ja",{button:{title:"ボタン プロパティ",text:"テキスト (値)",type:"タイプ",typeBtn:"ボタン",typeSbm:"送信",typeRst:"リセット"},checkboxAndRadio:{checkboxTitle:"チェックボックスのプロパティ",radioTitle:"ラジオボタンのプロパティ",value:"値",selected:"選択済み"},form:{title:"フォームのプロパティ",menu:"フォームのプロパティ",action:"アクション (action)",method:"メソッド (method)",encoding:"エンコード方式 (encoding)"},hidden:{title:"不可視フィールド プロパティ",name:"名前 (name)",value:"値 (value)"},select:{title:"選択フィールドのプロパティ",selectInfo:"情報",opAvail:"利用可能なオプション",value:"選択項目値", +size:"サイズ",lines:"行",chkMulti:"複数選択を許可",opText:"選択項目名",opValue:"値",btnAdd:"追加",btnModify:"編集",btnUp:"上へ",btnDown:"下へ",btnSetValue:"選択した値を設定",btnDelete:"削除"},textarea:{title:"テキストエリア プロパティ",cols:"列",rows:"行"},textfield:{title:"1行テキスト プロパティ",name:"名前",value:"値",charWidth:"サイズ",maxChars:"最大長",type:"タイプ",typeText:"テキスト",typePass:"パスワード入力",typeEmail:"メール",typeSearch:"検索",typeTel:"電話番号",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ka.js new file mode 100644 index 00000000..06b8131d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ka",{button:{title:"ღილაკის პარამეტრები",text:"ტექსტი",type:"ტიპი",typeBtn:"ღილაკი",typeSbm:"გაგზავნა",typeRst:"გასუფთავება"},checkboxAndRadio:{checkboxTitle:"მონიშვნის ღილაკის (Checkbox) პარამეტრები",radioTitle:"ასარჩევი ღილაკის (Radio) პარამეტრები",value:"ტექსტი",selected:"არჩეული"},form:{title:"ფორმის პარამეტრები",menu:"ფორმის პარამეტრები",action:"ქმედება",method:"მეთოდი",encoding:"კოდირება"},hidden:{title:"მალული ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა"}, +select:{title:"არჩევის ველის პარამეტრები",selectInfo:"ინფორმაცია",opAvail:"შესაძლებელი ვარიანტები",value:"მნიშვნელობა",size:"ზომა",lines:"ხაზები",chkMulti:"მრავლობითი არჩევანის საშუალება",opText:"ტექსტი",opValue:"მნიშვნელობა",btnAdd:"დამატება",btnModify:"შეცვლა",btnUp:"ზემოთ",btnDown:"ქვემოთ",btnSetValue:"ამორჩეულ მნიშვნელოვნად დაყენება",btnDelete:"წაშლა"},textarea:{title:"ტექსტური არის პარამეტრები",cols:"სვეტები",rows:"სტრიქონები"},textfield:{title:"ტექსტური ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა", +charWidth:"სიმბოლოს ზომა",maxChars:"ასოების მაქსიმალური ოდენობა",type:"ტიპი",typeText:"ტექსტი",typePass:"პაროლი",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/km.js new file mode 100644 index 00000000..e9c1269d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","km",{button:{title:"លក្ខណៈ​ប៊ូតុង",text:"អត្ថបទ (តម្លៃ)",type:"ប្រភេទ",typeBtn:"ប៊ូតុង",typeSbm:"ដាក់ស្នើ",typeRst:"កំណត់​ឡើង​វិញ"},checkboxAndRadio:{checkboxTitle:"លក្ខណៈ​ប្រអប់​ធីក",radioTitle:"លក្ខនៈ​ប៊ូតុង​មូល",value:"តម្លៃ",selected:"បាន​ជ្រើស"},form:{title:"លក្ខណៈ​បែបបទ",menu:"លក្ខណៈ​បែបបទ",action:"សកម្មភាព",method:"វិធីសាស្ត្រ",encoding:"ការ​អ៊ិនកូដ"},hidden:{title:"លក្ខណៈ​វាល​កំបាំង",name:"ឈ្មោះ",value:"តម្លៃ"},select:{title:"លក្ខណៈ​វាល​ជម្រើស",selectInfo:"ព័ត៌មាន​ជម្រើស", +opAvail:"ជម្រើស​ដែល​មាន",value:"តម្លៃ",size:"ទំហំ",lines:"បន្ទាត់",chkMulti:"អនុញ្ញាត​ពហុ​ជម្រើស",opText:"អត្ថបទ",opValue:"តម្លៃ",btnAdd:"បន្ថែម",btnModify:"ផ្លាស់ប្តូរ",btnUp:"លើ",btnDown:"ក្រោម",btnSetValue:"កំណត់​ជា​តម្លៃ​ដែល​បាន​ជ្រើស",btnDelete:"លុប"},textarea:{title:"លក្ខណៈ​ប្រអប់​អត្ថបទ",cols:"ជួរឈរ",rows:"ជួរដេក"},textfield:{title:"លក្ខណៈ​វាល​អត្ថបទ",name:"ឈ្មោះ",value:"តម្លៃ",charWidth:"ទទឹង​តួ​អក្សរ",maxChars:"អក្សរអតិបរិមា",type:"ប្រភេទ",typeText:"អត្ថបទ",typePass:"ពាក្យសម្ងាត់",typeEmail:"អ៊ីមែល", +typeSearch:"ស្វែង​រក",typeTel:"លេខ​ទូរសព្ទ",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ko.js new file mode 100644 index 00000000..7e7ea054 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ko",{button:{title:"버튼 속성",text:"버튼글자(값)",type:"버튼종류",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"체크박스 속성",radioTitle:"라디오버튼 속성",value:"값",selected:"선택됨"},form:{title:"폼 속성",menu:"폼 속성",action:"실행경로(Action)",method:"방법(Method)",encoding:"Encoding"},hidden:{title:"숨김필드 속성",name:"이름",value:"값"},select:{title:"펼침목록 속성",selectInfo:"정보",opAvail:"선택옵션",value:"값",size:"세로크기",lines:"줄",chkMulti:"여러항목 선택 허용",opText:"이름",opValue:"값", +btnAdd:"추가",btnModify:"변경",btnUp:"위로",btnDown:"아래로",btnSetValue:"선택된것으로 설정",btnDelete:"삭제"},textarea:{title:"입력영역 속성",cols:"칸수",rows:"줄수"},textfield:{title:"입력필드 속성",name:"이름",value:"값",charWidth:"글자 너비",maxChars:"최대 글자수",type:"종류",typeText:"문자열",typePass:"비밀번호",typeEmail:"이메일",typeSearch:"검색",typeTel:"전화번호",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ku.js new file mode 100644 index 00000000..75599890 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ku",{button:{title:"خاسیەتی دوگمە",text:"(نرخی) دەق",type:"جۆر",typeBtn:"دوگمە",typeSbm:"بنێرە",typeRst:"ڕێکخستنەوە"},checkboxAndRadio:{checkboxTitle:"خاسیەتی چووارگۆشی پشکنین",radioTitle:"خاسیەتی جێگرەوەی دوگمە",value:"نرخ",selected:"هەڵبژاردرا"},form:{title:"خاسیەتی داڕشتە",menu:"خاسیەتی داڕشتە",action:"کردار",method:"ڕێگە",encoding:"بەکۆدکەر"},hidden:{title:"خاسیەتی خانەی شاردراوە",name:"ناو",value:"نرخ"},select:{title:"هەڵبژاردەی خاسیەتی خانە",selectInfo:"زانیاری", +opAvail:"هەڵبژاردەی لەبەردەستدابوون",value:"نرخ",size:"گەورەیی",lines:"هێڵەکان",chkMulti:"ڕێدان بەفره هەڵبژارده",opText:"دەق",opValue:"نرخ",btnAdd:"زیادکردن",btnModify:"گۆڕانکاری",btnUp:"سەرەوه",btnDown:"خوارەوە",btnSetValue:"دابنێ وەك نرخێکی هەڵبژێردراو",btnDelete:"سڕینەوه"},textarea:{title:"خاسیەتی ڕووبەری دەق",cols:"ستوونەکان",rows:"ڕیزەکان"},textfield:{title:"خاسیەتی خانەی دەق",name:"ناو",value:"نرخ",charWidth:"پانی نووسە",maxChars:"ئەوپەڕی نووسە",type:"جۆر",typeText:"دەق",typePass:"پێپەڕەوشە", +typeEmail:"ئیمەیل",typeSearch:"گەڕان",typeTel:"ژمارەی تەلەفۆن",typeUrl:"ناونیشانی بەستەر"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/lt.js new file mode 100644 index 00000000..743b8307 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lt",{button:{title:"Mygtuko savybės",text:"Tekstas (Reikšmė)",type:"Tipas",typeBtn:"Mygtukas",typeSbm:"Siųsti",typeRst:"Išvalyti"},checkboxAndRadio:{checkboxTitle:"Žymimojo langelio savybės",radioTitle:"Žymimosios akutės savybės",value:"Reikšmė",selected:"Pažymėtas"},form:{title:"Formos savybės",menu:"Formos savybės",action:"Veiksmas",method:"Metodas",encoding:"Kodavimas"},hidden:{title:"Nerodomo lauko savybės",name:"Vardas",value:"Reikšmė"},select:{title:"Atrankos lauko savybės", +selectInfo:"Informacija",opAvail:"Galimos parinktys",value:"Reikšmė",size:"Dydis",lines:"eilučių",chkMulti:"Leisti daugeriopą atranką",opText:"Tekstas",opValue:"Reikšmė",btnAdd:"Įtraukti",btnModify:"Modifikuoti",btnUp:"Aukštyn",btnDown:"Žemyn",btnSetValue:"Laikyti pažymėta reikšme",btnDelete:"Trinti"},textarea:{title:"Teksto srities savybės",cols:"Ilgis",rows:"Plotis"},textfield:{title:"Teksto lauko savybės",name:"Vardas",value:"Reikšmė",charWidth:"Ilgis simboliais",maxChars:"Maksimalus simbolių skaičius", +type:"Tipas",typeText:"Tekstas",typePass:"Slaptažodis",typeEmail:"El. paštas",typeSearch:"Paieška",typeTel:"Telefono numeris",typeUrl:"Nuoroda"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/lv.js new file mode 100644 index 00000000..289cd6a8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lv",{button:{title:"Pogas īpašības",text:"Teksts (vērtība)",type:"Tips",typeBtn:"Poga",typeSbm:"Nosūtīt",typeRst:"Atcelt"},checkboxAndRadio:{checkboxTitle:"Atzīmēšanas kastītes īpašības",radioTitle:"Izvēles poga īpašības",value:"Vērtība",selected:"Iezīmēts"},form:{title:"Formas īpašības",menu:"Formas īpašības",action:"Darbība",method:"Metode",encoding:"Kodējums"},hidden:{title:"Paslēptās teksta rindas īpašības",name:"Nosaukums",value:"Vērtība"},select:{title:"Iezīmēšanas lauka īpašības", +selectInfo:"Informācija",opAvail:"Pieejamās iespējas",value:"Vērtība",size:"Izmērs",lines:"rindas",chkMulti:"Atļaut vairākus iezīmējumus",opText:"Teksts",opValue:"Vērtība",btnAdd:"Pievienot",btnModify:"Veikt izmaiņas",btnUp:"Augšup",btnDown:"Lejup",btnSetValue:"Noteikt kā iezīmēto vērtību",btnDelete:"Dzēst"},textarea:{title:"Teksta laukuma īpašības",cols:"Kolonnas",rows:"Rindas"},textfield:{title:"Teksta rindas īpašības",name:"Nosaukums",value:"Vērtība",charWidth:"Simbolu platums",maxChars:"Simbolu maksimālais daudzums", +type:"Tips",typeText:"Teksts",typePass:"Parole",typeEmail:"Epasts",typeSearch:"Meklēt",typeTel:"Tālruņa numurs",typeUrl:"Adrese"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/mk.js new file mode 100644 index 00000000..84837f53 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mk",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/mn.js new file mode 100644 index 00000000..747b5eb6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mn",{button:{title:"Товчны шинж чанар",text:"Тэкст (Утга)",type:"Төрөл",typeBtn:"Товч",typeSbm:"Submit",typeRst:"Болих"},checkboxAndRadio:{checkboxTitle:"Чекбоксны шинж чанар",radioTitle:"Радио товчны шинж чанар",value:"Утга",selected:"Сонгогдсон"},form:{title:"Форм шинж чанар",menu:"Форм шинж чанар",action:"Үйлдэл",method:"Арга",encoding:"Encoding"},hidden:{title:"Нууц талбарын шинж чанар",name:"Нэр",value:"Утга"},select:{title:"Согогч талбарын шинж чанар",selectInfo:"Мэдээлэл", +opAvail:"Идвэхтэй сонголт",value:"Утга",size:"Хэмжээ",lines:"Мөр",chkMulti:"Олон зүйл зэрэг сонгохыг зөвшөөрөх",opText:"Тэкст",opValue:"Утга",btnAdd:"Нэмэх",btnModify:"Өөрчлөх",btnUp:"Дээш",btnDown:"Доош",btnSetValue:"Сонгогдсан утга оноох",btnDelete:"Устгах"},textarea:{title:"Текст орчны шинж чанар",cols:"Багана",rows:"Мөр"},textfield:{title:"Текст талбарын шинж чанар",name:"Нэр",value:"Утга",charWidth:"Тэмдэгтын өргөн",maxChars:"Хамгийн их тэмдэгт",type:"Төрөл",typeText:"Текст",typePass:"Нууц үг", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"цахим хуудасны хаяг (URL)"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ms.js new file mode 100644 index 00000000..fbf6b9f4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ms",{button:{title:"Ciri-ciri Butang",text:"Teks (Nilai)",type:"Jenis",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Ciri-ciri Checkbox",radioTitle:"Ciri-ciri Butang Radio",value:"Nilai",selected:"Dipilih"},form:{title:"Ciri-ciri Borang",menu:"Ciri-ciri Borang",action:"Tindakan borang",method:"Cara borang dihantar",encoding:"Encoding"},hidden:{title:"Ciri-ciri Field Tersembunyi",name:"Nama",value:"Nilai"},select:{title:"Ciri-ciri Selection Field", +selectInfo:"Select Info",opAvail:"Pilihan sediada",value:"Nilai",size:"Saiz",lines:"garisan",chkMulti:"Benarkan pilihan pelbagai",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah Pilihan",btnModify:"Ubah Pilihan",btnUp:"Naik ke atas",btnDown:"Turun ke bawah",btnSetValue:"Set sebagai nilai terpilih",btnDelete:"Padam"},textarea:{title:"Ciri-ciri Textarea",cols:"Lajur",rows:"Baris"},textfield:{title:"Ciri-ciri Text Field",name:"Nama",value:"Nilai",charWidth:"Lebar isian",maxChars:"Isian Maksimum",type:"Jenis", +typeText:"Teks",typePass:"Kata Laluan",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/nb.js new file mode 100644 index 00000000..5874510b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nb",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/nl.js new file mode 100644 index 00000000..5bff8285 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nl",{button:{title:"Eigenschappen knop",text:"Tekst (waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Versturen",typeRst:"Leegmaken"},checkboxAndRadio:{checkboxTitle:"Eigenschappen aanvinkvakje",radioTitle:"Eigenschappen selectievakje",value:"Waarde",selected:"Geselecteerd"},form:{title:"Eigenschappen formulier",menu:"Eigenschappen formulier",action:"Actie",method:"Methode",encoding:"Codering"},hidden:{title:"Eigenschappen verborgen veld",name:"Naam",value:"Waarde"}, +select:{title:"Eigenschappen selectieveld",selectInfo:"Informatie",opAvail:"Beschikbare opties",value:"Waarde",size:"Grootte",lines:"Regels",chkMulti:"Gecombineerde selecties toestaan",opText:"Tekst",opValue:"Waarde",btnAdd:"Toevoegen",btnModify:"Wijzigen",btnUp:"Omhoog",btnDown:"Omlaag",btnSetValue:"Als geselecteerde waarde instellen",btnDelete:"Verwijderen"},textarea:{title:"Eigenschappen tekstvak",cols:"Kolommen",rows:"Rijen"},textfield:{title:"Eigenschappen tekstveld",name:"Naam",value:"Waarde", +charWidth:"Breedte (tekens)",maxChars:"Maximum aantal tekens",type:"Soort",typeText:"Tekst",typePass:"Wachtwoord",typeEmail:"E-mail",typeSearch:"Zoeken",typeTel:"Telefoonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/no.js new file mode 100644 index 00000000..07e20c4f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","no",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pl.js new file mode 100644 index 00000000..8577d620 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pl",{button:{title:"Właściwości przycisku",text:"Tekst (Wartość)",type:"Typ",typeBtn:"Przycisk",typeSbm:"Wyślij",typeRst:"Wyczyść"},checkboxAndRadio:{checkboxTitle:"Właściwości pola wyboru (checkbox)",radioTitle:"Właściwości przycisku opcji (radio)",value:"Wartość",selected:"Zaznaczone"},form:{title:"Właściwości formularza",menu:"Właściwości formularza",action:"Akcja",method:"Metoda",encoding:"Kodowanie"},hidden:{title:"Właściwości pola ukrytego",name:"Nazwa",value:"Wartość"}, +select:{title:"Właściwości listy wyboru",selectInfo:"Informacje",opAvail:"Dostępne opcje",value:"Wartość",size:"Rozmiar",lines:"wierszy",chkMulti:"Wielokrotny wybór",opText:"Tekst",opValue:"Wartość",btnAdd:"Dodaj",btnModify:"Zmień",btnUp:"Do góry",btnDown:"Do dołu",btnSetValue:"Ustaw jako zaznaczoną",btnDelete:"Usuń"},textarea:{title:"Właściwości obszaru tekstowego",cols:"Liczba kolumn",rows:"Liczba wierszy"},textfield:{title:"Właściwości pola tekstowego",name:"Nazwa",value:"Wartość",charWidth:"Szerokość w znakach", +maxChars:"Szerokość maksymalna",type:"Typ",typeText:"Tekst",typePass:"Hasło",typeEmail:"Email",typeSearch:"Szukaj",typeTel:"Numer telefonu",typeUrl:"Adres URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pt-br.js new file mode 100644 index 00000000..1fe748a5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt-br",{button:{title:"Formatar Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botão",typeSbm:"Enviar",typeRst:"Limpar"},checkboxAndRadio:{checkboxTitle:"Formatar Caixa de Seleção",radioTitle:"Formatar Botão de Opção",value:"Valor",selected:"Selecionado"},form:{title:"Formatar Formulário",menu:"Formatar Formulário",action:"Ação",method:"Método",encoding:"Codificação"},hidden:{title:"Formatar Campo Oculto",name:"Nome",value:"Valor"},select:{title:"Formatar Caixa de Listagem", +selectInfo:"Informações",opAvail:"Opções disponíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir múltiplas seleções",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir como selecionado",btnDelete:"Remover"},textarea:{title:"Formatar Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Formatar Caixa de Texto",name:"Nome",value:"Valor",charWidth:"Comprimento (em caracteres)",maxChars:"Número Máximo de Caracteres", +type:"Tipo",typeText:"Texto",typePass:"Senha",typeEmail:"Email",typeSearch:"Busca",typeTel:"Número de Telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pt.js new file mode 100644 index 00000000..7958d629 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt",{button:{title:"Propriedades do Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Propriedades da Caixa de Verificação",radioTitle:"Propriedades do Botão de Opção",value:"Valor",selected:"Seleccionado"},form:{title:"Propriedades do Formulário",menu:"Propriedades do Formulário",action:"Acção",method:"Método",encoding:"Encoding"},hidden:{title:"Propriedades do Campo Escondido",name:"Nome", +value:"Valor"},select:{title:"Propriedades da Caixa de Combinação",selectInfo:"Informação",opAvail:"Opções Possíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir selecções múltiplas",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir um valor por defeito",btnDelete:"Apagar"},textarea:{title:"Propriedades da Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Propriedades do Campo de Texto", +name:"Nome",value:"Valor",charWidth:"Tamanho do caracter",maxChars:"Nr. Máximo de Caracteres",type:"Tipo",typeText:"Texto",typePass:"Palavra-chave",typeEmail:"Email",typeSearch:"Pesquisar",typeTel:"Numero de telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ro.js new file mode 100644 index 00000000..0db618b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ro",{button:{title:"Proprietăţi buton",text:"Text (Valoare)",type:"Tip",typeBtn:"Buton",typeSbm:"Trimite",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Proprietăţi bifă (Checkbox)",radioTitle:"Proprietăţi buton radio (Radio Button)",value:"Valoare",selected:"Selectat"},form:{title:"Proprietăţi formular (Form)",menu:"Proprietăţi formular (Form)",action:"Acţiune",method:"Metodă",encoding:"Encodare"},hidden:{title:"Proprietăţi câmp ascuns (Hidden Field)",name:"Nume", +value:"Valoare"},select:{title:"Proprietăţi câmp selecţie (Selection Field)",selectInfo:"Informaţii",opAvail:"Opţiuni disponibile",value:"Valoare",size:"Mărime",lines:"linii",chkMulti:"Permite selecţii multiple",opText:"Text",opValue:"Valoare",btnAdd:"Adaugă",btnModify:"Modifică",btnUp:"Sus",btnDown:"Jos",btnSetValue:"Setează ca valoare selectată",btnDelete:"Şterge"},textarea:{title:"Proprietăţi suprafaţă text (Textarea)",cols:"Coloane",rows:"Linii"},textfield:{title:"Proprietăţi câmp text (Text Field)", +name:"Nume",value:"Valoare",charWidth:"Lărgimea caracterului",maxChars:"Caractere maxime",type:"Tip",typeText:"Text",typePass:"Parolă",typeEmail:"Email",typeSearch:"Cauta",typeTel:"Numar de telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ru.js new file mode 100644 index 00000000..534eb497 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ru",{button:{title:"Свойства кнопки",text:"Текст (Значение)",type:"Тип",typeBtn:"Кнопка",typeSbm:"Отправка",typeRst:"Сброс"},checkboxAndRadio:{checkboxTitle:"Свойства флаговой кнопки",radioTitle:"Свойства кнопки выбора",value:"Значение",selected:"Выбрано"},form:{title:"Свойства формы",menu:"Свойства формы",action:"Действие",method:"Метод",encoding:"Кодировка"},hidden:{title:"Свойства скрытого поля",name:"Имя",value:"Значение"},select:{title:"Свойства списка выбора", +selectInfo:"Информация о списке выбора",opAvail:"Доступные варианты",value:"Значение",size:"Размер",lines:"строк(и)",chkMulti:"Разрешить выбор нескольких вариантов",opText:"Текст",opValue:"Значение",btnAdd:"Добавить",btnModify:"Изменить",btnUp:"Поднять",btnDown:"Опустить",btnSetValue:"Пометить как выбранное",btnDelete:"Удалить"},textarea:{title:"Свойства многострочного текстового поля",cols:"Колонок",rows:"Строк"},textfield:{title:"Свойства текстового поля",name:"Имя",value:"Значение",charWidth:"Ширина поля (в символах)", +maxChars:"Макс. количество символов",type:"Тип содержимого",typeText:"Текст",typePass:"Пароль",typeEmail:"Email",typeSearch:"Поиск",typeTel:"Номер телефона",typeUrl:"Ссылка"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/si.js new file mode 100644 index 00000000..ab61582f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/si.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","si",{button:{title:"බොත්තම් ගුණ",text:"වගන්තිය(වටිනාකම)",type:"වර්ගය",typeBtn:"බොත්තම",typeSbm:"යොමුකරනවා",typeRst:"නැවත ආරම්භකතත්වයට පත් කරනවා"},checkboxAndRadio:{checkboxTitle:"ලකුණු කිරීමේ කොටුවේ ලක්ෂණ",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"පෝරමයේ ",menu:"පෝරමයේ ගුණ/",action:"ගන්නා පියවර",method:"ක්‍රමය",encoding:"කේතීකරණය"},hidden:{title:"සැඟවුණු ප්‍රදේශයේ ",name:"නම",value:"Value"},select:{title:"තේරීම් ප්‍රදේශයේ ", +selectInfo:"විස්තර තෝරන්න",opAvail:"ඉතුරුවී ඇති වීකල්ප",value:"Value",size:"විශාලත්වය",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"මකා දැම්ම"},textarea:{title:"Textarea Properties",cols:"සිරස් ",rows:"Rows"},textfield:{title:"Text Field Properties",name:"නම",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"වර්ගය",typeText:"Text", +typePass:"Password",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sk.js new file mode 100644 index 00000000..218b6274 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sk",{button:{title:"Vlastnosti tlačidla",text:"Text (Hodnota)",type:"Typ",typeBtn:"Tlačidlo",typeSbm:"Odoslať",typeRst:"Resetovať"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacieho políčka",radioTitle:"Vlastnosti prepínača (radio button)",value:"Hodnota",selected:"Vybrané (selected)"},form:{title:"Vlastnosti formulára",menu:"Vlastnosti formulára",action:"Akcia (action)",method:"Metóda (method)",encoding:"Kódovanie (encoding)"},hidden:{title:"Vlastnosti skrytého poľa", +name:"Názov (name)",value:"Hodnota"},select:{title:"Vlastnosti rozbaľovacieho zoznamu",selectInfo:"Informácie o výbere",opAvail:"Dostupné možnosti",value:"Hodnota",size:"Veľkosť",lines:"riadkov",chkMulti:"Povoliť viacnásobný výber",opText:"Text",opValue:"Hodnota",btnAdd:"Pridať",btnModify:"Upraviť",btnUp:"Hore",btnDown:"Dole",btnSetValue:"Nastaviť ako vybranú hodnotu",btnDelete:"Vymazať"},textarea:{title:"Vlastnosti textovej oblasti (textarea)",cols:"Stĺpcov",rows:"Riadkov"},textfield:{title:"Vlastnosti textového poľa", +name:"Názov (name)",value:"Hodnota",charWidth:"Šírka poľa (podľa znakov)",maxChars:"Maximálny počet znakov",type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hľadať",typeTel:"Telefónne číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sl.js new file mode 100644 index 00000000..ad3bc43f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sl",{button:{title:"Lastnosti gumba",text:"Besedilo (Vrednost)",type:"Tip",typeBtn:"Gumb",typeSbm:"Potrdi",typeRst:"Ponastavi"},checkboxAndRadio:{checkboxTitle:"Lastnosti potrditvenega polja",radioTitle:"Lastnosti izbirnega polja",value:"Vrednost",selected:"Izbrano"},form:{title:"Lastnosti obrazca",menu:"Lastnosti obrazca",action:"Akcija",method:"Metoda",encoding:"Kodiranje znakov"},hidden:{title:"Lastnosti skritega polja",name:"Ime",value:"Vrednost"},select:{title:"Lastnosti spustnega seznama", +selectInfo:"Podatki",opAvail:"Razpoložljive izbire",value:"Vrednost",size:"Velikost",lines:"vrstic",chkMulti:"Dovoli izbor večih vrstic",opText:"Besedilo",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Spremeni",btnUp:"Gor",btnDown:"Dol",btnSetValue:"Postavi kot privzeto izbiro",btnDelete:"Izbriši"},textarea:{title:"Lastnosti vnosnega območja",cols:"Stolpcev",rows:"Vrstic"},textfield:{title:"Lastnosti vnosnega polja",name:"Ime",value:"Vrednost",charWidth:"Dolžina",maxChars:"Največje število znakov", +type:"Tip",typeText:"Besedilo",typePass:"Geslo",typeEmail:"E-pošta",typeSearch:"Iskanje",typeTel:"Telefonska Številka",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sq.js new file mode 100644 index 00000000..a8c45b47 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sq",{button:{title:"Rekuizitat e Pullës",text:"Teskti (Vlera)",type:"LLoji",typeBtn:"Buton",typeSbm:"Dërgo",typeRst:"Rikthe"},checkboxAndRadio:{checkboxTitle:"Rekuizitat e Kutizë Përzgjedhëse",radioTitle:"Rekuizitat e Pullës",value:"Vlera",selected:"Përzgjedhur"},form:{title:"Rekuizitat e Formës",menu:"Rekuizitat e Formës",action:"Veprim",method:"Metoda",encoding:"Kodimi"},hidden:{title:"Rekuizitat e Fushës së Fshehur",name:"Emër",value:"Vlera"},select:{title:"Rekuizitat e Fushës së Përzgjedhur", +selectInfo:"Përzgjidh Informacionin",opAvail:"Opsionet e Mundshme",value:"Vlera",size:"Madhësia",lines:"rreshtat",chkMulti:"Lejo përzgjidhje të shumëfishta",opText:"Teksti",opValue:"Vlera",btnAdd:"Vendos",btnModify:"Ndrysho",btnUp:"Sipër",btnDown:"Poshtë",btnSetValue:"Bëje si vlerë të përzgjedhur",btnDelete:"Grise"},textarea:{title:"Rekuzitat e Fushës së Tekstit",cols:"Kolonat",rows:"Rreshtat"},textfield:{title:"Rekuizitat e Fushës së Tekstit",name:"Emër",value:"Vlera",charWidth:"Gjerësia e Karakterit", +maxChars:"Numri maksimal i karaktereve",type:"LLoji",typeText:"Teksti",typePass:"Fjalëkalimi",typeEmail:"Posta Elektronike",typeSearch:"Kërko",typeTel:"Numri i Telefonit",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sr-latn.js new file mode 100644 index 00000000..af31d088 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr-latn",{button:{title:"Osobine dugmeta",text:"Tekst (vrednost)",type:"Tip",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Osobine polja za potvrdu",radioTitle:"Osobine radio-dugmeta",value:"Vrednost",selected:"Označeno"},form:{title:"Osobine forme",menu:"Osobine forme",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Osobine skrivenog polja",name:"Naziv",value:"Vrednost"},select:{title:"Osobine izbornog polja", +selectInfo:"Info",opAvail:"Dostupne opcije",value:"Vrednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruku selekciju",opText:"Tekst",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Izmeni",btnUp:"Gore",btnDown:"Dole",btnSetValue:"Podesi kao označenu vrednost",btnDelete:"Obriši"},textarea:{title:"Osobine zone teksta",cols:"Broj kolona",rows:"Broj redova"},textfield:{title:"Osobine tekstualnog polja",name:"Naziv",value:"Vrednost",charWidth:"Širina (karaktera)",maxChars:"Maksimalno karaktera", +type:"Tip",typeText:"Tekst",typePass:"Lozinka",typeEmail:"Email",typeSearch:"Pretraži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sr.js new file mode 100644 index 00000000..74d46b2d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr",{button:{title:"Особине дугмета",text:"Текст (вредност)",type:"Tип",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Особине поља за потврду",radioTitle:"Особине радио-дугмета",value:"Вредност",selected:"Означено"},form:{title:"Особине форме",menu:"Особине форме",action:"Aкција",method:"Mетода",encoding:"Encoding"},hidden:{title:"Особине скривеног поља",name:"Назив",value:"Вредност"},select:{title:"Особине изборног поља",selectInfo:"Инфо", +opAvail:"Доступне опције",value:"Вредност",size:"Величина",lines:"линија",chkMulti:"Дозволи вишеструку селекцију",opText:"Текст",opValue:"Вредност",btnAdd:"Додај",btnModify:"Измени",btnUp:"Горе",btnDown:"Доле",btnSetValue:"Подеси као означену вредност",btnDelete:"Обриши"},textarea:{title:"Особине зоне текста",cols:"Број колона",rows:"Број редова"},textfield:{title:"Особине текстуалног поља",name:"Назив",value:"Вредност",charWidth:"Ширина (карактера)",maxChars:"Максимално карактера",type:"Тип",typeText:"Текст", +typePass:"Лозинка",typeEmail:"Е-пошта",typeSearch:"Претрага",typeTel:"Број телефона",typeUrl:"УРЛ"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sv.js new file mode 100644 index 00000000..b03b381d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sv",{button:{title:"Egenskaper för knapp",text:"Text (värde)",type:"Typ",typeBtn:"Knapp",typeSbm:"Skicka",typeRst:"Återställ"},checkboxAndRadio:{checkboxTitle:"Egenskaper för kryssruta",radioTitle:"Egenskaper för alternativknapp",value:"Värde",selected:"Vald"},form:{title:"Egenskaper för formulär",menu:"Egenskaper för formulär",action:"Funktion",method:"Metod",encoding:"Kodning"},hidden:{title:"Egenskaper för dolt fält",name:"Namn",value:"Värde"},select:{title:"Egenskaper för flervalslista", +selectInfo:"Information",opAvail:"Befintliga val",value:"Värde",size:"Storlek",lines:"Linjer",chkMulti:"Tillåt flerval",opText:"Text",opValue:"Värde",btnAdd:"Lägg till",btnModify:"Redigera",btnUp:"Upp",btnDown:"Ner",btnSetValue:"Markera som valt värde",btnDelete:"Radera"},textarea:{title:"Egenskaper för textruta",cols:"Kolumner",rows:"Rader"},textfield:{title:"Egenskaper för textfält",name:"Namn",value:"Värde",charWidth:"Teckenbredd",maxChars:"Max antal tecken",type:"Typ",typeText:"Text",typePass:"Lösenord", +typeEmail:"E-post",typeSearch:"Sök",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/th.js new file mode 100644 index 00000000..e9337498 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","th",{button:{title:"รายละเอียดของ ปุ่ม",text:"ข้อความ (ค่าตัวแปร)",type:"ข้อความ",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"คุณสมบัติของ เช็คบ๊อก",radioTitle:"คุณสมบัติของ เรดิโอบัตตอน",value:"ค่าตัวแปร",selected:"เลือกเป็นค่าเริ่มต้น"},form:{title:"คุณสมบัติของ แบบฟอร์ม",menu:"คุณสมบัติของ แบบฟอร์ม",action:"แอคชั่น",method:"เมธอด",encoding:"Encoding"},hidden:{title:"คุณสมบัติของ ฮิดเดนฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร"}, +select:{title:"คุณสมบัติของ แถบตัวเลือก",selectInfo:"อินโฟ",opAvail:"รายการตัวเลือก",value:"ค่าตัวแปร",size:"ขนาด",lines:"บรรทัด",chkMulti:"เลือกหลายค่าได้",opText:"ข้อความ",opValue:"ค่าตัวแปร",btnAdd:"เพิ่ม",btnModify:"แก้ไข",btnUp:"บน",btnDown:"ล่าง",btnSetValue:"เลือกเป็นค่าเริ่มต้น",btnDelete:"ลบ"},textarea:{title:"คุณสมบัติของ เท็กแอเรีย",cols:"สดมภ์",rows:"แถว"},textfield:{title:"คุณสมบัติของ เท็กซ์ฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร",charWidth:"ความกว้าง",maxChars:"จำนวนตัวอักษรสูงสุด",type:"ชนิด", +typeText:"ข้อความ",typePass:"รหัสผ่าน",typeEmail:"อีเมล",typeSearch:"ค้นหาก",typeTel:"หมายเลขโทรศัพท์",typeUrl:"ที่อยู่อ้างอิง URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/tr.js new file mode 100644 index 00000000..3710d318 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tr",{button:{title:"Düğme Özellikleri",text:"Metin (Değer)",type:"Tip",typeBtn:"Düğme",typeSbm:"Gönder",typeRst:"Sıfırla"},checkboxAndRadio:{checkboxTitle:"Onay Kutusu Özellikleri",radioTitle:"Seçenek Düğmesi Özellikleri",value:"Değer",selected:"Seçili"},form:{title:"Form Özellikleri",menu:"Form Özellikleri",action:"İşlem",method:"Yöntem",encoding:"Kodlama"},hidden:{title:"Gizli Veri Özellikleri",name:"Ad",value:"Değer"},select:{title:"Seçim Menüsü Özellikleri",selectInfo:"Bilgi", +opAvail:"Mevcut Seçenekler",value:"Değer",size:"Boyut",lines:"satır",chkMulti:"Çoklu seçime izin ver",opText:"Metin",opValue:"Değer",btnAdd:"Ekle",btnModify:"Düzenle",btnUp:"Yukarı",btnDown:"Aşağı",btnSetValue:"Seçili değer olarak ata",btnDelete:"Sil"},textarea:{title:"Çok Satırlı Metin Özellikleri",cols:"Sütunlar",rows:"Satırlar"},textfield:{title:"Metin Girişi Özellikleri",name:"Ad",value:"Değer",charWidth:"Karakter Genişliği",maxChars:"En Fazla Karakter",type:"Tür",typeText:"Metin",typePass:"Şifre", +typeEmail:"E-posta",typeSearch:"Ara",typeTel:"Telefon Numarası",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/tt.js new file mode 100644 index 00000000..2242a407 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tt",{button:{title:"Төймә үзлекләре",text:"Text (Value)",type:"Төр",typeBtn:"Төймә",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Сайланган"},form:{title:"Форма үзлекләре",menu:"Форма үзлекләре",action:"Гамәл",method:"Ысул",encoding:"Кодировка"},hidden:{title:"Яшерен кыр үзлекләре",name:"Исем",value:"Күләм"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Күләм",size:"Зурлык",lines:"юллар",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Күләм",btnAdd:"Кушу",btnModify:"Үзгәртү",btnUp:"Өскә",btnDown:"Аска",btnSetValue:"Set as selected value",btnDelete:"Бетерү"},textarea:{title:"Текст мәйданы үзлекләре",cols:"Баганалар",rows:"Юллар"},textfield:{title:"Текст кыры үзлекләре",name:"Исем",value:"Күләм",charWidth:"Символлар киңлеге",maxChars:"Maximum Characters",type:"Төр",typeText:"Текст",typePass:"Сер сүз", +typeEmail:"Эл. почта",typeSearch:"Эзләү",typeTel:"Телефон номеры",typeUrl:"Сылталама"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ug.js new file mode 100644 index 00000000..9ff3eeeb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ug",{button:{title:"توپچا خاسلىقى",text:"بەلگە (قىممەت)",type:"تىپى",typeBtn:"توپچا",typeSbm:"تاپشۇر",typeRst:"ئەسلىگە قايتۇر"},checkboxAndRadio:{checkboxTitle:"كۆپ تاللاش خاسلىقى",radioTitle:"تاق تاللاش توپچا خاسلىقى",value:"تاللىغان قىممەت",selected:"تاللانغان"},form:{title:"جەدۋەل خاسلىقى",menu:"جەدۋەل خاسلىقى",action:"مەشغۇلات",method:"ئۇسۇل",encoding:"جەدۋەل كودلىنىشى"},hidden:{title:"يوشۇرۇن دائىرە خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى"},select:{title:"جەدۋەل/تىزىم خاسلىقى", +selectInfo:"ئۇچۇر تاللاڭ",opAvail:"تاللاش تۈرلىرى",value:"قىممەت",size:"ئېگىزلىكى",lines:"قۇر",chkMulti:"كۆپ تاللاشچان",opText:"تاللانما تېكىستى",opValue:"تاللانما قىممىتى",btnAdd:"قوش",btnModify:"ئۆزگەرت",btnUp:"ئۈستىگە",btnDown:"ئاستىغا",btnSetValue:"دەسلەپكى تاللانما قىممىتىگە تەڭشە",btnDelete:"ئۆچۈر"},textarea:{title:" كۆپ قۇرلۇق تېكىست خاسلىقى",cols:"ھەرپ كەڭلىكى",rows:"قۇر سانى"},textfield:{title:"تاق قۇرلۇق تېكىست خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى",charWidth:"ھەرپ كەڭلىكى",maxChars:"ئەڭ كۆپ ھەرپ سانى", +type:"تىپى",typeText:"تېكىست",typePass:"ئىم",typeEmail:"تورخەت",typeSearch:"ئىزدە",typeTel:"تېلېفون نومۇر",typeUrl:"ئادرېس"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/uk.js new file mode 100644 index 00000000..317d57f5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","uk",{button:{title:"Властивості кнопки",text:"Значення",type:"Тип",typeBtn:"Кнопка (button)",typeSbm:"Надіслати (submit)",typeRst:"Очистити (reset)"},checkboxAndRadio:{checkboxTitle:"Властивості галочки",radioTitle:"Властивості кнопки вибору",value:"Значення",selected:"Обрана"},form:{title:"Властивості форми",menu:"Властивості форми",action:"Дія",method:"Метод",encoding:"Кодування"},hidden:{title:"Властивості прихованого поля",name:"Ім'я",value:"Значення"},select:{title:"Властивості списку", +selectInfo:"Інфо",opAvail:"Доступні варіанти",value:"Значення",size:"Кількість",lines:"видимих позицій у списку",chkMulti:"Список з мультивибором",opText:"Текст",opValue:"Значення",btnAdd:"Добавити",btnModify:"Змінити",btnUp:"Вгору",btnDown:"Вниз",btnSetValue:"Встановити як обране значення",btnDelete:"Видалити"},textarea:{title:"Властивості текстової області",cols:"Стовбці",rows:"Рядки"},textfield:{title:"Властивості текстового поля",name:"Ім'я",value:"Значення",charWidth:"Ширина",maxChars:"Макс. к-ть символів", +type:"Тип",typeText:"Текст",typePass:"Пароль",typeEmail:"Пошта",typeSearch:"Пошук",typeTel:"Мобільний",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/vi.js new file mode 100644 index 00000000..a02d09c7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","vi",{button:{title:"Thuộc tính của nút",text:"Chuỗi hiển thị (giá trị)",type:"Kiểu",typeBtn:"Nút bấm",typeSbm:"Nút gửi",typeRst:"Nút nhập lại"},checkboxAndRadio:{checkboxTitle:"Thuộc tính nút kiểm",radioTitle:"Thuộc tính nút chọn",value:"Giá trị",selected:"Được chọn"},form:{title:"Thuộc tính biểu mẫu",menu:"Thuộc tính biểu mẫu",action:"Hành động",method:"Phương thức",encoding:"Bảng mã"},hidden:{title:"Thuộc tính trường ẩn",name:"Tên",value:"Giá trị"},select:{title:"Thuộc tính ô chọn", +selectInfo:"Thông tin",opAvail:"Các tùy chọn có thể sử dụng",value:"Giá trị",size:"Kích cỡ",lines:"dòng",chkMulti:"Cho phép chọn nhiều",opText:"Văn bản",opValue:"Giá trị",btnAdd:"Thêm",btnModify:"Thay đổi",btnUp:"Lên",btnDown:"Xuống",btnSetValue:"Giá trị được chọn",btnDelete:"Nút xoá"},textarea:{title:"Thuộc tính vùng văn bản",cols:"Số cột",rows:"Số hàng"},textfield:{title:"Thuộc tính trường văn bản",name:"Tên",value:"Giá trị",charWidth:"Độ rộng của ký tự",maxChars:"Số ký tự tối đa",type:"Kiểu",typeText:"Ký tự", +typePass:"Mật khẩu",typeEmail:"Email",typeSearch:"Tìm kiếm",typeTel:"Số điện thoại",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/zh-cn.js new file mode 100644 index 00000000..3c7ea105 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh-cn",{button:{title:"按钮属性",text:"标签(值)",type:"类型",typeBtn:"按钮",typeSbm:"提交",typeRst:"重设"},checkboxAndRadio:{checkboxTitle:"复选框属性",radioTitle:"单选按钮属性",value:"选定值",selected:"已勾选"},form:{title:"表单属性",menu:"表单属性",action:"动作",method:"方法",encoding:"表单编码"},hidden:{title:"隐藏域属性",name:"名称",value:"初始值"},select:{title:"菜单/列表属性",selectInfo:"选择信息",opAvail:"可选项",value:"值",size:"高度",lines:"行",chkMulti:"允许多选",opText:"选项文本",opValue:"选项值",btnAdd:"添加",btnModify:"修改",btnUp:"上移",btnDown:"下移", +btnSetValue:"设为初始选定",btnDelete:"删除"},textarea:{title:"多行文本属性",cols:"字符宽度",rows:"行数"},textfield:{title:"单行文本属性",name:"名称",value:"初始值",charWidth:"字符宽度",maxChars:"最多字符数",type:"类型",typeText:"文本",typePass:"密码",typeEmail:"Email",typeSearch:"搜索",typeTel:"电话号码",typeUrl:"地址"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/zh.js new file mode 100644 index 00000000..4eec674e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh",{button:{title:"按鈕內容",text:"顯示文字 (值)",type:"類型",typeBtn:"按鈕",typeSbm:"送出",typeRst:"重設"},checkboxAndRadio:{checkboxTitle:"核取方塊內容",radioTitle:"選項按鈕內容",value:"數值",selected:"已選"},form:{title:"表單內容",menu:"表單內容",action:"動作",method:"方式",encoding:"編碼"},hidden:{title:"隱藏欄位內容",name:"名稱",value:"數值"},select:{title:"選取欄位內容",selectInfo:"選擇資訊",opAvail:"可用選項",value:"數值",size:"大小",lines:"行數",chkMulti:"允許多選",opText:"文字",opValue:"數值",btnAdd:"新增",btnModify:"修改",btnUp:"向上",btnDown:"向下", +btnSetValue:"設為已選",btnDelete:"刪除"},textarea:{title:"文字區域內容",cols:"列",rows:"行"},textfield:{title:"文字欄位內容",name:"名字",value:"數值",charWidth:"字元寬度",maxChars:"最大字元數",type:"類型",typeText:"文字",typePass:"密碼",typeEmail:"電子郵件",typeSearch:"搜尋",typeTel:"電話號碼",typeUrl:"URL"}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/forms/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/forms/plugin.js new file mode 100644 index 00000000..5a1ffae7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/forms/plugin.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"button,checkbox,form,hiddenfield,imagebutton,radio,select,select-rtl,textarea,textarea-rtl,textfield",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n"); +CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(a){var b=a.lang,g=0,h={email:1,password:1,search:1,tel:1,text:1,url:1},j={checkbox:"input[type,name,checked]",radio:"input[type,name,checked]",textfield:"input[type,name,value,size,maxlength]",textarea:"textarea[cols,rows,name]",select:"select[name,size,multiple]; option[value,selected]", +button:"input[type,name,value]",form:"form[action,name,id,enctype,target,method]",hiddenfield:"input[type,name,value]",imagebutton:"input[type,alt,src]{width,height,border,border-width,border-style,margin,float}"},k={checkbox:"input",radio:"input",textfield:"input",textarea:"textarea",select:"select",button:"input",form:"form",hiddenfield:"input",imagebutton:"input"},e=function(d,c,e){var h={allowedContent:j[c],requiredContent:k[c]};"form"==c&&(h.context="form");a.addCommand(c,new CKEDITOR.dialogCommand(c, +h));a.ui.addButton&&a.ui.addButton(d,{label:b.common[d.charAt(0).toLowerCase()+d.slice(1)],command:c,toolbar:"forms,"+(g+=10)});CKEDITOR.dialog.add(c,e)},f=this.path+"dialogs/";!a.blockless&&e("Form","form",f+"form.js");e("Checkbox","checkbox",f+"checkbox.js");e("Radio","radio",f+"radio.js");e("TextField","textfield",f+"textfield.js");e("Textarea","textarea",f+"textarea.js");e("Select","select",f+"select.js");e("Button","button",f+"button.js");var i=a.plugins.image;i&&!a.plugins.image2&&e("ImageButton", +"imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");e("HiddenField","hiddenfield",f+"hiddenfield.js");a.addMenuItems&&(e={checkbox:{label:b.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:b.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:b.forms.textfield.title,command:"textfield",group:"textfield"},hiddenfield:{label:b.forms.hidden.title,command:"hiddenfield",group:"hiddenfield"},button:{label:b.forms.button.title, +command:"button",group:"button"},select:{label:b.forms.select.title,command:"select",group:"select"},textarea:{label:b.forms.textarea.title,command:"textarea",group:"textarea"}},i&&(e.imagebutton={label:b.image.titleButton,command:"imagebutton",group:"imagebutton"}),!a.blockless&&(e.form={label:b.forms.form.menu,command:"form",group:"form"}),a.addMenuItems(e));a.contextMenu&&(!a.blockless&&a.contextMenu.addListener(function(d,c,a){if((d=a.contains("form",1))&&!d.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}), +a.contextMenu.addListener(function(d){if(d&&!d.isReadOnly()){var c=d.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var a=d.getAttribute("type")||"text";switch(a){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};case "radio":return{radio:CKEDITOR.TRISTATE_OFF};case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[a])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c== +"img"&&d.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));a.on("doubleclick",function(d){var c=d.data.element;if(!a.blockless&&c.is("form"))d.data.dialog="form";else if(c.is("select"))d.data.dialog="select";else if(c.is("textarea"))d.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")=="hiddenfield")d.data.dialog="hiddenfield";else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":d.data.dialog= +"button";break;case "checkbox":d.data.dialog="checkbox";break;case "radio":d.data.dialog="radio";break;case "image":d.data.dialog="imagebutton"}if(h[c])d.data.dialog="textfield"}})},afterInit:function(a){var b=a.dataProcessor,g=b&&b.htmlFilter,b=b&&b.dataFilter;CKEDITOR.env.ie&&g&&g.addRules({elements:{input:function(a){var a=a.attributes,b=a.type;b||(a.type="text");("checkbox"==b||"radio"==b)&&"on"==a.value&&delete a.value}}},{applyToAll:!0});b&&b.addRules({elements:{input:function(b){if("hidden"== +b.attributes.type)return a.createFakeParserElement(b,"cke_hidden","hiddenfield")}}},{applyToAll:!0})}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/icons.png b/platforms/browser/www/lib/ckeditor/plugins/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/icons.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/icons_hidpi.png b/platforms/browser/www/lib/ckeditor/plugins/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/icons_hidpi.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js new file mode 100644 index 00000000..dba1e930 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}}; +CKEDITOR.dialog.add("iframe",function(b){var f=b.lang.iframe,a=b.lang.common,e=b.plugins.dialogadvtab;return{title:f.title,minWidth:350,minHeight:260,onShow:function(){this.fakeImage=this.iframeNode=null;var a=this.getSelectedElement();a&&(a.data("cke-real-element-type")&&"iframe"==a.data("cke-real-element-type"))&&(this.fakeImage=a,this.iframeNode=a=b.restoreRealElement(a),this.setupContent(a))},onOk:function(){var a;a=this.fakeImage?this.iframeNode:new CKEDITOR.dom.element("iframe");var c={},d= +{};this.commitContent(a,c,d);a=b.createFakeElement(a,"cke_iframe","iframe",!0);a.setAttributes(d);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),b.getSelection().selectElement(a)):b.insertElement(a)},contents:[{id:"info",label:a.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{id:"src",type:"text",label:a.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(f.noUrl),setup:c,commit:d}]},{type:"hbox",children:[{id:"width",type:"text",requiredContent:"iframe[width]", +style:"width:100%",labelLayout:"vertical",label:a.width,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.width)),setup:c,commit:d},{id:"height",type:"text",requiredContent:"iframe[height]",style:"width:100%",labelLayout:"vertical",label:a.height,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.height)),setup:c,commit:d},{id:"align",type:"select",requiredContent:"iframe[align]","default":"",items:[[a.notSet,""],[a.alignLeft,"left"],[a.alignRight, +"right"],[a.alignTop,"top"],[a.alignMiddle,"middle"],[a.alignBottom,"bottom"]],style:"width:100%",labelLayout:"vertical",label:a.align,setup:function(a,b){c.apply(this,arguments);if(b){var d=b.getAttribute("align");this.setValue(d&&d.toLowerCase()||"")}},commit:function(a,b,c){d.apply(this,arguments);this.getValue()&&(c.align=this.getValue())}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"scrolling",type:"checkbox",requiredContent:"iframe[scrolling]",label:f.scrolling,setup:c,commit:d},{id:"frameborder", +type:"checkbox",requiredContent:"iframe[frameborder]",label:f.border,setup:c,commit:d}]},{type:"hbox",widths:["50%","50%"],children:[{id:"name",type:"text",requiredContent:"iframe[name]",label:a.name,setup:c,commit:d},{id:"title",type:"text",requiredContent:"iframe[title]",label:a.advisoryTitle,setup:c,commit:d}]},{id:"longdesc",type:"text",requiredContent:"iframe[longdesc]",label:a.longDescr,setup:c,commit:d}]},e&&e.createAdvancedTab(b,{id:1,classes:1,styles:1},"iframe")]}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png b/platforms/browser/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png new file mode 100644 index 00000000..ff17604d Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/icons/iframe.png b/platforms/browser/www/lib/ckeditor/plugins/iframe/icons/iframe.png new file mode 100644 index 00000000..f72d1915 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/iframe/icons/iframe.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/images/placeholder.png b/platforms/browser/www/lib/ckeditor/plugins/iframe/images/placeholder.png new file mode 100644 index 00000000..4af09565 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/iframe/images/placeholder.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/af.js new file mode 100644 index 00000000..71eb910a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","af",{border:"Wys rand van raam",noUrl:"Gee die iframe URL",scrolling:"Skuifbalke aan",title:"IFrame Eienskappe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ar.js new file mode 100644 index 00000000..8b90f6c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ar",{border:"إظهار حدود الإطار",noUrl:"فضلا أكتب رابط الـ iframe",scrolling:"تفعيل أشرطة الإنتقال",title:"خصائص iframe",toolbar:"iframe"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bg.js new file mode 100644 index 00000000..23b9a7bc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bg",{border:"Показва рамка на карето",noUrl:"Моля въведете URL за iFrame",scrolling:"Вкл. скролбаровете",title:"IFrame настройки",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bn.js new file mode 100644 index 00000000..a7a9ee05 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bs.js new file mode 100644 index 00000000..f37043c6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bs",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ca.js new file mode 100644 index 00000000..18bddf5b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ca",{border:"Mostra la vora del marc",noUrl:"Si us plau, introdueixi la URL de l'iframe",scrolling:"Activa les barres de desplaçament",title:"Propietats de l'IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/cs.js new file mode 100644 index 00000000..37b25fb6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cs",{border:"Zobrazit okraj",noUrl:"Zadejte prosím URL obsahu pro IFrame",scrolling:"Zapnout posuvníky",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/cy.js new file mode 100644 index 00000000..f8db6041 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cy",{border:"Dangos ymyl y ffrâm",noUrl:"Rhowch URL yr iframe",scrolling:"Galluogi bariau sgrolio",title:"Priodweddau IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/da.js new file mode 100644 index 00000000..54115330 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","da",{border:"Vis kant på rammen",noUrl:"Venligst indsæt URL på iframen",scrolling:"Aktiver scrollbars",title:"Iframe egenskaber",toolbar:"Iframe"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/de.js new file mode 100644 index 00000000..2556d571 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","de",{border:"Rahmen anzeigen",noUrl:"Bitte geben Sie die IFrame-URL an",scrolling:"Rollbalken anzeigen",title:"IFrame-Eigenschaften",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/el.js new file mode 100644 index 00000000..cecba9bd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","el",{border:"Προβολή περιγράμματος πλαισίου",noUrl:"Παρακαλούμε εισάγεται το URL του iframe",scrolling:"Ενεργοποίηση μπαρών κύλισης",title:"Ιδιότητες IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-au.js new file mode 100644 index 00000000..8e2821f8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-au",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-ca.js new file mode 100644 index 00000000..c25669ed --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-ca",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-gb.js new file mode 100644 index 00000000..214388d1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-gb",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en.js new file mode 100644 index 00000000..8d1407e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/eo.js new file mode 100644 index 00000000..a1855070 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eo",{border:"Montri borderon de kadro (frame)",noUrl:"Bonvolu entajpi la retadreson de la ligilo al la enlinia kadro (IFrame)",scrolling:"Ebligi rulumskalon",title:"Atributoj de la enlinia kadro (IFrame)",toolbar:"Enlinia kadro (IFrame)"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/es.js new file mode 100644 index 00000000..89e38510 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","es",{border:"Mostrar borde del marco",noUrl:"Por favor, escriba la dirección del iframe",scrolling:"Activar barras de desplazamiento",title:"Propiedades de iframe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/et.js new file mode 100644 index 00000000..7cd5ec0d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","et",{border:"Raami äärise näitamine",noUrl:"Vali iframe URLi liik",scrolling:"Kerimisribade lubamine",title:"IFrame omadused",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/eu.js new file mode 100644 index 00000000..f8b1cff1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eu",{border:"Markoaren ertza ikusi",noUrl:"iframe-aren URLa idatzi, mesedez.",scrolling:"Korritze barrak gaitu",title:"IFrame-aren Propietateak",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fa.js new file mode 100644 index 00000000..a6bd7ee6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fa",{border:"نمایش خطوط frame",noUrl:"لطفا مسیر URL iframe را درج کنید",scrolling:"نمایش خطکشها",title:"ویژگیهای IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fi.js new file mode 100644 index 00000000..2813efb0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fi",{border:"Näytä kehyksen reunat",noUrl:"Anna IFrame-kehykselle lähdeosoite (src)",scrolling:"Näytä vierityspalkit",title:"IFrame-kehyksen ominaisuudet",toolbar:"IFrame-kehys"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fo.js new file mode 100644 index 00000000..3ec97a07 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fo",{border:"Vís frame kant",noUrl:"Vinarliga skriva URL til iframe",scrolling:"Loyv scrollbars",title:"Møguleikar fyri IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js new file mode 100644 index 00000000..1a43ea6e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr-ca",{border:"Afficher la bordure du cadre",noUrl:"Veuillez entre l'URL du IFrame",scrolling:"Activer les barres de défilement",title:"Propriétés du IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fr.js new file mode 100644 index 00000000..c5bc58cb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr",{border:"Afficher une bordure de la IFrame",noUrl:"Veuillez entrer l'adresse du lien de la IFrame",scrolling:"Permettre à la barre de défilement",title:"Propriétés de la IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/gl.js new file mode 100644 index 00000000..5326e33f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gl",{border:"Amosar o bordo do marco",noUrl:"Escriba o enderezo do iframe",scrolling:"Activar as barras de desprazamento",title:"Propiedades do iFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/gu.js new file mode 100644 index 00000000..0c6aed93 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gu",{border:"ફ્રેમ બોર્ડેર બતાવવી",noUrl:"iframe URL ટાઈપ્ કરો",scrolling:"સ્ક્રોલબાર ચાલુ કરવા",title:"IFrame વિકલ્પો",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/he.js new file mode 100644 index 00000000..4c227775 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","he",{border:"הראה מסגרת לחלון",noUrl:"יש להכניס כתובת לחלון.",scrolling:"אפשר פסי גלילה",title:"מאפייני חלון פנימי (iframe)",toolbar:"חלון פנימי (iframe)"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hi.js new file mode 100644 index 00000000..8699b826 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hi",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hr.js new file mode 100644 index 00000000..6cf8b838 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hr",{border:"Prikaži okvir IFrame-a",noUrl:"Unesite URL iframe-a",scrolling:"Omogući trake za skrolanje",title:"IFrame svojstva",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hu.js new file mode 100644 index 00000000..94bdf85e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hu",{border:"Legyen keret",noUrl:"Kérem írja be a iframe URL-t",scrolling:"Gördítősáv bekapcsolása",title:"IFrame Tulajdonságok",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/id.js new file mode 100644 index 00000000..0db9a8ee --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","id",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/is.js new file mode 100644 index 00000000..bb669e8a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","is",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/it.js new file mode 100644 index 00000000..54f33bec --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","it",{border:"Mostra il bordo",noUrl:"Inserire l'URL del campo IFrame",scrolling:"Abilita scrollbar",title:"Proprietà IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ja.js new file mode 100644 index 00000000..039c5788 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ja",{border:"フレームの枠を表示",noUrl:"iframeのURLを入力してください。",scrolling:"スクロールバーの表示を許可",title:"iFrameのプロパティ",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ka.js new file mode 100644 index 00000000..e8388990 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ka",{border:"ჩარჩოს გამოჩენა",noUrl:"აკრიფეთ iframe-ის URL",scrolling:"გადახვევის ზოლების დაშვება",title:"IFrame-ის პარამეტრები",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/km.js new file mode 100644 index 00000000..629c7831 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","km",{border:"បង្ហាញ​បន្ទាត់​ស៊ុម",noUrl:"សូម​បញ្ចូល URL របស់ iframe",scrolling:"ប្រើ​របារ​រំកិល",title:"លក្ខណៈ​សម្បត្តិ IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ko.js new file mode 100644 index 00000000..fa6bc741 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ko",{border:"프레임 테두리 표시",noUrl:"iframe 대응 URL을 입력해주세요.",scrolling:"스크롤바 사용",title:"IFrame 속성",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ku.js new file mode 100644 index 00000000..bc1ae360 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ku",{border:"نیشاندانی لاکێشه بە چوواردەوری چووارچێوە",noUrl:"تکایه ناونیشانی بەستەر بنووسه بۆ چووارچێوه",scrolling:"چالاککردنی هاتووچۆپێکردن",title:"دیالۆگی چووارچێوه",toolbar:"چووارچێوه"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/lt.js new file mode 100644 index 00000000..20dee016 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lt",{border:"Rodyti rėmelį",noUrl:"Nurodykite iframe nuorodą",scrolling:"Įjungti slankiklius",title:"IFrame nustatymai",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/lv.js new file mode 100644 index 00000000..b9db9432 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lv",{border:"Rādīt rāmi",noUrl:"Norādiet iframe adresi",scrolling:"Atļaut ritjoslas",title:"IFrame uzstādījumi",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/mk.js new file mode 100644 index 00000000..a4dbb236 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mk",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/mn.js new file mode 100644 index 00000000..f45cf054 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ms.js new file mode 100644 index 00000000..8ff5bc1b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ms",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/nb.js new file mode 100644 index 00000000..ec65e337 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nb",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/nl.js new file mode 100644 index 00000000..348ee0ec --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nl",{border:"Framerand tonen",noUrl:"Vul de IFrame URL in",scrolling:"Scrollbalken inschakelen",title:"IFrame-eigenschappen",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/no.js new file mode 100644 index 00000000..04a9241d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","no",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pl.js new file mode 100644 index 00000000..d0859990 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pl",{border:"Pokaż obramowanie obiektu IFrame",noUrl:"Podaj adres URL elementu IFrame",scrolling:"Włącz paski przewijania",title:"Właściwości elementu IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pt-br.js new file mode 100644 index 00000000..67100264 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt-br",{border:"Mostra borda do iframe",noUrl:"Insira a URL do iframe",scrolling:"Abilita scrollbars",title:"Propriedade do IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pt.js new file mode 100644 index 00000000..4ac51c5b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt",{border:"Mostrar a borda da Frame",noUrl:"Por favor, digite o URL da iframe",scrolling:"Ativar barras de deslocamento",title:"Propriedades da IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ro.js new file mode 100644 index 00000000..d2ca21fb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ro",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ru.js new file mode 100644 index 00000000..8691613d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ru",{border:"Показать границы фрейма",noUrl:"Пожалуйста, введите ссылку фрейма",scrolling:"Отображать полосы прокрутки",title:"Свойства iFrame",toolbar:"iFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/si.js new file mode 100644 index 00000000..a0b2c1e3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","si",{border:"සැකිල්ලේ කඩයිම් ",noUrl:"කරුණාකර රුපයේ URL ලියන්න",scrolling:"සක්ක්‍රිය කරන්න",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sk.js new file mode 100644 index 00000000..7685e8bf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sk",{border:"Zobraziť rám frame-u",noUrl:"Prosím, vložte URL iframe",scrolling:"Povoliť skrolovanie",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sl.js new file mode 100644 index 00000000..7b79a792 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sl",{border:"Pokaži mejo okvira",noUrl:"Prosimo, vnesite iframe URL",scrolling:"Omogoči scrollbars",title:"IFrame Lastnosti",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sq.js new file mode 100644 index 00000000..4c66e350 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sq",{border:"Shfaq kufirin e kornizës",noUrl:"Ju lutemi shkruani URL-në e iframe-it",scrolling:"Lejo shiritët zvarritës",title:"Karakteristikat e IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js new file mode 100644 index 00000000..3d279456 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr-latn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sr.js new file mode 100644 index 00000000..e7d1c535 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sv.js new file mode 100644 index 00000000..c8adee27 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sv",{border:"Visa ramkant",noUrl:"Skriv in URL för iFrame",scrolling:"Aktivera rullningslister",title:"iFrame Egenskaper",toolbar:"iFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/th.js new file mode 100644 index 00000000..6d876edf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","th",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/tr.js new file mode 100644 index 00000000..9096f663 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tr",{border:"Çerceve sınırlarını göster",noUrl:"Lütfen IFrame köprü (URL) bağlantısını yazın",scrolling:"Kaydırma çubuklarını aktif et",title:"IFrame Özellikleri",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/tt.js new file mode 100644 index 00000000..586d3ae3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tt",{border:"Frame чикләрен күрсәтү",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame үзлекләре",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ug.js new file mode 100644 index 00000000..156b972a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ug",{border:"كاندۇك گىرۋەكلىرىنى كۆرسەت",noUrl:"كاندۇكنىڭ ئادرېسى(Url)نى كىرگۈزۈڭ",scrolling:"دومىلىما سۈرگۈچكە يول قوي",title:"IFrame خاسلىق",toolbar:"IFrame "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/uk.js new file mode 100644 index 00000000..fe6660c3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","uk",{border:"Показати рамки фрейму",noUrl:"Будь ласка введіть посилання для IFrame",scrolling:"Увімкнути прокрутку",title:"Налаштування для IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/vi.js new file mode 100644 index 00000000..70340226 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","vi",{border:"Hiển thị viền khung",noUrl:"Vui lòng nhập địa chỉ iframe",scrolling:"Kích hoạt thanh cuộn",title:"Thuộc tính iframe",toolbar:"Iframe"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js new file mode 100644 index 00000000..876c196b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh-cn",{border:"显示框架边框",noUrl:"请输入框架的 URL",scrolling:"允许滚动条",title:"IFrame 属性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/zh.js new file mode 100644 index 00000000..5fdd10fa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh",{border:"顯示框架框線",noUrl:"請輸入 iframe URL",scrolling:"啟用捲軸列",title:"IFrame 屬性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframe/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/iframe/plugin.js new file mode 100644 index 00000000..eefa85c4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframe/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"iframe",hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")}, +init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b= +a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe", +!0)}}})}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/iframedialog/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/iframedialog/plugin.js new file mode 100644 index 00000000..1d6addbd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/iframedialog/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("iframedialog",{requires:"dialog",onLoad:function(){CKEDITOR.dialog.addIframe=function(e,d,a,j,f,l,g){a={type:"iframe",src:a,width:"100%",height:"100%"};a.onContentLoad="function"==typeof l?l:function(){var a=this.getElement().$.contentWindow;if(a.onDialogEvent){var b=this.getDialog(),c=function(b){return a.onDialogEvent(b)};b.on("ok",c);b.on("cancel",c);b.on("resize",c);b.on("hide",function(a){b.removeListener("ok",c);b.removeListener("cancel",c);b.removeListener("resize",c); +a.removeListener()});a.onDialogEvent({name:"load",sender:this,editor:b._.editor})}};var h={title:d,minWidth:j,minHeight:f,contents:[{id:"iframe",label:d,expand:!0,elements:[a],style:"width:"+a.width+";height:"+a.height}]},i;for(i in g)h[i]=g[i];this.add(e,function(){return h})};(function(){var e=function(d,a,j){if(!(3>arguments.length)){var f=this._||(this._={}),e=a.onContentLoad&&CKEDITOR.tools.bind(a.onContentLoad,this),g=CKEDITOR.tools.cssLength(a.width),h=CKEDITOR.tools.cssLength(a.height);f.frameId= +CKEDITOR.tools.getNextId()+"_iframe";d.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().setStyles({width:g,height:h})});var i={src:"%2",id:f.frameId,frameborder:0,allowtransparency:!0},k=[];"function"==typeof a.onContentLoad&&(i.onload="CKEDITOR.tools.callFunction(%1);");CKEDITOR.ui.dialog.uiElement.call(this,d,a,k,"iframe",{width:g,height:h},i,"");j.push('<div style="width:'+g+";height:"+h+';" id="'+this.domId+'"></div>');k=k.join("");d.on("show",function(){var b=CKEDITOR.document.getById(f.frameId).getParent(), +c=CKEDITOR.tools.addFunction(e),c=k.replace("%1",c).replace("%2",CKEDITOR.tools.htmlEncode(a.src));b.setHtml(c)})}};e.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.dialog.addUIElement("iframe",{build:function(d,a,j){return new e(d,a,j)}})})()}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image/dialogs/image.js b/platforms/browser/www/lib/ckeditor/plugins/image/dialogs/image.js new file mode 100644 index 00000000..c84ecdc3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image/dialogs/image.js @@ -0,0 +1,43 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var r=function(c,j){function r(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){this.commit(f,d);for(var a=[].concat(a),e=a.length,c,g=0;g<e;g++)(c=b.getContentElement.apply(b,a[g].split(":")))&&c.setup(f,d)}s=0}}var f=1,k=/^\s*(\d+)((px)|\%)?\s*$/i,v=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,o=/^\d+px$/, +w=function(){var a=this.getValue(),b=this.getDialog(),d=a.match(k);d&&("%"==d[2]&&l(b,!1),a=d[1]);b.lockRatio&&(d=b.originalElement,"true"==d.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(d.$.width*(a/d.$.height))),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(d.$.height*(a/d.$.width))),isNaN(a)||b.setValueOf("info","txtHeight",a))));g(b)},g=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},s,l=function(a, +b){if(!a.getContentElement("info","ratioLock"))return null;var d=a.originalElement;if(!d)return null;if("check"==b){if(!a.userlockRatio&&"true"==d.getCustomData("isReady")){var e=a.getValueOf("info","txtWidth"),c=a.getValueOf("info","txtHeight"),d=1E3*d.$.width/d.$.height,f=1E3*e/c;a.lockRatio=!1;!e&&!c?a.lockRatio=!0:!isNaN(d)&&!isNaN(f)&&Math.round(d)==Math.round(f)&&(a.lockRatio=!0)}}else void 0!=b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);e=CKEDITOR.document.getById(p);a.lockRatio? +e.removeClass("cke_btn_unlocked"):e.addClass("cke_btn_unlocked");e.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&e.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},x=function(a){var b=a.originalElement;if("true"==b.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),e=a.getContentElement("info","txtHeight");d&&d.setValue(b.$.width);e&&e.setValue(b.$.height)}g(a)},y=function(a,b){function d(a,b){var d=a.match(k);return d? +("%"==d[2]&&(d[1]+="%",l(e,!1)),d[1]):b}if(a==f){var e=this.getDialog(),c="",g="txtWidth"==this.id?"width":"height",h=b.getAttribute(g);h&&(c=d(h,c));c=d(b.getStyle(g),c);this.setValue(c)}},t,q=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.setCustomData("isReady","true");a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||x(this);this.firstLoad&&CKEDITOR.tools.setTimeout(function(){l(this,"check")}, +0,this);this.dontResetSize=this.firstLoad=!1},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");l(this,!1)},n=function(a){return CKEDITOR.tools.getNextId()+"_"+a},p=n("btnLockSizes"),u=n("btnResetSize"),m=n("ImagePreviewLoader"),A=n("previewLink"), +z=n("previewImage");return{title:c.lang.image["image"==j?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),d=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1),c=CKEDITOR.document.getById(m);c&&c.setStyle("display","none");t=new CKEDITOR.dom.element("img", +a.document);this.preview=CKEDITOR.document.getById(z);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");if(d){this.linkElement=d;this.linkEditMode=!0;c=d.getChildren();if(1==c.count()){var g=c.getItem(0).getName();if("img"==g||"input"==g)this.imageElement=c.getItem(0),"img"==this.imageElement.getName()?this.imageEditMode="img":"input"==this.imageElement.getName()&&(this.imageEditMode="input")}"image"== +j&&this.setupContent(2,d)}if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode?(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(f,this.imageElement)):this.imageElement=a.document.createElement("img"); +l(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==j&&"input"==a&&confirm(c.lang.image.button2Img)?(this.imageElement=c.document.createElement("img"),this.imageElement.setAttribute("alt",""),c.insertElement(this.imageElement)):"image"!=j&&"img"==a&&confirm(c.lang.image.img2Button)?(this.imageElement=c.document.createElement("input"), +this.imageElement.setAttributes({type:"image",alt:""}),c.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==j?this.imageElement=c.document.createElement("img"):(this.imageElement=c.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=c.document.createElement("a"));this.commitContent(f,this.imageElement);this.commitContent(2,this.linkElement); +this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(c.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(c.getSelection().selectElement(this.linkElement),c.insertElement(this.imageElement)):this.addLink?this.linkEditMode?c.insertElement(this.imageElement):(c.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):c.insertElement(this.imageElement)}, +onLoad:function(){"image"!=j&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(u),5),this.addFocusable(a.getById(p),5));this.commitContent=r},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",q),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement= +!1);delete this.imageElement},contents:[{id:"info",label:c.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:c.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),d=a.originalElement;a.preview&&a.preview.removeStyle("display");d.setCustomData("isReady","false");var c=CKEDITOR.document.getById(m);c&&c.setStyle("display", +"");d.on("load",q,a);d.on("error",h,a);d.on("abort",h,a);d.setAttribute("src",b);a.preview&&(t.setAttribute("src",b),a.preview.setAttribute("src",t.$.src),g(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(a==f){var d=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(d);this.setInitValue()}},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()), +b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:c.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:c.lang.image.alt,accessKey:"T","default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("alt"))}, +commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:c.lang.common.width,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a= +this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidWidth);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(e)):b.removeStyle("width"),!d&&b.removeAttribute("width")):4==a?e.match(k)?b.setStyle("width",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("width",a.$.width+"px")):8==a&&(b.removeAttribute("width"), +b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:c.lang.common.height,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidHeight);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(e)):b.removeStyle("height"),!d&&b.removeAttribute("height")): +4==a?e.match(k)?b.setStyle("height",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("height",a.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(u),b=CKEDITOR.document.getById(p);a&&(a.on("click",function(a){x(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover", +function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){l(this);var b=this.originalElement,c=this.getValueOf("info","txtWidth");if(b.getCustomData("isReady")=="true"&&c){b=b.$.height/b.$.width*c;if(!isNaN(b)){this.setValueOf("info","txtHeight",Math.round(b));g(this)}}a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")}, +b))},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.lockRatio+'" class="cke_btn_locked" id="'+p+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+c.lang.image.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.resetSize+'" class="cke_btn_reset" id="'+u+'" role="button"><span class="cke_label">'+c.lang.image.resetSize+"</span></a></div>"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}", +width:"60px",label:c.lang.image.border,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder),setup:function(a,b){if(a==f){var d;d=(d=(d=b.getStyle("border-width"))&&d.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(d[1],10);isNaN(parseInt(d,10))&&(d=b.getAttribute("border"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&& +this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),!d&&a==f&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:c.lang.image.hSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this, +"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),setup:function(a,b){if(a==f){var d,c;d=b.getStyle("margin-left");c=b.getStyle("margin-right");d=d&&d.match(o);c=c&&c.match(o);d=parseInt(d,10);c=parseInt(c,10);d=d==c&&d;isNaN(parseInt(d,10))&&(d=b.getAttribute("hspace"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")): +(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),!d&&a==f&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:c.lang.image.vSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace), +setup:function(a,b){if(a==f){var c,e;c=b.getStyle("margin-top");e=b.getStyle("margin-bottom");c=c&&c.match(o);e=e&&e.match(o);c=parseInt(c,10);e=parseInt(e,10);c=c==e&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(e))), +!c&&a==f&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:c.lang.common.align,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.alignLeft,"left"],[c.lang.common.alignRight,"right"]],onChange:function(){g(this.getDialog());i.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(a==f){var c=b.getStyle("float"); +switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b,c){var e=this.getValue();if(a==f||4==a){if(e?b.setStyle("float",e):b.removeStyle("float"),!c&&a==f)switch(e=(b.getAttribute("align")||"").toLowerCase(),e){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"<div>"+CKEDITOR.tools.htmlEncode(c.lang.common.preview)+ +'<br><div id="'+m+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'"><img id="'+z+'" alt="" /></a>'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+ +"</td></tr></table></div></div>"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=this.getValue();b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink= +!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")|| +"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"], +children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle, +"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a, +b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}}; +CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image/images/noimage.png b/platforms/browser/www/lib/ckeditor/plugins/image/images/noimage.png new file mode 100644 index 00000000..15981130 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/image/images/noimage.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/dialogs/image2.js b/platforms/browser/www/lib/ckeditor/plugins/image2/dialogs/image2.js new file mode 100644 index 00000000..9b9b9028 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/dialogs/image2.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("image2",function(j){function z(){var a=this.getValue().match(A);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c["invalid"+CKEDITOR.tools.capitalize(this.id)]);return a}function K(){function a(a,b){d.push(i.once(a,function(a){for(var i;i=d.pop();)i.removeListener();b(a)}))}var i=p.createElement("img"),d=[];return function(d,b,c){a("load",function(){var a=B(i);b.call(c,i,a.width,a.height)});a("error",function(){b(null)});a("abort",function(){b(null)});i.setAttribute("src",(t.baseHref|| +"")+d+"?"+Math.random().toString(16).substring(2))}}function C(){var a=this.getValue();q(!1);a!==u.data.src?(D(a,function(a,d,b){q(!0);if(!a)return k(!1);g.setValue(d);h.setValue(b);r=d;s=b;k(E.checkHasNaturalRatio(a))}),l=!0):l?(q(!0),g.setValue(m),h.setValue(n),l=!1):q(!0)}function F(){if(e){var a=this.getValue();if(a&&(a.match(A)||k(!1),"0"!==a)){var b="width"==this.id,d=m||r,c=n||s,a=b?Math.round(c*(a/d)):Math.round(d*(a/c));isNaN(a)||(b?h:g).setValue(a)}}}function k(a){if(f){if("boolean"==typeof a){if(v)return; +e=a}else if(a=g.getValue(),v=!0,(e=!e)&&a)a*=n/m,isNaN(a)||h.setValue(Math.round(a));f[e?"removeClass":"addClass"]("cke_btn_unlocked");f.setAttribute("aria-checked",e);CKEDITOR.env.hc&&f.getChild(0).setHtml(e?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢")}}function q(a){a=a?"enable":"disable";g[a]();h[a]()}var A=/(^\s*(\d+)(px)?\s*$)|^$/i,G=CKEDITOR.tools.getNextId(),H=CKEDITOR.tools.getNextId(),b=j.lang.image2,c=j.lang.common,L=(new CKEDITOR.template('<div><a href="javascript:void(0)" tabindex="-1" title="'+ +b.lockRatio+'" class="cke_btn_locked" id="{lockButtonId}" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+b.resetSize+'" class="cke_btn_reset" id="{resetButtonId}" role="button"><span class="cke_label">'+b.resetSize+"</span></a></div>")).output({lockButtonId:G,resetButtonId:H}),E=CKEDITOR.plugins.image2,t=j.config,w=j.widgets.registered.image.features,B=E.getNatural,p,u,I,D,m,n,r,s,l,e,v,f,o,g,h,x, +y=!(!t.filebrowserImageBrowseUrl&&!t.filebrowserBrowseUrl),J=[{id:"src",type:"text",label:c.url,onKeyup:C,onChange:C,setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())},validate:CKEDITOR.dialog.validate.notEmpty(b.urlMissing)}];y&&J.push({type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:j.lang.common.browseServer,hidden:!0,filebrowser:"info:src"});return{title:b.title,minWidth:250,minHeight:100,onLoad:function(){p= +this._.element.getDocument();D=K()},onShow:function(){u=this.widget;I=u.parts.image;l=v=e=!1;x=B(I);r=m=x.width;s=n=x.height},contents:[{id:"info",label:b.infoTab,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["100%"],children:J}]},{id:"alt",type:"text",label:b.alt,setup:function(a){this.setValue(a.data.alt)},commit:function(a){a.setData("alt",this.getValue())}},{type:"hbox",widths:["25%","25%","50%"],requiredContent:w.dimension.requiredContent,children:[{type:"text",width:"45px", +id:"width",label:c.width,validate:z,onKeyUp:F,onLoad:function(){g=this},setup:function(a){this.setValue(a.data.width)},commit:function(a){a.setData("width",this.getValue())}},{type:"text",id:"height",width:"45px",label:c.height,validate:z,onKeyUp:F,onLoad:function(){h=this},setup:function(a){this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}},{id:"lock",type:"html",style:"margin-top:18px;width:40px;height:20px;",onLoad:function(){function a(a){a.on("mouseover",function(){this.addClass("cke_btn_over")}, +a);a.on("mouseout",function(){this.removeClass("cke_btn_over")},a)}var b=this.getDialog();f=p.getById(G);o=p.getById(H);f&&(b.addFocusable(f,4+y),f.on("click",function(a){k();a.data&&a.data.preventDefault()},this.getDialog()),a(f));o&&(b.addFocusable(o,5+y),o.on("click",function(a){if(l){g.setValue(r);h.setValue(s)}else{g.setValue(m);h.setValue(n)}a.data&&a.data.preventDefault()},this),a(o))},setup:function(a){k(a.data.lock)},commit:function(a){a.setData("lock",e)},html:L}]},{type:"hbox",id:"alignment", +requiredContent:w.align.requiredContent,children:[{id:"align",type:"radio",items:[[c.alignNone,"none"],[c.alignLeft,"left"],[c.alignCenter,"center"],[c.alignRight,"right"]],label:c.align,setup:function(a){this.setValue(a.data.align)},commit:function(a){a.setData("align",this.getValue())}}]},{id:"hasCaption",type:"checkbox",label:b.captioned,requiredContent:w.caption.requiredContent,setup:function(a){this.setValue(a.data.hasCaption)},commit:function(a){a.setData("hasCaption",this.getValue())}}]},{id:"Upload", +hidden:!0,filebrowser:"uploadButton",label:b.uploadTab,elements:[{type:"file",id:"upload",label:b.btnUpload,style:"height:40px"},{type:"fileButton",id:"uploadButton",filebrowser:"info:src",label:b.btnUpload,"for":["Upload","upload"]}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png b/platforms/browser/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png new file mode 100644 index 00000000..b3c7ade5 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/icons/image.png b/platforms/browser/www/lib/ckeditor/plugins/image2/icons/image.png new file mode 100644 index 00000000..fcf61b5f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/image2/icons/image.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/af.js new file mode 100644 index 00000000..d5ef4619 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","af",{alt:"Alternatiewe teks",btnUpload:"Stuur na bediener",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Afbeelding informasie",lockRatio:"Vaste proporsie",menu:"Afbeelding eienskappe",pathName:"image",pathNameCaption:"caption",resetSize:"Herstel grootte",resizer:"Click and drag to resize",title:"Afbeelding eienskappe",uploadTab:"Oplaai",urlMissing:"Die URL na die afbeelding ontbreek."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ar.js new file mode 100644 index 00000000..435544b2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ar",{alt:"عنوان الصورة",btnUpload:"أرسلها للخادم",captioned:"صورة ذات اسم",captionPlaceholder:"تسمية",infoTab:"معلومات الصورة",lockRatio:"تناسق الحجم",menu:"خصائص الصورة",pathName:"صورة",pathNameCaption:"تسمية",resetSize:"إستعادة الحجم الأصلي",resizer:"انقر ثم اسحب للتحجيم",title:"خصائص الصورة",uploadTab:"رفع",urlMissing:"عنوان مصدر الصورة مفقود"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bg.js new file mode 100644 index 00000000..a97a26e6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bg",{alt:"Алтернативен текст",btnUpload:"Изпрати я на сървъра",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо за снимка",lockRatio:"Заключване на съотношението",menu:"Настройки за снимка",pathName:"image",pathNameCaption:"caption",resetSize:"Нулиране на размер",resizer:"Click and drag to resize",title:"Настройки за снимка",uploadTab:"Качване",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bn.js new file mode 100644 index 00000000..93618a02 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bn",{alt:"বিকল্প টেক্সট",btnUpload:"ইহাকে সার্ভারে প্রেরন কর",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ছবির তথ্য",lockRatio:"অনুপাত লক কর",menu:"ছবির প্রোপার্টি",pathName:"image",pathNameCaption:"caption",resetSize:"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও",resizer:"Click and drag to resize",title:"ছবির প্রোপার্টি",uploadTab:"আপলোড",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bs.js new file mode 100644 index 00000000..ff4ae297 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bs",{alt:"Tekst na slici",btnUpload:"Šalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zakljuèaj odnos",menu:"Svojstva slike",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj dimenzije",resizer:"Click and drag to resize",title:"Svojstva slike",uploadTab:"Šalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ca.js new file mode 100644 index 00000000..6e73ef35 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ca",{alt:"Text alternatiu",btnUpload:"Envia-la al servidor",captioned:"Imatge amb subtítol",captionPlaceholder:"Títol",infoTab:"Informació de la imatge",lockRatio:"Bloqueja les proporcions",menu:"Propietats de la imatge",pathName:"imatge",pathNameCaption:"subtítol",resetSize:"Restaura la mida",resizer:"Clicar i arrossegar per redimensionar",title:"Propietats de la imatge",uploadTab:"Puja",urlMissing:"Falta la URL de la imatge."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/cs.js new file mode 100644 index 00000000..d148641d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cs",{alt:"Alternativní text",btnUpload:"Odeslat na server",captioned:"Obrázek s popisem",captionPlaceholder:"Popis",infoTab:"Informace o obrázku",lockRatio:"Zámek",menu:"Vlastnosti obrázku",pathName:"Obrázek",pathNameCaption:"Popis",resetSize:"Původní velikost",resizer:"Klepněte a táhněte pro změnu velikosti",title:"Vlastnosti obrázku",uploadTab:"Odeslat",urlMissing:"Zadané URL zdroje obrázku nebylo nalezeno."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/cy.js new file mode 100644 index 00000000..031ba7ef --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cy",{alt:"Testun Amgen",btnUpload:"Anfon i'r Gweinydd",captioned:"Delwedd â phennawd",captionPlaceholder:"Caption",infoTab:"Gwyb Delwedd",lockRatio:"Cloi Cymhareb",menu:"Priodweddau Delwedd",pathName:"delwedd",pathNameCaption:"pennawd",resetSize:"Ailosod Maint",resizer:"Clicio a llusgo i ail-meintio",title:"Priodweddau Delwedd",uploadTab:"Lanlwytho",urlMissing:"URL gwreiddiol y ddelwedd ar goll."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/da.js new file mode 100644 index 00000000..b5412c41 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","da",{alt:"Alternativ tekst",btnUpload:"Upload fil til serveren",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Generelt",lockRatio:"Lås størrelsesforhold",menu:"Egenskaber for billede",pathName:"image",pathNameCaption:"caption",resetSize:"Nulstil størrelse",resizer:"Click and drag to resize",title:"Egenskaber for billede",uploadTab:"Upload",urlMissing:"Kilde på billed-URL mangler"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/de.js new file mode 100644 index 00000000..de90c18d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","de",{alt:"Alternativer Text",btnUpload:"Zum Server senden",captioned:"Bild mit Überschrift",captionPlaceholder:"Überschrift",infoTab:"Bild-Info",lockRatio:"Größenverhältnis beibehalten",menu:"Bild-Eigenschaften",pathName:"Bild",pathNameCaption:"Überschrift",resetSize:"Größe zurücksetzen",resizer:"Zum vergrößern anwählen und ziehen",title:"Bild-Eigenschaften",uploadTab:"Hochladen",urlMissing:"Imagequelle URL fehlt."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/el.js new file mode 100644 index 00000000..65307e3d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","el",{alt:"Εναλλακτικό Κείμενο",btnUpload:"Αποστολή στον Διακομιστή",captioned:"Εικόνα με λεζάντα",captionPlaceholder:"Λεζάντα",infoTab:"Πληροφορίες Εικόνας",lockRatio:"Κλείδωμα Αναλογίας",menu:"Ιδιότητες Εικόνας",pathName:"εικόνα",pathNameCaption:"λεζάντα",resetSize:"Επαναφορά Αρχικού Μεγέθους",resizer:"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος",title:"Ιδιότητες Εικόνας",uploadTab:"Αποστολή",urlMissing:"Λείπει το πηγαίο URL της εικόνας."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-au.js new file mode 100644 index 00000000..caab219c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-au",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-ca.js new file mode 100644 index 00000000..ec19b8f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-ca",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-gb.js new file mode 100644 index 00000000..d5a9406a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-gb",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en.js new file mode 100644 index 00000000..524e0a2a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/eo.js new file mode 100644 index 00000000..26587e03 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eo",{alt:"Anstataŭiga Teksto",btnUpload:"Sendu al Servilo",captioned:"Bildo kun apudskribo",captionPlaceholder:"Apudskribo",infoTab:"Informoj pri Bildo",lockRatio:"Konservi Proporcion",menu:"Atributoj de Bildo",pathName:"bildo",pathNameCaption:"apudskribo",resetSize:"Origina Grando",resizer:"Kliki kaj treni por ŝanĝi la grandon",title:"Atributoj de Bildo",uploadTab:"Alŝuti",urlMissing:"La fontretadreso de la bildo mankas."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/es.js new file mode 100644 index 00000000..c68c9162 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","es",{alt:"Texto Alternativo",btnUpload:"Enviar al Servidor",captioned:"Imagen subtitulada",captionPlaceholder:"Caption",infoTab:"Información de Imagen",lockRatio:"Proporcional",menu:"Propiedades de Imagen",pathName:"image",pathNameCaption:"subtítulo",resetSize:"Tamaño Original",resizer:"Dar clic y arrastrar para cambiar tamaño",title:"Propiedades de Imagen",uploadTab:"Cargar",urlMissing:"Debe indicar la URL de la imagen."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/et.js new file mode 100644 index 00000000..b8571dbf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","et",{alt:"Alternatiivne tekst",btnUpload:"Saada serverisse",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Pildi info",lockRatio:"Lukusta kuvasuhe",menu:"Pildi omadused",pathName:"image",pathNameCaption:"caption",resetSize:"Lähtesta suurus",resizer:"Click and drag to resize",title:"Pildi omadused",uploadTab:"Lae üles",urlMissing:"Pildi lähte-URL on puudu."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/eu.js new file mode 100644 index 00000000..dadf5a3a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eu",{alt:"Ordezko Testua",btnUpload:"Zerbitzarira bidalia",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Irudi informazioa",lockRatio:"Erlazioa Blokeatu",menu:"Irudi Ezaugarriak",pathName:"image",pathNameCaption:"caption",resetSize:"Tamaina Berrezarri",resizer:"Click and drag to resize",title:"Irudi Ezaugarriak",uploadTab:"Gora kargatu",urlMissing:"Irudiaren iturburu URL-a falta da."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fa.js new file mode 100644 index 00000000..6600e16e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fa",{alt:"متن جایگزین",btnUpload:"به سرور بفرست",captioned:"تصویر زیرنویس شده",captionPlaceholder:"عنوان",infoTab:"اطلاعات تصویر",lockRatio:"قفل کردن نسبت",menu:"ویژگی​های تصویر",pathName:"تصویر",pathNameCaption:"عنوان",resetSize:"بازنشانی اندازه",resizer:"کلیک و کشیدن برای تغییر اندازه",title:"ویژگی​های تصویر",uploadTab:"بالاگذاری",urlMissing:"آدرس URL اصلی تصویر یافت نشد."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fi.js new file mode 100644 index 00000000..e4a104e8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fi",{alt:"Vaihtoehtoinen teksti",btnUpload:"Lähetä palvelimelle",captioned:"Kuva kuvatekstillä",captionPlaceholder:"Kuvateksti",infoTab:"Kuvan tiedot",lockRatio:"Lukitse suhteet",menu:"Kuvan ominaisuudet",pathName:"kuva",pathNameCaption:"kuvateksti",resetSize:"Alkuperäinen koko",resizer:"Klikkaa ja raahaa muuttaaksesi kokoa",title:"Kuvan ominaisuudet",uploadTab:"Lisää tiedosto",urlMissing:"Kuvan lähdeosoite puuttuu."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fo.js new file mode 100644 index 00000000..a2bbfae9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fo",{alt:"Alternativur tekstur",btnUpload:"Send til ambætaran",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Myndaupplýsingar",lockRatio:"Læs lutfallið",menu:"Myndaeginleikar",pathName:"image",pathNameCaption:"caption",resetSize:"Upprunastødd",resizer:"Click and drag to resize",title:"Myndaeginleikar",uploadTab:"Send til ambætaran",urlMissing:"URL til mynd manglar."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fr-ca.js new file mode 100644 index 00000000..30cd9e98 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr-ca",{alt:"Texte alternatif",btnUpload:"Envoyer sur le serveur",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informations sur l'image2",lockRatio:"Verrouiller les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"caption",resetSize:"Taille originale",resizer:"Click and drag to resize",title:"Propriétés de l'image2",uploadTab:"Téléverser",urlMissing:"L'URL de la source de l'image est manquant."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fr.js new file mode 100644 index 00000000..2c7ed973 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr",{alt:"Texte de remplacement",btnUpload:"Envoyer sur le serveur",captioned:"Image légendée",captionPlaceholder:"Légende",infoTab:"Informations sur l'image2",lockRatio:"Conserver les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"légende",resetSize:"Taille d'origine",resizer:"Cliquer et glisser pour redimensionner",title:"Propriétés de l'image2",uploadTab:"Envoyer",urlMissing:"L'adresse source de l'image est manquante."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/gl.js new file mode 100644 index 00000000..f030c9e4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gl",{alt:"Texto alternativo",btnUpload:"Enviar ao servidor",captioned:"Imaxe subtitulada ",captionPlaceholder:"Caption",infoTab:"Información da imaxe",lockRatio:"Proporcional",menu:"Propiedades da imaxe",pathName:"Imaxe",pathNameCaption:"subtítulo",resetSize:"Tamaño orixinal",resizer:"Prema e arrastre para axustar o tamaño",title:"Propiedades da imaxe",uploadTab:"Cargar",urlMissing:"Non se atopa o URL da imaxe."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/gu.js new file mode 100644 index 00000000..4e83249d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gu",{alt:"ઑલ્ટર્નટ ટેક્સ્ટ",btnUpload:"આ સર્વરને મોકલવું",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ચિત્ર ની જાણકારી",lockRatio:"લૉક ગુણોત્તર",menu:"ચિત્રના ગુણ",pathName:"image",pathNameCaption:"caption",resetSize:"રીસેટ સાઇઝ",resizer:"Click and drag to resize",title:"ચિત્રના ગુણ",uploadTab:"અપલોડ",urlMissing:"ઈમેજની મૂળ URL છે નહી."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/he.js new file mode 100644 index 00000000..4787142e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","he",{alt:"טקסט חלופי",btnUpload:"שליחה לשרת",captioned:"כותרת תמונה",captionPlaceholder:"Caption",infoTab:"מידע על התמונה",lockRatio:"נעילת היחס",menu:"תכונות התמונה",pathName:"תמונה",pathNameCaption:"כותרת",resetSize:"איפוס הגודל",resizer:"לחץ וגרור לשינוי הגודל",title:"מאפייני התמונה",uploadTab:"העלאה",urlMissing:"כתובת התמונה חסרה."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hi.js new file mode 100644 index 00000000..ec9225d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hi",{alt:"वैकल्पिक टेक्स्ट",btnUpload:"इसे सर्वर को भेजें",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"तस्वीर की जानकारी",lockRatio:"लॉक अनुपात",menu:"तस्वीर प्रॉपर्टीज़",pathName:"image",pathNameCaption:"caption",resetSize:"रीसॅट साइज़",resizer:"Click and drag to resize",title:"तस्वीर प्रॉपर्टीज़",uploadTab:"अपलोड",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hr.js new file mode 100644 index 00000000..812813c5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hr",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Svojstva slika",pathName:"image",pathNameCaption:"caption",resetSize:"Obriši veličinu",resizer:"Click and drag to resize",title:"Svojstva slika",uploadTab:"Pošalji",urlMissing:"Nedostaje URL slike."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hu.js new file mode 100644 index 00000000..bffa8b81 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hu",{alt:"Buborék szöveg",btnUpload:"Küldés a szerverre",captioned:"Feliratozott kép",captionPlaceholder:"Képfelirat",infoTab:"Alaptulajdonságok",lockRatio:"Arány megtartása",menu:"Kép tulajdonságai",pathName:"kép",pathNameCaption:"felirat",resetSize:"Eredeti méret",resizer:"Kattints és húzz az átméretezéshez",title:"Kép tulajdonságai",uploadTab:"Feltöltés",urlMissing:"Hiányzik a kép URL-je"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/id.js new file mode 100644 index 00000000..a238cab5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","id",{alt:"Teks alternatif",btnUpload:"Kirim ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Gambar",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Unggah",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/is.js new file mode 100644 index 00000000..196c68dc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","is",{alt:"Baklægur texti",btnUpload:"Hlaða upp",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Almennt",lockRatio:"Festa stærðarhlutfall",menu:"Eigindi myndar",pathName:"image",pathNameCaption:"caption",resetSize:"Reikna stærð",resizer:"Click and drag to resize",title:"Eigindi myndar",uploadTab:"Senda upp",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/it.js new file mode 100644 index 00000000..d65b4549 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","it",{alt:"Testo alternativo",btnUpload:"Invia al server",captioned:"Immagine con didascalia",captionPlaceholder:"Didascalia",infoTab:"Informazioni immagine",lockRatio:"Blocca rapporto",menu:"Proprietà immagine",pathName:"immagine",pathNameCaption:"didascalia",resetSize:"Reimposta dimensione",resizer:"Fare clic e trascinare per ridimensionare",title:"Proprietà immagine",uploadTab:"Carica",urlMissing:"Manca l'URL dell'immagine."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ja.js new file mode 100644 index 00000000..b4457fd7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ja",{alt:"代替テキスト",btnUpload:"サーバーに送信",captioned:"キャプションを付ける",captionPlaceholder:"キャプション",infoTab:"画像情報",lockRatio:"比率を固定",menu:"画像のプロパティ",pathName:"image",pathNameCaption:"caption",resetSize:"サイズをリセット",resizer:"ドラッグしてリサイズ",title:"画像のプロパティ",uploadTab:"アップロード",urlMissing:"画像のURLを入力してください。"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ka.js new file mode 100644 index 00000000..88407289 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ka",{alt:"სანაცვლო ტექსტი",btnUpload:"სერვერისთვის გაგზავნა",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"სურათის ინფორმცია",lockRatio:"პროპორციის შენარჩუნება",menu:"სურათის პარამეტრები",pathName:"image",pathNameCaption:"caption",resetSize:"ზომის დაბრუნება",resizer:"Click and drag to resize",title:"სურათის პარამეტრები",uploadTab:"აქაჩვა",urlMissing:"სურათის URL არაა შევსებული."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/km.js new file mode 100644 index 00000000..993429cd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","km",{alt:"អត្ថបទជំនួស",btnUpload:"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",captioned:"រូប​ដែល​មាន​ចំណង​ជើង",captionPlaceholder:"Caption",infoTab:"ពត៌មានអំពីរូបភាព",lockRatio:"ចាក់​សោ​ផល​ធៀប",menu:"លក្ខណៈ​សម្បត្តិ​រូប​ភាព",pathName:"រូបភាព",pathNameCaption:"ចំណងជើង",resetSize:"កំណត់ទំហំឡើងវិញ",resizer:"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ",title:"លក្ខណៈ​សម្បត្តិ​រូប​ភាប",uploadTab:"ផ្ទុក​ឡើង",urlMissing:"ខ្វះ URL ប្រភព​រូប​ភាព។"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ko.js new file mode 100644 index 00000000..90726a2a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ko",{alt:"이미지 설명",btnUpload:"서버로 전송",captioned:"이미지 설명 넣기",captionPlaceholder:"Caption",infoTab:"이미지 정보",lockRatio:"비율 유지",menu:"이미지 설정",pathName:"이미지",pathNameCaption:"이미지 설명",resetSize:"원래 크기로",resizer:"크기를 조절하려면 클릭 후 드래그 하세요",title:"이미지 설정",uploadTab:"업로드",urlMissing:"이미지 소스 URL이 없습니다."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ku.js new file mode 100644 index 00000000..6ec1c93f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ku",{alt:"جێگرەوەی دەق",btnUpload:"ناردنی بۆ ڕاژه",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"زانیاری وێنه",lockRatio:"داخستنی ڕێژه",menu:"خاسیەتی وێنه",pathName:"image",pathNameCaption:"caption",resetSize:"ڕێکخستنەوەی قەباره",resizer:"Click and drag to resize",title:"خاسیەتی وێنه",uploadTab:"بارکردن",urlMissing:"سەرچاوەی بەستەری وێنه بزره"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/lt.js new file mode 100644 index 00000000..47b883d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lt",{alt:"Alternatyvus Tekstas",btnUpload:"Siųsti į serverį",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Vaizdo informacija",lockRatio:"Išlaikyti proporciją",menu:"Vaizdo savybės",pathName:"image",pathNameCaption:"caption",resetSize:"Atstatyti dydį",resizer:"Click and drag to resize",title:"Vaizdo savybės",uploadTab:"Siųsti",urlMissing:"Paveiksliuko nuorodos nėra."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/lv.js new file mode 100644 index 00000000..069595db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lv",{alt:"Alternatīvais teksts",btnUpload:"Nosūtīt serverim",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informācija par attēlu",lockRatio:"Nemainīga Augstuma/Platuma attiecība",menu:"Attēla īpašības",pathName:"image",pathNameCaption:"caption",resetSize:"Atjaunot sākotnējo izmēru",resizer:"Click and drag to resize",title:"Attēla īpašības",uploadTab:"Augšupielādēt",urlMissing:"Trūkst attēla atrašanās adrese."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/mk.js new file mode 100644 index 00000000..0d5b35e5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mk",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/mn.js new file mode 100644 index 00000000..f2d437f5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mn",{alt:"Зургийг орлох бичвэр",btnUpload:"Үүнийг сервэррүү илгээ",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Зурагны мэдээлэл",lockRatio:"Радио түгжих",menu:"Зураг",pathName:"image",pathNameCaption:"caption",resetSize:"хэмжээ дахин оноох",resizer:"Click and drag to resize",title:"Зураг",uploadTab:"Илгээж ачаалах",urlMissing:"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ms.js new file mode 100644 index 00000000..8d1d6652 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ms",{alt:"Text Alternatif",btnUpload:"Hantar ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Imej",lockRatio:"Tetapkan Nisbah",menu:"Ciri-ciri Imej",pathName:"image",pathNameCaption:"caption",resetSize:"Saiz Set Semula",resizer:"Click and drag to resize",title:"Ciri-ciri Imej",uploadTab:"Muat Naik",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/nb.js new file mode 100644 index 00000000..2f237a60 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nb",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Bildetekst",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/nl.js new file mode 100644 index 00000000..f032d845 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nl",{alt:"Alternatieve tekst",btnUpload:"Naar server verzenden",captioned:"Afbeelding met onderschrift",captionPlaceholder:"Onderschrift",infoTab:"Afbeeldingsinformatie",lockRatio:"Verhouding vergrendelen",menu:"Eigenschappen afbeelding",pathName:"afbeelding",pathNameCaption:"onderschrift",resetSize:"Afmetingen herstellen",resizer:"Klik en sleep om te herschalen",title:"Afbeeldingseigenschappen",uploadTab:"Uploaden",urlMissing:"De URL naar de afbeelding ontbreekt."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/no.js new file mode 100644 index 00000000..11bffbbc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","no",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Caption",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pl.js new file mode 100644 index 00000000..09e19e37 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pl",{alt:"Tekst zastępczy",btnUpload:"Wyślij",captioned:"Obrazek z podpisem",captionPlaceholder:"Podpis",infoTab:"Informacje o obrazku",lockRatio:"Zablokuj proporcje",menu:"Właściwości obrazka",pathName:"obrazek",pathNameCaption:"podpis",resetSize:"Przywróć rozmiar",resizer:"Kliknij i przeciągnij, by zmienić rozmiar.",title:"Właściwości obrazka",uploadTab:"Wyślij",urlMissing:"Podaj adres URL obrazka."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pt-br.js new file mode 100644 index 00000000..82c42e85 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt-br",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Legenda da Imagem",captionPlaceholder:"Legenda",infoTab:"Informações da Imagem",lockRatio:"Travar Proporções",menu:"Formatar Imagem",pathName:"Imagem",pathNameCaption:"Legenda",resetSize:"Redefinir para o Tamanho Original",resizer:"Click e arraste para redimensionar",title:"Formatar Imagem",uploadTab:"Enviar ao Servidor",urlMissing:"URL da imagem está faltando."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pt.js new file mode 100644 index 00000000..d46507bb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Imagem Legendada",captionPlaceholder:"Caption",infoTab:"Informação da Imagem",lockRatio:"Proporcional",menu:"Propriedades da Imagem",pathName:"imagem",pathNameCaption:"legenda",resetSize:"Tamanho Original",resizer:"Clique e arraste para redimensionar",title:"Propriedades da Imagem",uploadTab:"Enviar",urlMissing:"O URL da fonte da imagem está em falta."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ro.js new file mode 100644 index 00000000..8f860894 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ro",{alt:"Text alternativ",btnUpload:"Trimite la server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informaţii despre imagine",lockRatio:"Păstrează proporţiile",menu:"Proprietăţile imaginii",pathName:"image",pathNameCaption:"caption",resetSize:"Resetează mărimea",resizer:"Click and drag to resize",title:"Proprietăţile imaginii",uploadTab:"Încarcă",urlMissing:"Sursa URL a imaginii lipsește."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ru.js new file mode 100644 index 00000000..eda93cb0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ru",{alt:"Альтернативный текст",btnUpload:"Загрузить на сервер",captioned:"Захваченное изображение",captionPlaceholder:"Название",infoTab:"Данные об изображении",lockRatio:"Сохранять пропорции",menu:"Свойства изображения",pathName:"изображение",pathNameCaption:"захват",resetSize:"Вернуть обычные размеры",resizer:"Нажмите и растяните",title:"Свойства изображения",uploadTab:"Загрузка файла",urlMissing:"Не указана ссылка на изображение."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/si.js new file mode 100644 index 00000000..5ab518c1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","si",{alt:"විකල්ප ",btnUpload:"සේවාදායකය වෙත යොමුකිරිම",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"රුපයේ තොරතුරු",lockRatio:"නවතන අනුපාතය ",menu:"රුපයේ ගුණ",pathName:"image",pathNameCaption:"caption",resetSize:"නැවතත් විශාලත්වය වෙනස් කිරීම",resizer:"Click and drag to resize",title:"රුපයේ ",uploadTab:"උඩුගතකිරීම",urlMissing:"රුප මුලාශ්‍ර URL නැත."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sk.js new file mode 100644 index 00000000..18778843 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sk",{alt:"Alternatívny text",btnUpload:"Odoslať to na server",captioned:"Opísaný obrázok",captionPlaceholder:"Popis",infoTab:"Informácie o obrázku",lockRatio:"Pomer zámky",menu:"Vlastnosti obrázka",pathName:"obrázok",pathNameCaption:"popis",resetSize:"Pôvodná veľkosť",resizer:"Kliknite a potiahnite pre zmenu veľkosti",title:"Vlastnosti obrázka",uploadTab:"Nahrať",urlMissing:"Chýba URL zdroja obrázka."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sl.js new file mode 100644 index 00000000..aced917a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sl",{alt:"Nadomestno besedilo",btnUpload:"Pošlji na strežnik",captioned:"Podnaslovljena slika",captionPlaceholder:"Napis",infoTab:"Podatki o sliki",lockRatio:"Zakleni razmerje",menu:"Lastnosti slike",pathName:"slika",pathNameCaption:"napis",resetSize:"Ponastavi velikost",resizer:"Kliknite in povlecite, da spremeniti velikost",title:"Lastnosti slike",uploadTab:"Naloži",urlMissing:"Manjka vir (URL) slike."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sq.js new file mode 100644 index 00000000..8232aef2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sq",{alt:"Tekst Alternativ",btnUpload:"Dërgo në server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informacione mbi Fotografinë",lockRatio:"Mbyll Racionin",menu:"Karakteristikat e Fotografisë",pathName:"image",pathNameCaption:"caption",resetSize:"Rikthe Madhësinë",resizer:"Click and drag to resize",title:"Karakteristikat e Fotografisë",uploadTab:"Ngarko",urlMissing:"Mungon URL e burimit të fotografisë."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sr-latn.js new file mode 100644 index 00000000..287f0265 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr-latn",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Osobine slika",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj veličinu",resizer:"Click and drag to resize",title:"Osobine slika",uploadTab:"Pošalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sr.js new file mode 100644 index 00000000..18857fb7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr",{alt:"Алтернативни текст",btnUpload:"Пошаљи на сервер",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо слике",lockRatio:"Закључај однос",menu:"Особине слика",pathName:"image",pathNameCaption:"caption",resetSize:"Ресетуј величину",resizer:"Click and drag to resize",title:"Особине слика",uploadTab:"Пошаљи",urlMissing:"Недостаје УРЛ слике."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sv.js new file mode 100644 index 00000000..2c5ed3f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sv",{alt:"Alternativ text",btnUpload:"Skicka till server",captioned:"Rubricerad bild",captionPlaceholder:"Bildtext",infoTab:"Bildinformation",lockRatio:"Lås höjd/bredd förhållanden",menu:"Bildegenskaper",pathName:"bild",pathNameCaption:"rubrik",resetSize:"Återställ storlek",resizer:"Klicka och drag för att ändra storlek",title:"Bildegenskaper",uploadTab:"Ladda upp",urlMissing:"Bildkällans URL saknas."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/th.js new file mode 100644 index 00000000..636814d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","th",{alt:"คำประกอบรูปภาพ",btnUpload:"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ข้อมูลของรูปภาพ",lockRatio:"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่",menu:"คุณสมบัติของ รูปภาพ",pathName:"image",pathNameCaption:"caption",resetSize:"กำหนดรูปเท่าขนาดจริง",resizer:"Click and drag to resize",title:"คุณสมบัติของ รูปภาพ",uploadTab:"อัพโหลดไฟล์",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/tr.js new file mode 100644 index 00000000..305d1b39 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tr",{alt:"Alternatif Yazı",btnUpload:"Sunucuya Yolla",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Resim Bilgisi",lockRatio:"Oranı Kilitle",menu:"Resim Özellikleri",pathName:"Resim",pathNameCaption:"caption",resetSize:"Boyutu Başa Döndür",resizer:"Boyutlandırmak için, tıklayın ve sürükleyin",title:"Resim Özellikleri",uploadTab:"Karşıya Yükle",urlMissing:"Resmin URL kaynağı bulunamadı."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/tt.js new file mode 100644 index 00000000..2133d73b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tt",{alt:"Альтернатив текст",btnUpload:"Серверга җибәрү",captioned:"Исеме куелган рәсем",captionPlaceholder:"Исем",infoTab:"Рәсем тасвирламасы",lockRatio:"Lock Ratio",menu:"Рәсем үзлекләре",pathName:"рәсем",pathNameCaption:"исем",resetSize:"Баштагы зурлык",resizer:"Күчереп куер өчен басып шудырыгыз",title:"Рәсем үзлекләре",uploadTab:"Йөкләү",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ug.js new file mode 100644 index 00000000..7913ee9f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ug",{alt:"تېكىست ئالماشتۇر",btnUpload:"مۇلازىمېتىرغا يۈكلە",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"سۈرەت",lockRatio:"نىسبەتنى قۇلۇپلا",menu:"سۈرەت خاسلىقى",pathName:"image",pathNameCaption:"caption",resetSize:"ئەسلى چوڭلۇق",resizer:"Click and drag to resize",title:"سۈرەت خاسلىقى",uploadTab:"يۈكلە",urlMissing:"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/uk.js new file mode 100644 index 00000000..989eb551 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","uk",{alt:"Альтернативний текст",btnUpload:"Надіслати на сервер",captioned:"Підписане зображення",captionPlaceholder:"Caption",infoTab:"Інформація про зображення",lockRatio:"Зберегти пропорції",menu:"Властивості зображення",pathName:"Зображення",pathNameCaption:"заголовок",resetSize:"Очистити поля розмірів",resizer:"Клікніть та потягніть для зміни розмірів",title:"Властивості зображення",uploadTab:"Надіслати",urlMissing:"Вкажіть URL зображення."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/vi.js new file mode 100644 index 00000000..863c40d1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","vi",{alt:"Chú thích ảnh",btnUpload:"Tải lên máy chủ",captioned:"Ảnh có chú thích",captionPlaceholder:"Nhãn",infoTab:"Thông tin của ảnh",lockRatio:"Giữ nguyên tỷ lệ",menu:"Thuộc tính của ảnh",pathName:"ảnh",pathNameCaption:"chú thích",resetSize:"Kích thước gốc",resizer:"Kéo rê để thay đổi kích cỡ",title:"Thuộc tính của ảnh",uploadTab:"Tải lên",urlMissing:"Thiếu đường dẫn hình ảnh"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/zh-cn.js new file mode 100644 index 00000000..3209b92f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh-cn",{alt:"替换文本",btnUpload:"上传到服务器",captioned:"带标题图像",captionPlaceholder:"标题",infoTab:"图像信息",lockRatio:"锁定比例",menu:"图像属性",pathName:"图像",pathNameCaption:"标题",resetSize:"原始尺寸",resizer:"点击并拖拽以改变尺寸",title:"图像属性",uploadTab:"上传",urlMissing:"缺少图像源文件地址"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/zh.js new file mode 100644 index 00000000..f9489af4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh",{alt:"替代文字",btnUpload:"傳送至伺服器",captioned:"已加標題之圖片",captionPlaceholder:"Caption",infoTab:"影像資訊",lockRatio:"固定比例",menu:"影像屬性",pathName:"圖片",pathNameCaption:"標題",resetSize:"重設大小",resizer:"拖曳以改變大小",title:"影像屬性",uploadTab:"上傳",urlMissing:"遺失圖片來源之 URL "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/image2/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/image2/plugin.js new file mode 100644 index 00000000..37195045 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/image2/plugin.js @@ -0,0 +1,30 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function A(a){function b(){this.deflated||(a.widgets.focused==this.widget&&(this.focused=!0),a.widgets.destroy(this.widget),this.deflated=!0)}function e(){var d=a.editable(),c=a.document;if(this.deflated)this.widget=a.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!(new CKEDITOR.dom.elementPath(this.widget.wrapper,d)).block&&(d=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),d.replace(this.widget.wrapper),this.widget.wrapper.move(d)),this.focused&& +(this.widget.focus(),delete this.focused),delete this.deflated;else{var b=this.widget,d=f,c=b.wrapper,e=b.data.align,b=b.data.hasCaption;if(d){for(var j=3;j--;)c.removeClass(d[j]);"center"==e?b&&c.addClass(d[1]):"none"!=e&&c.addClass(d[n[e]])}else"center"==e?(b?c.setStyle("text-align","center"):c.removeStyle("text-align"),c.removeStyle("float")):("none"==e?c.removeStyle("float"):c.setStyle("float",e),c.removeStyle("text-align"))}}var f=a.config.image2_alignClasses,g=a.config.image2_captionedClass; +return{allowedContent:B(a),requiredContent:"img[src,alt]",features:C(a),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href]"}},parts:{image:"img",caption:"figcaption"},dialog:"image2",template:z,data:function(){var d=this.features;this.data.hasCaption&&!a.filter.checkFeature(d.caption)&&(this.data.hasCaption=!1);"none"!=this.data.align&&!a.filter.checkFeature(d.align)&& +(this.data.align="none");this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:b,inflate:e});this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link;this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt});if(this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var c in this.data.classes)this.parts.image.removeClass(c);if(a.filter.checkFeature(d.dimension)){d= +this.data;d={width:d.width,height:d.height};c=this.parts.image;for(var f in d)d[f]?c.setAttribute(f,d[f]):c.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,c=this.parts.image,e={hasCaption:!!this.parts.caption,src:c.getAttribute("src"),alt:c.getAttribute("alt")||"",width:c.getAttribute("width")||"",height:c.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(c):!0},g=c.getAscendant("a");g&&this.wrapper.contains(g)&&(this.parts.link= +g);e.align||(f?(this.element.hasClass(f[0])?e.align="left":this.element.hasClass(f[2])&&(e.align="right"),e.align?this.element.removeClass(f[n[e.align]]):e.align="none"):(e.align=this.element.getStyle("float")||c.getStyle("float")||"none",this.element.removeStyle("float"),c.removeStyle("float")));if(a.plugins.link&&this.parts.link&&(e.link=CKEDITOR.plugins.link.parseLinkAttributes(a,this.parts.link),(c=e.link.advanced)&&c.advCSSClasses))c.advCSSClasses=CKEDITOR.tools.trim(c.advCSSClasses.replace(/cke_\S+/, +""));this.wrapper[(e.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption");this.setData(e);a.filter.checkFeature(this.features.dimension)&&D(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF});this.on("dialog",function(a){a.data.widget=this},this)},addClass:function(a){k(this).addClass(a)},hasClass:function(a){return k(this).hasClass(a)}, +removeClass:function(a){k(this).removeClass(a)},getClasses:function(){var a=RegExp("^("+[].concat(g,f).join("|")+")$");return function(){var b=this.repository.parseElementClasses(k(this).getAttribute("class")),e;for(e in b)a.test(e)&&delete b[e];return b}}(),upcast:E(a),downcast:F(a)}}function E(a){var b=l(a),e=a.config.image2_captionedClass;return function(a,g){var d={width:1,height:1},c=a.name,h;if(!a.attributes["data-cke-realelement"]){if(b(a)){if("div"==c&&(h=a.getFirst("figure")))a.replaceWith(h), +a=h;g.align="center";h=a.getFirst("img")||a.getFirst("a").getFirst("img")}else"figure"==c&&a.hasClass(e)?h=a.getFirst("img")||a.getFirst("a").getFirst("img"):o(a)&&(h="a"==a.name?a.children[0]:a);if(h){for(var y in d)(c=h.attributes[y])&&c.match(G)&&delete h.attributes[y];return a}}}}function F(a){var b=a.config.image2_alignClasses;return function(a){var f="a"==a.name?a.getFirst():a,g=f.attributes,d=this.data.align;if(!this.inline){var c=a.getFirst("span");c&&c.replaceWith(c.getFirst({img:1,a:1}))}d&& +"none"!=d&&(c=CKEDITOR.tools.parseCssText(g.style||""),"center"==d&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):d in{left:1,right:1}&&(b?f.addClass(b[n[d]]):c["float"]=d),!b&&!CKEDITOR.tools.isEmpty(c)&&(g.style=CKEDITOR.tools.writeCssText(c)));return a}}function l(a){var b=a.config.image2_captionedClass,e=a.config.image2_alignClasses,f={figure:1,a:1,img:1};return function(g){if(!(g.name in{div:1,p:1}))return!1;var d=g.children; +if(1!==d.length)return!1;d=d[0];if(!(d.name in f))return!1;if("p"==g.name){if(!o(d))return!1}else if("figure"==d.name){if(!d.hasClass(b))return!1}else if(a.enterMode==CKEDITOR.ENTER_P||!o(d))return!1;return(e?g.hasClass(e[1]):"center"==CKEDITOR.tools.parseCssText(g.attributes.style||"",!0)["text-align"])?!0:!1}}function o(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function D(a){var b=a.editor,e=b.editable(),f=b.document,g=a.resizer=f.createElement("span");g.addClass("cke_image_resizer"); +g.setAttribute("title",b.lang.image2.resizer);g.append(new CKEDITOR.dom.text("​",f));if(a.inline)a.wrapper.append(g);else{var d=a.parts.link||a.parts.image,c=d.getParent(),h=f.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(d);h.append(g);a.element.append(h,!0);c.is("span")&&c.remove()}g.on("mousedown",function(c){function j(a,b,c){var d=CKEDITOR.document,j=[];f.equals(d)||j.push(d.on(a,b));j.push(f.on(a,b));if(c)for(a=j.length;a--;)c.push(j.pop())}function d(){p=k+w*t;q=Math.round(p/ +r)}function s(){q=n-m;p=Math.round(q*r)}var h=a.parts.image,w="right"==a.data.align?-1:1,i=c.data.$.screenX,H=c.data.$.screenY,k=h.$.clientWidth,n=h.$.clientHeight,r=k/n,l=[],o="cke_image_s"+(!~w?"w":"e"),x,p,q,v,t,m,u;b.fire("saveSnapshot");j("mousemove",function(a){x=a.data.$;t=x.screenX-i;m=H-x.screenY;u=Math.abs(t/m);1==w?0>=t?0>=m?d():u>=r?d():s():0>=m?u>=r?s():d():s():0>=t?0>=m?u>=r?s():d():s():0>=m?d():u>=r?d():s();15<=p&&15<=q?(h.setAttributes({width:p,height:q}),v=!0):v=!1},l);j("mouseup", +function(){for(var c;c=l.pop();)c.removeListener();e.removeClass(o);g.removeClass("cke_image_resizing");v&&(a.setData({width:p,height:q}),b.fire("saveSnapshot"));v=!1},l);e.addClass(o);g.addClass("cke_image_resizing")});a.on("data",function(){g["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function I(a){var b=[],e;return function(f){var g=a.getCommand("justify"+f);if(g){b.push(function(){g.refresh(a,a.elementPath())});if(f in{right:1,left:1,center:1})g.on("exec",function(d){var c= +i(a);if(c){c.setData("align",f);for(c=b.length;c--;)b[c]();d.cancel()}});g.on("refresh",function(b){var c=i(a),g={right:1,left:1,center:1};c&&(void 0==e&&(e=a.filter.checkFeature(a.widgets.registered.image.features.align)),e?this.setState(c.data.align==f?CKEDITOR.TRISTATE_ON:f in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function J(a){a.plugins.link&&(CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){var b=b.definition, +e=b.onShow,f=b.onOk;b.onShow=function(){var b=i(a);b&&(b.inline?!b.wrapper.getAscendant("a"):1)?this.setupContent(b.data.link||{}):e.apply(this,arguments)};b.onOk=function(){var b=i(a);if(b&&(b.inline?!b.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);b.setData("link",d)}else f.apply(this,arguments)}}}),a.getCommand("unlink").on("exec",function(b){var e=i(a);e&&e.parts.link&&(e.setData("link",null),this.refresh(a,a.elementPath()),b.cancel())}),a.getCommand("unlink").on("refresh",function(b){var e= +i(a);e&&(this.setState(e.data.link||e.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),b.cancel())}))}function i(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function B(a){var b=a.config.image2_alignClasses,a={div:{match:l(a)},p:{match:l(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+a.config.image2_captionedClass},figcaption:!0};b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+a.img.classes):(a.div.styles= +"text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function C(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function k(a){return a.data.hasCaption?a.element:a.parts.image}var z='<img alt="" src="" />',K=new CKEDITOR.template('<figure class="{captionedClass}">'+z+"<figcaption>{captionPlaceholder}</figcaption></figure>"), +n={left:0,center:1,right:2},G=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")}, +init:function(a){var b=a.config,e=a.lang.image2,f=A(a);b.filebrowserImage2BrowseUrl=b.filebrowserImageBrowseUrl;b.filebrowserImage2UploadUrl=b.filebrowserImageUploadUrl;f.pathName=e.pathName;f.editables.caption.pathName=e.pathNameCaption;a.widgets.add("image",f);a.ui.addButton&&a.ui.addButton("Image",{label:a.lang.common.image,command:"image",toolbar:"insert,10"});a.contextMenu&&(a.addMenuGroup("image",10),a.addMenuItem("image",{label:e.menu,command:"image",group:"image"}));CKEDITOR.dialog.add("image2", +this.path+"dialogs/image2.js")},afterInit:function(a){var b={left:1,right:1,center:1,block:1},e=I(a),f;for(f in b)e(f);J(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,b){var c={};g?c.attributes={"class":g[1]}:c.styles={"text-align":"center"};c=f.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",c);e(c,b);b.move(c);return c}function e(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();c.insertElementIntoRange(b, +e)}else b.replace(d)}var f=a.document,g=a.config.image2_alignClasses,d=a.config.image2_captionedClass,c=a.editable(),h=["hasCaption","align","link"],i={align:function(c,d,e){var f=c.element;if(c.changed.align){if(!c.newData.hasCaption&&("center"==e&&(c.deflate(),c.element=b(a,f)),!c.changed.hasCaption&&"center"==d&&"center"!=e))c.deflate(),d=f.findOne("a,img"),d.replace(f),c.element=d}else"center"==e&&(c.changed.hasCaption&&!c.newData.hasCaption)&&(c.deflate(),c.element=b(a,f));!g&&f.is("figure")&& +("center"==e?f.setStyle("display","inline-block"):f.removeStyle("display"))},hasCaption:function(b,c,g){b.changed.hasCaption&&(c=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(K.output({captionedClass:d,captionPlaceholder:a.lang.image2.captionPlaceholder}),f),e(g,b.element),c.replace(g.findOne("img")),b.element=g):(c.replace(b.element),b.element=c))},link:function(b,c,d){if(b.changed.link){var e=b.element.is("img")?b.element:b.element.findOne("img"), +g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!d||b.element.is("img")&&d,i;h&&b.deflate();d?(c||(i=f.createElement("a",{attributes:{href:b.newData.link.url}}),i.replace(e),e.move(i)),d=CKEDITOR.plugins.link.getLinkAttributes(a,d),CKEDITOR.tools.isEmpty(d.set)||(i||g).setAttributes(d.set),d.removed.length&&(i||g).removeAttributes(d.removed)):(d=g.findOne("img"),d.replace(g),i=d);h&&(b.element=i)}}};return function(a){var b,c;a.changed={};for(c=0;c<h.length;c++)b=h[c],a.changed[b]= +a.oldData?a.oldData[b]!==a.newData[b]:!1;for(c=0;c<h.length;c++)b=h[c],i[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$,a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=a.getAttribute("src");a={width:b.width,height:b.height}}return a}}})(); +CKEDITOR.config.image2_captionedClass="image"; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/indentblock/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/indentblock/plugin.js new file mode 100644 index 00000000..ab69d14c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/indentblock/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,f=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=f?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{var c=i(b,a),a=parseInt(b.getStyle(c),10),g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(f?1:-1)*g;if(0>a)return;a=Math.max(a, +0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function i(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var j=CKEDITOR.dtd.$listItem,l=CKEDITOR.dtd.$list,f=CKEDITOR.TRISTATE_DISABLED,k=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(b,c){a.specificDefinition.apply(this, +arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:!d?"margin-left,margin-right":null,classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(e.is(j))e=e.getParent();else if(e.getAscendant(j))return f;if(!this.enterBr&&!this.getContext(b))return f;if(d){var c;c=d;var e=e.$.className.match(this.classNameRegex), +g=this.isIndent;c=e?g?e[1]!=c.slice(-1):true:g;return c?k:f}return this.isIndent?k:e?CKEDITOR[(parseInt(e.getStyle(i(e)),10)||0)<=0?"TRISTATE_DISABLED":"TRISTATE_OFF"]:f},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(l))h.call(this,c,d);else{b=b.createIterator();a=a.config.enterMode;b.enforceRealBlocks=true;for(b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||h.call(this,c,d)}return true}}}}var a= +CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?RegExp("(?:^|\\s+)("+d.join("|")+")(?=$|\\s)"):null})}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png new file mode 100644 index 00000000..7209fd41 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png new file mode 100644 index 00000000..365e3205 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png new file mode 100644 index 00000000..75308c12 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png new file mode 100644 index 00000000..de7c3d45 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyblock.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyblock.png new file mode 100644 index 00000000..a507be1b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyblock.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifycenter.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifycenter.png new file mode 100644 index 00000000..f758bc42 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifycenter.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyleft.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyleft.png new file mode 100644 index 00000000..542ddee3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyleft.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyright.png b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyright.png new file mode 100644 index 00000000..71a983c9 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/justify/icons/justifyright.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/af.js new file mode 100644 index 00000000..b3bd6aeb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","af",{block:"Uitvul",center:"Sentreer",left:"Links oplyn",right:"Regs oplyn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ar.js new file mode 100644 index 00000000..39f7a34f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ar",{block:"ضبط",center:"توسيط",left:"محاذاة إلى اليسار",right:"محاذاة إلى اليمين"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bg.js new file mode 100644 index 00000000..d4a30cba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bg",{block:"Двустранно подравняване",center:"Център",left:"Подравни в ляво",right:"Подравни в дясно"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bn.js new file mode 100644 index 00000000..c58ead92 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bn",{block:"ব্লক জাস্টিফাই",center:"মাঝ বরাবর ঘেষা",left:"বা দিকে ঘেঁষা",right:"ডান দিকে ঘেঁষা"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bs.js new file mode 100644 index 00000000..9b8553c5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bs",{block:"Puno poravnanje",center:"Centralno poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ca.js new file mode 100644 index 00000000..b97f2a6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ca",{block:"Justificat",center:"Centrat",left:"Alinea a l'esquerra",right:"Alinea a la dreta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/cs.js new file mode 100644 index 00000000..4c9bbb0d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cs",{block:"Zarovnat do bloku",center:"Zarovnat na střed",left:"Zarovnat vlevo",right:"Zarovnat vpravo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/cy.js new file mode 100644 index 00000000..0a6b4ff7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cy",{block:"Unioni",center:"Alinio i'r Canol",left:"Alinio i'r Chwith",right:"Alinio i'r Dde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/da.js new file mode 100644 index 00000000..0da8f69e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","da",{block:"Lige margener",center:"Centreret",left:"Venstrestillet",right:"Højrestillet"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/de.js new file mode 100644 index 00000000..97fe58cc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","de",{block:"Blocksatz",center:"Zentriert",left:"Linksbündig",right:"Rechtsbündig"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/el.js new file mode 100644 index 00000000..9941eb60 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","el",{block:"Πλήρης Στοίχιση",center:"Στο Κέντρο",left:"Στοίχιση Αριστερά",right:"Στοίχιση Δεξιά"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-au.js new file mode 100644 index 00000000..bb4e7c5c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-au",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-ca.js new file mode 100644 index 00000000..46a2d72d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-ca",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-gb.js new file mode 100644 index 00000000..9ebe888b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-gb",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en.js new file mode 100644 index 00000000..20b7ff5e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/eo.js new file mode 100644 index 00000000..17c15c0d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eo",{block:"Ĝisrandigi Ambaŭflanke",center:"Centrigi",left:"Ĝisrandigi maldekstren",right:"Ĝisrandigi dekstren"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/es.js new file mode 100644 index 00000000..287fa690 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","es",{block:"Justificado",center:"Centrar",left:"Alinear a Izquierda",right:"Alinear a Derecha"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/et.js new file mode 100644 index 00000000..5e2eeecc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","et",{block:"Rööpjoondus",center:"Keskjoondus",left:"Vasakjoondus",right:"Paremjoondus"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/eu.js new file mode 100644 index 00000000..3f4f3493 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eu",{block:"Justifikatu",center:"Lerrokatu Erdian",left:"Lerrokatu Ezkerrean",right:"Lerrokatu Eskuman"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fa.js new file mode 100644 index 00000000..6a027abe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fa",{block:"بلوک چین",center:"میان چین",left:"چپ چین",right:"راست چین"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fi.js new file mode 100644 index 00000000..c309b712 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fi",{block:"Tasaa molemmat reunat",center:"Keskitä",left:"Tasaa vasemmat reunat",right:"Tasaa oikeat reunat"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fo.js new file mode 100644 index 00000000..cd960d1c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fo",{block:"Javnir tekstkantar",center:"Miðsett",left:"Vinstrasett",right:"Høgrasett"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fr-ca.js new file mode 100644 index 00000000..6abd477d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr-ca",{block:"Justifié",center:"Centré",left:"Aligner à gauche",right:"Aligner à Droite"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fr.js new file mode 100644 index 00000000..41d84c06 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr",{block:"Justifier",center:"Centrer",left:"Aligner à gauche",right:"Aligner à droite"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/gl.js new file mode 100644 index 00000000..1d06021e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gl",{block:"Xustificado",center:"Centrado",left:"Aliñar á esquerda",right:"Aliñar á dereita"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/gu.js new file mode 100644 index 00000000..10ec3045 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gu",{block:"બ્લૉક, અંતરાય જસ્ટિફાઇ",center:"સંકેંદ્રણ/સેંટરિંગ",left:"ડાબી બાજુએ/બાજુ તરફ",right:"જમણી બાજુએ/બાજુ તરફ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/he.js new file mode 100644 index 00000000..93e075d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","he",{block:"יישור לשוליים",center:"מרכוז",left:"יישור לשמאל",right:"יישור לימין"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hi.js new file mode 100644 index 00000000..5e7f955e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hi",{block:"ब्लॉक जस्टीफ़ाई",center:"बीच में",left:"बायीं तरफ",right:"दायीं तरफ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hr.js new file mode 100644 index 00000000..a9100975 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hr",{block:"Blok poravnanje",center:"Središnje poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hu.js new file mode 100644 index 00000000..00069c6f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hu",{block:"Sorkizárt",center:"Középre",left:"Balra",right:"Jobbra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/id.js new file mode 100644 index 00000000..f1aa2e86 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","id",{block:"Rata kiri-kanan",center:"Pusat",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/is.js new file mode 100644 index 00000000..f5f891e9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","is",{block:"Jafna báðum megin",center:"Miðja texta",left:"Vinstrijöfnun",right:"Hægrijöfnun"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/it.js new file mode 100644 index 00000000..188a0f81 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","it",{block:"Giustifica",center:"Centra",left:"Allinea a sinistra",right:"Allinea a destra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ja.js new file mode 100644 index 00000000..24552e0f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ja",{block:"両端揃え",center:"中央揃え",left:"左揃え",right:"右揃え"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ka.js new file mode 100644 index 00000000..8ddd27e9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ka",{block:"გადასწორება",center:"შუაში სწორება",left:"მარცხნივ სწორება",right:"მარჯვნივ სწორება"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/km.js new file mode 100644 index 00000000..62a049bb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","km",{block:"តម្រឹម​ពេញ",center:"កណ្ដាល",left:"តម្រឹម​ឆ្វេង",right:"តម្រឹម​ស្ដាំ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ko.js new file mode 100644 index 00000000..bfcbaf02 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ko",{block:"양쪽 맞춤",center:"가운데 정렬",left:"왼쪽 정렬",right:"오른쪽 정렬"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ku.js new file mode 100644 index 00000000..a27e9e13 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ku",{block:"هاوستوونی",center:"ناوەڕاست",left:"بەهێڵ کردنی چەپ",right:"بەهێڵ کردنی ڕاست"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/lt.js new file mode 100644 index 00000000..d9731e46 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lt",{block:"Lygiuoti abi puses",center:"Centruoti",left:"Lygiuoti kairę",right:"Lygiuoti dešinę"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/lv.js new file mode 100644 index 00000000..7a49b357 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lv",{block:"Izlīdzināt malas",center:"Izlīdzināt pret centru",left:"Izlīdzināt pa kreisi",right:"Izlīdzināt pa labi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/mk.js new file mode 100644 index 00000000..aabf8ca2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mk",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/mn.js new file mode 100644 index 00000000..2eb717ce --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mn",{block:"Тэгшлэх",center:"Голлуулах",left:"Зүүн талд тулгах",right:"Баруун талд тулгах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ms.js new file mode 100644 index 00000000..fb6d5ea1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ms",{block:"Jajaran Blok",center:"Jajaran Tengah",left:"Jajaran Kiri",right:"Jajaran Kanan"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/nb.js new file mode 100644 index 00000000..9b8ed082 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nb",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/nl.js new file mode 100644 index 00000000..1b0f8ae3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nl",{block:"Uitvullen",center:"Centreren",left:"Links uitlijnen",right:"Rechts uitlijnen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/no.js new file mode 100644 index 00000000..49f6c800 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","no",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pl.js new file mode 100644 index 00000000..104c04f5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pl",{block:"Wyjustuj",center:"Wyśrodkuj",left:"Wyrównaj do lewej",right:"Wyrównaj do prawej"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pt-br.js new file mode 100644 index 00000000..05e293e2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt-br",{block:"Justificado",center:"Centralizar",left:"Alinhar Esquerda",right:"Alinhar Direita"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pt.js new file mode 100644 index 00000000..e641019f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt",{block:"Justificado",center:"Alinhar ao Centro",left:"Alinhar à Esquerda",right:"Alinhar à Direita"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ro.js new file mode 100644 index 00000000..d1da4cc9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ro",{block:"Aliniere în bloc (Block Justify)",center:"Aliniere centrală",left:"Aliniere la stânga",right:"Aliniere la dreapta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ru.js new file mode 100644 index 00000000..4dfc2e40 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ru",{block:"По ширине",center:"По центру",left:"По левому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/si.js new file mode 100644 index 00000000..8d85db57 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","si",{block:"Justify",center:"මධ්‍ය",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sk.js new file mode 100644 index 00000000..6d4de70f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sk",{block:"Zarovnať do bloku",center:"Zarovnať na stred",left:"Zarovnať vľavo",right:"Zarovnať vpravo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sl.js new file mode 100644 index 00000000..cda22d1c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sl",{block:"Obojestranska poravnava",center:"Sredinska poravnava",left:"Leva poravnava",right:"Desna poravnava"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sq.js new file mode 100644 index 00000000..5ec58c62 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sq",{block:"Zgjero",center:"Qendër",left:"Rreshto majtas",right:"Rreshto Djathtas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sr-latn.js new file mode 100644 index 00000000..320d6972 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr-latn",{block:"Obostrano ravnanje",center:"Centriran tekst",left:"Levo ravnanje",right:"Desno ravnanje"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sr.js new file mode 100644 index 00000000..f6654964 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr",{block:"Обострано равнање",center:"Центриран текст",left:"Лево равнање",right:"Десно равнање"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sv.js new file mode 100644 index 00000000..9054d4f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sv",{block:"Justera till marginaler",center:"Centrera",left:"Vänsterjustera",right:"Högerjustera"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/th.js new file mode 100644 index 00000000..fb1d15f9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","th",{block:"จัดพอดีหน้ากระดาษ",center:"จัดกึ่งกลาง",left:"จัดชิดซ้าย",right:"จัดชิดขวา"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/tr.js new file mode 100644 index 00000000..177d9add --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tr",{block:"İki Kenara Yaslanmış",center:"Ortalanmış",left:"Sola Dayalı",right:"Sağa Dayalı"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/tt.js new file mode 100644 index 00000000..b0999da7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tt",{block:"Киңлеккә карап тигезләү",center:"Үзәккә тигезләү",left:"Сул як кырыйдан тигезләү",right:"Уң як кырыйдан тигезләү"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ug.js new file mode 100644 index 00000000..a1112522 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ug",{block:"ئىككى تەرەپتىن توغرىلا",center:"ئوتتۇرىغا توغرىلا",left:"سولغا توغرىلا",right:"ئوڭغا توغرىلا"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/uk.js new file mode 100644 index 00000000..ba2baba0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","uk",{block:"По ширині",center:"По центру",left:"По лівому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/vi.js new file mode 100644 index 00000000..30395d21 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","vi",{block:"Canh đều",center:"Canh giữa",left:"Canh trái",right:"Canh phải"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/zh-cn.js new file mode 100644 index 00000000..9132cf5e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh-cn",{block:"两端对齐",center:"居中",left:"左对齐",right:"右对齐"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/zh.js new file mode 100644 index 00000000..405907b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh",{block:"左右對齊",center:"置中",left:"靠左對齊",right:"靠右對齊"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/justify/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/justify/plugin.js new file mode 100644 index 00000000..82fe3301 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/justify/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function g(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";var c=a.config.justifyClasses,h=a.config.enterMode== +CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?=$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName|| +null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0]))); +e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}g.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,g,f,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){g=d[k].createIterator();for(g.enlargeBr=b!=CKEDITOR.ENTER_BR;f=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!f.isReadOnly()){f.removeAttribute("align");f.removeStyle("text-align"); +var j=e&&(f.$.className=CKEDITOR.tools.ltrim(f.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(f,!0)!=this.value);e?m?f.addClass(e):j||f.removeAttribute("class"):m&&f.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify", +{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"justifyblock,justifycenter,justifyleft,justifyright",hidpi:!0,init:function(a){if(!a.blockless){var c=new g(a,"justifyleft","left"),b=new g(a,"justifycenter","center"),h=new g(a,"justifyright","right"),d=new g(a,"justifyblock","justify");a.addCommand("justifyleft", +c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock", +toolbar:"align,40"}));a.on("dirChanged",j)}}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/icons/hidpi/language.png b/platforms/browser/www/lib/ckeditor/plugins/language/icons/hidpi/language.png new file mode 100644 index 00000000..3908a6ae Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/language/icons/hidpi/language.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/icons/language.png b/platforms/browser/www/lib/ckeditor/plugins/language/icons/language.png new file mode 100644 index 00000000..eb680d42 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/language/icons/language.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ar.js new file mode 100644 index 00000000..781a80b4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ar",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ca.js new file mode 100644 index 00000000..b954027f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ca",{button:"Definir l'idioma",remove:"Eliminar idioma"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/cs.js new file mode 100644 index 00000000..672a1a68 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cs",{button:"Nastavit jazyk",remove:"Odstranit jazyk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/cy.js new file mode 100644 index 00000000..79d8d0e5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cy",{button:"Gosod iaith",remove:"Tynnu iaith"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/de.js new file mode 100644 index 00000000..5adda832 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","de",{button:"Sprache stellen",remove:"Sprache entfernen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/el.js new file mode 100644 index 00000000..2b0c17aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","el",{button:"Θέση γλώσσας",remove:"Αφαίρεση γλώσσας"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/en-gb.js new file mode 100644 index 00000000..73cd1a5d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en-gb",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/en.js new file mode 100644 index 00000000..acb83453 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/eo.js new file mode 100644 index 00000000..49335695 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","eo",{button:"Instali lingvon",remove:"Forigi lingvon"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/es.js new file mode 100644 index 00000000..cd91eff8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","es",{button:"Fijar lenguaje",remove:"Quitar lenguaje"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/fa.js new file mode 100644 index 00000000..572f4c64 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fa",{button:"تعیین زبان",remove:"حذف زبان"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/fi.js new file mode 100644 index 00000000..f0276d16 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fi",{button:"Aseta kieli",remove:"Poista kieli"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/fr.js new file mode 100644 index 00000000..0b8602a0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fr",{button:"Définir la langue",remove:"Supprimer la langue"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/gl.js new file mode 100644 index 00000000..58ce1323 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","gl",{button:"Estabelezer o idioma",remove:"Retirar o idioma"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/he.js new file mode 100644 index 00000000..334788e9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","he",{button:"צור שפה",remove:"הסר שפה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/hr.js new file mode 100644 index 00000000..911103dd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hr",{button:"Namjesti jezik",remove:"Makni jezik"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/hu.js new file mode 100644 index 00000000..92cc653c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hu",{button:"Nyelv beállítása",remove:"Nyelv eltávolítása"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/it.js new file mode 100644 index 00000000..32e54319 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","it",{button:"Imposta lingua",remove:"Rimuovi lingua"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ja.js new file mode 100644 index 00000000..e00999d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ja",{button:"言語を設定",remove:"言語を削除"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/km.js new file mode 100644 index 00000000..f146a6fd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","km",{button:"កំណត់​ភាសា",remove:"លុប​ភាសា"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/nb.js new file mode 100644 index 00000000..a0ed5b12 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nb",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/nl.js new file mode 100644 index 00000000..49c7d1ae --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nl",{button:"Taal instellen",remove:"Taal verwijderen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/no.js new file mode 100644 index 00000000..87b4e066 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","no",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/pl.js new file mode 100644 index 00000000..6de4bc48 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pl",{button:"Ustaw język",remove:"Usuń język"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/pt-br.js new file mode 100644 index 00000000..fbb3df1e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt-br",{button:"Configure o Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/pt.js new file mode 100644 index 00000000..d63076b6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt",{button:"Definir Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ru.js new file mode 100644 index 00000000..60316fe7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ru",{button:"Установка языка",remove:"Удалить язык"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/sk.js new file mode 100644 index 00000000..2a6896ae --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sk",{button:"Nastaviť jazyk",remove:"Odstrániť jazyk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/sl.js new file mode 100644 index 00000000..3d0c585e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sl",{button:"Nastavi jezik",remove:"Odstrani jezik"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/sv.js new file mode 100644 index 00000000..061b5b75 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sv",{button:"Sätt språk",remove:"Ta bort språk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/tr.js new file mode 100644 index 00000000..ae38d58c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tr",{button:"Dili seç",remove:"Dili kaldır"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/tt.js new file mode 100644 index 00000000..a651f7bb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tt",{button:"Тел сайлау",remove:"Телне бетерү"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/uk.js new file mode 100644 index 00000000..15a7cf06 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","uk",{button:"Установити мову",remove:"Вилучити мову"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/vi.js new file mode 100644 index 00000000..631df086 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","vi",{button:"Thiết lập ngôn ngữ",remove:"Loại bỏ ngôn ngữ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/zh-cn.js new file mode 100644 index 00000000..a03c73a8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh-cn",{button:"设置语言",remove:"移除语言"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/language/lang/zh.js new file mode 100644 index 00000000..6676d954 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh",{button:"設定語言",remove:"移除語言"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/language/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/language/plugin.js new file mode 100644 index 00000000..fe302883 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/language/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("language",{requires:"menubutton",lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",icons:"language",hidpi:!0,init:function(a){var b=a.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],c=this,d=a.lang.language,e={},g,h,i,f;a.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(a,b){var c=e["language_"+b];if(c)a[c.style.checkActive(a.elementPath(), +a)?"removeStyle":"applyStyle"](c.style)},refresh:function(a){this.setState(c.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(f=0;f<b.length;f++)g=b[f].split(":"),h=g[0],i="language_"+h,e[i]={label:g[1],langId:h,group:"language",order:f,ltr:"rtl"!=(""+g[2]).toLowerCase(),onClick:function(){a.execCommand("language",this.langId)},role:"menuitemcheckbox"},e[i].style=new CKEDITOR.style({element:"span",attributes:{lang:h,dir:e[i].ltr?"ltr":"rtl"}});e.language_remove={label:d.remove, +group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,order:e.length,onClick:function(){var b=c.getCurrentLangElement(a);b&&a.execCommand("language",b.getAttribute("lang"))}};a.addMenuGroup("language",1);a.addMenuGroup("language_remove");a.addMenuItems(e);a.ui.add("Language",CKEDITOR.UI_MENUBUTTON,{label:d.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var b={},d=c.getCurrentLangElement(a),f;for(f in e)b[f]=CKEDITOR.TRISTATE_OFF; +b.language_remove=d?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;d&&(b["language_"+d.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return b}})},getCurrentLangElement:function(a){var b=a.elementPath(),a=b&&b.elements,c;if(b)for(var d=0;d<a.length;d++)b=a[d],!c&&("span"==b.getName()&&b.hasAttribute("dir")&&b.hasAttribute("lang"))&&(c=b);return c}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/lineutils/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/lineutils/plugin.js new file mode 100644 index 00000000..aa93527f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/lineutils/plugin.js @@ -0,0 +1,21 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function k(a,d){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},d,!0);this.frame=this.win.getFrame();this.inline=this.editable.isInline();this.target=this[this.inline?"editable":"doc"]}function l(a,d){CKEDITOR.tools.extend(this,d,{editor:a},!0)}function m(a,d){var b=a.editable();CKEDITOR.tools.extend(this,{editor:a,editable:b,doc:a.document,win:a.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},d,!0);this.hidden= +{};this.visible={};this.inline=b.isInline();this.inline||(this.frame=this.win.getFrame());this.queryViewport();var c=CKEDITOR.tools.bind(this.queryViewport,this),e=CKEDITOR.tools.bind(this.hideVisible,this),g=CKEDITOR.tools.bind(this.removeAll,this);b.attachListener(this.winTop,"resize",c);b.attachListener(this.winTop,"scroll",c);b.attachListener(this.winTop,"resize",e);b.attachListener(this.win,"scroll",e);b.attachListener(this.inline?b:this.frame,"mouseout",function(a){var c=a.data.$.clientX,a= +a.data.$.clientY;this.queryViewport();(c<=this.rect.left||c>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(c<=0||c>=this.winTopPane.width||a<=0||a>=this.winTopPane.height)&&this.hideVisible()},this);b.attachListener(a,"resize",c);b.attachListener(a,"mode",g);a.on("destroy",g);this.lineTpl=(new CKEDITOR.template(p)).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({}, +n,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},n,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function i(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&!(o[a.getComputedStyle("float")]||o[a.getAttribute("align")])&&!r[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1; +CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;k.prototype={start:function(a){var d=this,b=this.editor,c=this.doc,e,g,f,h=CKEDITOR.tools.eventsBuffer(50,function(){b.readOnly||"wysiwyg"!=b.mode||(d.relations={},e=new CKEDITOR.dom.element(c.$.elementFromPoint(g,f)),d.traverseSearch(e),isNaN(g+f)||d.pixelSearch(e,g,f),a&&a(d.relations,g,f))});this.listener=this.editable.attachListener(this.target,"mousemove",function(a){g=a.data.$.clientX;f=a.data.$.clientY;h.input()});this.editable.attachListener(this.inline? +this.editable:this.frame,"mouseout",function(){h.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(d){var b=this.editor.createRange();b.moveToPosition(this.relations[d.uid].element,a[d.type]);return b}}(),store:function(){function a(a,b,c){var e=a.getUniqueId(); +e in c?c[e].type|=b:c[e]={element:a,type:b}}return function(d,b){var c;if(b&CKEDITOR.LINEUTILS_AFTER&&i(c=d.getNext())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_AFTER;if(b&CKEDITOR.LINEUTILS_INSIDE&&i(c=d.getFirst())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_INSIDE;a(d,b,this.relations)}}(),traverseSearch:function(a){var d,b,c;do if(c=a.$["data-cke-expando"],!(c&&c in this.relations)){if(a.equals(this.editable))break; +if(i(a))for(d in this.lookups)(b=this.lookups[d](a))&&this.store(a,b)}while(!(a&&a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(a,c,e,g,f){for(var h=0,j;f(e);){e+=g;if(25==++h)break;if(j=this.doc.$.elementFromPoint(c,e))if(j==a)h=0;else if(d(a,j)&&(h=0,i(j=new CKEDITOR.dom.element(j))))return j}}var d=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,c){return a.contains(c)}:function(a,c){return!!(a.compareDocumentPosition(c)& +16)};return function(b,c,d){var g=this.win.getViewPaneSize().height,f=a.call(this,b.$,c,d,-1,function(a){return 0<a}),c=a.call(this,b.$,c,d,1,function(a){return a<g});if(f)for(this.traverseSearch(f);!f.getParent().equals(b);)f=f.getParent();if(c)for(this.traverseSearch(c);!c.getParent().equals(b);)c=c.getParent();for(;f||c;){f&&(f=f.getNext(i));if(!f||f.equals(c))break;this.traverseSearch(f);c&&(c=c.getPrevious(i));if(!c||c.equals(f))break;this.traverseSearch(c)}}}(),greedySearch:function(){this.relations= +{};for(var a=this.editable.getElementsByTag("*"),d=0,b,c,e;b=a.getItem(d++);)if(!b.equals(this.editable)&&(b.hasAttribute("contenteditable")||!b.isReadOnly())&&i(b)&&b.isVisible())for(e in this.lookups)(c=this.lookups[e](b))&&this.store(b,c);return this.relations}};l.prototype={locate:function(){function a(a,b){var d=a.element[b===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return d&&i(d)?(a.siblingRect=d.getClientRect(),b==CKEDITOR.LINEUTILS_BEFORE?(a.siblingRect.bottom+a.elementRect.top)/ +2:(a.elementRect.bottom+a.siblingRect.top)/2):b==CKEDITOR.LINEUTILS_BEFORE?a.elementRect.top:a.elementRect.bottom}var d,b;return function(c){this.locations={};for(b in c)d=c[b],d.elementRect=d.element.getClientRect(),d.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(b,CKEDITOR.LINEUTILS_BEFORE,a(d,CKEDITOR.LINEUTILS_BEFORE)),d.type&CKEDITOR.LINEUTILS_AFTER&&this.store(b,CKEDITOR.LINEUTILS_AFTER,a(d,CKEDITOR.LINEUTILS_AFTER)),d.type&CKEDITOR.LINEUTILS_INSIDE&&this.store(b,CKEDITOR.LINEUTILS_INSIDE,(d.elementRect.top+ +d.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,d,b,c,e,g;return function(f,h){a=this.locations;d=[];for(c in a)for(e in a[c])if(b=Math.abs(f-a[c][e]),d.length){for(g=0;g<d.length;g++)if(b<d[g].dist){d.splice(g,0,{uid:+c,type:e,dist:b});break}g==d.length&&d.push({uid:+c,type:e,dist:b})}else d.push({uid:+c,type:e,dist:b});return"undefined"!=typeof h?d.slice(0,h):d}}(),store:function(a,d,b){this.locations[a]||(this.locations[a]={});this.locations[a][d]=b}};var n={display:"block", +width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},q={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999},p='<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}"><span style="{tipLeftStyle}"> </span><span style="{tipRightStyle}"> </span></div>';m.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(), +delete this.visible[a]},hideLine:function(a){var d=a.getUniqueId();a.hide();this.hidden[d]=a;delete this.visible[d]},showLine:function(a){var d=a.getUniqueId();a.show();this.visible[d]=a;delete this.hidden[d]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,d){var b,c,e;if(b=this.getStyle(a.uid,a.type)){for(e in this.visible)if(this.visible[e].getCustomData("hash")!==this.hash){c=this.visible[e];break}if(!c)for(e in this.hidden)if(this.hidden[e].getCustomData("hash")!== +this.hash){this.showLine(c=this.hidden[e]);break}c||this.showLine(c=this.addLine());c.setCustomData("hash",this.hash);this.visible[c.getUniqueId()]=c;c.setStyles(b);d&&d(c)}},getStyle:function(a,d){var b=this.relations[a],c=this.locations[a][d],e={};e.width=b.siblingRect?Math.max(b.siblingRect.width,b.elementRect.width):b.elementRect.width;e.top=this.inline?c+this.winTopScroll.y:this.rect.top+this.winTopScroll.y+c;if(e.top-this.winTopScroll.y<this.rect.top||e.top-this.winTopScroll.y>this.rect.bottom)return!1; +if(this.inline)e.left=b.elementRect.left;else if(0<b.elementRect.left?e.left=this.rect.left+b.elementRect.left:(e.width+=b.elementRect.left,e.left=this.rect.left),0<(b=e.left+e.width-(this.rect.left+this.winPane.width)))e.width-=b;e.left+=this.winTopScroll.x;for(var g in e)e[g]=CKEDITOR.tools.cssLength(e[g]);return e},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,d){this.relations=a;this.locations=d;this.hash=Math.random()}, +cleanup:function(){var a,d;for(d in this.visible)a=this.visible[d],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.inline?this.editable.getClientRect():this.frame.getClientRect()}};var o={left:1,right:1,center:1},r={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:k,locator:l,liner:m}})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/link/dialogs/anchor.js b/platforms/browser/www/lib/ckeditor/plugins/link/dialogs/anchor.js new file mode 100644 index 00000000..e0192b27 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/link/dialogs/anchor.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)): +this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c); +e&&(this._.selectedElement=e,this.setValueOf("info","txtName",e.data("cke-saved-name")||""),!d&&a.selectElement(e),b&&(this._.selectedElement=b));this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/link/dialogs/link.js b/platforms/browser/www/lib/ckeditor/plugins/link/dialogs/link.js new file mode 100644 index 00000000..312fb7bc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/link/dialogs/link.js @@ -0,0 +1,26 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.dialog.add("link",function(g){var l=CKEDITOR.plugins.link,m=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),k=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),k){case "frame":a.setLabel(g.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(g.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(k),a.getElement().hide()}}, +f=function(a){a.target&&this.setValue(a.target[this.id]||"")},h=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},i=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},j=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},c=g.lang.common,b=g.lang.link,d;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"], +[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],k=this.getValue(),e=a.definition.getContents("upload"),e=e&&e.hidden;"url"==k?(g.config.linkShowTargetTab&&a.showPage("target"),e||a.showPage("upload")):(a.hidePage("target"),e||a.hidePage("upload"));for(e=0;e<b.length;e++){var c=a.getContentElement("info",b[e]);c&&(c=c.getElement().getParent().getParent(),b[e]==k+"Options"?c.show():c.hide())}a.layout()},setup:function(a){this.setValue(a.type|| +"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:c.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:c.url,required:!0,onLoad:function(){this.allowOnChange= +!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),k=/^((javascript:)|[#\/\.\?])/i,c=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);c?(this.setValue(b.substr(c[0].length)),a.setValue(c[0].toLowerCase())):k.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")? +!0:!g.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(c.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button", +id:"browse",hidden:"true",filebrowser:"info:url",label:c.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(){d=l.getEditorAnchors(g);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b= +0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor|| +(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"</div>",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress", +label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return!a.getContentElement("info","linkType")||"email"!=a.getValueOf("info","linkType")?!0:CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this)},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject, +setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target, +elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:c.target,"default":"notSet",style:"width : 100%;",items:[[c.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[c.targetNew,"_blank"],[c.targetTop,"_top"],[c.targetSelf,"_self"],[c.targetParent,"_parent"]],onChange:m,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");m.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName", +label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/\W/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:f,commit:i},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:f,commit:i}]},{type:"hbox", +children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:f,commit:i},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:f,commit:i},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:f,commit:i},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:f,commit:i}]},{type:"hbox", +children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:c.width,id:"width",setup:f,commit:i},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:f,commit:i}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:c.height,id:"height",setup:f,commit:i},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:f,commit:i}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0, +filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:c.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:c.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:h,commit:j},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir, +"default":"",style:"width:110px",items:[[c.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:h,commit:j},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:h,commit:j}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:h,commit:j},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:h,commit:j},{type:"text", +label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:h,commit:j}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:h,commit:j},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)", +"default":"",id:"advCSSClasses",setup:h,commit:j},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:h,commit:j},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(g.lang.common.invalidInlineStyle),setup:h,commit:j}]}]}]}],onShow:function(){var a= +this.getParentEditor(),b=a.getSelection(),c=null;(c=l.getSelectedLink(a))&&c.hasAttribute("href")?b.getSelectedElement()||b.selectElement(c):c=null;a=l.parseLinkAttributes(a,c);this._.selectedElement=c;this.setupContent(a)},onOk:function(){var a={};this.commitContent(a);var b=g.getSelection(),c=l.getLinkAttributes(g,a);if(this._.selectedElement){var e=this._.selectedElement,d=e.data("cke-saved-href"),f=e.getHtml();e.setAttributes(c.set);e.removeAttributes(c.removed);if(d==f||"email"==a.type&&-1!= +f.indexOf("@"))e.setHtml("email"==a.type?a.email.address:c.set["data-cke-saved-href"]),b.selectElement(e);delete this._.selectedElement}else b=b.getRanges()[0],b.collapsed&&(a=new CKEDITOR.dom.text("email"==a.type?a.email.address:c.set["data-cke-saved-href"],g.document),b.insertNode(a),b.selectNodeContents(a)),c=new CKEDITOR.style({element:"a",attributes:c.set}),c.type=CKEDITOR.STYLE_INLINE,c.applyToRange(b,g),b.select()},onLoad:function(){g.config.linkShowAdvancedTab||this.hidePage("advanced");g.config.linkShowTargetTab|| +this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/link/images/anchor.png b/platforms/browser/www/lib/ckeditor/plugins/link/images/anchor.png new file mode 100644 index 00000000..6d861a0e Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/link/images/anchor.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png b/platforms/browser/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png new file mode 100644 index 00000000..f5048430 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js new file mode 100644 index 00000000..2b130e71 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){this.setValue(a.getStyle("list-style-type")|| +h[a.getAttribute("type")]||a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.commitContent(a)}};if("numberedListStyle"==e){var g=[[b.notset,""],[b.lowerRoman,"lower-roman"],[b.upperRoman,"upper-roman"],[b.lowerAlpha,"lower-alpha"],[b.upperAlpha,"upper-alpha"], +[b.decimal,"decimal"]];(!CKEDITOR.env.ie||7<CKEDITOR.env.version)&&g.concat([[b.armenian,"armenian"],[b.decimalLeadingZero,"decimal-leading-zero"],[b.georgian,"georgian"],[b.lowerGreek,"lower-greek"]]);return{title:b.numberedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"hbox",widths:["25%","75%"],children:[{label:b.start,type:"text",id:"start",validate:CKEDITOR.dialog.validate.integer(b.validateStartNumber),setup:function(a){this.setValue(a.getFirst(f).getAttribute("value")|| +a.getAttribute("start")||1)},commit:function(a){var b=a.getFirst(f),c=b.getAttribute("value")||a.getAttribute("start")||1;a.getFirst(f).removeAttribute("value");var d=parseInt(this.getValue(),10);isNaN(d)?a.removeAttribute("start"):a.setAttribute("start",d);a=b;b=c;for(d=isNaN(d)?1:d;(a=a.getNext(f))&&b++;)a.getAttribute("value")==b&&a.setAttribute("value",d+b-c)}},{type:"select",label:b.type,id:"type",style:"width: 100%;",items:g,setup:function(a){this.setValue(a.getStyle("list-style-type")||h[a.getAttribute("type")]|| +a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.commitContent(a)}}}}var f=function(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")},h={a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman",1:"decimal",disc:"disc",circle:"circle",square:"square"}; +CKEDITOR.dialog.add("numberedListStyle",function(c){return e(c,"numberedListStyle")});CKEDITOR.dialog.add("bulletedListStyle",function(c){return e(c,"bulletedListStyle")})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/af.js new file mode 100644 index 00000000..972e936b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","af",{armenian:"Armeense nommering",bulletedTitle:"Eienskappe van ongenommerde lys",circle:"Sirkel",decimal:"Desimale syfers (1, 2, 3, ens.)",decimalLeadingZero:"Desimale syfers met voorloopnul (01, 02, 03, ens.)",disc:"Skyf",georgian:"Georgiese nommering (an, ban, gan, ens.)",lowerAlpha:"Kleinletters (a, b, c, d, e, ens.)",lowerGreek:"Griekse kleinletters (alpha, beta, gamma, ens.)",lowerRoman:"Romeinse kleinletters (i, ii, iii, iv, v, ens.)",none:"Geen",notset:"<nie ingestel nie>", +numberedTitle:"Eienskappe van genommerde lys",square:"Vierkant",start:"Begin",type:"Tipe",upperAlpha:"Hoofletters (A, B, C, D, E, ens.)",upperRoman:"Romeinse hoofletters (I, II, III, IV, V, ens.)",validateStartNumber:"Beginnommer van lys moet 'n heelgetal wees."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ar.js new file mode 100644 index 00000000..72b9f52a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ar",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bg.js new file mode 100644 index 00000000..5cc312a2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bg.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bg",{armenian:"Арменско номериране",bulletedTitle:"Bulleted List Properties",circle:"Кръг",decimal:"Числа (1, 2, 3 и др.)",decimalLeadingZero:"Числа с водеща нула (01, 02, 03 и т.н.)",disc:"Диск",georgian:"Грузинско номериране (an, ban, gan, и т.н.)",lowerAlpha:"Малки букви (а, б, в, г, д и т.н.)",lowerGreek:"Малки гръцки букви (алфа, бета, гама и т.н.)",lowerRoman:"Малки римски числа (i, ii, iii, iv, v и т.н.)",none:"Няма",notset:"<не е указано>",numberedTitle:"Numbered List Properties", +square:"Квадрат",start:"Старт",type:"Тип",upperAlpha:"Големи букви (А, Б, В, Г, Д и т.н.)",upperRoman:"Големи римски числа (I, II, III, IV, V и т.н.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bn.js new file mode 100644 index 00000000..d002bafc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bs.js new file mode 100644 index 00000000..af72e359 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bs",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ca.js new file mode 100644 index 00000000..42455a34 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/cs.js new file mode 100644 index 00000000..d3abb5c8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/cs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cs",{armenian:"Arménské",bulletedTitle:"Vlastnosti odrážek",circle:"Kroužky",decimal:"Arabská čísla (1, 2, 3, atd.)",decimalLeadingZero:"Arabská čísla uvozená nulou (01, 02, 03, atd.)",disc:"Kolečka",georgian:"Gruzínské (an, ban, gan, atd.)",lowerAlpha:"Malá latinka (a, b, c, d, e, atd.)",lowerGreek:"Malé řecké (alpha, beta, gamma, atd.)",lowerRoman:"Malé římské (i, ii, iii, iv, v, atd.)",none:"Nic",notset:"<nenastaveno>",numberedTitle:"Vlastnosti číslování", +square:"Čtverce",start:"Počátek",type:"Typ",upperAlpha:"Velká latinka (A, B, C, D, E, atd.)",upperRoman:"Velké římské (I, II, III, IV, V, atd.)",validateStartNumber:"Číslování musí začínat celým číslem."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/cy.js new file mode 100644 index 00000000..a5d6cc5f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cy",{armenian:"Rhifo Armeneg",bulletedTitle:"Priodweddau Rhestr Fwled",circle:"Cylch",decimal:"Degol (1, 2, 3, ayyb.)",decimalLeadingZero:"Degol â sero arweiniol (01, 02, 03, ayyb.)",disc:"Disg",georgian:"Rhifau Sioraidd (an, ban, gan, ayyb.)",lowerAlpha:"Alffa Is (a, b, c, d, e, ayyb.)",lowerGreek:"Groeg Is (alpha, beta, gamma, ayyb.)",lowerRoman:"Rhufeinig Is (i, ii, iii, iv, v, ayyb.)",none:"Dim",notset:"<heb osod>",numberedTitle:"Priodweddau Rhestr Rifol", +square:"Sgwâr",start:"Dechrau",type:"Math",upperAlpha:"Alffa Uwch (A, B, C, D, E, ayyb.)",upperRoman:"Rhufeinig Uwch (I, II, III, IV, V, ayyb.)",validateStartNumber:"Rhaid bod y rhif cychwynnol yn gyfanrif."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/da.js new file mode 100644 index 00000000..d09c455e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/da.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","da",{armenian:"Armensk nummering",bulletedTitle:"Værdier for cirkelpunktopstilling",circle:"Cirkel",decimal:"Decimal (1, 2, 3, osv.)",decimalLeadingZero:"Decimaler med 0 først (01, 02, 03, etc.)",disc:"Værdier for diskpunktopstilling",georgian:"Georgiansk nummering (an, ban, gan, etc.)",lowerAlpha:"Små alfabet (a, b, c, d, e, etc.)",lowerGreek:"Små græsk (alpha, beta, gamma, etc.)",lowerRoman:"Små romerske (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ikke defineret>", +numberedTitle:"Egenskaber for nummereret liste",square:"Firkant",start:"Start",type:"Type",upperAlpha:"Store alfabet (A, B, C, D, E, etc.)",upperRoman:"Store romerske (I, II, III, IV, V, etc.)",validateStartNumber:"Den nummererede liste skal starte med et rundt nummer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/de.js new file mode 100644 index 00000000..30038e82 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/de.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","de",{armenian:"Armenisch Nummerierung",bulletedTitle:"Listen-Eigenschaften",circle:"Ring",decimal:"Dezimal (1, 2, 3, etc.)",decimalLeadingZero:"Dezimal mit führende Null (01, 02, 03, etc.)",disc:"Kreis",georgian:"Georgisch Nummerierung (an, ban, gan, etc.)",lowerAlpha:"Klein alpha (a, b, c, d, e, etc.)",lowerGreek:"Klein griechisch (alpha, beta, gamma, etc.)",lowerRoman:"Klein römisch (i, ii, iii, iv, v, etc.)",none:"Keine",notset:"<nicht gesetzt>",numberedTitle:"Nummerierte Listen-Eigenschaften", +square:"Quadrat",start:"Start",type:"Typ",upperAlpha:"Groß alpha (A, B, C, D, E, etc.)",upperRoman:"Groß römisch (I, II, III, IV, V, etc.)",validateStartNumber:"List Startnummer muss eine ganze Zahl sein."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/el.js new file mode 100644 index 00000000..d077c8e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/el.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","el",{armenian:"Αρμενική αρίθμηση",bulletedTitle:"Ιδιότητες Λίστας Σημείων",circle:"Κύκλος",decimal:"Δεκαδική (1, 2, 3, κτλ)",decimalLeadingZero:"Δεκαδική με αρχικό μηδεν (01, 02, 03, κτλ)",disc:"Δίσκος",georgian:"Γεωργιανή αρίθμηση (ა, ბ, გ, κτλ)",lowerAlpha:"Μικρά Λατινικά (a, b, c, d, e, κτλ.)",lowerGreek:"Μικρά Ελληνικά (α, β, γ, κτλ)",lowerRoman:"Μικρά Ρωμαϊκά (i, ii, iii, iv, v, κτλ)",none:"Καμία",notset:"<δεν έχει οριστεί>",numberedTitle:"Ιδιότητες Αριθμημένης Λίστας ", +square:"Τετράγωνο",start:"Εκκίνηση",type:"Τύπος",upperAlpha:"Κεφαλαία Λατινικά (A, B, C, D, E, κτλ)",upperRoman:"Κεφαλαία Ρωμαϊκά (I, II, III, IV, V, κτλ)",validateStartNumber:"Ο αριθμός εκκίνησης της αρίθμησης πρέπει να είναι ακέραιος αριθμός."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-au.js new file mode 100644 index 00000000..41e685fa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-au",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js new file mode 100644 index 00000000..633ecd9b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js new file mode 100644 index 00000000..6f1ca2a5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-gb",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en.js new file mode 100644 index 00000000..6bba5a29 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/eo.js new file mode 100644 index 00000000..6ef97acc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/eo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eo",{armenian:"Armena nombrado",bulletedTitle:"Atributoj de Bula Listo",circle:"Cirklo",decimal:"Dekumaj Nombroj (1, 2, 3, ktp.)",decimalLeadingZero:"Dekumaj Nombroj malantaŭ nulo (01, 02, 03, ktp.)",disc:"Disko",georgian:"Gruza nombrado (an, ban, gan, ktp.)",lowerAlpha:"Minusklaj Literoj (a, b, c, d, e, ktp.)",lowerGreek:"Grekaj Minusklaj Literoj (alpha, beta, gamma, ktp.)",lowerRoman:"Minusklaj Romanaj Nombroj (i, ii, iii, iv, v, ktp.)",none:"Neniu",notset:"<Defaŭlta>", +numberedTitle:"Atributoj de Numera Listo",square:"kvadrato",start:"Komenco",type:"Tipo",upperAlpha:"Majusklaj Literoj (A, B, C, D, E, ktp.)",upperRoman:"Majusklaj Romanaj Nombroj (I, II, III, IV, V, ktp.)",validateStartNumber:"La unua listero devas esti entjera nombro."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/es.js new file mode 100644 index 00000000..06ed01a5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","es",{armenian:"Numeración armenia",bulletedTitle:"Propiedades de viñetas",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero inicial (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeración georgiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Letras griegas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ninguno",notset:"<sin establecer>", +numberedTitle:"Propiedades de lista numerada",square:"Cuadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en mayúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en mayúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"El Inicio debe ser un número entero."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/et.js new file mode 100644 index 00000000..9212207b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/et.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","et",{armenian:"Armeenia numbrid",bulletedTitle:"Punktloendi omadused",circle:"Ring",decimal:"Numbrid (1, 2, 3, jne)",decimalLeadingZero:"Numbrid algusnulliga (01, 02, 03, jne)",disc:"Täpp",georgian:"Gruusia numbrid (an, ban, gan, jne)",lowerAlpha:"Väiketähed (a, b, c, d, e, jne)",lowerGreek:"Kreeka väiketähed (alpha, beta, gamma, jne)",lowerRoman:"Väiksed rooma numbrid (i, ii, iii, iv, v, jne)",none:"Puudub",notset:"<pole määratud>",numberedTitle:"Numberloendi omadused", +square:"Ruut",start:"Algus",type:"Liik",upperAlpha:"Suurtähed (A, B, C, D, E, jne)",upperRoman:"Suured rooma numbrid (I, II, III, IV, V, jne)",validateStartNumber:"Loendi algusnumber peab olema täisarv."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/eu.js new file mode 100644 index 00000000..dc0d63a7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/eu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eu",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fa.js new file mode 100644 index 00000000..5a588c04 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fa",{armenian:"شماره‌گذاری ارمنی",bulletedTitle:"خصوصیات فهرست نقطه‌ای",circle:"دایره",decimal:"ده‌دهی (۱، ۲، ۳، ...)",decimalLeadingZero:"دهدهی همراه با صفر (۰۱، ۰۲، ۰۳، ...)",disc:"صفحه گرد",georgian:"شمارهگذاری گریگورین (an, ban, gan, etc.)",lowerAlpha:"پانویس الفبایی (a, b, c, d, e, etc.)",lowerGreek:"پانویس یونانی (alpha, beta, gamma, etc.)",lowerRoman:"پانویس رومی (i, ii, iii, iv, v, etc.)",none:"هیچ",notset:"<تنظیم نشده>",numberedTitle:"ویژگیهای فهرست شمارهدار", +square:"چهارگوش",start:"شروع",type:"نوع",upperAlpha:"بالانویس الفبایی (A, B, C, D, E, etc.)",upperRoman:"بالانویس رومی (I, II, III, IV, V, etc.)",validateStartNumber:"فهرست شماره شروع باید یک عدد صحیح باشد."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fi.js new file mode 100644 index 00000000..2e55ab99 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fi",{armenian:"Armeenialainen numerointi",bulletedTitle:"Numeroimattoman listan ominaisuudet",circle:"Ympyrä",decimal:"Desimaalit (1, 2, 3, jne.)",decimalLeadingZero:"Desimaalit, alussa nolla (01, 02, 03, jne.)",disc:"Levy",georgian:"Georgialainen numerointi (an, ban, gan, etc.)",lowerAlpha:"Pienet aakkoset (a, b, c, d, e, jne.)",lowerGreek:"Pienet kreikkalaiset (alpha, beta, gamma, jne.)",lowerRoman:"Pienet roomalaiset (i, ii, iii, iv, v, jne.)",none:"Ei mikään", +notset:"<ei asetettu>",numberedTitle:"Numeroidun listan ominaisuudet",square:"Neliö",start:"Alku",type:"Tyyppi",upperAlpha:"Isot aakkoset (A, B, C, D, E, jne.)",upperRoman:"Isot roomalaiset (I, II, III, IV, V, jne.)",validateStartNumber:"Listan ensimmäisen numeron tulee olla kokonaisluku."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fo.js new file mode 100644 index 00000000..c7861be7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fo",{armenian:"Armensk talskipan",bulletedTitle:"Eginleikar fyri lista við prikkum",circle:"Sirkul",decimal:"Vanlig tøl (1, 2, 3, etc.)",decimalLeadingZero:"Tøl við null frammanfyri (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgisk talskipan (an, ban, gan, osv.)",lowerAlpha:"Lítlir bókstavir (a, b, c, d, e, etc.)",lowerGreek:"Grikskt við lítlum (alpha, beta, gamma, etc.)",lowerRoman:"Lítil rómaratøl (i, ii, iii, iv, v, etc.)",none:"Einki",notset:"<ikki sett>", +numberedTitle:"Eginleikar fyri lista við tølum",square:"Fýrkantur",start:"Byrjan",type:"Slag",upperAlpha:"Stórir bókstavir (A, B, C, D, E, etc.)",upperRoman:"Stór rómaratøl (I, II, III, IV, V, etc.)",validateStartNumber:"Byrjunartalið fyri lista má vera eitt heiltal."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js new file mode 100644 index 00000000..1c2925a8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr-ca",{armenian:"Numération arménienne",bulletedTitle:"Propriété de liste à puce",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal avec zéro (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscule (a, b, c, d, e, etc.)",lowerGreek:"Grecque minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Romain minuscule (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<non défini>", +numberedTitle:"Propriété de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscule (A, B, C, D, E, etc.)",upperRoman:"Romain Majuscule (I, II, III, IV, V, etc.)",validateStartNumber:"Le numéro de début de liste doit être un entier."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fr.js new file mode 100644 index 00000000..a787f638 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/fr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr",{armenian:"Numération arménienne",bulletedTitle:"Propriétés de la liste à puces",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal précédé par un 0 (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscules (a, b, c, d, e, etc.)",lowerGreek:"Grec minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Nombres romains minuscules (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<Non défini>", +numberedTitle:"Propriétés de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscules (A, B, C, D, E, etc.)",upperRoman:"Nombres romains majuscules (I, II, III, IV, V, etc.)",validateStartNumber:"Le premier élément de la liste doit être un nombre entier."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/gl.js new file mode 100644 index 00000000..f4e986fa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/gl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gl",{armenian:"Numeración armenia",bulletedTitle:"Propiedades da lista viñeteada",circle:"Circulo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero á esquerda (01, 02, 03, etc.)",disc:"Disc",georgian:"Numeración xeorxiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Grego en minúsculas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ningún", +notset:"<sen estabelecer>",numberedTitle:"Propiedades da lista numerada",square:"Cadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en maiúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en maiúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"O número de inicio da lista debe ser un número enteiro."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/gu.js new file mode 100644 index 00000000..48995fbc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gu",{armenian:"અરમેનિયન આંકડા પદ્ધતિ",bulletedTitle:"બુલેટેડ લીસ્ટના ગુણ",circle:"વર્તુળ",decimal:"આંકડા (1, 2, 3, etc.)",decimalLeadingZero:"સુન્ય આગળ આંકડા (01, 02, 03, etc.)",disc:"ડિસ્ક",georgian:"ગેઓર્ગિયન આંકડા પદ્ધતિ (an, ban, gan, etc.)",lowerAlpha:"આલ્ફા નાના (a, b, c, d, e, etc.)",lowerGreek:"ગ્રીક નાના (alpha, beta, gamma, etc.)",lowerRoman:"રોમન નાના (i, ii, iii, iv, v, etc.)",none:"કસુ ",notset:"<સેટ નથી>",numberedTitle:"આંકડાના લીસ્ટના ગુણ",square:"ચોરસ", +start:"શરુ કરવું",type:"પ્રકાર",upperAlpha:"આલ્ફા મોટા (A, B, C, D, E, etc.)",upperRoman:"રોમન મોટા (I, II, III, IV, V, etc.)",validateStartNumber:"લીસ્ટના સરુઆતનો આંકડો પુરો હોવો જોઈએ."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/he.js new file mode 100644 index 00000000..ba746516 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","he",{armenian:"ספרות ארמניות",bulletedTitle:"תכונות רשימת תבליטים",circle:"עיגול ריק",decimal:"ספרות (1, 2, 3 וכו')",decimalLeadingZero:"ספרות עם 0 בהתחלה (01, 02, 03 וכו')",disc:"עיגול מלא",georgian:"ספרות גיאורגיות (an, ban, gan וכו')",lowerAlpha:"אותיות אנגליות קטנות (a, b, c, d, e וכו')",lowerGreek:"אותיות יווניות קטנות (alpha, beta, gamma וכו')",lowerRoman:"ספירה רומית באותיות קטנות (i, ii, iii, iv, v וכו')",none:"ללא",notset:"<לא נקבע>",numberedTitle:"תכונות רשימה ממוספרת", +square:"ריבוע",start:"תחילת מספור",type:"סוג",upperAlpha:"אותיות אנגליות גדולות (A, B, C, D, E וכו')",upperRoman:"ספירה רומיות באותיות גדולות (I, II, III, IV, V וכו')",validateStartNumber:"שדה תחילת המספור חייב להכיל מספר שלם."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hi.js new file mode 100644 index 00000000..23e5affe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hi",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hr.js new file mode 100644 index 00000000..66a47962 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hr",{armenian:"Armenijska numeracija",bulletedTitle:"Svojstva liste",circle:"Krug",decimal:"Decimalna numeracija (1, 2, 3, itd.)",decimalLeadingZero:"Decimalna s vodećom nulom (01, 02, 03, itd)",disc:"Disk",georgian:"Gruzijska numeracija(an, ban, gan, etc.)",lowerAlpha:"Znakovi mala slova (a, b, c, d, e, itd.)",lowerGreek:"Grčka numeracija mala slova (alfa, beta, gama, itd).",lowerRoman:"Romanska numeracija mala slova (i, ii, iii, iv, v, itd.)",none:"Bez",notset:"<nije određen>", +numberedTitle:"Svojstva brojčane liste",square:"Kvadrat",start:"Početak",type:"Vrsta",upperAlpha:"Znakovi velika slova (A, B, C, D, E, itd.)",upperRoman:"Romanska numeracija velika slova (I, II, III, IV, V, itd.)",validateStartNumber:"Početak brojčane liste mora biti cijeli broj."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hu.js new file mode 100644 index 00000000..d37d441f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/hu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hu",{armenian:"Örmény számozás",bulletedTitle:"Pontozott lista tulajdonságai",circle:"Kör",decimal:"Arab számozás (1, 2, 3, stb.)",decimalLeadingZero:"Számozás bevezető nullákkal (01, 02, 03, stb.)",disc:"Korong",georgian:"Grúz számozás (an, ban, gan, stb.)",lowerAlpha:"Kisbetűs (a, b, c, d, e, stb.)",lowerGreek:"Görög (alpha, beta, gamma, stb.)",lowerRoman:"Római kisbetűs (i, ii, iii, iv, v, stb.)",none:"Nincs",notset:"<Nincs beállítva>",numberedTitle:"Sorszámozott lista tulajdonságai", +square:"Négyzet",start:"Kezdőszám",type:"Típus",upperAlpha:"Nagybetűs (A, B, C, D, E, stb.)",upperRoman:"Római nagybetűs (I, II, III, IV, V, stb.)",validateStartNumber:"A kezdőszám nem lehet tört érték."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/id.js new file mode 100644 index 00000000..65d48510 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","id",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Lingkaran",decimal:"Desimal (1, 2, 3, dst.)",decimalLeadingZero:"Desimal diawali angka nol (01, 02, 03, dst.)",disc:"Cakram",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Huruf Kecil (a, b, c, d, e, dst.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Angka Romawi (i, ii, iii, iv, v, dst.)",none:"Tidak ada",notset:"<tidak diatur>",numberedTitle:"Numbered List Properties", +square:"Persegi",start:"Mulai",type:"Tipe",upperAlpha:"Huruf Besar (A, B, C, D, E, dst.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/is.js new file mode 100644 index 00000000..3f8cd1a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","is",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/it.js new file mode 100644 index 00000000..674c5e1b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/it.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","it",{armenian:"Numerazione Armena",bulletedTitle:"Proprietà liste puntate",circle:"Cerchio",decimal:"Decimale (1, 2, 3, ecc.)",decimalLeadingZero:"Decimale preceduto da 0 (01, 02, 03, ecc.)",disc:"Disco",georgian:"Numerazione Georgiana (an, ban, gan, ecc.)",lowerAlpha:"Alfabetico minuscolo (a, b, c, d, e, ecc.)",lowerGreek:"Greco minuscolo (alpha, beta, gamma, ecc.)",lowerRoman:"Numerazione Romana minuscola (i, ii, iii, iv, v, ecc.)",none:"Nessuno",notset:"<non impostato>", +numberedTitle:"Proprietà liste numerate",square:"Quadrato",start:"Inizio",type:"Tipo",upperAlpha:"Alfabetico maiuscolo (A, B, C, D, E, ecc.)",upperRoman:"Numerazione Romana maiuscola (I, II, III, IV, V, ecc.)",validateStartNumber:"Il numero di inizio di una lista numerata deve essere un numero intero."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ja.js new file mode 100644 index 00000000..934cc98c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ja",{armenian:"アルメニア数字",bulletedTitle:"箇条書きのプロパティ",circle:"白丸",decimal:"数字 (1, 2, 3, etc.)",decimalLeadingZero:"0付きの数字 (01, 02, 03, etc.)",disc:"黒丸",georgian:"グルジア数字 (an, ban, gan, etc.)",lowerAlpha:"小文字アルファベット (a, b, c, d, e, etc.)",lowerGreek:"小文字ギリシャ文字 (alpha, beta, gamma, etc.)",lowerRoman:"小文字ローマ数字 (i, ii, iii, iv, v, etc.)",none:"なし",notset:"<なし>",numberedTitle:"番号付きリストのプロパティ",square:"四角",start:"開始",type:"種類",upperAlpha:"大文字アルファベット (A, B, C, D, E, etc.)", +upperRoman:"大文字ローマ数字 (I, II, III, IV, V, etc.)",validateStartNumber:"リストの開始番号は数値で入力してください。"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ka.js new file mode 100644 index 00000000..f820e66a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ka.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ka",{armenian:"სომხური გადანომრვა",bulletedTitle:"ღილებიანი სიის პარამეტრები",circle:"წრეწირი",decimal:"რიცხვებით (1, 2, 3, ..)",decimalLeadingZero:"ნულით დაწყებული რიცხვებით (01, 02, 03, ..)",disc:"წრე",georgian:"ქართული გადანომრვა (ან, ბან, გან, ..)",lowerAlpha:"პატარა ლათინური ასოებით (a, b, c, d, e, ..)",lowerGreek:"პატარა ბერძნული ასოებით (ალფა, ბეტა, გამა, ..)",lowerRoman:"რომაული გადანომრვცა პატარა ციფრებით (i, ii, iii, iv, v, ..)",none:"არაფერი",notset:"<არაფერი>", +numberedTitle:"გადანომრილი სიის პარამეტრები",square:"კვადრატი",start:"საწყისი",type:"ტიპი",upperAlpha:"დიდი ლათინური ასოებით (A, B, C, D, E, ..)",upperRoman:"რომაული გადანომრვა დიდი ციფრებით (I, II, III, IV, V, etc.)",validateStartNumber:"სიის საწყისი მთელი რიცხვი უნდა იყოს."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/km.js new file mode 100644 index 00000000..181efe3d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","km",{armenian:"លេខ​អារមេនី",bulletedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​ចំណុច",circle:"រង្វង់​មូល",decimal:"លេខ​ទសភាគ (1, 2, 3, ...)",decimalLeadingZero:"ទសភាគ​ចាប់​ផ្ដើម​ពី​សូន្យ (01, 02, 03, ...)",disc:"ថាស",georgian:"លេខ​ចចជា (an, ban, gan, ...)",lowerAlpha:"ព្យញ្ជនៈ​តូច (a, b, c, d, e, ...)",lowerGreek:"លេខ​ក្រិក​តូច (alpha, beta, gamma, ...)",lowerRoman:"លេខ​រ៉ូម៉ាំង​តូច (i, ii, iii, iv, v, ...)",none:"គ្មាន",notset:"<not set>",numberedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​លេខ", +square:"ការេ",start:"ចាប់​ផ្ដើម",type:"ប្រភេទ",upperAlpha:"អក្សរ​ធំ (A, B, C, D, E, ...)",upperRoman:"លេខ​រ៉ូម៉ាំង​ធំ (I, II, III, IV, V, ...)",validateStartNumber:"លេខ​ចាប់​ផ្ដើម​បញ្ជី ត្រូវ​តែ​ជា​តួ​លេខ​ពិត​ប្រាកដ។"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ko.js new file mode 100644 index 00000000..1be0697f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ko",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ku.js new file mode 100644 index 00000000..ccb7e195 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ku.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ku",{armenian:"ئاراستەی ژمارەی ئەرمەنی",bulletedTitle:"خاسیەتی لیستی خاڵی",circle:"بازنه",decimal:"ژمارە (1, 2, 3, وە هیتر.)",decimalLeadingZero:"ژمارە سفڕی لەپێشەوه (01, 02, 03, وە هیتر.)",disc:"پەپکە",georgian:"ئاراستەی ژمارەی جۆڕجی (an, ban, gan, وە هیتر.)",lowerAlpha:"ئەلفابێی بچووك (a, b, c, d, e, وە هیتر.)",lowerGreek:"یۆنانی بچووك (alpha, beta, gamma, وە هیتر.)",lowerRoman:"ژمارەی ڕۆمی بچووك (i, ii, iii, iv, v, وە هیتر.)",none:"هیچ",notset:"<دانەندراوه>", +numberedTitle:"خاسیەتی لیستی ژمارەیی",square:"چووراگۆشە",start:"دەستپێکردن",type:"جۆر",upperAlpha:"ئەلفابێی گەوره (A, B, C, D, E, وە هیتر.)",upperRoman:"ژمارەی ڕۆمی گەوره (I, II, III, IV, V, وە هیتر.)",validateStartNumber:"دەستپێکەری لیستی ژمارەیی دەبێت تەنها ژمارە بێت."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/lt.js new file mode 100644 index 00000000..c563c96d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/lt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lt",{armenian:"Armėniški skaitmenys",bulletedTitle:"Ženklelinio sąrašo nustatymai",circle:"Apskritimas",decimal:"Dešimtainis (1, 2, 3, t.t)",decimalLeadingZero:"Dešimtainis su nuliu priekyje (01, 02, 03, t.t)",disc:"Diskas",georgian:"Gruziniški skaitmenys (an, ban, gan, t.t)",lowerAlpha:"Mažosios Alpha (a, b, c, d, e, t.t)",lowerGreek:"Mažosios Graikų (alpha, beta, gamma, t.t)",lowerRoman:"Mažosios Romėnų (i, ii, iii, iv, v, t.t)",none:"Niekas",notset:"<nenurodytas>", +numberedTitle:"Skaitmeninio sąrašo nustatymai",square:"Kvadratas",start:"Pradžia",type:"Rūšis",upperAlpha:"Didžiosios Alpha (A, B, C, D, E, t.t)",upperRoman:"Didžiosios Romėnų (I, II, III, IV, V, t.t)",validateStartNumber:"Sąrašo pradžios skaitmuo turi būti sveikas skaičius."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/lv.js new file mode 100644 index 00000000..94c41888 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/lv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lv",{armenian:"Armēņu skaitļi",bulletedTitle:"Vienkārša saraksta uzstādījumi",circle:"Aplis",decimal:"Decimālie (1, 2, 3, utt)",decimalLeadingZero:"Decimālie ar nulli (01, 02, 03, utt)",disc:"Disks",georgian:"Gruzīņu skaitļi (an, ban, gan, utt)",lowerAlpha:"Mazie alfabēta (a, b, c, d, e, utt)",lowerGreek:"Mazie grieķu (alfa, beta, gamma, utt)",lowerRoman:"Mazie romāņu (i, ii, iii, iv, v, utt)",none:"Nekas",notset:"<nav norādīts>",numberedTitle:"Numurēta saraksta uzstādījumi", +square:"Kvadrāts",start:"Sākt",type:"Tips",upperAlpha:"Lielie alfabēta (A, B, C, D, E, utt)",upperRoman:"Lielie romāņu (I, II, III, IV, V, utt)",validateStartNumber:"Saraksta sākuma numuram jābūt veselam skaitlim"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/mk.js new file mode 100644 index 00000000..36966219 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mk",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/mn.js new file mode 100644 index 00000000..895d754e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Төрөл",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ms.js new file mode 100644 index 00000000..ffe91b8b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ms",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/nb.js new file mode 100644 index 00000000..cd9b38db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nb",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/nl.js new file mode 100644 index 00000000..4fc950ab --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/nl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nl",{armenian:"Armeense nummering",bulletedTitle:"Eigenschappen lijst met opsommingstekens",circle:"Cirkel",decimal:"Cijfers (1, 2, 3, etc.)",decimalLeadingZero:"Cijfers beginnen met nul (01, 02, 03, etc.)",disc:"Schijf",georgian:"Georgische nummering (an, ban, gan, etc.)",lowerAlpha:"Kleine letters (a, b, c, d, e, etc.)",lowerGreek:"Grieks kleine letters (alpha, beta, gamma, etc.)",lowerRoman:"Romeins kleine letters (i, ii, iii, iv, v, etc.)",none:"Geen",notset:"<niet gezet>", +numberedTitle:"Eigenschappen genummerde lijst",square:"Vierkant",start:"Start",type:"Type",upperAlpha:"Hoofdletters (A, B, C, D, E, etc.)",upperRoman:"Romeinse hoofdletters (I, II, III, IV, V, etc.)",validateStartNumber:"Startnummer van de lijst moet een heel nummer zijn."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/no.js new file mode 100644 index 00000000..f753bd6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","no",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pl.js new file mode 100644 index 00000000..85da585d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pl",{armenian:"Numerowanie armeńskie",bulletedTitle:"Właściwości list wypunktowanych",circle:"Koło",decimal:"Liczby (1, 2, 3 itd.)",decimalLeadingZero:"Liczby z początkowym zerem (01, 02, 03 itd.)",disc:"Okrąg",georgian:"Numerowanie gruzińskie (an, ban, gan itd.)",lowerAlpha:"Małe litery (a, b, c, d, e itd.)",lowerGreek:"Małe litery greckie (alpha, beta, gamma itd.)",lowerRoman:"Małe cyfry rzymskie (i, ii, iii, iv, v itd.)",none:"Brak",notset:"<nie ustawiono>", +numberedTitle:"Właściwości list numerowanych",square:"Kwadrat",start:"Początek",type:"Typ punktora",upperAlpha:"Duże litery (A, B, C, D, E itd.)",upperRoman:"Duże cyfry rzymskie (I, II, III, IV, V itd.)",validateStartNumber:"Listę musi rozpoczynać liczba całkowita."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js new file mode 100644 index 00000000..190c8937 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt-br",{armenian:"Numeração Armêna",bulletedTitle:"Propriedades da Lista sem Numeros",circle:"Círculo",decimal:"Numeração Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Numeração Decimal com zeros (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeração da Geórgia (an, ban, gan, etc.)",lowerAlpha:"Numeração Alfabética minúscula (a, b, c, d, e, etc.)",lowerGreek:"Numeração Grega minúscula (alpha, beta, gamma, etc.)",lowerRoman:"Numeração Romana minúscula (i, ii, iii, iv, v, etc.)", +none:"Nenhum",notset:"<não definido>",numberedTitle:"Propriedades da Lista Numerada",square:"Quadrado",start:"Início",type:"Tipo",upperAlpha:"Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)",upperRoman:"Numeração Romana maiúscula (I, II, III, IV, V, etc.)",validateStartNumber:"O número inicial da lista deve ser um número inteiro."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pt.js new file mode 100644 index 00000000..2b0f85a2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/pt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt",{armenian:"Numeração armênia",bulletedTitle:"Bulleted List Properties",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disco",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Nenhum",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Quadrado",start:"Iniciar",type:"Tipo",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ro.js new file mode 100644 index 00000000..d76923bf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ro.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ro",{armenian:"Numerotare armeniană",bulletedTitle:"Proprietățile listei cu simboluri",circle:"Cerc",decimal:"Decimale (1, 2, 3, etc.)",decimalLeadingZero:"Decimale cu zero în față (01, 02, 03, etc.)",disc:"Disc",georgian:"Numerotare georgiană (an, ban, gan, etc.)",lowerAlpha:"Litere mici (a, b, c, d, e, etc.)",lowerGreek:"Litere grecești mici (alpha, beta, gamma, etc.)",lowerRoman:"Cifre romane mici (i, ii, iii, iv, v, etc.)",none:"Nimic",notset:"<nesetat>", +numberedTitle:"Proprietățile listei numerotate",square:"Pătrat",start:"Start",type:"Tip",upperAlpha:"Litere mari (A, B, C, D, E, etc.)",upperRoman:"Cifre romane mari (I, II, III, IV, V, etc.)",validateStartNumber:"Începutul listei trebuie să fie un număr întreg."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ru.js new file mode 100644 index 00000000..421fd606 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ru.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ru",{armenian:"Армянская нумерация",bulletedTitle:"Свойства маркированного списка",circle:"Круг",decimal:"Десятичные (1, 2, 3, и т.д.)",decimalLeadingZero:"Десятичные с ведущим нулём (01, 02, 03, и т.д.)",disc:"Окружность",georgian:"Грузинская нумерация (ани, бани, гани, и т.д.)",lowerAlpha:"Строчные латинские (a, b, c, d, e, и т.д.)",lowerGreek:"Строчные греческие (альфа, бета, гамма, и т.д.)",lowerRoman:"Строчные римские (i, ii, iii, iv, v, и т.д.)",none:"Нет", +notset:"<не указано>",numberedTitle:"Свойства нумерованного списка",square:"Квадрат",start:"Начиная с",type:"Тип",upperAlpha:"Заглавные латинские (A, B, C, D, E, и т.д.)",upperRoman:"Заглавные римские (I, II, III, IV, V, и т.д.)",validateStartNumber:"Первый номер списка должен быть задан обычным целым числом."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/si.js new file mode 100644 index 00000000..c2253a52 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","si",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"කිසිවක්ම නොවේ",notset:"<යොදා >",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"වර්ගය",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sk.js new file mode 100644 index 00000000..817dab04 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sk",{armenian:"Arménske číslovanie",bulletedTitle:"Vlastnosti odrážkového zoznamu",circle:"Kruh",decimal:"Číselné (1, 2, 3, atď.)",decimalLeadingZero:"Číselné s nulou (01, 02, 03, atď.)",disc:"Disk",georgian:"Gregoriánske číslovanie (an, ban, gan, atď.)",lowerAlpha:"Malé latinské (a, b, c, d, e, atď.)",lowerGreek:"Malé grécke (alfa, beta, gama, atď.)",lowerRoman:"Malé rímske (i, ii, iii, iv, v, atď.)",none:"Nič",notset:"<nenastavené>",numberedTitle:"Vlastnosti číselného zoznamu", +square:"Štvorec",start:"Začiatok",type:"Typ",upperAlpha:"Veľké latinské (A, B, C, D, E, atď.)",upperRoman:"Veľké rímske (I, II, III, IV, V, atď.)",validateStartNumber:"Začiatočné číslo číselného zoznamu musí byť celé číslo."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sl.js new file mode 100644 index 00000000..f147fe2e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sl",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sq.js new file mode 100644 index 00000000..586b7d40 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sq.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sq",{armenian:"Numërim armenian",bulletedTitle:"Karakteristikat e Listës me Pulla",circle:"Rreth",decimal:"Decimal (1, 2, 3, etj.)",decimalLeadingZero:"Decimal me zerro udhëheqëse (01, 02, 03, etj.)",disc:"Disk",georgian:"Numërim gjeorgjian (an, ban, gan, etj.)",lowerAlpha:"Të vogla alfa (a, b, c, d, e, etj.)",lowerGreek:"Të vogla greke (alpha, beta, gamma, etj.)",lowerRoman:"Të vogla romake (i, ii, iii, iv, v, etj.)",none:"Asnjë",notset:"<e pazgjedhur>",numberedTitle:"Karakteristikat e Listës me Numra", +square:"Katror",start:"Fillimi",type:"LLoji",upperAlpha:"Të mëdha alfa (A, B, C, D, E, etj.)",upperRoman:"Të mëdha romake (I, II, III, IV, V, etj.)",validateStartNumber:"Numri i fillimit të listës duhet të është numër i plotë."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js new file mode 100644 index 00000000..df10d830 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr-latn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sr.js new file mode 100644 index 00000000..1864935a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sv.js new file mode 100644 index 00000000..8a5f9392 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sv",{armenian:"Armenisk numrering",bulletedTitle:"Egenskaper för punktlista",circle:"Cirkel",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal nolla (01, 02, 03, etc.)",disc:"Disk",georgian:"Georgisk numrering (an, ban, gan, etc.)",lowerAlpha:"Alpha gemener (a, b, c, d, e, etc.)",lowerGreek:"Grekiska gemener (alpha, beta, gamma, etc.)",lowerRoman:"Romerska gemener (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ej angiven>",numberedTitle:"Egenskaper för punktlista", +square:"Fyrkant",start:"Start",type:"Typ",upperAlpha:"Alpha versaler (A, B, C, D, E, etc.)",upperRoman:"Romerska versaler (I, II, III, IV, V, etc.)",validateStartNumber:"Listans startnummer måste vara ett heltal."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/th.js new file mode 100644 index 00000000..7ffb3ebd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/th.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","th",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/tr.js new file mode 100644 index 00000000..a19f7c73 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tr",{armenian:"Ermenice sayılandırma",bulletedTitle:"Simgeli Liste Özellikleri",circle:"Daire",decimal:"Ondalık (1, 2, 3, vs.)",decimalLeadingZero:"Başı sıfırlı ondalık (01, 02, 03, vs.)",disc:"Disk",georgian:"Gürcüce numaralandırma (an, ban, gan, vs.)",lowerAlpha:"Küçük Alpha (a, b, c, d, e, vs.)",lowerGreek:"Küçük Greek (alpha, beta, gamma, vs.)",lowerRoman:"Küçük Roman (i, ii, iii, iv, v, vs.)",none:"Yok",notset:"<ayarlanmamış>",numberedTitle:"Sayılandırılmış Liste Özellikleri", +square:"Kare",start:"Başla",type:"Tipi",upperAlpha:"Büyük Alpha (A, B, C, D, E, vs.)",upperRoman:"Büyük Roman (I, II, III, IV, V, vs.)",validateStartNumber:"Liste başlangıcı tam sayı olmalıdır."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/tt.js new file mode 100644 index 00000000..07fadad3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tt",{armenian:"Armenian numbering",bulletedTitle:"Маркерлы тезмә үзлекләре",circle:"Түгәрәк",decimal:"Унарлы (1, 2, 3, ...)",decimalLeadingZero:"Ноль белән башланган унарлы (01, 02, 03, ...)",disc:"Диск",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Һичбер",notset:"<билгеләнмәгән>",numberedTitle:"Numbered List Properties", +square:"Шакмак",start:"Башлау",type:"Төр",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ug.js new file mode 100644 index 00000000..d278f60d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/ug.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ug",{armenian:"قەدىمكى ئەرمىنىيە تەرتىپ نومۇرى شەكلى",bulletedTitle:"تۈر بەلگە تىزىم خاسلىقى",circle:"بوش چەمبەر",decimal:"سان (1, 2, 3 قاتارلىق)",decimalLeadingZero:"نۆلدىن باشلانغان سان بەلگە (01, 02, 03 قاتارلىق)",disc:"تولدۇرۇلغان چەمبەر",georgian:"قەدىمكى جورجىيە تەرتىپ نومۇرى شەكلى (an, ban, gan قاتارلىق)",lowerAlpha:"ئىنگلىزچە كىچىك ھەرپ (a, b, c, d, e قاتارلىق)",lowerGreek:"گرېكچە كىچىك ھەرپ (alpha, beta, gamma قاتارلىق)",lowerRoman:"كىچىك ھەرپلىك رىم رەقىمى (i, ii, iii, iv, v قاتارلىق)", +none:"بەلگە يوق",notset:"‹تەڭشەلمىگەن›",numberedTitle:"تەرتىپ نومۇر تىزىم خاسلىقى",square:"تولدۇرۇلغان تۆت چاسا",start:"باشلىنىش نومۇرى",type:"بەلگە تىپى",upperAlpha:"ئىنگلىزچە چوڭ ھەرپ (A, B, C, D, E قاتارلىق)",upperRoman:"چوڭ ھەرپلىك رىم رەقىمى (I, II, III, IV, V قاتارلىق)",validateStartNumber:"تىزىم باشلىنىش تەرتىپ نومۇرى چوقۇم پۈتۈن سان پىچىمىدا بولۇشى لازىم"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/uk.js new file mode 100644 index 00000000..de577116 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/uk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","uk",{armenian:"Вірменська нумерація",bulletedTitle:"Опції маркованого списку",circle:"Кільце",decimal:"Десяткові (1, 2, 3 і т.д.)",decimalLeadingZero:"Десяткові з нулем (01, 02, 03 і т.д.)",disc:"Кружечок",georgian:"Грузинська нумерація (an, ban, gan і т.д.)",lowerAlpha:"Малі лат. букви (a, b, c, d, e і т.д.)",lowerGreek:"Малі гр. букви (альфа, бета, гамма і т.д.)",lowerRoman:"Малі римські (i, ii, iii, iv, v і т.д.)",none:"Нема",notset:"<не вказано>",numberedTitle:"Опції нумерованого списку", +square:"Квадратик",start:"Почати з...",type:"Тип",upperAlpha:"Великі лат. букви (A, B, C, D, E і т.д.)",upperRoman:"Великі римські (I, II, III, IV, V і т.д.)",validateStartNumber:"Початковий номер списку повинен бути цілим числом."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/vi.js new file mode 100644 index 00000000..bd56db2b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/vi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","vi",{armenian:"Số theo kiểu Armenian",bulletedTitle:"Thuộc tính danh sách không thứ tự",circle:"Khuyên tròn",decimal:"Kiểu số (1, 2, 3 ...)",decimalLeadingZero:"Kiểu số (01, 02, 03...)",disc:"Hình đĩa",georgian:"Số theo kiểu Georgian (an, ban, gan...)",lowerAlpha:"Kiểu abc thường (a, b, c, d, e...)",lowerGreek:"Kiểu Hy Lạp (alpha, beta, gamma...)",lowerRoman:"Số La Mã kiểu thường (i, ii, iii, iv, v...)",none:"Không gì cả",notset:"<không thiết lập>",numberedTitle:"Thuộc tính danh sách có thứ tự", +square:"Hình vuông",start:"Bắt đầu",type:"Kiểu loại",upperAlpha:"Kiểu ABC HOA (A, B, C, D, E...)",upperRoman:"Số La Mã kiểu HOA (I, II, III, IV, V...)",validateStartNumber:"Số bắt đầu danh sách phải là một số nguyên."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js new file mode 100644 index 00000000..a27132cf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh-cn",{armenian:"传统的亚美尼亚编号方式",bulletedTitle:"项目列表属性",circle:"空心圆",decimal:"数字 (1, 2, 3, 等)",decimalLeadingZero:"0开头的数字标记(01, 02, 03, 等)",disc:"实心圆",georgian:"传统的乔治亚编号方式(an, ban, gan, 等)",lowerAlpha:"小写英文字母(a, b, c, d, e, 等)",lowerGreek:"小写希腊字母(alpha, beta, gamma, 等)",lowerRoman:"小写罗马数字(i, ii, iii, iv, v, 等)",none:"无标记",notset:"<没有设置>",numberedTitle:"编号列表属性",square:"实心方块",start:"开始序号",type:"标记类型",upperAlpha:"大写英文字母(A, B, C, D, E, 等)",upperRoman:"大写罗马数字(I, II, III, IV, V, 等)", +validateStartNumber:"列表开始序号必须为整数格式"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/zh.js new file mode 100644 index 00000000..566f075e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh",{armenian:"亞美尼亞數字",bulletedTitle:"項目符號清單屬性",circle:"圓圈",decimal:"小數點 (1, 2, 3, etc.)",decimalLeadingZero:"前綴 0 十位數字 (01, 02, 03, 等)",disc:"圓點",georgian:"喬治王時代數字 (an, ban, gan, 等)",lowerAlpha:"小寫字母 (a, b, c, d, e 等)",lowerGreek:"小寫希臘字母 (alpha, beta, gamma, 等)",lowerRoman:"小寫羅馬數字 (i, ii, iii, iv, v 等)",none:"無",notset:"<未設定>",numberedTitle:"編號清單屬性",square:"方塊",start:"開始",type:"類型",upperAlpha:"大寫字母 (A, B, C, D, E 等)",upperRoman:"大寫羅馬數字 (I, II, III, IV, V 等)", +validateStartNumber:"清單起始號碼須為一完整數字。"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/liststyle/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/liststyle/plugin.js new file mode 100644 index 00000000..22087218 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/liststyle/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b); +CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list", +command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png new file mode 100644 index 00000000..4a8d2bfd Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png new file mode 100644 index 00000000..b981bb5c Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png new file mode 100644 index 00000000..55b5b5f9 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/magicline/images/icon.png b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/icon.png new file mode 100644 index 00000000..e0634336 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/magicline/images/icon.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js new file mode 100644 index 00000000..25c3dff2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("mathjax",function(d){var c,b=d.lang.mathjax;return{title:b.title,minWidth:350,minHeight:100,contents:[{id:"info",elements:[{id:"equation",type:"textarea",label:b.dialogInput,onLoad:function(){var a=this;if(!(CKEDITOR.env.ie&&8==CKEDITOR.env.version))this.getInputElement().on("keyup",function(){c.setValue("\\("+a.getInputElement().getValue()+"\\)")})},setup:function(a){this.setValue(CKEDITOR.plugins.mathjax.trim(a.data.math))},commit:function(a){a.setData("math","\\("+this.getValue()+ +"\\)")}},{id:"documentation",type:"html",html:'<div style="width:100%;text-align:right;margin:-8px 0 10px"><a class="cke_mathjax_doc" href="'+b.docUrl+'" target="_black" style="cursor:pointer;color:#00B2CE;text-decoration:underline">'+b.docLabel+"</a></div>"},!(CKEDITOR.env.ie&&8==CKEDITOR.env.version)&&{id:"preview",type:"html",html:'<div style="width:100%;text-align:center;"><iframe style="border:0;width:0;height:0;font-size:20px" scrolling="no" frameborder="0" allowTransparency="true" src="'+CKEDITOR.plugins.mathjax.fixSrc+ +'"></iframe></div>',onLoad:function(){var a=CKEDITOR.document.getById(this.domId).getChild(0);c=new CKEDITOR.plugins.mathjax.frameWrapper(a,d)},setup:function(a){c.setValue(a.data.math)}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png b/platforms/browser/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png new file mode 100644 index 00000000..85b8e11d Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png b/platforms/browser/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png new file mode 100644 index 00000000..d25081be Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/images/loader.gif b/platforms/browser/www/lib/ckeditor/plugins/mathjax/images/loader.gif new file mode 100644 index 00000000..3ffb1811 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/mathjax/images/loader.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ar.js new file mode 100644 index 00000000..64212f69 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ar",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"تحميل",pathName:"math"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ca.js new file mode 100644 index 00000000..33a353dc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ca",{title:"Matemàtiques a TeX",button:"Matemàtiques",dialogInput:"Escriu el TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentació TeX",loading:"carregant...",pathName:"matemàtiques"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/cs.js new file mode 100644 index 00000000..e2e0b510 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cs",{title:"Matematika v TeXu",button:"Matematika",dialogInput:"Zde napište TeXový kód",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentace k TeXu",loading:"Nahrává se...",pathName:"Matematika"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/cy.js new file mode 100644 index 00000000..bd919ba0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cy",{title:"Mathemateg mewn TeX",button:"Math",dialogInput:"Ysgrifennwch eich TeX yma",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dogfennaeth TeX",loading:"llwytho...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/de.js new file mode 100644 index 00000000..5cf71687 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","de",{title:"Mathematik in Tex",button:"Rechnung",dialogInput:"Schreiben Sie hier in Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tex Dokumentation",loading:"lädt...",pathName:"rechnen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/el.js new file mode 100644 index 00000000..affcd0e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","el",{title:"Μαθηματικά με τη γλώσσα TeX",button:"Μαθηματικά",dialogInput:"Γράψτε κώδικα TeX εδώ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Τεκμηρίωση TeX",loading:"γίνεται φόρτωση...",pathName:"μαθηματικά"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js new file mode 100644 index 00000000..d9f0cbde --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en-gb",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write you TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/en.js new file mode 100644 index 00000000..9e66c845 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/eo.js new file mode 100644 index 00000000..4aa7cb49 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","eo",{title:"Matematiko en TeX",button:"Matematiko",dialogInput:"Skribu vian TeX tien",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentado",loading:"estas ŝarganta",pathName:"matematiko"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/es.js new file mode 100644 index 00000000..6ec9e4dc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","es",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escribe tu TeX aquí",docUrl:"http://es.wikipedia.org/wiki/TeX",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fa.js new file mode 100644 index 00000000..d638a840 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fa",{title:"ریاضیات در تک",button:"ریاضی",dialogInput:"فرمول خود را اینجا بنویسید",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"مستندسازی فرمول نویسی",loading:"بارگیری",pathName:"ریاضی"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fi.js new file mode 100644 index 00000000..bd5140c1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fi",{title:"Matematiikkaa TeX:llä",button:"Matematiikka",dialogInput:"Kirjoita TeX:iä tähän",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentaatio",loading:"lataa...",pathName:"matematiikka"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fr.js new file mode 100644 index 00000000..bf1cb479 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fr",{title:"Mathématiques au format TeX",button:"Math",dialogInput:"Saisir la formule TeX ici",docUrl:"http://fr.wikibooks.org/wiki/LaTeX/Math%C3%A9matiques",docLabel:"Documentation du format TeX",loading:"chargement...",pathName:"math"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/gl.js new file mode 100644 index 00000000..0657f1f9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","gl",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escriba o seu TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/he.js new file mode 100644 index 00000000..9e5c21dc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","he",{title:"מתמטיקה בTeX",button:"מתמטיקה",dialogInput:"כתוב את הTeX שלך כאן",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"תיעוד TeX",loading:"טוען...",pathName:"מתמטיקה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/hr.js new file mode 100644 index 00000000..6e90bd5b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hr",{title:"Matematika u TeXu",button:"Matematika",dialogInput:"Napiši svoj TeX ovdje",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"učitavanje...",pathName:"matematika"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/hu.js new file mode 100644 index 00000000..3ab4b748 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hu",{title:"Matematika a TeX-ben",button:"Matek",dialogInput:"Írd a TeX-ed ide",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentáció",loading:"töltés...",pathName:"matek"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/it.js new file mode 100644 index 00000000..a91094a0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","it",{title:"Formule in TeX",button:"Formule",dialogInput:"Scrivere qui il proprio TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentazione TeX",loading:"caricamento…",pathName:"formula"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ja.js new file mode 100644 index 00000000..0141ecd7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ja",{title:"TeX形式の数式",button:"数式",dialogInput:"TeX形式の数式を入力してください",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeXの解説",loading:"読み込み中…",pathName:"math"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/km.js new file mode 100644 index 00000000..d68d998f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","km",{title:"គណិត​វិទ្យា​ក្នុង TeX",button:"គណិត",dialogInput:"សរសេរ TeX របស់​អ្នក​នៅ​ទីនេះ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"ឯកសារ​អត្ថបទ​ពី ​TeX",loading:"កំពុង​ផ្ទុក..",pathName:"គណិត"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/nb.js new file mode 100644 index 00000000..7b3588e2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nb",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/nl.js new file mode 100644 index 00000000..fe9cf316 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nl",{title:"Wiskunde in TeX",button:"Wiskunde",dialogInput:"Typ hier uw TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentatie",loading:"laden...",pathName:"wiskunde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/no.js new file mode 100644 index 00000000..33e87aba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","no",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pl.js new file mode 100644 index 00000000..70f2be53 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pl",{title:"Wzory matematyczne w TeX",button:"Wzory matematyczne",dialogInput:"Wpisz wyrażenie w TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentacja TeX",loading:"ładowanie...",pathName:"matematyka"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js new file mode 100644 index 00000000..6b9620d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt-br",{title:"Matemática em TeX",button:"Matemática",dialogInput:"Escreva seu TeX aqui",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"carregando...",pathName:"Matemática"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pt.js new file mode 100644 index 00000000..1f83fefa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt",{title:"Matemáticas em TeX",button:"Matemática",dialogInput:"Escreva aqui o seu Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"a carregar ...",pathName:"matemática"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ro.js new file mode 100644 index 00000000..72c606cb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ro",{title:"Matematici in TeX",button:"Matematici",dialogInput:"Scrie TeX-ul aici",docUrl:"http://ro.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentatie TeX",loading:"încarcă...",pathName:"matematici"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ru.js new file mode 100644 index 00000000..a48da75f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ru",{title:"Математика в TeX-системе",button:"Математика",dialogInput:"Введите здесь TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX документация",loading:"загрузка...",pathName:"мат."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sk.js new file mode 100644 index 00000000..1a54159d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sk",{title:"Matematika v TeX",button:"Matika",dialogInput:"Napíšte svoj TeX sem",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentácia TeX",loading:"načítavanie...",pathName:"matika"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sl.js new file mode 100644 index 00000000..c8df95b5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sl",{title:"Matematika v TeX",button:"Matematika",dialogInput:"Napišite svoj TeX tukaj",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"nalaganje...",pathName:"matematika"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sv.js new file mode 100644 index 00000000..7508fef7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sv",{title:"Mattematik i TeX",button:"Matte",dialogInput:"Skriv din TeX här",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentation",loading:"laddar",pathName:"matte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/tr.js new file mode 100644 index 00000000..a2925f17 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tr",{title:"TeX ile Matematik",button:"Matematik",dialogInput:"TeX kodunuzu buraya yazın",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX yardım dökümanı",loading:"yükleniyor...",pathName:"matematik"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/tt.js new file mode 100644 index 00000000..44003bdc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tt",{title:"TeX'та математика",button:"Математика",dialogInput:"Биредә TeX форматында аңлатмагызны языгыз",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX турыдна документлар",loading:"йөкләнә...",pathName:"математика"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/uk.js new file mode 100644 index 00000000..77875f4e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","uk",{title:"Математика у TeX",button:"Математика",dialogInput:"Наберіть тут на TeX'у",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Документація про TeX",loading:"завантажується…",pathName:"математика"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/vi.js new file mode 100644 index 00000000..66961038 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","vi",{title:"Toán học bằng TeX",button:"Toán",dialogInput:"Nhập mã TeX ở đây",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tài liệu TeX",loading:"đang nạp...",pathName:"toán"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js new file mode 100644 index 00000000..ea9ad35e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh-cn",{title:"TeX 语法的数学公式编辑器",button:"数学公式",dialogInput:"在此编写您的 TeX 指令",docUrl:"http://zh.wikipedia.org/wiki/TeX",docLabel:"TeX 语法(可以参考维基百科自身关于数学公式显示方式的帮助)",loading:"正在加载...",pathName:"数字公式"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/zh.js new file mode 100644 index 00000000..84cdab1c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh",{title:"以 TeX 表示數學",button:"數學",dialogInput:"請輸入 TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX 說明文件",loading:"載入中…",pathName:"數學"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/mathjax/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/mathjax/plugin.js new file mode 100644 index 00000000..44964b88 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/mathjax/plugin.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h="http://cdn.mathjax.org/mathjax/2.2-latest/MathJax.js?config=TeX-AMS_HTML";CKEDITOR.plugins.add("mathjax",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ro,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"mathjax",hidpi:!0,init:function(b){var c=b.config.mathJaxClass||"math-tex";b.widgets.add("mathjax",{inline:!0,dialog:"mathjax",button:b.lang.mathjax.button,mask:!0,allowedContent:"span(!"+c+")",styleToAllowedContentRules:function(a){a= +a.getClassesArray();if(!a)return null;a.push("!"+c);return"span("+a.join(",")+")"},pathName:b.lang.mathjax.pathName,template:'<span class="'+c+'" style="display:inline-block" data-cke-survive=1></span>',parts:{span:"span"},defaults:{math:"\\(x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}\\)"},init:function(){var a=this.parts.span.getChild(0);if(!a||a.type!=CKEDITOR.NODE_ELEMENT||!a.is("iframe"))a=new CKEDITOR.dom.element("iframe"),a.setAttributes({style:"border:0;width:0;height:0",scrolling:"no",frameborder:0, +allowTransparency:!0,src:CKEDITOR.plugins.mathjax.fixSrc}),this.parts.span.append(a);this.once("ready",function(){CKEDITOR.env.ie&&a.setAttribute("src",CKEDITOR.plugins.mathjax.fixSrc);this.frameWrapper=new CKEDITOR.plugins.mathjax.frameWrapper(a,b);this.frameWrapper.setValue(this.data.math)})},data:function(){this.frameWrapper&&this.frameWrapper.setValue(this.data.math)},upcast:function(a,b){if("span"==a.name&&a.hasClass(c)&&!(1<a.children.length||a.children[0].type!=CKEDITOR.NODE_TEXT)){b.math= +CKEDITOR.tools.htmlDecode(a.children[0].value);var d=a.attributes;d.style=d.style?d.style+";display:inline-block":"display:inline-block";d["data-cke-survive"]=1;a.children[0].remove();return a}},downcast:function(a){a.children[0].replaceWith(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.math)));var b=a.attributes;b.style=b.style.replace(/display:\s?inline-block;?\s?/,"");""===b.style&&delete b.style;return a}});CKEDITOR.dialog.add("mathjax",this.path+"dialogs/mathjax.js");b.on("contentPreview", +function(a){a.data.dataValue=a.data.dataValue.replace(/<\/head>/,'<script src="'+(b.config.mathJaxLib?CKEDITOR.getUrl(b.config.mathJaxLib):h)+'"><\/script></head>')});b.on("paste",function(a){a.data.dataValue=a.data.dataValue.replace(RegExp("<span[^>]*?"+c+".*?</span>","ig"),function(a){return a.replace(/(<iframe.*?\/iframe>)/i,"")})})}});CKEDITOR.plugins.mathjax={};CKEDITOR.plugins.mathjax.fixSrc=CKEDITOR.env.gecko?"javascript:true":CKEDITOR.env.ie?"javascript:void((function(){"+encodeURIComponent("document.open();("+ +CKEDITOR.tools.fixDomain+")();document.close();")+"})())":"javascript:void(0)";CKEDITOR.plugins.mathjax.loadingIcon=CKEDITOR.plugins.get("mathjax").path+"images/loader.gif";CKEDITOR.plugins.mathjax.copyStyles=function(b,c){for(var a="color font-family font-style font-weight font-variant font-size".split(" "),e=0;e<a.length;e++){var d=a[e],g=b.getComputedStyle(d);g&&c.setStyle(d,g)}};CKEDITOR.plugins.mathjax.trim=function(b){var c=b.indexOf("\\(")+2,a=b.lastIndexOf("\\)");return b.substring(c,a)}; +CKEDITOR.plugins.mathjax.frameWrapper=CKEDITOR.env.ie&&8==CKEDITOR.env.version?function(b,c){b.getFrameDocument().write('<!DOCTYPE html><html><head><meta charset="utf-8"></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span style="white-space:nowrap;" id="tex"></span></body></html>');return{setValue:function(a){var e=b.getFrameDocument(),d=e.getById("tex");d.setHtml(CKEDITOR.plugins.mathjax.trim(CKEDITOR.tools.htmlEncode(a)));CKEDITOR.plugins.mathjax.copyStyles(b,d); +c.fire("lockSnapshot");b.setStyles({width:Math.min(250,d.$.offsetWidth)+"px",height:e.$.body.offsetHeight+"px",display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot")}}}:function(b,c){function a(){f=b.getFrameDocument();f.getById("preview")||(CKEDITOR.env.ie&&b.removeAttribute("src"),f.write('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="text/x-mathjax-config">MathJax.Hub.Config( {showMathMenu: false,messageStyle: "none"} );function getCKE() {if ( typeof window.parent.CKEDITOR == \'object\' ) {return window.parent.CKEDITOR;} else {return window.parent.parent.CKEDITOR;}}function update() {MathJax.Hub.Queue([ \'Typeset\', MathJax.Hub, this.buffer ],function() {getCKE().tools.callFunction( '+ +m+" );});}MathJax.Hub.Queue( function() {getCKE().tools.callFunction("+n+');} );<\/script><script src="'+(c.config.mathJaxLib||h)+'"><\/script></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span id="preview"></span><span id="buffer" style="display:none"></span></body></html>'))}function e(){k=!0;i=j;c.fire("lockSnapshot");d.setHtml(i);g.setHtml("<img src="+CKEDITOR.plugins.mathjax.loadingIcon+" alt="+c.lang.mathjax.loading+">");b.setStyles({height:"16px",width:"16px", +display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot");f.getWindow().$.update(i)}var d,g,i,j,f=b.getFrameDocument(),l=!1,k=!1,n=CKEDITOR.tools.addFunction(function(){g=f.getById("preview");d=f.getById("buffer");l=!0;j&&e();CKEDITOR.fire("mathJaxLoaded",b)}),m=CKEDITOR.tools.addFunction(function(){CKEDITOR.plugins.mathjax.copyStyles(b,g);g.setHtml(d.getHtml());c.fire("lockSnapshot");b.setStyles({height:0,width:0});var a=Math.max(f.$.body.offsetHeight,f.$.documentElement.offsetHeight), +h=Math.max(g.$.offsetWidth,f.$.body.scrollWidth);b.setStyles({height:a+"px",width:h+"px"});c.fire("unlockSnapshot");CKEDITOR.fire("mathJaxUpdateDone",b);i!=j?e():k=!1});b.on("load",a);a();return{setValue:function(a){j=CKEDITOR.tools.htmlEncode(a);l&&!k&&e()}}}})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png new file mode 100644 index 00000000..1a7551c2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png new file mode 100644 index 00000000..8cbe2230 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png new file mode 100644 index 00000000..2c8ef7fe Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/newpage.png b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/newpage.png new file mode 100644 index 00000000..8e18c8a2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/newpage/icons/newpage.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/af.js new file mode 100644 index 00000000..2fd4a604 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","af",{toolbar:"Nuwe bladsy"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ar.js new file mode 100644 index 00000000..04f45c5c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ar",{toolbar:"صفحة جديدة"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bg.js new file mode 100644 index 00000000..b40fbf54 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bg",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bn.js new file mode 100644 index 00000000..aaedacbe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bn",{toolbar:"নতুন পেজ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bs.js new file mode 100644 index 00000000..f8a0c44e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bs",{toolbar:"Novi dokument"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ca.js new file mode 100644 index 00000000..4efb6079 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ca",{toolbar:"Nova pàgina"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/cs.js new file mode 100644 index 00000000..02960680 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cs",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/cy.js new file mode 100644 index 00000000..09e8b6fa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cy",{toolbar:"Tudalen Newydd"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/da.js new file mode 100644 index 00000000..22d0d6b1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","da",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/de.js new file mode 100644 index 00000000..8d323f87 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","de",{toolbar:"Neue Seite"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/el.js new file mode 100644 index 00000000..7f989b1a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","el",{toolbar:"Νέα Σελίδα"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-au.js new file mode 100644 index 00000000..6e38a28b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-au",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-ca.js new file mode 100644 index 00000000..327aa5d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-ca",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-gb.js new file mode 100644 index 00000000..3f7ab3e9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-gb",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en.js new file mode 100644 index 00000000..4402b73d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/eo.js new file mode 100644 index 00000000..671a107d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eo",{toolbar:"Nova Paĝo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/es.js new file mode 100644 index 00000000..ca54ae0d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","es",{toolbar:"Nueva Página"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/et.js new file mode 100644 index 00000000..59a58061 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","et",{toolbar:"Uus leht"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/eu.js new file mode 100644 index 00000000..82808efd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eu",{toolbar:"Orrialde Berria"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fa.js new file mode 100644 index 00000000..6986ba6d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fa",{toolbar:"برگهٴ تازه"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fi.js new file mode 100644 index 00000000..cc1e63df --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fi",{toolbar:"Tyhjennä"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fo.js new file mode 100644 index 00000000..778091e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fo",{toolbar:"Nýggj síða"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js new file mode 100644 index 00000000..de7bb951 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr-ca",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fr.js new file mode 100644 index 00000000..2de51702 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/gl.js new file mode 100644 index 00000000..96b7ea77 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gl",{toolbar:"Páxina nova"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/gu.js new file mode 100644 index 00000000..f4c3306c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gu",{toolbar:"નવુ પાનું"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/he.js new file mode 100644 index 00000000..460262b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","he",{toolbar:"דף חדש"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hi.js new file mode 100644 index 00000000..afed2e28 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hi",{toolbar:"नया पेज"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hr.js new file mode 100644 index 00000000..fc09d5af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hr",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hu.js new file mode 100644 index 00000000..6053528b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hu",{toolbar:"Új oldal"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/id.js new file mode 100644 index 00000000..391bdad6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","id",{toolbar:"Halaman Baru"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/is.js new file mode 100644 index 00000000..cee7f357 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","is",{toolbar:"Ný síða"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/it.js new file mode 100644 index 00000000..d484977e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","it",{toolbar:"Nuova pagina"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ja.js new file mode 100644 index 00000000..3954e55b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ja",{toolbar:"新しいページ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ka.js new file mode 100644 index 00000000..ee1bd799 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ka",{toolbar:"ახალი გვერდი"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/km.js new file mode 100644 index 00000000..0dcae481 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","km",{toolbar:"ទំព័រ​ថ្មី"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ko.js new file mode 100644 index 00000000..3ac6b6b6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ko",{toolbar:"새 문서"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ku.js new file mode 100644 index 00000000..b5d99596 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ku",{toolbar:"پەڕەیەکی نوێ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/lt.js new file mode 100644 index 00000000..a9572d6f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lt",{toolbar:"Naujas puslapis"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/lv.js new file mode 100644 index 00000000..d05d3900 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lv",{toolbar:"Jauna lapa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/mk.js new file mode 100644 index 00000000..0b4261c7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mk",{toolbar:"New Page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/mn.js new file mode 100644 index 00000000..7ea8f845 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mn",{toolbar:"Шинэ хуудас"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ms.js new file mode 100644 index 00000000..a6544940 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ms",{toolbar:"Helaian Baru"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/nb.js new file mode 100644 index 00000000..7d8addd9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nb",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/nl.js new file mode 100644 index 00000000..20ab5057 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nl",{toolbar:"Nieuwe pagina"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/no.js new file mode 100644 index 00000000..551cb365 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","no",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pl.js new file mode 100644 index 00000000..c2dd7686 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pl",{toolbar:"Nowa strona"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pt-br.js new file mode 100644 index 00000000..31120f06 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt-br",{toolbar:"Novo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pt.js new file mode 100644 index 00000000..556a89b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt",{toolbar:"Nova Página"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ro.js new file mode 100644 index 00000000..87336458 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ro",{toolbar:"Pagină nouă"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ru.js new file mode 100644 index 00000000..bdac86ef --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ru",{toolbar:"Новая страница"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/si.js new file mode 100644 index 00000000..166e5505 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","si",{toolbar:"නව පිටුවක්"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sk.js new file mode 100644 index 00000000..2ff850fd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sk",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sl.js new file mode 100644 index 00000000..b8bdbdb3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sl",{toolbar:"Nova stran"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sq.js new file mode 100644 index 00000000..eb508027 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sq",{toolbar:"Faqe e Re"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js new file mode 100644 index 00000000..1758d5c4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr-latn",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sr.js new file mode 100644 index 00000000..9289d01f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sv.js new file mode 100644 index 00000000..ce4099d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sv",{toolbar:"Ny sida"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/th.js new file mode 100644 index 00000000..f1647f27 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","th",{toolbar:"สร้างหน้าเอกสารใหม่"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/tr.js new file mode 100644 index 00000000..afba1bd6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tr",{toolbar:"Yeni Sayfa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/tt.js new file mode 100644 index 00000000..2c9e06ab --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tt",{toolbar:"Яңа бит"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ug.js new file mode 100644 index 00000000..739429ab --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ug",{toolbar:"يېڭى بەت"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/uk.js new file mode 100644 index 00000000..518a63ac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","uk",{toolbar:"Нова сторінка"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/vi.js new file mode 100644 index 00000000..16dffe6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","vi",{toolbar:"Trang mới"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js new file mode 100644 index 00000000..9868d6b1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh-cn",{toolbar:"新建"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/zh.js new file mode 100644 index 00000000..cd365f40 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh",{toolbar:"新增網頁"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/newpage/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/newpage/plugin.js new file mode 100644 index 00000000..c5d88b96 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/newpage/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("newpage",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"newpage,newpage-rtl",hidpi:!0,init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage", +command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png new file mode 100644 index 00000000..4a5418cb Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png new file mode 100644 index 00000000..8d3930bb Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png new file mode 100644 index 00000000..b5b342b0 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png new file mode 100644 index 00000000..5280a6e9 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif new file mode 100644 index 00000000..8d1cffd6 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/af.js new file mode 100644 index 00000000..3db5e2e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","af",{alt:"Bladsy-einde",toolbar:"Bladsy-einde invoeg"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ar.js new file mode 100644 index 00000000..6c795815 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ar",{alt:"فاصل الصفحة",toolbar:"إدخال صفحة جديدة"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bg.js new file mode 100644 index 00000000..32ea86b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bg",{alt:"Разделяне на страници",toolbar:"Вмъкване на нова страница при печат"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bn.js new file mode 100644 index 00000000..69bcc5d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bn",{alt:"Page Break",toolbar:"পেজ ব্রেক"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bs.js new file mode 100644 index 00000000..e33eb612 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bs",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ca.js new file mode 100644 index 00000000..8d1732ce --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ca",{alt:"Salt de pàgina",toolbar:"Insereix salt de pàgina"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/cs.js new file mode 100644 index 00000000..c2753103 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cs",{alt:"Konec stránky",toolbar:"Vložit konec stránky"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/cy.js new file mode 100644 index 00000000..b3f86a44 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cy",{alt:"Toriad Tudalen",toolbar:"Mewnosod Toriad Tudalen i Argraffu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/da.js new file mode 100644 index 00000000..206f3a63 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","da",{alt:"Sideskift",toolbar:"Indsæt sideskift"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/de.js new file mode 100644 index 00000000..06449421 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","de",{alt:"Seitenumbruch einfügen",toolbar:"Seitenumbruch einfügen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/el.js new file mode 100644 index 00000000..1b9c8728 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","el",{alt:"Αλλαγή Σελίδας",toolbar:"Εισαγωγή Τέλους Σελίδας για Εκτύπωση"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js new file mode 100644 index 00000000..ca24e8e9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-au",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js new file mode 100644 index 00000000..d4731567 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-ca",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js new file mode 100644 index 00000000..d17f8b0f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-gb",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en.js new file mode 100644 index 00000000..4b680ef1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/eo.js new file mode 100644 index 00000000..cb664749 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eo",{alt:"Paĝavanco",toolbar:"Enmeti Paĝavancon por Presado"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/es.js new file mode 100644 index 00000000..17379550 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","es",{alt:"Salto de página",toolbar:"Insertar Salto de Página"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/et.js new file mode 100644 index 00000000..463b200d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","et",{alt:"Lehevahetuskoht",toolbar:"Lehevahetuskoha sisestamine"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/eu.js new file mode 100644 index 00000000..42c24112 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eu",{alt:"Orrialde-jauzia",toolbar:"Txertatu Orrialde-jauzia Inprimatzean"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fa.js new file mode 100644 index 00000000..c8b8e186 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fa",{alt:"شکستن صفحه",toolbar:"گنجاندن شکستگی پایان برگه"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fi.js new file mode 100644 index 00000000..5dc52bd6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fi",{alt:"Sivunvaihto",toolbar:"Lisää sivunvaihto"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fo.js new file mode 100644 index 00000000..ba9b9dca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fo",{alt:"Síðuskift",toolbar:"Ger síðuskift"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js new file mode 100644 index 00000000..e5ec2329 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr-ca",{alt:"Saut de page",toolbar:"Insérer un saut de page à l'impression"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fr.js new file mode 100644 index 00000000..941c0b16 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr",{alt:"Saut de page",toolbar:"Saut de page"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/gl.js new file mode 100644 index 00000000..fd239f3f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gl",{alt:"Quebra de páxina",toolbar:"Inserir quebra de páxina"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/gu.js new file mode 100644 index 00000000..cd6a24e4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gu",{alt:"નવું પાનું",toolbar:"ઇન્સર્ટ પેજબ્રેક/પાનાને અલગ કરવું/દાખલ કરવું"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/he.js new file mode 100644 index 00000000..e5b8124e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","he",{alt:"שבירת דף",toolbar:"הוספת שבירת דף"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hi.js new file mode 100644 index 00000000..940a28fe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hi",{alt:"पेज ब्रेक",toolbar:"पेज ब्रेक इन्सर्ट् करें"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hr.js new file mode 100644 index 00000000..6f86601d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hr",{alt:"Prijelom stranice",toolbar:"Ubaci prijelom stranice"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hu.js new file mode 100644 index 00000000..6b9fd0e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hu",{alt:"Oldaltörés",toolbar:"Oldaltörés beillesztése"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/id.js new file mode 100644 index 00000000..71865adb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","id",{alt:"Halaman Istirahat",toolbar:"Sisip Halaman Istirahat untuk Pencetakan "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/is.js new file mode 100644 index 00000000..27f20878 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","is",{alt:"Page Break",toolbar:"Setja inn síðuskil"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/it.js new file mode 100644 index 00000000..1308ec6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","it",{alt:"Interruzione di pagina",toolbar:"Inserisci interruzione di pagina per la stampa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ja.js new file mode 100644 index 00000000..cc1574f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ja",{alt:"改ページ",toolbar:"印刷の為に改ページ挿入"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ka.js new file mode 100644 index 00000000..6c999ff4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ka",{alt:"გვერდის წყვეტა",toolbar:"გვერდის წყვეტა ბეჭდვისთვის"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/km.js new file mode 100644 index 00000000..ab157e3d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","km",{alt:"បំបែក​ទំព័រ",toolbar:"បន្ថែម​ការ​បំបែក​ទំព័រ​មុន​បោះពុម្ព"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ko.js new file mode 100644 index 00000000..c83c5e63 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ko",{alt:"패이지 나누기",toolbar:"인쇄시 페이지 나누기 삽입"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ku.js new file mode 100644 index 00000000..d9897842 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ku",{alt:"پشووی پەڕە",toolbar:"دانانی پشووی پەڕە بۆ چاپکردن"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/lt.js new file mode 100644 index 00000000..5879e3ca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lt",{alt:"Puslapio skirtukas",toolbar:"Įterpti puslapių skirtuką"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/lv.js new file mode 100644 index 00000000..d594489b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lv",{alt:"Lapas pārnesums",toolbar:"Ievietot lapas pārtraukumu drukai"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/mk.js new file mode 100644 index 00000000..5fdce2f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mk",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/mn.js new file mode 100644 index 00000000..272ffaf7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mn",{alt:"Page Break",toolbar:"Хуудас тусгаарлагч оруулах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ms.js new file mode 100644 index 00000000..e0988eec --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ms",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/nb.js new file mode 100644 index 00000000..15f45eeb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nb",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/nl.js new file mode 100644 index 00000000..5c05b168 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nl",{alt:"Pagina-einde",toolbar:"Pagina-einde invoegen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/no.js new file mode 100644 index 00000000..ec64c6bc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","no",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pl.js new file mode 100644 index 00000000..79861f98 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pl",{alt:"Wstaw podział strony",toolbar:"Wstaw podział strony"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js new file mode 100644 index 00000000..31d256d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt-br",{alt:"Quebra de Página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pt.js new file mode 100644 index 00000000..17ed211a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt",{alt:"Quebra de página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ro.js new file mode 100644 index 00000000..91833bac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ro",{alt:"Page Break",toolbar:"Inserează separator de pagină (Page Break)"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ru.js new file mode 100644 index 00000000..621682c1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ru",{alt:"Разрыв страницы",toolbar:"Вставить разрыв страницы для печати"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/si.js new file mode 100644 index 00000000..a232df64 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","si",{alt:"පිටු බිදුම",toolbar:"මුද්‍රණය සඳහා පිටු බිදුමක් ඇතුලත් කරන්න"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sk.js new file mode 100644 index 00000000..b465e98f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sk",{alt:"Zalomenie strany",toolbar:"Vložiť oddeľovač stránky pre tlač"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sl.js new file mode 100644 index 00000000..d07e9040 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sl",{alt:"Prelom Strani",toolbar:"Vstavi prelom strani"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sq.js new file mode 100644 index 00000000..3b570e03 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sq",{alt:"Thyerja e Faqes",toolbar:"Vendos Thyerje Faqeje për Shtyp"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js new file mode 100644 index 00000000..55877bac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr-latn",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sr.js new file mode 100644 index 00000000..9c6d9aff --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sv.js new file mode 100644 index 00000000..a2210ceb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sv",{alt:"Sidbrytning",toolbar:"Infoga sidbrytning för utskrift"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/th.js new file mode 100644 index 00000000..55a25317 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","th",{alt:"ตัวแบ่งหน้า",toolbar:"แทรกตัวแบ่งหน้า Page Break"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/tr.js new file mode 100644 index 00000000..d5e64a52 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tr",{alt:"Sayfa Sonu",toolbar:"Sayfa Sonu Ekle"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/tt.js new file mode 100644 index 00000000..df0ae8fb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tt",{alt:"Бит бүлгече",toolbar:"Бастыру өчен бит бүлгечен өстәү"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ug.js new file mode 100644 index 00000000..10404349 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ug",{alt:"بەت ئايرىغۇچ",toolbar:"بەت ئايرىغۇچ قىستۇر"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/uk.js new file mode 100644 index 00000000..0abba674 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","uk",{alt:"Розрив Сторінки",toolbar:"Вставити розрив сторінки"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/vi.js new file mode 100644 index 00000000..5787cb65 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","vi",{alt:"Ngắt trang",toolbar:"Chèn ngắt trang"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js new file mode 100644 index 00000000..39ec7add --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh-cn",{alt:"分页符",toolbar:"插入打印分页符"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/zh.js new file mode 100644 index 00000000..9b5a14c6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh",{alt:"換頁",toolbar:"插入換頁符號以便列印"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pagebreak/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/plugin.js new file mode 100644 index 00000000..f9a7c3df --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pagebreak/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(a){return{"aria-label":a,"class":"cke_pagebreak",contenteditable:"false","data-cke-display-name":"pagebreak","data-cke-pagebreak":1,style:"page-break-after: always",title:a}}CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"pagebreak,pagebreak-rtl", +hidpi:!0,onLoad:function(){var a=("background:url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;clear:both;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;padding:0;height:5px;cursor:default;").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak{"+a+"}")},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak", +toolbar:"insert,70"}),CKEDITOR.env.webkit&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){function b(f){CKEDITOR.tools.extend(f.attributes,e(a.lang.pagebreak.alt),!0);f.children.length=0}var c=a.dataProcessor,g=c&&c.dataFilter,c=c&&c.htmlFilter,h=/page-break-after\s*:\s*always/i,i=/display\s*:\s*none/i;c&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak", +"");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>').children[0];b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},{applyToAll:!0,priority:5});g&&g.addRules({elements:{div:function(a){if(a.attributes["data-cke-pagebreak"])b(a);else if(h.test(a.attributes.style)){var c=a.children[0];c&&("span"==c.name&&i.test(c.attributes.style))&&b(a)}}}})}});CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b= +a.document.createElement("div",{attributes:e(a.lang.pagebreak.alt)});a.insertElement(b)},context:"div",allowedContent:{div:{styles:"!page-break-after"},span:{match:function(a){return(a=a.parent)&&"div"==a.name&&a.styles&&a.styles["page-break-after"]},styles:"display"}},requiredContent:"div{page-break-after}"}})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/panelbutton/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/panelbutton/plugin.js new file mode 100644 index 00000000..18adde8c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/panelbutton/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated= +!0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()}; +d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}}); +CKEDITOR.UI_PANELBUTTON="panelbutton"; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/pastefromword/filter/default.js b/platforms/browser/www/lib/ckeditor/plugins/pastefromword/filter/default.js new file mode 100644 index 00000000..899ed21b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/pastefromword/filter/default.js @@ -0,0 +1,31 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(a){for(var a=a.toUpperCase(),c=z.length,b=0,f=0;f<c;++f)for(var d=z[f],e=d[1].length;a.substr(0,e)==d[1];a=a.substr(e))b+=d[0];return b}function A(a){for(var a=a.toUpperCase(),c=B.length,b=1,f=1;0<a.length;f*=c)b+=B.indexOf(a.charAt(a.length-1))*f,a=a.substr(0,a.length-1);return b}var C=CKEDITOR.htmlParser.fragment.prototype,o=CKEDITOR.htmlParser.element.prototype;C.onlyChild=o.onlyChild=function(){var a=this.children;return 1==a.length&&a[0]||null};o.removeAnyChildWithName= +function(a){for(var c=this.children,b=[],f,d=0;d<c.length;d++)f=c[d],f.name&&(f.name==a&&(b.push(f),c.splice(d--,1)),b=b.concat(f.removeAnyChildWithName(a)));return b};o.getAncestor=function(a){for(var c=this.parent;c&&(!c.name||!c.name.match(a));)c=c.parent;return c};C.firstChild=o.firstChild=function(a){for(var c,b=0;b<this.children.length;b++)if(c=this.children[b],a(c)||c.name&&(c=c.firstChild(a)))return c;return null};o.addStyle=function(a,c,b){var f="";if("string"==typeof c)f+=a+":"+c+";";else{if("object"== +typeof a)for(var d in a)a.hasOwnProperty(d)&&(f+=d+":"+a[d]+";");else f+=a;b=c}this.attributes||(this.attributes={});a=this.attributes.style||"";a=(b?[f,a]:[a,f]).join(";");this.attributes.style=a.replace(/^;+|;(?=;)/g,"")};o.getStyle=function(a){var c=this.attributes.style;if(c)return c=CKEDITOR.tools.parseCssText(c,1),c[a]};CKEDITOR.dtd.parentOf=function(a){var c={},b;for(b in this)-1==b.indexOf("$")&&this[b][a]&&(c[b]=1);return c};var H=/^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i, +D=/^(?:\b0[^\s]*\s*){1,4}$/,x={ol:{decimal:/\d+/,"lower-roman":/^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/,"upper-roman":/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"lower-alpha":/^[a-z]+$/,"upper-alpha":/^[A-Z]+$/},ul:{disc:/[l\u00B7\u2002]/,circle:/[\u006F\u00D8]/,square:/[\u006E\u25C6]/}},z=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],B="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=0,t=null,w,E=CKEDITOR.plugins.pastefromword= +{utils:{createListBulletMarker:function(a,c){var b=new CKEDITOR.htmlParser.element("cke:listbullet");b.attributes={"cke:listsymbol":a[0]};b.add(new CKEDITOR.htmlParser.text(c));return b},isListBulletIndicator:function(a){if(/mso-list\s*:\s*Ignore/i.test(a.attributes&&a.attributes.style))return!0},isContainingOnlySpaces:function(a){var c;return(c=a.onlyChild())&&/^(:?\s| )+$/.test(c.value)},resolveList:function(a){var c=a.attributes,b;if((b=a.removeAnyChildWithName("cke:listbullet"))&&b.length&& +(b=b[0]))return a.name="cke:li",c.style&&(c.style=E.filters.stylesFilter([["text-indent"],["line-height"],[/^margin(:?-left)?$/,null,function(a){a=a.split(" ");a=CKEDITOR.tools.convertToPx(a[3]||a[1]||a[0]);!s&&(null!==t&&a>t)&&(s=a-t);t=a;c["cke:indent"]=s&&Math.ceil(a/s)+1||1}],[/^mso-list$/,null,function(a){var a=a.split(" "),b=Number(a[0].match(/\d+/)),a=Number(a[1].match(/\d+/));1==a&&(b!==w&&(c["cke:reset"]=1),w=b);c["cke:indent"]=a}]])(c.style,a)||""),c["cke:indent"]||(t=0,c["cke:indent"]= +1),CKEDITOR.tools.extend(c,b.attributes),!0;w=t=s=null;return!1},getStyleComponents:function(){var a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(a);return function(c,b,f){a.setStyle(c,b);for(var c={},b=f.length,d=0;d<b;d++)c[f[d]]=a.getStyle(f[d]);return c}}(),listDtdParents:CKEDITOR.dtd.parentOf("ol")},filters:{flattenList:function(a,c){var c="number"==typeof c?c:1,b=a.attributes,f;switch(b.type){case "a":f= +"lower-alpha";break;case "1":f="decimal"}for(var d=a.children,e,h=0;h<d.length;h++)if(e=d[h],e.name in CKEDITOR.dtd.$listItem){var j=e.attributes,g=e.children,m=g[g.length-1];m.name in CKEDITOR.dtd.$list&&(a.add(m,h+1),--g.length||d.splice(h--,1));e.name="cke:li";b.start&&!h&&(j.value=b.start);E.filters.stylesFilter([["tab-stops",null,function(a){(a=a.split(" ")[1].match(H))&&(t=CKEDITOR.tools.convertToPx(a[0]))}],1==c?["mso-list",null,function(a){a=a.split(" ");a=Number(a[0].match(/\d+/));a!==w&& +(j["cke:reset"]=1);w=a}]:null])(j.style);j["cke:indent"]=c;j["cke:listtype"]=a.name;j["cke:list-style-type"]=f}else if(e.name in CKEDITOR.dtd.$list){arguments.callee.apply(this,[e,c+1]);d=d.slice(0,h).concat(e.children).concat(d.slice(h+1));a.children=[];e=0;for(g=d.length;e<g;e++)a.add(d[e]);d=a.children}delete a.name;b["cke:list"]=1},assembleList:function(a){for(var c=a.children,b,f,d,e,h,j,a=[],g,m,i,l,k,p,n=0;n<c.length;n++)if(b=c[n],"cke:li"==b.name)if(b.name="li",f=b.attributes,i=(i=f["cke:listsymbol"])&& +i.match(/^(?:[(]?)([^\s]+?)([.)]?)$/),l=k=p=null,f["cke:ignored"])c.splice(n--,1);else{f["cke:reset"]&&(j=e=h=null);d=Number(f["cke:indent"]);d!=e&&(m=g=null);if(i){if(m&&x[m][g].test(i[1]))l=m,k=g;else for(var q in x)for(var u in x[q])if(x[q][u].test(i[1]))if("ol"==q&&/alpha|roman/.test(u)){if(g=/roman/.test(u)?y(i[1]):A(i[1]),!p||g<p)p=g,l=q,k=u}else{l=q;k=u;break}!l&&(l=i[2]?"ol":"ul")}else l=f["cke:listtype"]||"ol",k=f["cke:list-style-type"];m=l;g=k||("ol"==l?"decimal":"disc");k&&k!=("ol"==l? +"decimal":"disc")&&b.addStyle("list-style-type",k);if("ol"==l&&i){switch(k){case "decimal":p=Number(i[1]);break;case "lower-roman":case "upper-roman":p=y(i[1]);break;case "lower-alpha":case "upper-alpha":p=A(i[1])}b.attributes.value=p}if(j){if(d>e)a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),h.add(j);else{if(d<e){e-=d;for(var r;e--&&(r=j.parent);)j=r.parent}j.add(b)}c.splice(n--,1)}else a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),c[n]=j;h=b;e=d}else j&&(j=e=h=null);for(n=0;n<a.length;n++)if(j= +a[n],q=j.children,g=g=void 0,u=j.children.length,r=g=void 0,c=/list-style-type:(.*?)(?:;|$)/,e=CKEDITOR.plugins.pastefromword.filters.stylesFilter,g=j.attributes,!c.exec(g.style)){for(h=0;h<u;h++)if(g=q[h],g.attributes.value&&Number(g.attributes.value)==h+1&&delete g.attributes.value,g=c.exec(g.attributes.style))if(g[1]==r||!r)r=g[1];else{r=null;break}if(r){for(h=0;h<u;h++)g=q[h].attributes,g.style&&(g.style=e([["list-style-type"]])(g.style)||"");j.addStyle("list-style-type",r)}}w=t=s=null},falsyFilter:function(){return!1}, +stylesFilter:function(a,c){return function(b,f){var d=[];(b||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(b,e,g){e=e.toLowerCase();"font-family"==e&&(g=g.replace(/["']/g,""));for(var m,i,l,k=0;k<a.length;k++)if(a[k]&&(b=a[k][0],m=a[k][1],i=a[k][2],l=a[k][3],e.match(b)&&(!m||g.match(m)))){e=l||e;c&&(i=i||g);"function"==typeof i&&(i=i(g,f,e));i&&i.push&&(e=i[0],i=i[1]);"string"==typeof i&&d.push([e,i]);return}!c&&d.push([e,g])});for(var e=0;e<d.length;e++)d[e]= +d[e].join(":");return d.length?d.join(";")+";":!1}},elementMigrateFilter:function(a,c){return a?function(b){var f=c?(new CKEDITOR.style(a,c))._.definition:a;b.name=f.element;CKEDITOR.tools.extend(b.attributes,CKEDITOR.tools.clone(f.attributes));b.addStyle(CKEDITOR.style.getStyleText(f))}:function(){}},styleMigrateFilter:function(a,c){var b=this.elementMigrateFilter;return a?function(f,d){var e=new CKEDITOR.htmlParser.element(null),h={};h[c]=f;b(a,h)(e);e.children=d.children;d.children=[e];e.filter= +function(){};e.parent=d}:function(){}},bogusAttrFilter:function(a,c){if(-1==c.name.indexOf("cke:"))return!1},applyStyleFilter:null},getRules:function(a,c){var b=CKEDITOR.dtd,f=CKEDITOR.tools.extend({},b.$block,b.$listItem,b.$tableContent),d=a.config,e=this.filters,h=e.falsyFilter,j=e.stylesFilter,g=e.elementMigrateFilter,m=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),i=this.utils.createListBulletMarker,l=e.flattenList,k=e.assembleList,p=this.utils.isListBulletIndicator,n=this.utils.isContainingOnlySpaces, +q=this.utils.resolveList,u=function(a){a=CKEDITOR.tools.convertToPx(a);return isNaN(a)?a:a+"px"},r=this.utils.getStyleComponents,t=this.utils.listDtdParents,o=!1!==d.pasteFromWordRemoveFontStyles,s=!1!==d.pasteFromWordRemoveStyles;return{elementNames:[[/meta|link|script/,""]],root:function(a){a.filterChildren(c);k(a)},elements:{"^":function(a){var c;CKEDITOR.env.gecko&&(c=e.applyStyleFilter)&&c(a)},$:function(a){var v=a.name||"",e=a.attributes;v in f&&e.style&&(e.style=j([[/^(:?width|height)$/,null, +u]])(e.style)||"");if(v.match(/h\d/)){a.filterChildren(c);if(q(a))return;g(d["format_"+v])(a)}else if(v in b.$inline)a.filterChildren(c),n(a)&&delete a.name;else if(-1!=v.indexOf(":")&&-1==v.indexOf("cke")){a.filterChildren(c);if("v:imagedata"==v){if(v=a.attributes["o:href"])a.attributes.src=v;a.name="img";return}delete a.name}v in t&&(a.filterChildren(c),k(a))},style:function(a){if(CKEDITOR.env.gecko){var a=(a=a.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/))&&a[1],c={};a&& +(a.replace(/[\n\r]/g,"").replace(/(.+?)\{(.+?)\}/g,function(a,b,F){for(var b=b.split(","),a=b.length,d=0;d<a;d++)CKEDITOR.tools.trim(b[d]).replace(/^(\w+)(\.[\w-]+)?$/g,function(a,b,d){b=b||"*";d=d.substring(1,d.length);d.match(/MsoNormal/)||(c[b]||(c[b]={}),d?c[b][d]=F:c[b]=F)})}),e.applyStyleFilter=function(a){var b=c["*"]?"*":a.name,d=a.attributes&&a.attributes["class"];b in c&&(b=c[b],"object"==typeof b&&(b=b[d]),b&&a.addStyle(b,!0))})}return!1},p:function(a){if(/MsoListParagraph/i.exec(a.attributes["class"])|| +a.getStyle("mso-list")){var b=a.firstChild(function(a){return a.type==CKEDITOR.NODE_TEXT&&!n(a.parent)});(b=b&&b.parent)&&b.addStyle("mso-list","Ignore")}a.filterChildren(c);q(a)||(d.enterMode==CKEDITOR.ENTER_BR?(delete a.name,a.add(new CKEDITOR.htmlParser.element("br"))):g(d["format_"+(d.enterMode==CKEDITOR.ENTER_P?"p":"div")])(a))},div:function(a){var c=a.onlyChild();if(c&&"table"==c.name){var b=a.attributes;c.attributes=CKEDITOR.tools.extend(c.attributes,b);b.style&&c.addStyle(b.style);c=new CKEDITOR.htmlParser.element("div"); +c.addStyle("clear","both");a.add(c);delete a.name}},td:function(a){a.getAncestor("thead")&&(a.name="th")},ol:l,ul:l,dl:l,font:function(a){if(p(a.parent))delete a.name;else{a.filterChildren(c);var b=a.attributes,d=b.style,e=a.parent;"font"==e.name?(CKEDITOR.tools.extend(e.attributes,a.attributes),d&&e.addStyle(d),delete a.name):(d=(d||"").split(";"),b.color&&("#000000"!=b.color&&d.push("color:"+b.color),delete b.color),b.face&&(d.push("font-family:"+b.face),delete b.face),b.size&&(d.push("font-size:"+ +(3<b.size?"large":3>b.size?"small":"medium")),delete b.size),a.name="span",a.addStyle(d.join(";")))}},span:function(a){if(p(a.parent))return!1;a.filterChildren(c);if(n(a))return delete a.name,null;if(p(a)){var b=a.firstChild(function(a){return a.value||"img"==a.name}),e=(b=b&&(b.value||"l."))&&b.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);if(e)return b=i(e,b),(a=a.getAncestor("span"))&&/ mso-hide:\s*all|display:\s*none /.test(a.attributes.style)&&(b.attributes["cke:ignored"]=1),b}if(e=(b=a.attributes)&&b.style)b.style= +j([["line-height"],[/^font-family$/,null,!o?m(d.font_style,"family"):null],[/^font-size$/,null,!o?m(d.fontSize_style,"size"):null],[/^color$/,null,!o?m(d.colorButton_foreStyle,"color"):null],[/^background-color$/,null,!o?m(d.colorButton_backStyle,"color"):null]])(e,a)||"";b.style||delete b.style;CKEDITOR.tools.isEmpty(b)&&delete a.name;return null},b:g(d.coreStyles_bold),i:g(d.coreStyles_italic),u:g(d.coreStyles_underline),s:g(d.coreStyles_strike),sup:g(d.coreStyles_superscript),sub:g(d.coreStyles_subscript), +a:function(a){a=a.attributes;a.href&&a.href.match(/^file:\/\/\/[\S]+#/i)&&(a.href=a.href.replace(/^file:\/\/\/[^#]+/i,""))},"cke:listbullet":function(a){a.getAncestor(/h\d/)&&!d.pasteFromWordNumberedHeadingToList&&delete a.name}},attributeNames:[[/^onmouse(:?out|over)/,""],[/^onload$/,""],[/(?:v|o):\w+/,""],[/^lang/,""]],attributes:{style:j(s?[[/^list-style-type$/,null],[/^margin$|^margin-(?!bottom|top)/,null,function(a,b,c){if(b.name in{p:1,div:1}){b="ltr"==d.contentsLangDirection?"margin-left": +"margin-right";if("margin"==c)a=r(c,a,[b])[b];else if(c!=b)return null;if(a&&!D.test(a))return[b,a]}return null}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(a,b){if("img"==b.name)return a}],[/^width|height$/,null,function(a,b){if(b.name in{table:1,td:1,th:1,img:1})return a}]]:[[/^mso-/],[/-color$/,null,function(a){if("transparent"==a)return!1;if(CKEDITOR.env.gecko)return a.replace(/-moz-use-text-color/g,"transparent")}],[/^margin$/,D],["text-indent","0cm"],["page-break-before"], +["tab-stops"],["display","none"],o?[/font-?/]:null],s),width:function(a,c){if(c.name in b.$tableContent)return!1},border:function(a,c){if(c.name in b.$tableContent)return!1},"class":h,bgcolor:h,valign:s?h:function(a,b){b.addStyle("vertical-align",a);return!1}},comment:!CKEDITOR.env.ie?function(a,b){var c=a.match(/<img.*?>/),d=a.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);return d?(d=(c=d[1]||c&&"l.")&&c.match(/>(?:[(]?)([^\s]+?)([.)]?)</),i(d,c)):CKEDITOR.env.gecko&&c?(c=CKEDITOR.htmlParser.fragment.fromHtml(c[0]).children[0], +(d=(d=(d=b.previous)&&d.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/))&&d[1])&&(c.attributes.src=d),c):!1}:h}}},G=function(){this.dataFilter=new CKEDITOR.htmlParser.filter};G.prototype={toHtml:function(a){var a=CKEDITOR.htmlParser.fragment.fromHtml(a),c=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(c,this.dataFilter);return c.getHtml(!0)}};CKEDITOR.cleanWord=function(a,c){CKEDITOR.env.gecko&&(a=a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi,"$1$2$3"));CKEDITOR.env.webkit&& +(a=a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi,"$1<span>$2</span>$3"));var b=new G,f=b.dataFilter;f.addRules(CKEDITOR.plugins.pastefromword.getRules(c,f));c.fire("beforeCleanWord",{filter:f});try{a=b.toHtml(a)}catch(d){alert(c.lang.pastefromword.error)}a=a.replace(/cke:.*?".*?"/g,"");a=a.replace(/style=""/g,"");return a=a.replace(/<span>/g,"")}})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js new file mode 100644 index 00000000..f41e86d1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("placeholder",function(a){var b=a.lang.placeholder,a=a.lang.common.generalTab;return{title:b.title,minWidth:300,minHeight:80,contents:[{id:"info",label:a,title:a,elements:[{id:"name",type:"text",style:"width: 100%;",label:b.name,"default":"",required:!0,validate:CKEDITOR.dialog.validate.regex(/^[^\[\]\<\>]+$/,b.invalidName),setup:function(a){this.setValue(a.data.name)},commit:function(a){a.setData("name",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png b/platforms/browser/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png new file mode 100644 index 00000000..0b7abcec Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png b/platforms/browser/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png new file mode 100644 index 00000000..cb12b481 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ar.js new file mode 100644 index 00000000..2ca7673e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ar",{title:"خصائص الربط الموضعي",toolbar:"الربط الموضعي",name:"اسم الربط الموضعي",invalidName:"لا يمكن ترك الربط الموضعي فارغا و لا أن يحتوي على الرموز التالية [, ], <, >",pathName:"الربط الموضعي"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/bg.js new file mode 100644 index 00000000..78bd6649 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","bg",{title:"Настройки на контейнера",toolbar:"Нов контейнер",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ca.js new file mode 100644 index 00000000..f4115f16 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ca",{title:"Propietats del marcador de posició",toolbar:"Marcador de posició",name:"Nom del marcador de posició",invalidName:"El marcador de posició no pot estar en blanc ni pot contenir cap dels caràcters següents: [,],<,>",pathName:"marcador de posició"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/cs.js new file mode 100644 index 00000000..3c24a677 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cs",{title:"Vlastnosti vyhrazeného prostoru",toolbar:"Vytvořit vyhrazený prostor",name:"Název vyhrazeného prostoru",invalidName:"Vyhrazený prostor nesmí být prázdný či obsahovat následující znaky: [, ], <, >",pathName:"Vyhrazený prostor"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/cy.js new file mode 100644 index 00000000..55022779 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cy",{title:"Priodweddau'r Daliwr Geiriau",toolbar:"Daliwr Geiriau",name:"Enw'r Daliwr Geiriau",invalidName:"Dyw'r daliwr geiriau methu â bod yn wag ac na all gynnyws y nodau [, ], <, > ",pathName:"daliwr geiriau"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/da.js new file mode 100644 index 00000000..dcbee5b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","da",{title:"Egenskaber for pladsholder",toolbar:"Opret pladsholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/de.js new file mode 100644 index 00000000..be828cda --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","de",{title:"Platzhalter Einstellungen",toolbar:"Platzhalter erstellen",name:"Platzhalter Name",invalidName:"Der Platzhalter darf nicht leer sein und folgende Zeichen nicht enthalten: [, ], <, >",pathName:"Platzhalter"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/el.js new file mode 100644 index 00000000..af6b7526 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","el",{title:"Ιδιότητες Υποκαθιστόμενου Κειμένου",toolbar:"Δημιουργία Υποκαθιστόμενου Κειμένου",name:"Όνομα Υποκαθιστόμενου Κειμένου",invalidName:"Το υποκαθιστόμενου κειμένο πρέπει να μην είναι κενό και να μην έχει κανέναν από τους ακόλουθους χαρακτήρες: [, ], <, >",pathName:"υποκαθιστόμενο κείμενο"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js new file mode 100644 index 00000000..38006937 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en-gb",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of the following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/en.js new file mode 100644 index 00000000..d91d35e0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/eo.js new file mode 100644 index 00000000..7027a1ed --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eo",{title:"Atributoj de la rezervita spaco",toolbar:"Rezervita Spaco",name:"Nomo de la rezervita spaco",invalidName:"La rezervita spaco ne povas esti malplena kaj ne povas enteni la sekvajn signojn : [, ], <, >",pathName:"rezervita spaco"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/es.js new file mode 100644 index 00000000..1a9162d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","es",{title:"Propiedades del Marcador de Posición",toolbar:"Crear Marcador de Posición",name:"Nombre del Marcador de Posición",invalidName:"El marcador de posición no puede estar vacío y no puede contener ninguno de los siguientes caracteres: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/et.js new file mode 100644 index 00000000..f6f3dac6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","et",{title:"Kohahoidja omadused",toolbar:"Kohahoidja loomine",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/eu.js new file mode 100644 index 00000000..663ac7a3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eu",{title:"Leku-marka Aukerak",toolbar:"Leku-marka sortu",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fa.js new file mode 100644 index 00000000..967e55d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fa",{title:"ویژگی‌های محل نگهداری",toolbar:"ایجاد یک محل نگهداری",name:"نام مکان نگهداری",invalidName:"مکان نگهداری نمی‌تواند خالی باشد و همچنین نمی‌تواند محتوی نویسه‌های مقابل باشد: [, ], <, >",pathName:"مکان نگهداری"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fi.js new file mode 100644 index 00000000..5c3e1562 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fi",{title:"Paikkamerkin ominaisuudet",toolbar:"Luo paikkamerkki",name:"Paikkamerkin nimi",invalidName:"Paikkamerkki ei voi olla tyhjä eikä sisältää seuraavia merkkejä: [, ], <, >",pathName:"paikkamerkki"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js new file mode 100644 index 00000000..e803e71a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr-ca",{title:"Propriétés de l'espace réservé",toolbar:"Créer un espace réservé",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fr.js new file mode 100644 index 00000000..b4c39c95 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr",{title:"Propriétés de l'Espace réservé",toolbar:"Créer l'Espace réservé",name:"Nom de l'espace réservé",invalidName:"L'espace réservé ne peut pas être vide ni contenir l'un de ses caractères : [, ], <, >",pathName:"espace réservé"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/gl.js new file mode 100644 index 00000000..e4fff775 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","gl",{title:"Propiedades do marcador de posición",toolbar:"Crear un marcador de posición",name:"Nome do marcador de posición",invalidName:"O marcador de posición non pode estar baleiro e non pode conter ningún dos caracteres seguintes: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/he.js new file mode 100644 index 00000000..5202f509 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","he",{title:"מאפייני שומר מקום",toolbar:"צור שומר מקום",name:"שם שומר מקום",invalidName:"שומר מקום לא יכול להיות ריק ולא יכול להכיל את הסימנים: [, ], <, >",pathName:"שומר מקום"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/hr.js new file mode 100644 index 00000000..866a110e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hr",{title:"Svojstva rezerviranog mjesta",toolbar:"Napravi rezervirano mjesto",name:"Ime rezerviranog mjesta",invalidName:"Rezervirano mjesto ne može biti prazno niti može sadržavati ijedan od sljedećih znakova: [, ], <, >",pathName:"rezervirano mjesto"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/hu.js new file mode 100644 index 00000000..a8e58e71 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hu",{title:"Helytartó beállítások",toolbar:"Helytartó készítése",name:"Helytartó neve",invalidName:"A helytartó nem lehet üres, és nem tartalmazhatja a következő karaktereket:[, ], <, > ",pathName:"helytartó"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/id.js new file mode 100644 index 00000000..c22f138e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","id",{title:"Properti isian sementara",toolbar:"Buat isian sementara",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/it.js new file mode 100644 index 00000000..c4ade199 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","it",{title:"Proprietà segnaposto",toolbar:"Crea segnaposto",name:"Nome segnaposto",invalidName:"Il segnaposto non può essere vuoto e non può contenere nessuno dei seguenti caratteri: [, ], <, >",pathName:"segnaposto"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ja.js new file mode 100644 index 00000000..c1ed5b5f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ja",{title:"プレースホルダのプロパティ",toolbar:"プレースホルダを作成",name:"プレースホルダ名",invalidName:"プレースホルダは空欄にできません。また、[, ], <, > の文字は使用できません。",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/km.js new file mode 100644 index 00000000..0ae3e81b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","km",{title:"លក្ខណៈ Placeholder",toolbar:"បង្កើត Placeholder",name:"ឈ្មោះ Placeholder",invalidName:"Placeholder មិន​អាច​ទទេរ ហើយក៏​មិន​អាច​មាន​តួ​អក្សរ​ទាំង​នេះ​ទេ៖ [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ko.js new file mode 100644 index 00000000..2974ee2c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ko",{title:"플레이스홀도 속성",toolbar:"플레이스홀더 생성",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ku.js new file mode 100644 index 00000000..8f62811f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ku",{title:"خاسیەتی شوێن هەڵگر",toolbar:"درووستکردنی شوێن هەڵگر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/lv.js new file mode 100644 index 00000000..b2ba800e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","lv",{title:"Viettura uzstādījumi",toolbar:"Izveidot vietturi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/nb.js new file mode 100644 index 00000000..b379e52a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nb",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/nl.js new file mode 100644 index 00000000..2c743ed6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nl",{title:"Eigenschappen placeholder",toolbar:"Placeholder aanmaken",name:"Naam placeholder",invalidName:"De placeholder mag niet leeg zijn, en mag niet een van de volgende tekens bevatten: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/no.js new file mode 100644 index 00000000..e2192cd8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","no",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pl.js new file mode 100644 index 00000000..df0c3aee --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pl",{title:"Właściwości wypełniacza",toolbar:"Utwórz wypełniacz",name:"Nazwa wypełniacza",invalidName:"Wypełniacz nie może być pusty ani nie może zawierać żadnego z następujących znaków: [, ], < oraz >",pathName:"wypełniacz"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js new file mode 100644 index 00000000..e438cc16 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt-br",{title:"Propriedades do Espaço Reservado",toolbar:"Criar Espaço Reservado",name:"Nome do Espaço Reservado",invalidName:"O espaço reservado não pode estar vazio e não pode conter nenhum dos seguintes caracteres: [, ], <, >",pathName:"Espaço Reservado"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pt.js new file mode 100644 index 00000000..b6dc1150 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt",{title:"Propriedades dos Símbolos",toolbar:"Símbolo",name:"Nome do Símbolo",invalidName:"O símbolo não pode estar em branco e não pode conter qualquer dos seguintes carateres: [, ], <, >",pathName:"símbolo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ru.js new file mode 100644 index 00000000..11572b14 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ru",{title:"Свойства плейсхолдера",toolbar:"Создать плейсхолдер",name:"Имя плейсхолдера",invalidName:'Плейсхолдер не может быть пустым и содержать один из следующих символов: "[, ], <, >"',pathName:"плейсхолдер"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/si.js new file mode 100644 index 00000000..3fe4e3d1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","si",{title:"ස්ථාන හීම්කරුගේ ",toolbar:"ස්ථාන හීම්කරු නිර්මාණය කිරීම",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sk.js new file mode 100644 index 00000000..88800a99 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sk",{title:"Vlastnosti placeholdera",toolbar:"Vytvoriť placeholder",name:"Názov placeholdera",invalidName:"Placeholder nemôže byť prázdny a nemôže obsahovať žiadny z nasledujúcich znakov: [,],<,>",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sl.js new file mode 100644 index 00000000..60114c35 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sl",{title:"Lastnosti Ograde",toolbar:"Ustvari Ogrado",name:"Placeholder Ime",invalidName:"Placeholder ne more biti prazen in ne sme vsebovati katerega od naslednjih znakov: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sq.js new file mode 100644 index 00000000..6f54e135 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sq",{title:"Karakteristikat e Mbajtësit të Vendit",toolbar:"Krijo Mabjtës Vendi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sv.js new file mode 100644 index 00000000..66a19562 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sv",{title:"Innehållsrutans egenskaper",toolbar:"Skapa innehållsruta",name:"Innehållsrutans namn",invalidName:"Innehållsrutan får inte vara tom och får inte innehålla någon av följande tecken: [,],<,>",pathName:"innehållsruta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/th.js new file mode 100644 index 00000000..41198f94 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/th.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","th",{title:"คุณสมบัติเกี่ยวกับตัวยึด",toolbar:"สร้างตัวยึด",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/tr.js new file mode 100644 index 00000000..fc0d27dd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tr",{title:"Yer tutucu özellikleri",toolbar:"Yer tutucu oluşturun",name:"Yer Tutucu Adı",invalidName:"Yer tutucu adı boş bırakılamaz ve şu karakterleri içeremez: [, ], <, >",pathName:"yertutucu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/tt.js new file mode 100644 index 00000000..d636866f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tt",{title:"Тутырма үзлекләре",toolbar:"Тутырма",name:"Тутырма исеме",invalidName:"Тутырма буш булмаска тиеш һәм эчендә алдагы символлар булмаска тиеш: [, ], <, >",pathName:"тутырма"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ug.js new file mode 100644 index 00000000..db0ad2ce --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ug",{title:"ئورۇن بەلگە خاسلىقى",toolbar:"ئورۇن بەلگە قۇر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/uk.js new file mode 100644 index 00000000..015a82a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","uk",{title:"Налаштування Заповнювача",toolbar:"Створити Заповнювач",name:"Назва заповнювача",invalidName:"Заповнювач не може бути порожнім і не може містити наступні символи: [, ], <, >",pathName:"заповнювач"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/vi.js new file mode 100644 index 00000000..5875e467 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","vi",{title:"Thuộc tính đặt chỗ",toolbar:"Tạo đặt chỗ",name:"Tên giữ chỗ",invalidName:"Giữ chỗ không thể để trống và không thể chứa bất kỳ ký tự sau: [,], <, >",pathName:"giữ chỗ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js new file mode 100644 index 00000000..bd67dfa8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh-cn",{title:"占位符属性",toolbar:"占位符",name:"占位符名称",invalidName:"占位符名称不能为空,并且不能包含以下字符:[、]、<、>",pathName:"占位符"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/zh.js new file mode 100644 index 00000000..c400c26d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh",{title:"預留位置屬性",toolbar:"建立預留位置",name:"Placeholder 名稱",invalidName:"「預留位置」不可為空白且不可包含以下字元:[, ], <, >",pathName:"預留位置"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/placeholder/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/placeholder/plugin.js new file mode 100644 index 00000000..39dfb472 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/placeholder/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("placeholder",{requires:"widget,dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"placeholder",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_placeholder{background-color:#ff0}")},init:function(a){var b=a.lang.placeholder;CKEDITOR.dialog.add("placeholder",this.path+"dialogs/placeholder.js");a.widgets.add("placeholder",{dialog:"placeholder", +pathName:b.pathName,template:'<span class="cke_placeholder">[[]]</span>',downcast:function(){return new CKEDITOR.htmlParser.text("[["+this.data.name+"]]")},init:function(){this.setData("name",this.element.getText().slice(2,-2))},data:function(){this.element.setText("[["+this.data.name+"]]")}});a.ui.addButton&&a.ui.addButton("CreatePlaceholder",{label:b.toolbar,command:"placeholder",toolbar:"insert,5",icon:"placeholder"})},afterInit:function(a){var b=/\[\[([^\[\]])+\]\]/g;a.dataProcessor.dataFilter.addRules({text:function(f, +d){var e=d.parent&&CKEDITOR.dtd[d.parent.name];if(!e||e.span)return f.replace(b,function(b){var c=null,c=new CKEDITOR.htmlParser.element("span",{"class":"cke_placeholder"});c.add(new CKEDITOR.htmlParser.text(b));c=a.widgets.wrapElement(c,"placeholder");return c.getOuterHtml()})}})}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png new file mode 100644 index 00000000..cd64e19a Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png new file mode 100644 index 00000000..402db20e Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png new file mode 100644 index 00000000..1c9d9787 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/icons/preview.png b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/preview.png new file mode 100644 index 00000000..162b44b8 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/preview/icons/preview.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/af.js new file mode 100644 index 00000000..97a16944 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","af",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ar.js new file mode 100644 index 00000000..a128ad1b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ar",{preview:"معاينة الصفحة"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bg.js new file mode 100644 index 00000000..5b88c365 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bg",{preview:"Преглед"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bn.js new file mode 100644 index 00000000..b95a1b55 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bn",{preview:"প্রিভিউ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bs.js new file mode 100644 index 00000000..1418f764 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bs",{preview:"Prikaži"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ca.js new file mode 100644 index 00000000..73458dd2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ca",{preview:"Visualització prèvia"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/cs.js new file mode 100644 index 00000000..f00d6eee --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cs",{preview:"Náhled"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/cy.js new file mode 100644 index 00000000..071c8d8d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cy",{preview:"Rhagolwg"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/da.js new file mode 100644 index 00000000..01f18bc8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","da",{preview:"Vis eksempel"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/de.js new file mode 100644 index 00000000..7c57cba3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","de",{preview:"Vorschau"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/el.js new file mode 100644 index 00000000..4aaeeb4b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","el",{preview:"Προεπισκόπιση"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-au.js new file mode 100644 index 00000000..f10aa05e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-au",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-ca.js new file mode 100644 index 00000000..3a7244b2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-ca",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-gb.js new file mode 100644 index 00000000..78d19abd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-gb",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en.js new file mode 100644 index 00000000..c1901ef8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/eo.js new file mode 100644 index 00000000..5fa3dd6b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eo",{preview:"Vidigi Aspekton"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/es.js new file mode 100644 index 00000000..d507847e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","es",{preview:"Vista Previa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/et.js new file mode 100644 index 00000000..a47ea46c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","et",{preview:"Eelvaade"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/eu.js new file mode 100644 index 00000000..ac83687c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eu",{preview:"Aurrebista"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fa.js new file mode 100644 index 00000000..ad85c381 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fa",{preview:"پیشنمایش"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fi.js new file mode 100644 index 00000000..6785c5b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fi",{preview:"Esikatsele"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fo.js new file mode 100644 index 00000000..779ef877 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fo",{preview:"Frumsýning"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fr-ca.js new file mode 100644 index 00000000..3731a101 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr-ca",{preview:"Prévisualiser"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fr.js new file mode 100644 index 00000000..ca8852b4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr",{preview:"Aperçu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/gl.js new file mode 100644 index 00000000..ab8a82a2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gl",{preview:"Vista previa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/gu.js new file mode 100644 index 00000000..e7b298b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gu",{preview:"પૂર્વદર્શન"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/he.js new file mode 100644 index 00000000..420a9340 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","he",{preview:"תצוגה מקדימה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hi.js new file mode 100644 index 00000000..397d2786 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hi",{preview:"प्रीव्यू"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hr.js new file mode 100644 index 00000000..5a85fc9c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hr",{preview:"Pregledaj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hu.js new file mode 100644 index 00000000..b96a4360 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hu",{preview:"Előnézet"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/id.js new file mode 100644 index 00000000..8c7819d2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","id",{preview:"Pratinjau"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/is.js new file mode 100644 index 00000000..5fac3cd4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","is",{preview:"Forskoða"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/it.js new file mode 100644 index 00000000..a9453f97 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","it",{preview:"Anteprima"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ja.js new file mode 100644 index 00000000..6b7cd82f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ja",{preview:"プレビュー"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ka.js new file mode 100644 index 00000000..bc1590db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ka",{preview:"გადახედვა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/km.js new file mode 100644 index 00000000..68ab55fa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","km",{preview:"មើល​ជា​មុន"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ko.js new file mode 100644 index 00000000..ac824da1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ko",{preview:"미리보기"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ku.js new file mode 100644 index 00000000..19594b66 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ku",{preview:"پێشبینین"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/lt.js new file mode 100644 index 00000000..814a9213 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lt",{preview:"Peržiūra"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/lv.js new file mode 100644 index 00000000..7a27eb2b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lv",{preview:"Priekšskatīt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/mk.js new file mode 100644 index 00000000..b0beed9c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mk",{preview:"Preview"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/mn.js new file mode 100644 index 00000000..6f2448c2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mn",{preview:"Уридчлан харах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ms.js new file mode 100644 index 00000000..f3c596ea --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ms",{preview:"Prebiu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/nb.js new file mode 100644 index 00000000..ea20b380 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nb",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/nl.js new file mode 100644 index 00000000..ed67f978 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nl",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/no.js new file mode 100644 index 00000000..0c13be89 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","no",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pl.js new file mode 100644 index 00000000..11f306e5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pl",{preview:"Podgląd"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pt-br.js new file mode 100644 index 00000000..e7f58261 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt-br",{preview:"Visualizar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pt.js new file mode 100644 index 00000000..92e354db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt",{preview:"Pré-visualizar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ro.js new file mode 100644 index 00000000..646e2319 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ro",{preview:"Previzualizare"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ru.js new file mode 100644 index 00000000..11c59a41 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ru",{preview:"Предварительный просмотр"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/si.js new file mode 100644 index 00000000..a205a154 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","si",{preview:"නැවත "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sk.js new file mode 100644 index 00000000..abee94b1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sk",{preview:"Náhľad"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sl.js new file mode 100644 index 00000000..a5ba8ba7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sl",{preview:"Predogled"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sq.js new file mode 100644 index 00000000..ef5e65b6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sq",{preview:"Parashiko"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sr-latn.js new file mode 100644 index 00000000..8c50b69d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr-latn",{preview:"Izgled stranice"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sr.js new file mode 100644 index 00000000..c01f9362 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr",{preview:"Изглед странице"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sv.js new file mode 100644 index 00000000..f5a3f5aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sv",{preview:"Förhandsgranska"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/th.js new file mode 100644 index 00000000..047e25f1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","th",{preview:"ดูหน้าเอกสารตัวอย่าง"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/tr.js new file mode 100644 index 00000000..dd331bd1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tr",{preview:"Ön İzleme"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/tt.js new file mode 100644 index 00000000..9b5e62ce --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tt",{preview:"Карап алу"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ug.js new file mode 100644 index 00000000..06549fd1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ug",{preview:"ئالدىن كۆزەت"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/uk.js new file mode 100644 index 00000000..8d45b877 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","uk",{preview:"Попередній перегляд"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/vi.js new file mode 100644 index 00000000..ba28bcc9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","vi",{preview:"Xem trước"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/zh-cn.js new file mode 100644 index 00000000..69445d04 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh-cn",{preview:"预览"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/zh.js new file mode 100644 index 00000000..2ebf415a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh",{preview:"預覽"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/preview/plugin.js new file mode 100644 index 00000000..a21212c8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h,i={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var g,b=a.config,f=b.baseHref?'<base href="'+b.baseHref+'"/>':"";if(b.fullPage)g=a.getData().replace(/<head>/,"$&"+f).replace(/[^>]*(?=<\/title>)/,"$& — "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));g=a.config.docType+'<html dir="'+a.config.contentsLangDirection+ +'"><head>'+f+"<title>"+a.lang.preview.preview+""+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+""+(b+">")+a.getData()+""}f=640;b=420;d=80;try{var c=window.screen,f=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(i){}if(!1===a.fire("contentPreview",a={dataValue:g}))return!1;var c="",e;CKEDITOR.env.ie&&(window._cke_htmlToLoad=a.dataValue,e="javascript:void( (function(){document.open();"+("("+CKEDITOR.tools.fixDomain+")();").replace(/\/\/.*?\n/g, +"").replace(/parent\./g,"window.opener.")+"document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )",c="");CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a.dataValue,c=CKEDITOR.getUrl(h+"preview.html"));c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+f+",height="+b+",left="+d);CKEDITOR.env.ie&&c&&(c.location=e);!CKEDITOR.env.ie&&!CKEDITOR.env.gecko&&(e=c.document,e.open(),e.write(a.dataValue), +e.close());return!0}};CKEDITOR.plugins.add("preview",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"preview,preview-rtl",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(h=this.path,a.addCommand("preview",i),a.ui.addButton&&a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview", +toolbar:"document,40"}))}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/preview/preview.html b/platforms/browser/www/lib/ckeditor/plugins/preview/preview.html new file mode 100644 index 00000000..8c028262 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/preview/preview.html @@ -0,0 +1,13 @@ + diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/icons/hidpi/print.png b/platforms/browser/www/lib/ckeditor/plugins/print/icons/hidpi/print.png new file mode 100644 index 00000000..4b72460d Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/print/icons/hidpi/print.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/icons/print.png b/platforms/browser/www/lib/ckeditor/plugins/print/icons/print.png new file mode 100644 index 00000000..06f797dc Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/print/icons/print.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/af.js new file mode 100644 index 00000000..61185ef1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","af",{toolbar:"Druk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ar.js new file mode 100644 index 00000000..b61c0946 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ar",{toolbar:"طباعة"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/bg.js new file mode 100644 index 00000000..6d929a8f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bg",{toolbar:"Печат"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/bn.js new file mode 100644 index 00000000..005dfd28 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bn",{toolbar:"প্রিন্ট"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/bs.js new file mode 100644 index 00000000..a6399186 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bs",{toolbar:"Štampaj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ca.js new file mode 100644 index 00000000..76f7145f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ca",{toolbar:"Imprimeix"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/cs.js new file mode 100644 index 00000000..8927afb8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cs",{toolbar:"Tisk"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/cy.js new file mode 100644 index 00000000..173df74e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cy",{toolbar:"Argraffu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/da.js new file mode 100644 index 00000000..d816585f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","da",{toolbar:"Udskriv"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/de.js new file mode 100644 index 00000000..a429f6cd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","de",{toolbar:"Drucken"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/el.js new file mode 100644 index 00000000..d5623ebd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","el",{toolbar:"Εκτύπωση"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-au.js new file mode 100644 index 00000000..191384e6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-au",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-ca.js new file mode 100644 index 00000000..aff5850e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-ca",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-gb.js new file mode 100644 index 00000000..84a26bdf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-gb",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en.js new file mode 100644 index 00000000..17461f29 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/eo.js new file mode 100644 index 00000000..b0580c1c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eo",{toolbar:"Presi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/es.js new file mode 100644 index 00000000..5549ced6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","es",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/et.js new file mode 100644 index 00000000..cd192d60 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","et",{toolbar:"Printimine"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/eu.js new file mode 100644 index 00000000..6690c535 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eu",{toolbar:"Inprimatu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fa.js new file mode 100644 index 00000000..2445e39e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fa",{toolbar:"چاپ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fi.js new file mode 100644 index 00000000..2547e349 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fi",{toolbar:"Tulosta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fo.js new file mode 100644 index 00000000..1c93841a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fo",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fr-ca.js new file mode 100644 index 00000000..ecedc161 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr-ca",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fr.js new file mode 100644 index 00000000..1ae9a1d2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/gl.js new file mode 100644 index 00000000..47ef182c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gl",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/gu.js new file mode 100644 index 00000000..a6c1366f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gu",{toolbar:"પ્રિન્ટ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/he.js new file mode 100644 index 00000000..a9e047af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","he",{toolbar:"הדפסה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/hi.js new file mode 100644 index 00000000..06ae5981 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hi",{toolbar:"प्रिन्ट"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/hr.js new file mode 100644 index 00000000..ffbd7f74 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hr",{toolbar:"Ispiši"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/hu.js new file mode 100644 index 00000000..1b1fb4e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hu",{toolbar:"Nyomtatás"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/id.js new file mode 100644 index 00000000..4df05eb7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","id",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/is.js new file mode 100644 index 00000000..0fb61680 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","is",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/it.js new file mode 100644 index 00000000..f8a79668 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","it",{toolbar:"Stampa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ja.js new file mode 100644 index 00000000..dbfd00bc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ja",{toolbar:"印刷"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ka.js new file mode 100644 index 00000000..86dc40f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ka",{toolbar:"ბეჭდვა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/km.js new file mode 100644 index 00000000..35450b4c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","km",{toolbar:"បោះពុម្ព"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ko.js new file mode 100644 index 00000000..9657b437 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ko",{toolbar:"인쇄하기"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ku.js new file mode 100644 index 00000000..fce60ec7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ku",{toolbar:"چاپکردن"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/lt.js new file mode 100644 index 00000000..1829455b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lt",{toolbar:"Spausdinti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/lv.js new file mode 100644 index 00000000..e03d0b5d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lv",{toolbar:"Drukāt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/mk.js new file mode 100644 index 00000000..63fd4d06 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mk",{toolbar:"Print"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/mn.js new file mode 100644 index 00000000..8df85cf9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mn",{toolbar:"Хэвлэх"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ms.js new file mode 100644 index 00000000..ca8734bd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ms",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/nb.js new file mode 100644 index 00000000..e65fcfd9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nb",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/nl.js new file mode 100644 index 00000000..41ecffd4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nl",{toolbar:"Afdrukken"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/no.js new file mode 100644 index 00000000..afb031f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","no",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/pl.js new file mode 100644 index 00000000..1bdbdebb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pl",{toolbar:"Drukuj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/pt-br.js new file mode 100644 index 00000000..9246c27d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt-br",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/pt.js new file mode 100644 index 00000000..a72195ba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ro.js new file mode 100644 index 00000000..2f331d22 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ro",{toolbar:"Printează"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ru.js new file mode 100644 index 00000000..458a9c14 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ru",{toolbar:"Печать"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/si.js new file mode 100644 index 00000000..68d3f56d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","si",{toolbar:"මුද්‍රණය කරන්න"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sk.js new file mode 100644 index 00000000..7762bb2e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sk",{toolbar:"Tlač"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sl.js new file mode 100644 index 00000000..9f401ddb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sl",{toolbar:"Natisni"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sq.js new file mode 100644 index 00000000..bfb05a47 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sq",{toolbar:"Shtype"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sr-latn.js new file mode 100644 index 00000000..62cdc718 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr-latn",{toolbar:"Štampa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sr.js new file mode 100644 index 00000000..74f6430e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr",{toolbar:"Штампа"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sv.js new file mode 100644 index 00000000..14181ba8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sv",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/th.js new file mode 100644 index 00000000..e87d3ac2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","th",{toolbar:"สั่งพิมพ์"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/tr.js new file mode 100644 index 00000000..82f81f05 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tr",{toolbar:"Yazdır"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/tt.js new file mode 100644 index 00000000..db8ff025 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tt",{toolbar:"Бастыру"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ug.js new file mode 100644 index 00000000..6c270318 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ug",{toolbar:"باس "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/uk.js new file mode 100644 index 00000000..dfde34dc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","uk",{toolbar:"Друк"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/vi.js new file mode 100644 index 00000000..56573948 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","vi",{toolbar:"In"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/zh-cn.js new file mode 100644 index 00000000..d7c2643d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh-cn",{toolbar:"打印"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/print/lang/zh.js new file mode 100644 index 00000000..65b8840d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh",{toolbar:"列印"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/print/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/print/plugin.js new file mode 100644 index 00000000..0b802e39 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/print/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("print",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"print,",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}}); +CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print")},canUndo:!1,readOnly:1,modes:{wysiwyg:1}}; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/icons/hidpi/save.png b/platforms/browser/www/lib/ckeditor/plugins/save/icons/hidpi/save.png new file mode 100644 index 00000000..fc59f677 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/save/icons/hidpi/save.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/icons/save.png b/platforms/browser/www/lib/ckeditor/plugins/save/icons/save.png new file mode 100644 index 00000000..51b8f6ee Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/save/icons/save.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/af.js new file mode 100644 index 00000000..aa5b37e3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","af",{toolbar:"Bewaar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ar.js new file mode 100644 index 00000000..eb09ee54 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ar",{toolbar:"حفظ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/bg.js new file mode 100644 index 00000000..ecdf23c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bg",{toolbar:"Запис"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/bn.js new file mode 100644 index 00000000..b4e2d6c8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bn",{toolbar:"সংরক্ষন কর"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/bs.js new file mode 100644 index 00000000..d94efe89 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bs",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ca.js new file mode 100644 index 00000000..8704f585 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ca",{toolbar:"Desa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/cs.js new file mode 100644 index 00000000..e337b9e4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cs",{toolbar:"Uložit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/cy.js new file mode 100644 index 00000000..1f8eb814 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cy",{toolbar:"Cadw"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/da.js new file mode 100644 index 00000000..1ff06c69 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","da",{toolbar:"Gem"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/de.js new file mode 100644 index 00000000..603359ba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","de",{toolbar:"Speichern"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/el.js new file mode 100644 index 00000000..1aaf9ef2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","el",{toolbar:"Αποθήκευση"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-au.js new file mode 100644 index 00000000..0ace64e5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-au",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-ca.js new file mode 100644 index 00000000..993a86e4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-ca",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-gb.js new file mode 100644 index 00000000..19c382db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-gb",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en.js new file mode 100644 index 00000000..1ee67693 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/eo.js new file mode 100644 index 00000000..dd7a1940 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eo",{toolbar:"Konservi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/es.js new file mode 100644 index 00000000..b07eea63 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","es",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/et.js new file mode 100644 index 00000000..5bfb76ca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","et",{toolbar:"Salvestamine"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/eu.js new file mode 100644 index 00000000..fec1f853 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eu",{toolbar:"Gorde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fa.js new file mode 100644 index 00000000..fb3f2a39 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fa",{toolbar:"ذخیره"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fi.js new file mode 100644 index 00000000..93d4db54 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fi",{toolbar:"Tallenna"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fo.js new file mode 100644 index 00000000..4b452683 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fo",{toolbar:"Goym"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fr-ca.js new file mode 100644 index 00000000..eacb6ea5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr-ca",{toolbar:"Sauvegarder"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fr.js new file mode 100644 index 00000000..8df018d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr",{toolbar:"Enregistrer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/gl.js new file mode 100644 index 00000000..1bd43328 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gl",{toolbar:"Gardar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/gu.js new file mode 100644 index 00000000..683842a8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gu",{toolbar:"સેવ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/he.js new file mode 100644 index 00000000..de52496b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","he",{toolbar:"שמירה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/hi.js new file mode 100644 index 00000000..36e3a750 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hi",{toolbar:"सेव"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/hr.js new file mode 100644 index 00000000..cd0d6f42 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hr",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/hu.js new file mode 100644 index 00000000..e2de2005 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hu",{toolbar:"Mentés"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/id.js new file mode 100644 index 00000000..7f1760b6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","id",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/is.js new file mode 100644 index 00000000..5f985898 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","is",{toolbar:"Vista"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/it.js new file mode 100644 index 00000000..fdfe51a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","it",{toolbar:"Salva"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ja.js new file mode 100644 index 00000000..41801c4e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ja",{toolbar:"保存"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ka.js new file mode 100644 index 00000000..d3d0456c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ka",{toolbar:"ჩაწერა"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/km.js new file mode 100644 index 00000000..82f44957 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","km",{toolbar:"រក្សាទុក"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ko.js new file mode 100644 index 00000000..f1a4191c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ko",{toolbar:"저장하기"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ku.js new file mode 100644 index 00000000..649a8cc1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ku",{toolbar:"پاشکەوتکردن"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/lt.js new file mode 100644 index 00000000..ea89ceee --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lt",{toolbar:"Išsaugoti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/lv.js new file mode 100644 index 00000000..6d8c0c83 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lv",{toolbar:"Saglabāt"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/mk.js new file mode 100644 index 00000000..0405ba87 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mk",{toolbar:"Save"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/mn.js new file mode 100644 index 00000000..ed1d40aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mn",{toolbar:"Хадгалах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ms.js new file mode 100644 index 00000000..8b557e7a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ms",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/nb.js new file mode 100644 index 00000000..0bce93de --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nb",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/nl.js new file mode 100644 index 00000000..46110539 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nl",{toolbar:"Opslaan"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/no.js new file mode 100644 index 00000000..d58f02e4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","no",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/pl.js new file mode 100644 index 00000000..8214669e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pl",{toolbar:"Zapisz"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/pt-br.js new file mode 100644 index 00000000..64c537a2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt-br",{toolbar:"Salvar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/pt.js new file mode 100644 index 00000000..a30393be --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ro.js new file mode 100644 index 00000000..05329bcd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ro",{toolbar:"Salvează"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ru.js new file mode 100644 index 00000000..9c755418 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ru",{toolbar:"Сохранить"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/si.js new file mode 100644 index 00000000..6305fe65 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","si",{toolbar:"ආරක්ෂා කරන්න"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sk.js new file mode 100644 index 00000000..f3ea59bd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sk",{toolbar:"Uložiť"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sl.js new file mode 100644 index 00000000..e8ff1758 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sl",{toolbar:"Shrani"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sq.js new file mode 100644 index 00000000..493dca31 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sq",{toolbar:"Ruaje"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sr-latn.js new file mode 100644 index 00000000..fe27f2b8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr-latn",{toolbar:"Sačuvaj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sr.js new file mode 100644 index 00000000..3fa9e1ca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr",{toolbar:"Сачувај"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sv.js new file mode 100644 index 00000000..a2e40dda --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sv",{toolbar:"Spara"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/th.js new file mode 100644 index 00000000..8e1c28dd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","th",{toolbar:"บันทึก"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/tr.js new file mode 100644 index 00000000..bb638ac3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tr",{toolbar:"Kaydet"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/tt.js new file mode 100644 index 00000000..757f3f71 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tt",{toolbar:"Саклау"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ug.js new file mode 100644 index 00000000..27dbe124 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ug",{toolbar:"ساقلا"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/uk.js new file mode 100644 index 00000000..c1abf921 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","uk",{toolbar:"Зберегти"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/vi.js new file mode 100644 index 00000000..986883b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","vi",{toolbar:"Lưu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/zh-cn.js new file mode 100644 index 00000000..a2de754d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh-cn",{toolbar:"保存"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/save/lang/zh.js new file mode 100644 index 00000000..6e810611 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh",{toolbar:"儲存"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/save/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/save/plugin.js new file mode 100644 index 00000000..75f29058 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/save/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var b={readOnly:1,exec:function(a){if(a.fire("save")&&(a=a.element.$.form))try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"save",hidpi:!0,init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save", +b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/scayt/LICENSE.md b/platforms/browser/www/lib/ckeditor/plugins/scayt/LICENSE.md new file mode 100644 index 00000000..844ab4de --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/scayt/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor SCAYT Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/platforms/browser/www/lib/ckeditor/plugins/scayt/dialogs/options.js b/platforms/browser/www/lib/ckeditor/plugins/scayt/dialogs/options.js new file mode 100644 index 00000000..aec9a1c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/scayt/dialogs/options.js @@ -0,0 +1,17 @@ +CKEDITOR.dialog.add("scaytDialog",function(f){var g=f.scayt,k='

'+g.getLocal("version")+g.getVersion()+"

"+g.getLocal("text_copyrights")+"

",l=CKEDITOR.document,i={isChanged:function(){return null===this.newLang||this.currentLang===this.newLang?!1:!0},currentLang:g.getLang(),newLang:null,reset:function(){this.currentLang=g.getLang();this.newLang=null},id:"lang"},k=[{id:"options",label:g.getLocal("tab_options"),onShow:function(){},elements:[{type:"vbox", +id:"scaytOptions",children:function(){var a=g.getApplicationConfig(),e=[],b={"ignore-all-caps-words":"label_allCaps","ignore-domain-names":"label_ignoreDomainNames","ignore-words-with-mixed-cases":"label_mixedCase","ignore-words-with-numbers":"label_mixedWithDigits"},d;for(d in a){var c={type:"checkbox"};c.id=d;c.label=g.getLocal(b[d]);e.push(c)}return e}(),onShow:function(){this.getChild();for(var a=f.scayt,e=0;e
',onShow:function(){var a=f.scayt.getLang();l.getById("scaytLang_"+a).$.checked=!0}}]}]},{id:"dictionaries",label:g.getLocal("tab_dictionaries"), +elements:[{type:"vbox",id:"rightCol_col__left",children:[{type:"html",id:"dictionaryNote",html:""},{type:"text",id:"dictionaryName",label:g.getLocal("label_fieldNameDic")||"Dictionary name",onShow:function(a){var e=a.sender,b=f.scayt;setTimeout(function(){e.getContentElement("dictionaries","dictionaryNote").getElement().setText("");null!=b.getUserDictionaryName()&&""!=b.getUserDictionaryName()&&e.getContentElement("dictionaries","dictionaryName").setValue(b.getUserDictionaryName())},0)}},{type:"hbox", +id:"notExistDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"createDic",label:g.getLocal("btn_createDic"),title:g.getLocal("btn_createDic"),onClick:function(){var a=this.getDialog(),e=j,b=f.scayt,d=a.getContentElement("dictionaries","dictionaryName").getValue();b.createUserDictionary(d,function(c){c.error||e.toggleDictionaryButtons.call(a,!0);c.dialog=a;c.command="create";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="create"; +c.name=d;f.fire("scaytUserDictionaryActionError",c)})}},{type:"button",id:"restoreDic",label:g.getLocal("btn_restoreDic"),title:g.getLocal("btn_restoreDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName").getValue();e.restoreUserDictionary(d,function(c){c.dialog=a;c.error||b.toggleDictionaryButtons.call(a,!0);c.command="restore";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="restore";c.name=d;f.fire("scaytUserDictionaryActionError", +c)})}}]},{type:"hbox",id:"existDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"removeDic",label:g.getLocal("btn_deleteDic"),title:g.getLocal("btn_deleteDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName"),c=d.getValue();e.removeUserDictionary(c,function(e){d.setValue("");e.error||b.toggleDictionaryButtons.call(a,!1);e.dialog=a;e.command="remove";e.name=c;f.fire("scaytUserDictionaryAction",e)},function(b){b.dialog= +a;b.command="remove";b.name=c;f.fire("scaytUserDictionaryActionError",b)})}},{type:"button",id:"renameDic",label:g.getLocal("btn_renameDic"),title:g.getLocal("btn_renameDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=a.getContentElement("dictionaries","dictionaryName").getValue();e.renameUserDictionary(b,function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryAction",d)},function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryActionError",d)})}}]}, +{type:"html",id:"dicInfo",html:'
'+g.getLocal("text_descriptionDic")+"
"}]}]},{id:"about",label:g.getLocal("tab_about"),elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
'+k+"
"}]}];f.on("scaytUserDictionaryAction",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;void 0===a.data.error?(c=d.getLocal("message_success_"+ +a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c),SCAYT.$(b.$).css({color:"blue"})):(""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c)),SCAYT.$(b.$).css({color:"red"}),null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()):e.getContentElement("dictionaries","dictionaryName").setValue(""))}); +f.on("scaytUserDictionaryActionError",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c));SCAYT.$(b.$).css({color:"red"});null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()): +e.getContentElement("dictionaries","dictionaryName").setValue("")});var j={title:g.getLocal("text_title"),resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:340,minHeight:260,onLoad:function(){if(0!=f.config.scayt_uiTabs[1]){var a=j,e=a.getLangBoxes.call(this);e.getParent().setStyle("white-space","normal");a.renderLangList(e);this.definition.minWidth=this.getSize().width;this.resize(this.definition.minWidth,this.definition.minHeight)}},onCancel:function(){i.reset()},onHide:function(){f.unlockSelection()}, +onShow:function(){f.fire("scaytDialogShown",this);if(0!=f.config.scayt_uiTabs[2]){var a=f.scayt,e=this.getContentElement("dictionaries","dictionaryName"),b=this.getContentElement("dictionaries","existDic").getElement().getParent(),d=this.getContentElement("dictionaries","notExistDic").getElement().getParent();b.hide();d.hide();null!=a.getUserDictionaryName()&&""!=a.getUserDictionaryName()?(this.getContentElement("dictionaries","dictionaryName").setValue(a.getUserDictionaryName()),b.show()):(e.setValue(""), +d.show())}},onOk:function(){var a=j,e=f.scayt;this.getContentElement("options","scaytOptions");a=a.getChangedOption.call(this);e.commitOption({changedOptions:a})},toggleDictionaryButtons:function(a){var e=this.getContentElement("dictionaries","existDic").getElement().getParent(),b=this.getContentElement("dictionaries","notExistDic").getElement().getParent();a?(e.show(),b.hide()):(e.hide(),b.show())},getChangedOption:function(){var a={};if(1==f.config.scayt_uiTabs[0])for(var e=this.getContentElement("options", +"scaytOptions").getChild(),b=0;b'),g=new CKEDITOR.dom.element("label"),h=f.scayt;b.setStyles({"white-space":"normal",position:"relative"}); +c.on("click",function(a){i.newLang=a.sender.getValue()});g.appendText(a);g.setAttribute("for",d);b.append(c);b.append(g);e===h.getLang()&&(c.setAttribute("checked",!0),c.setAttribute("defaultChecked","defaultChecked"));return b},renderLangList:function(a){var e=a.find("#left-col-"+f.name).getItem(0),a=a.find("#right-col-"+f.name).getItem(0),b=g.getLangList(),d={},c=[],i=0,h;for(h in b.ltr)d[h]=b.ltr[h];for(h in b.rtl)d[h]=b.rtl[h];for(h in d)c.push([h,d[h]]);c.sort(function(a,b){var c=0;a[1]>b[1]? +c=1:a[1]
'); +CKEDITOR.plugins.add("sharedspace",{init:function(a){a.on("loaded",function(){var b=a.config.sharedSpaces;if(b)for(var c in b)f(a,c,b[c])},null,null,9)}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png new file mode 100644 index 00000000..c88abcb6 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png new file mode 100644 index 00000000..a776fcc1 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png new file mode 100644 index 00000000..cd87d3e2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png new file mode 100644 index 00000000..41b5f346 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_address.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_address.png new file mode 100644 index 00000000..5abdae12 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_address.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png new file mode 100644 index 00000000..a8f49735 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_div.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_div.png new file mode 100644 index 00000000..87b3c171 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_div.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h1.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h1.png new file mode 100644 index 00000000..3933325c Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h1.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h2.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h2.png new file mode 100644 index 00000000..c99894c2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h2.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h3.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h3.png new file mode 100644 index 00000000..cb73d679 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h3.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h4.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h4.png new file mode 100644 index 00000000..7af6bb49 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h4.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h5.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h5.png new file mode 100644 index 00000000..ce5bec16 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h5.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h6.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h6.png new file mode 100644 index 00000000..e67b9829 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_h6.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_p.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_p.png new file mode 100644 index 00000000..63a58202 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_p.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_pre.png b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_pre.png new file mode 100644 index 00000000..955a8689 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/showblocks/images/block_pre.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/af.js new file mode 100644 index 00000000..f54ef175 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","af",{toolbar:"Toon blokke"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ar.js new file mode 100644 index 00000000..a3b135a9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ar",{toolbar:"مخطط تفصيلي"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bg.js new file mode 100644 index 00000000..ec8b4f9c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bg",{toolbar:"Показва блокове"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bn.js new file mode 100644 index 00000000..8f38cf2c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bs.js new file mode 100644 index 00000000..91d8620a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bs",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ca.js new file mode 100644 index 00000000..4a23bd67 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ca",{toolbar:"Mostra els blocs"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/cs.js new file mode 100644 index 00000000..e935394c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cs",{toolbar:"Ukázat bloky"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/cy.js new file mode 100644 index 00000000..4fea60e5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cy",{toolbar:"Dangos Blociau"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/da.js new file mode 100644 index 00000000..1c077f17 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","da",{toolbar:"Vis afsnitsmærker"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/de.js new file mode 100644 index 00000000..730add99 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","de",{toolbar:"Blöcke anzeigen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/el.js new file mode 100644 index 00000000..67fc843d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","el",{toolbar:"Προβολή Τμημάτων"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-au.js new file mode 100644 index 00000000..02fd8d37 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-au",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js new file mode 100644 index 00000000..2ddff41c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-ca",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js new file mode 100644 index 00000000..6398feaa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-gb",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en.js new file mode 100644 index 00000000..2457fa4b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/eo.js new file mode 100644 index 00000000..42775ae7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eo",{toolbar:"Montri la blokojn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/es.js new file mode 100644 index 00000000..eae41486 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","es",{toolbar:"Mostrar bloques"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/et.js new file mode 100644 index 00000000..18f1c0d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","et",{toolbar:"Blokkide näitamine"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/eu.js new file mode 100644 index 00000000..0efa1bea --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eu",{toolbar:"Blokeak erakutsi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fa.js new file mode 100644 index 00000000..e290b63d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fa",{toolbar:"نمایش بلوک‌ها"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fi.js new file mode 100644 index 00000000..a2e20e26 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fi",{toolbar:"Näytä elementit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fo.js new file mode 100644 index 00000000..cea7058d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fo",{toolbar:"Vís blokkar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js new file mode 100644 index 00000000..be37ca35 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr-ca",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fr.js new file mode 100644 index 00000000..49bf9394 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/gl.js new file mode 100644 index 00000000..b9f240c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gl",{toolbar:"Amosar os bloques"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/gu.js new file mode 100644 index 00000000..a8e7fd6c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gu",{toolbar:"બ્લૉક બતાવવું"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/he.js new file mode 100644 index 00000000..7d128462 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","he",{toolbar:"הצגת בלוקים"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hi.js new file mode 100644 index 00000000..68904f2d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hi",{toolbar:"ब्लॉक दिखायें"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hr.js new file mode 100644 index 00000000..d6af592d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hr",{toolbar:"Prikaži blokove"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hu.js new file mode 100644 index 00000000..cda541b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hu",{toolbar:"Blokkok megjelenítése"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/id.js new file mode 100644 index 00000000..96c293cc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","id",{toolbar:"Perlihatkan Blok"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/is.js new file mode 100644 index 00000000..88a3ff5a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","is",{toolbar:"Sýna blokkir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/it.js new file mode 100644 index 00000000..38e578fd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","it",{toolbar:"Visualizza Blocchi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ja.js new file mode 100644 index 00000000..a9c9736a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ja",{toolbar:"ブロック表示"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ka.js new file mode 100644 index 00000000..908e8002 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ka",{toolbar:"არეების ჩვენება"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/km.js new file mode 100644 index 00000000..d6ca8298 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","km",{toolbar:"បង្ហាញ​ប្លក់"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ko.js new file mode 100644 index 00000000..67187345 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ko",{toolbar:"블록 보기"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ku.js new file mode 100644 index 00000000..2a3a1282 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ku",{toolbar:"نیشاندانی بەربەستەکان"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/lt.js new file mode 100644 index 00000000..66368a41 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lt",{toolbar:"Rodyti blokus"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/lv.js new file mode 100644 index 00000000..12c328c1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lv",{toolbar:"Parādīt blokus"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/mk.js new file mode 100644 index 00000000..a34e8a23 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mk",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/mn.js new file mode 100644 index 00000000..778ad5d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mn",{toolbar:"Хавтангуудыг харуулах"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ms.js new file mode 100644 index 00000000..c6ab5f2d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ms",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/nb.js new file mode 100644 index 00000000..8bfdf0e1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nb",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/nl.js new file mode 100644 index 00000000..22190dbd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nl",{toolbar:"Toon blokken"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/no.js new file mode 100644 index 00000000..75702788 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","no",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pl.js new file mode 100644 index 00000000..3168b3c5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pl",{toolbar:"Pokaż bloki"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js new file mode 100644 index 00000000..3ac0ef74 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt-br",{toolbar:"Mostrar blocos de código"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pt.js new file mode 100644 index 00000000..5afaf8e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt",{toolbar:"Exibir blocos"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ro.js new file mode 100644 index 00000000..e4dadf0a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ro",{toolbar:"Arată blocurile"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ru.js new file mode 100644 index 00000000..9620b9d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ru",{toolbar:"Отображать блоки"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/si.js new file mode 100644 index 00000000..f67dff30 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","si",{toolbar:"කොටස පෙන්නන්න"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sk.js new file mode 100644 index 00000000..dee77c9a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sk",{toolbar:"Ukázať bloky"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sl.js new file mode 100644 index 00000000..52fca0bb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sl",{toolbar:"Prikaži ograde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sq.js new file mode 100644 index 00000000..88405f28 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sq",{toolbar:"Shfaq Blloqet"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js new file mode 100644 index 00000000..3c1551b9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr-latn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sr.js new file mode 100644 index 00000000..127878d5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sv.js new file mode 100644 index 00000000..a05b6ccb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sv",{toolbar:"Visa block"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/th.js new file mode 100644 index 00000000..9b3951cc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","th",{toolbar:"แสดงบล็อคข้อมูล"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/tr.js new file mode 100644 index 00000000..060da3aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tr",{toolbar:"Blokları Göster"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/tt.js new file mode 100644 index 00000000..519e6f7b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tt",{toolbar:"Блокларны күрсәтү"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ug.js new file mode 100644 index 00000000..c44b6605 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ug",{toolbar:"بۆلەكنى كۆرسەت"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/uk.js new file mode 100644 index 00000000..ca9f51c4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","uk",{toolbar:"Показувати блоки"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/vi.js new file mode 100644 index 00000000..43566240 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","vi",{toolbar:"Hiển thị các khối"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js new file mode 100644 index 00000000..abee734d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh-cn",{toolbar:"显示区块"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/zh.js new file mode 100644 index 00000000..84c1e7eb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh",{toolbar:"顯示區塊"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/showblocks/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/showblocks/plugin.js new file mode 100644 index 00000000..48060bcb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/showblocks/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var i={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var c=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[c]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn", +icons:"showblocks,showblocks-rtl",hidpi:!0,onLoad:function(){var a="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),c,b,e,f,i=CKEDITOR.getUrl(this.path),j=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),g=j?":not([contenteditable=false]):not(.cke_show_blocks_off)":"",d,h;for(c=b=e=f="";d=a.pop();)h=a.length?",":"",c+=".cke_show_blocks "+d+g+h,e+=".cke_show_blocks.cke_contents_ltr "+d+g+h,f+=".cke_show_blocks.cke_contents_rtl "+d+g+h,b+=".cke_show_blocks "+d+g+"{background-image:url("+CKEDITOR.getUrl(i+ +"images/block_"+d+".png")+")}";CKEDITOR.addCss((c+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(b,e+"{background-position:top left;padding-left:8px}",f+"{background-position:top right;padding-right:8px}"));j||CKEDITOR.addCss(".cke_show_blocks [contenteditable=false],.cke_show_blocks .cke_show_blocks_off{border:none;padding-top:0;background-image:none}.cke_show_blocks.cke_contents_rtl [contenteditable=false],.cke_show_blocks.cke_contents_rtl .cke_show_blocks_off{padding-right:0}.cke_show_blocks.cke_contents_ltr [contenteditable=false],.cke_show_blocks.cke_contents_ltr .cke_show_blocks_off{padding-left:0}")}, +init:function(a){function c(){b.refresh(a)}if(!a.blockless){var b=a.addCommand("showblocks",i);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(a.on("focus",c),a.on("blur",c));a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&& +b.refresh(a)})}}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js new file mode 100644 index 00000000..b202d3ee --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,i,k=function(j){var c=j.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);i.hide();j.data.preventDefault()},n=CKEDITOR.tools.addFunction(function(a,c){var a= +new CKEDITOR.dom.event(a),c=new CKEDITOR.dom.element(c),b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:if(b=c.getParent().getParent().getNext())(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:k({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0); +else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['
'+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
"); +e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png new file mode 100644 index 00000000..bad62eed Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/icons/smiley.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/icons/smiley.png new file mode 100644 index 00000000..9fafa28a Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/icons/smiley.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif new file mode 100644 index 00000000..21f81a2f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angel_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angel_smile.png new file mode 100644 index 00000000..559e5e71 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angel_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif new file mode 100644 index 00000000..c912d99b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angry_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angry_smile.png new file mode 100644 index 00000000..c05d2be3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/angry_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif new file mode 100644 index 00000000..4162a7b2 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/broken_heart.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/broken_heart.png new file mode 100644 index 00000000..a711c0d8 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/broken_heart.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif new file mode 100644 index 00000000..0e420cba Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/confused_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/confused_smile.png new file mode 100644 index 00000000..e0b8e5c6 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/confused_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif new file mode 100644 index 00000000..b5133427 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/cry_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/cry_smile.png new file mode 100644 index 00000000..a1891a34 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/cry_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif new file mode 100644 index 00000000..9b2a1005 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/devil_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/devil_smile.png new file mode 100644 index 00000000..53247a88 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/devil_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png new file mode 100644 index 00000000..34904b66 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/envelope.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/envelope.gif new file mode 100644 index 00000000..5294ec48 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/envelope.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/envelope.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/envelope.png new file mode 100644 index 00000000..44398ad1 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/envelope.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/heart.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/heart.gif new file mode 100644 index 00000000..160be8ef Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/heart.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/heart.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/heart.png new file mode 100644 index 00000000..df409e62 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/heart.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/kiss.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/kiss.gif new file mode 100644 index 00000000..ffb23db0 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/kiss.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/kiss.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/kiss.png new file mode 100644 index 00000000..a4f2f363 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/kiss.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif new file mode 100644 index 00000000..ceb6e2d9 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/lightbulb.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/lightbulb.png new file mode 100644 index 00000000..0c4a9240 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/lightbulb.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif new file mode 100644 index 00000000..3177355f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/omg_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/omg_smile.png new file mode 100644 index 00000000..abc4e2d0 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/omg_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif new file mode 100644 index 00000000..fdcf5c33 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/regular_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/regular_smile.png new file mode 100644 index 00000000..0f2649b7 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/regular_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif new file mode 100644 index 00000000..cca0729d Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/sad_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/sad_smile.png new file mode 100644 index 00000000..f20f3bf3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/sad_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif new file mode 100644 index 00000000..7d93474c Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/shades_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/shades_smile.png new file mode 100644 index 00000000..fdaa28b7 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/shades_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif new file mode 100644 index 00000000..44c37996 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png new file mode 100644 index 00000000..5e63785e Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif new file mode 100644 index 00000000..5c8bee30 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png new file mode 100644 index 00000000..1823481f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif new file mode 100644 index 00000000..9cc37029 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png new file mode 100644 index 00000000..d4e8b22a Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png new file mode 100644 index 00000000..56553fbe Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif new file mode 100644 index 00000000..eef4fc00 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png new file mode 100644 index 00000000..f9714d1b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif new file mode 100644 index 00000000..6d3d64bd Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/images/wink_smile.png b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/wink_smile.png new file mode 100644 index 00000000..7c99c3fc Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/smiley/images/wink_smile.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/af.js new file mode 100644 index 00000000..dd63a1c7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","af",{options:"Lagbekkie opsies",title:"Voeg lagbekkie by",toolbar:"Lagbekkie"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ar.js new file mode 100644 index 00000000..83a8dfa1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ar",{options:"خصائص الإبتسامات",title:"إدراج ابتسامات",toolbar:"ابتسامات"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bg.js new file mode 100644 index 00000000..f8bf7119 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bg",{options:"Опции за усмивката",title:"Вмъкване на усмивка",toolbar:"Усмивка"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bn.js new file mode 100644 index 00000000..61de3df3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bn",{options:"Smiley Options",title:"স্মাইলী যুক্ত কর",toolbar:"স্মাইলী"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bs.js new file mode 100644 index 00000000..422fb8b5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bs",{options:"Smiley Options",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ca.js new file mode 100644 index 00000000..5164077f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ca",{options:"Opcions d'emoticones",title:"Insereix una icona",toolbar:"Icona"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/cs.js new file mode 100644 index 00000000..aa0d7fa2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cs",{options:"Nastavení smajlíků",title:"Vkládání smajlíků",toolbar:"Smajlíci"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/cy.js new file mode 100644 index 00000000..79164f5c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cy",{options:"Opsiynau Gwenogluniau",title:"Mewnosod Gwenoglun",toolbar:"Gwenoglun"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/da.js new file mode 100644 index 00000000..cfc0db19 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","da",{options:"Smileymuligheder",title:"Vælg smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/de.js new file mode 100644 index 00000000..573e4946 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","de",{options:"Smiley Optionen",title:"Smiley auswählen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/el.js new file mode 100644 index 00000000..af8f2605 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","el",{options:"Επιλογές Φατσούλων",title:"Εισάγετε μια Φατσούλα",toolbar:"Φατσούλα"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-au.js new file mode 100644 index 00000000..8dd27c36 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-au",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-ca.js new file mode 100644 index 00000000..01b27019 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-ca",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-gb.js new file mode 100644 index 00000000..9967ebfc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-gb",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en.js new file mode 100644 index 00000000..aa2b1e29 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/eo.js new file mode 100644 index 00000000..b84cd509 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eo",{options:"Opcioj pri mienvinjetoj",title:"Enmeti Mienvinjeton",toolbar:"Mienvinjeto"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/es.js new file mode 100644 index 00000000..0a64de63 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","es",{options:"Opciones de emoticonos",title:"Insertar un Emoticon",toolbar:"Emoticonos"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/et.js new file mode 100644 index 00000000..b3acbc88 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","et",{options:"Emotikonide valikud",title:"Sisesta emotikon",toolbar:"Emotikon"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/eu.js new file mode 100644 index 00000000..d5eb0d03 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eu",{options:"Aurpegiera Aukerak",title:"Aurpegiera Sartu",toolbar:"Aurpegierak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fa.js new file mode 100644 index 00000000..536b9343 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fa",{options:"گزینه​های خندانک",title:"گنجاندن خندانک",toolbar:"خندانک"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fi.js new file mode 100644 index 00000000..cdc06b98 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fi",{options:"Hymiön ominaisuudet",title:"Lisää hymiö",toolbar:"Hymiö"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fo.js new file mode 100644 index 00000000..1758e873 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fo",{options:"Møguleikar fyri Smiley",title:"Vel Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js new file mode 100644 index 00000000..efef5640 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr-ca",{options:"Options d'émoticônes",title:"Insérer un émoticône",toolbar:"Émoticône"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fr.js new file mode 100644 index 00000000..56b9c488 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr",{options:"Options des émoticones",title:"Insérer un émoticone",toolbar:"Émoticones"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/gl.js new file mode 100644 index 00000000..47060596 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gl",{options:"Opcións de emoticonas",title:"Inserir unha emoticona",toolbar:"Emoticona"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/gu.js new file mode 100644 index 00000000..15a08c68 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gu",{options:"સમ્ય્લી વિકલ્પો",title:"સ્માઇલી પસંદ કરો",toolbar:"સ્માઇલી"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/he.js new file mode 100644 index 00000000..db6c4acd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","he",{options:"אפשרויות סמיילים",title:"הוספת סמיילי",toolbar:"סמיילי"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hi.js new file mode 100644 index 00000000..2aaa0813 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hi",{options:"Smiley Options",title:"स्माइली इन्सर्ट करें",toolbar:"स्माइली"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hr.js new file mode 100644 index 00000000..65116ab7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hr",{options:"Opcije smješka",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hu.js new file mode 100644 index 00000000..823e1d53 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hu",{options:"Hangulatjel opciók",title:"Hangulatjel beszúrása",toolbar:"Hangulatjelek"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/id.js new file mode 100644 index 00000000..07b5be16 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","id",{options:"Opsi Smiley",title:"Sisip sebuah Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/is.js new file mode 100644 index 00000000..dbb52568 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","is",{options:"Smiley Options",title:"Velja svip",toolbar:"Svipur"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/it.js new file mode 100644 index 00000000..df131f8e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","it",{options:"Opzioni Smiley",title:"Inserisci emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ja.js new file mode 100644 index 00000000..dab5662f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ja",{options:"絵文字オプション",title:"顔文字挿入",toolbar:"絵文字"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ka.js new file mode 100644 index 00000000..78218e0a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ka",{options:"სიცილაკის პარამეტრები",title:"სიცილაკის ჩასმა",toolbar:"სიცილაკები"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/km.js new file mode 100644 index 00000000..2b603406 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","km",{options:"ជម្រើស​រូប​សញ្ញា​អារម្មណ៍",title:"បញ្ចូល​រូប​សញ្ញា​អារម្មណ៍",toolbar:"រូប​សញ្ញ​អារម្មណ៍"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ko.js new file mode 100644 index 00000000..cb3986a0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ko",{options:"이모티콘 옵션",title:"아이콘 삽입",toolbar:"아이콘"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ku.js new file mode 100644 index 00000000..9d1b8bd2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ku",{options:"هەڵبژاردەی زەردەخەنه",title:"دانانی زەردەخەنەیەك",toolbar:"زەردەخەنه"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/lt.js new file mode 100644 index 00000000..49573bec --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lt",{options:"Šypsenėlių nustatymai",title:"Įterpti veidelį",toolbar:"Veideliai"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/lv.js new file mode 100644 index 00000000..b8299e52 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lv",{options:"Smaidiņu uzstādījumi",title:"Ievietot smaidiņu",toolbar:"Smaidiņi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/mk.js new file mode 100644 index 00000000..e7e241b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mk",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/mn.js new file mode 100644 index 00000000..6f8cd095 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mn",{options:"Smiley Options",title:"Тодорхойлолт оруулах",toolbar:"Тодорхойлолт"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ms.js new file mode 100644 index 00000000..0df42a59 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ms",{options:"Smiley Options",title:"Masukkan Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/nb.js new file mode 100644 index 00000000..db957dcb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nb",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/nl.js new file mode 100644 index 00000000..1b3ac44e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nl",{options:"Smiley opties",title:"Smiley invoegen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/no.js new file mode 100644 index 00000000..87f8534d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","no",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pl.js new file mode 100644 index 00000000..eb1938ab --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pl",{options:"Opcje emotikonów",title:"Wstaw emotikona",toolbar:"Emotikony"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pt-br.js new file mode 100644 index 00000000..e41f5442 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt-br",{options:"Opções de Emoticons",title:"Inserir Emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pt.js new file mode 100644 index 00000000..c9103e76 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt",{options:"Opções de Emoticons",title:"Inserir um Emoticon",toolbar:"Emoticons"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ro.js new file mode 100644 index 00000000..1f6b89af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ro",{options:"Opțiuni figuri expresive",title:"Inserează o figură expresivă (Emoticon)",toolbar:"Figură expresivă (Emoticon)"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ru.js new file mode 100644 index 00000000..b8f1d619 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ru",{options:"Выбор смайла",title:"Вставить смайл",toolbar:"Смайлы"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/si.js new file mode 100644 index 00000000..da884cf6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","si",{options:"හාස්‍ය විකල්ප",title:"හාස්‍යන් ඇතුලත් කිරීම",toolbar:"හාස්‍යන්"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sk.js new file mode 100644 index 00000000..c1ce5970 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sk",{options:"Možnosti smajlíkov",title:"Vložiť smajlíka",toolbar:"Smajlíky"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sl.js new file mode 100644 index 00000000..ef64a7a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sl",{options:"Možnosti Smeška",title:"Vstavi smeška",toolbar:"Smeško"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sq.js new file mode 100644 index 00000000..d870960e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sq",{options:"Opsionet e Ikonave",title:"Vendos Ikonë",toolbar:"Ikona"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js new file mode 100644 index 00000000..4e46a4d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr-latn",{options:"Smiley Options",title:"Unesi smajlija",toolbar:"Smajli"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sr.js new file mode 100644 index 00000000..d321eba3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr",{options:"Smiley Options",title:"Унеси смајлија",toolbar:"Смајли"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sv.js new file mode 100644 index 00000000..29e4c575 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sv",{options:"Smileyinställningar",title:"Infoga smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/th.js new file mode 100644 index 00000000..e4e12770 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","th",{options:"ตัวเลือกไอคอนแสดงอารมณ์",title:"แทรกสัญลักษณ์สื่ออารมณ์",toolbar:"รูปสื่ออารมณ์"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/tr.js new file mode 100644 index 00000000..90481db7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tr",{options:"İfade Seçenekleri",title:"İfade Ekle",toolbar:"İfade"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/tt.js new file mode 100644 index 00000000..7f1c8d3e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tt",{options:"Смайл көйләүләре",title:"Смайл өстәү",toolbar:"Смайл"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ug.js new file mode 100644 index 00000000..5d8ec4eb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ug",{options:"چىراي ئىپادە سىنبەلگە تاللانمىسى",title:"چىراي ئىپادە سىنبەلگە قىستۇر",toolbar:"چىراي ئىپادە"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/uk.js new file mode 100644 index 00000000..f6c59ee1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","uk",{options:"Опції смайликів",title:"Вставити смайлик",toolbar:"Смайлик"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/vi.js new file mode 100644 index 00000000..f5d1a665 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","vi",{options:"Tùy chọn hình biểu lộ cảm xúc",title:"Chèn hình biểu lộ cảm xúc (mặt cười)",toolbar:"Hình biểu lộ cảm xúc (mặt cười)"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js new file mode 100644 index 00000000..daea8579 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh-cn",{options:"表情图标选项",title:"插入表情图标",toolbar:"表情符"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/zh.js new file mode 100644 index 00000000..dffc3f0a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh",{options:"表情符號選項",title:"插入表情符號",toolbar:"表情符號"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/smiley/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/smiley/plugin.js new file mode 100644 index 00000000..426cb09b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/smiley/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("smiley",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"smiley",hidpi:!0,init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley",{allowedContent:"img[alt,height,!src,title,width]",requiredContent:"img"})); +a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.png sad_smile.png wink_smile.png teeth_smile.png confused_smile.png tongue_smile.png embarrassed_smile.png omg_smile.png whatchutalkingabout_smile.png angry_smile.png angel_smile.png shades_smile.png devil_smile.png cry_smile.png lightbulb.png thumbs_down.png thumbs_up.png heart.png broken_heart.png kiss.png envelope.png".split(" "); +CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";"); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js new file mode 100644 index 00000000..d0728c38 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("sourcedialog",function(a){var b=CKEDITOR.document.getWindow().getViewPaneSize(),e=Math.min(b.width-70,800),b=b.height/1.5,d;return{title:a.lang.sourcedialog.title,minWidth:100,minHeight:100,onShow:function(){this.setValueOf("main","data",d=a.getData())},onOk:function(){function b(f,c){a.focus();a.setData(c,function(){f.hide();var b=a.createRange();b.moveToElementEditStart(a.editable());b.select()})}return function(){var a=this.getValueOf("main","data").replace(/\r/g,""),c=this; +if(a===d)return!0;setTimeout(function(){b(c,a)});return!1}}(),contents:[{id:"main",label:a.lang.sourcedialog.title,elements:[{type:"textarea",id:"data",dir:"ltr",inputStyle:"cursor:auto;width:"+e+"px;height:"+b+"px;tab-size:4;text-align:left;","class":"cke_source"}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png new file mode 100644 index 00000000..adf4af3c Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png new file mode 100644 index 00000000..b4d0a15a Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png new file mode 100644 index 00000000..27d1ba88 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png new file mode 100644 index 00000000..e44db379 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/af.js new file mode 100644 index 00000000..f1491d1f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","af",{toolbar:"Bron",title:"Bron"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js new file mode 100644 index 00000000..b755d750 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ar",{toolbar:"المصدر",title:"المصدر"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js new file mode 100644 index 00000000..1d8c6dca --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bg",{toolbar:"Източник",title:"Източник"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js new file mode 100644 index 00000000..fd41806f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bn",{toolbar:"সোর্স",title:"সোর্স"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js new file mode 100644 index 00000000..9cd03930 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bs",{toolbar:"HTML kôd",title:"HTML kôd"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js new file mode 100644 index 00000000..24193350 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ca",{toolbar:"Codi font",title:"Codi font"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js new file mode 100644 index 00000000..acd14e8d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cs",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js new file mode 100644 index 00000000..d61bd35e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cy",{toolbar:"HTML",title:"HTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/da.js new file mode 100644 index 00000000..7c21ca42 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","da",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/de.js new file mode 100644 index 00000000..49f7c610 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","de",{toolbar:"Quellcode",title:"Quellcode"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/el.js new file mode 100644 index 00000000..58f9dd6c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","el",{toolbar:"Κώδικας",title:"Κώδικας"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js new file mode 100644 index 00000000..9dede838 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-au",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js new file mode 100644 index 00000000..244ef5ff --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js new file mode 100644 index 00000000..9381cd0e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-gb",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en.js new file mode 100644 index 00000000..20b116ed --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js new file mode 100644 index 00000000..902480da --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eo",{toolbar:"Fonto",title:"Fonto"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/es.js new file mode 100644 index 00000000..e7f85510 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","es",{toolbar:"Fuente HTML",title:"Fuente HTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/et.js new file mode 100644 index 00000000..9c3848b2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","et",{toolbar:"Lähtekood",title:"Lähtekood"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js new file mode 100644 index 00000000..dc75afe0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eu",{toolbar:"HTML Iturburua",title:"HTML Iturburua"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js new file mode 100644 index 00000000..65b63062 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fa",{toolbar:"منبع",title:"منبع"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js new file mode 100644 index 00000000..b7630ff0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fi",{toolbar:"Koodi",title:"Koodi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js new file mode 100644 index 00000000..ab4e5570 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fo",{toolbar:"Kelda",title:"Kelda"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js new file mode 100644 index 00000000..23148f8e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js new file mode 100644 index 00000000..8bc19780 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js new file mode 100644 index 00000000..8a3bcbcd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gl",{toolbar:"Orixe",title:"Orixe"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js new file mode 100644 index 00000000..2241ec60 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gu",{toolbar:"મૂળ કે પ્રાથમિક દસ્તાવેજ",title:"મૂળ કે પ્રાથમિક દસ્તાવેજ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/he.js new file mode 100644 index 00000000..4f255502 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","he",{toolbar:"מקור",title:"מקור"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js new file mode 100644 index 00000000..41ebe9b1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hi",{toolbar:"सोर्स",title:"सोर्स"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js new file mode 100644 index 00000000..51d2d4db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hr",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js new file mode 100644 index 00000000..5e80c1e7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hu",{toolbar:"Forráskód",title:"Forráskód"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/id.js new file mode 100644 index 00000000..e5af768e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","id",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/is.js new file mode 100644 index 00000000..fa21def4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","is",{toolbar:"Kóði",title:"Kóði"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/it.js new file mode 100644 index 00000000..0a6c8c04 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","it",{toolbar:"Sorgente",title:"Sorgente"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js new file mode 100644 index 00000000..81832591 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ja",{toolbar:"ソース",title:"ソース"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js new file mode 100644 index 00000000..201586a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ka",{toolbar:"კოდები",title:"კოდები"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/km.js new file mode 100644 index 00000000..421b42c8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","km",{toolbar:"អក្សរ​កូដ",title:"អក្សរ​កូដ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js new file mode 100644 index 00000000..64aa7004 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ko",{toolbar:"소스",title:"소스"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js new file mode 100644 index 00000000..61faf97b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ku",{toolbar:"سەرچاوە",title:"سەرچاوە"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js new file mode 100644 index 00000000..4b297dd3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lt",{toolbar:"Šaltinis",title:"Šaltinis"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js new file mode 100644 index 00000000..1f454578 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lv",{toolbar:"HTML kods",title:"HTML kods"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js new file mode 100644 index 00000000..d1d2b635 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","mn",{toolbar:"Код",title:"Код"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js new file mode 100644 index 00000000..69e7e9fb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ms",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js new file mode 100644 index 00000000..224b0855 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nb",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js new file mode 100644 index 00000000..47d692d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nl",{toolbar:"Broncode",title:"Broncode"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/no.js new file mode 100644 index 00000000..02cadbac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","no",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js new file mode 100644 index 00000000..80d4f44b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pl",{toolbar:"Źródło dokumentu",title:"Źródło dokumentu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js new file mode 100644 index 00000000..358cfd18 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt-br",{toolbar:"Código-Fonte",title:"Código-Fonte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js new file mode 100644 index 00000000..f924ce8d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt",{toolbar:"Fonte",title:"Fonte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js new file mode 100644 index 00000000..cc82c71d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ro",{toolbar:"Sursa",title:"Sursa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js new file mode 100644 index 00000000..fbf6efb7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ru",{toolbar:"Исходник",title:"Источник"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/si.js new file mode 100644 index 00000000..f869386e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","si",{toolbar:"මුලාශ්‍රය",title:"මුලාශ්‍රය"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js new file mode 100644 index 00000000..18dcae92 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sk",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js new file mode 100644 index 00000000..85cfe161 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sl",{toolbar:"Izvorna koda",title:"Izvorna koda"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js new file mode 100644 index 00000000..1266a7fd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sq",{toolbar:"Burimi",title:"Burimi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js new file mode 100644 index 00000000..4f0736c2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr-latn",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js new file mode 100644 index 00000000..84073825 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr",{toolbar:"Kôд",title:"Kôд"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js new file mode 100644 index 00000000..2fec89c7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sv",{toolbar:"Källa",title:"Källa"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/th.js new file mode 100644 index 00000000..03e48901 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","th",{toolbar:"ดูรหัส HTML",title:"ดูรหัส HTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js new file mode 100644 index 00000000..31ac46b5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tr",{toolbar:"Kaynak",title:"Kaynak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js new file mode 100644 index 00000000..a4c7d5eb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tt",{toolbar:"Чыганак",title:"Чыганак"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js new file mode 100644 index 00000000..efcc9d79 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ug",{toolbar:"مەنبە",title:"مەنبە"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js new file mode 100644 index 00000000..ca9afc2e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","uk",{toolbar:"Джерело",title:"Джерело"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js new file mode 100644 index 00000000..65c47d61 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","vi",{toolbar:"Mã HTML",title:"Mã HTML"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js new file mode 100644 index 00000000..fc5bb0d8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh-cn",{toolbar:"源码",title:"源码"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js new file mode 100644 index 00000000..c49aa82e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh",{toolbar:"原始碼",title:"原始碼"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/plugin.js new file mode 100644 index 00000000..b7cc6875 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/sourcedialog/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("sourcedialog",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"sourcedialog,sourcedialog-rtl",hidpi:!0,init:function(a){a.addCommand("sourcedialog",new CKEDITOR.dialogCommand("sourcedialog"));CKEDITOR.dialog.add("sourcedialog",this.path+"dialogs/sourcedialog.js");a.ui.addButton&&a.ui.addButton("Sourcedialog", +{label:a.lang.sourcedialog.toolbar,command:"sourcedialog",toolbar:"mode,10"})}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt new file mode 100644 index 00000000..baadd2b7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -0,0 +1,20 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +cs.js Found: 118 Missing: 0 +cy.js Found: 118 Missing: 0 +de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 +eo.js Found: 118 Missing: 0 +et.js Found: 31 Missing: 87 +fa.js Found: 24 Missing: 94 +fi.js Found: 23 Missing: 95 +fr.js Found: 118 Missing: 0 +hr.js Found: 23 Missing: 95 +it.js Found: 118 Missing: 0 +nb.js Found: 118 Missing: 0 +nl.js Found: 118 Missing: 0 +no.js Found: 118 Missing: 0 +tr.js Found: 118 Missing: 0 +ug.js Found: 39 Missing: 79 +zh-cn.js Found: 118 Missing: 0 diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js new file mode 100644 index 00000000..acb6c923 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js new file mode 100644 index 00000000..0bf8749e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js new file mode 100644 index 00000000..e6504372 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", +laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", +Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", +Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", +Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", +aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", +igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", +divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", +374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", +asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js new file mode 100644 index 00000000..c2b38f0f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", +not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", +Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", +Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", +Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", +acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", +icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", +uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", +8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js new file mode 100644 index 00000000..77f59f61 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", +reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", +Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", +Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", +Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", +aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", +euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", +otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", +OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", +diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js new file mode 100644 index 00000000..6b3ce87e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", +reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", +Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", +Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", +Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", +aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", +eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", +ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", +sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js new file mode 100644 index 00000000..e7c2a219 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", +ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", +iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", +Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", +Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", +acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", +icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", +uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", +sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js new file mode 100644 index 00000000..5a147863 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js new file mode 100644 index 00000000..26f61c2e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js new file mode 100644 index 00000000..d44b0d2e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", +sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", +Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", +Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", +szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", +igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", +uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", +bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js new file mode 100644 index 00000000..79d437f9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", +not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", +Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", +Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", +times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", +acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", +iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", +ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", +373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js new file mode 100644 index 00000000..22c90561 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", +bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js new file mode 100644 index 00000000..e0b27c59 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", +macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", +Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", +Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", +aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", +iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", +thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", +asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js new file mode 100644 index 00000000..6d701e3c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js new file mode 100644 index 00000000..d19e2e42 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", +Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", +Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", +eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", +373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js new file mode 100644 index 00000000..2d1ad096 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", +Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", +Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", +auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", +ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", +373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js new file mode 100644 index 00000000..f16d3667 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", +not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", +Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", +Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", +times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", +acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", +iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", +ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", +373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js new file mode 100644 index 00000000..dcfc50f0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", +macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", +Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", +ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", +Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", +ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", +divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", +373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js new file mode 100644 index 00000000..af10255d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", +reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js new file mode 100644 index 00000000..79483051 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", +reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", +Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", +Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", +agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", +icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", +uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", +9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js new file mode 100644 index 00000000..4928f400 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js new file mode 100644 index 00000000..894b56ce --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", +not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", +Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", +Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", +Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", +agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", +ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", +ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", +yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", +trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js new file mode 100644 index 00000000..84fb8fa2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", +frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", +times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", +ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", +rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js new file mode 100644 index 00000000..65a7518d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js new file mode 100644 index 00000000..4917d4ad --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", +ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", +Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", +Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", +times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", +atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", +icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", +uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", +375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js new file mode 100644 index 00000000..50a77d36 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", +laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", +Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", +Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", +times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", +acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", +icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", +uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", +sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js new file mode 100644 index 00000000..0cdcde20 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js new file mode 100644 index 00000000..68edf37f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", +reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", +Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", +Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", +Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", +aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", +iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", +uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", +375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js new file mode 100644 index 00000000..eecc56c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js new file mode 100644 index 00000000..f21a09db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", +laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", +Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", +Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", +Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", +eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", +divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", +375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka w lewo",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js new file mode 100644 index 00000000..e3f78319 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", +macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", +Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", +Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", +aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", +otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", +373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js new file mode 100644 index 00000000..11ef746a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", +laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", +Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", +Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", +times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", +atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", +icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", +uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", +sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa Duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js new file mode 100644 index 00000000..866e8659 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", +not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", +Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", +Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", +Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", +aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", +ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", +uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", +bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js new file mode 100644 index 00000000..1255a350 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", +macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js new file mode 100644 index 00000000..2d226d06 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", +reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", +Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", +Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", +Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", +aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", +oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", +OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", +hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js new file mode 100644 index 00000000..84759b62 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", +macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", +Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", +ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", +Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", +ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", +divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", +373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js new file mode 100644 index 00000000..c7098005 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", +Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", +Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", +times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", +acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", +iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", +ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", +373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js new file mode 100644 index 00000000..8f741b93 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", +not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", +Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", +Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", +ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", +ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", +trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js new file mode 100644 index 00000000..ae0b00e5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js new file mode 100644 index 00000000..3dd220a3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", +not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", +Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", +ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", +THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", +igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", +uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", +bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js new file mode 100644 index 00000000..2eadb9f7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Section sign",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", +not:"Not sign",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Middle dot",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе", +Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе", +Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе", +Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе", +ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе", +ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе", +oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow", +diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js new file mode 100644 index 00000000..51f4c1d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", +deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", +Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", +ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", +oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", +yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js new file mode 100644 index 00000000..845e7524 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", +not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", +Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", +Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", +Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", +igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", +ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", +hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js new file mode 100644 index 00000000..d4e4d37a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", +reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", +Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", +Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", +times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", +atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", +iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", +divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", +372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", +asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js new file mode 100644 index 00000000..6896e912 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", +Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", +Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", +iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", +373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js new file mode 100644 index 00000000..7bc2b556 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", +frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", +Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", +times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", +auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", +eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", +uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js new file mode 100644 index 00000000..c4d1696b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); +var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), +j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); +break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): +d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
 ');f.push("
",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, +title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", +align:"top",children:[{type:"html",html:"
"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
 
"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", +html:"
 
"}]}]}]}]}]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/stylesheetparser/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/stylesheetparser/plugin.js new file mode 100644 index 00000000..25ddd8f6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/stylesheetparser/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,e,c){var i=[],g=[],a;for(a=0;a|\+|~)/g," ");a=a.replace(/\[[^\]]*/g,"");a=a.replace(/#[^\s]*/g,"");a=a.replace(/\:{1,2}[^\s]*/g,"");a=a.replace(/\s+/g," ");a=a.split(" ");b=[];for(g=0;gl&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& +a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); +a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", +this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", +html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0b.indexOf("px")&&(b=b in j&&"none"!=a.getComputedStyle("border-style")?j[b]:0);return parseInt(b,10)}function w(a){var h=[],b=-1,j="rtl"==a.getComputedStyle("direction"),c;c=a.$.rows;for(var p=0,g,d,e,i=0,o=c.length;ip&&(p=g,d=e);c=d;p=new CKEDITOR.dom.element(a.$.tBodies[0]); +g=p.getDocumentPosition();d=0;for(e=c.cells.length;d',d);a.on("destroy",function(){e.remove()});s||d.getDocumentElement().append(e);this.attachTo=function(a){i|| +(s&&(d.getBody().append(e),k=0),g=a,e.setStyles({width:f(a.width),height:f(a.height),left:f(a.x),top:f(a.y)}),s&&e.setOpacity(0.25),e.on("mousedown",j,this),d.getBody().setStyle("cursor","col-resize"),e.show())};var r=this.move=function(a){if(!g)return 0;if(!i&&(ag.x+g.width))return g=null,i=k=0,d.removeListener("mouseup",c),e.removeListener("mousedown",j),e.removeListener("mousemove",p),d.getBody().setStyle("cursor","auto"),s?e.remove():e.hide(),0;a-=Math.round(e.$.offsetWidth/2);if(i){if(a== +y||a==z)return 1;a=Math.max(a,y);a=Math.min(a,z);k=a-o}e.setStyle("left",f(a));return 1}}function r(a){var h=a.data.getTarget();if("mouseout"==a.name){if(!h.is("table"))return;for(var b=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);b&&b.$&&!b.equals(h)&&!b.is("body");)b=b.getParent();if(!b||b.equals(h))return}h.getAscendant("table",1).removeCustomData("_cke_table_pillars");a.removeListener()}var f=CKEDITOR.tools.cssLength,s=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks); +CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(a){a.on("contentDom",function(){var h,b=a.editable();b.attachListener(b.isInline()?b:a.document,"mousemove",function(b){var b=b.data,c=b.getTarget();if(c.type==CKEDITOR.NODE_ELEMENT){var f=b.getPageOffset().x;if(h&&h.move(f))u(b);else if(c.is("table")||c.getAscendant("tbody",1)){c=c.getAscendant("table",1);if(!(b=c.getCustomData("_cke_table_pillars")))c.setCustomData("_cke_table_pillars",b=w(c)),c.on("mouseout",r),c.on("mousedown", +r);a:{for(var c=0,g=b.length;c=d.x&&f<=d.x+d.width){f=d;break a}}f=null}f&&(!h&&(h=new A(a)),h.attachTo(f))}}})})}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js b/platforms/browser/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js new file mode 100644 index 00000000..fb8e99ad --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js @@ -0,0 +1,17 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("cellProperties",function(g){function d(a){return function(b){for(var c=a(b[0]),d=1;d"+h.widthPx}]},f,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:d(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")|| +b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},f,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.alignLeft,"left"],[e.alignCenter,"center"],[e.alignRight,"right"],[e.alignJustify,"justify"]],setup:d(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align"); +a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:d(function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]}, +f,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:d(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},f,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:i.integer(c.invalidRowSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()): +a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:i.integer(c.invalidColSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},f,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:d(function(a){var b=a.getAttribute("bgColor"); +return a.getStyle("background-color")||b}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}},k?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:f]},f, +{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:d(function(a){var b=a.getAttribute("borderColor");return a.getStyle("border-color")||b}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},k?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(m?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align", +"bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}}:f]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d
'),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), +c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, +minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
'+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, +"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d'+f.emptyListMsg+"")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/icons/templates.png b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/templates.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/icons/templates.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/af.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/af.js new file mode 100644 index 00000000..3d31c9f5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","af",{button:"Sjablone",emptyListMsg:"(Geen sjablone gedefineer nie)",insertOption:"Vervang huidige inhoud",options:"Sjabloon opsies",selectPromptMsg:"Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):",title:"Inhoud Sjablone"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ar.js new file mode 100644 index 00000000..b4d6e742 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ar",{button:"القوالب",emptyListMsg:"(لم يتم تعريف أي قالب)",insertOption:"استبدال المحتوى",options:"خصائص القوالب",selectPromptMsg:"اختر القالب الذي تود وضعه في المحرر",title:"قوالب المحتوى"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bg.js new file mode 100644 index 00000000..766b87ac --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bg",{button:"Шаблони",emptyListMsg:"(Няма дефинирани шаблони)",insertOption:"Препокрива актуалното съдържание",options:"Опции за шаблона",selectPromptMsg:"Изберете шаблон
(текущото съдържание на редактора ще бъде загубено):",title:"Шаблони"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bn.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bn.js new file mode 100644 index 00000000..d8faf6f4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bn",{button:"টেমপ্লেট",emptyListMsg:"(কোন টেমপ্লেট ডিফাইন করা নেই)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন
(আসল কনটেন্ট হারিয়ে যাবে):",title:"কনটেন্ট টেমপ্লেট"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bs.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bs.js new file mode 100644 index 00000000..09cfcd7e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bs",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ca.js new file mode 100644 index 00000000..5aec5ba9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ca",{button:"Plantilles",emptyListMsg:"(No hi ha plantilles definides)",insertOption:"Reemplaça el contingut actual",options:"Opcions de plantilla",selectPromptMsg:"Seleccioneu una plantilla per usar a l'editor
(per defecte s'elimina el contingut actual):",title:"Plantilles de contingut"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/cs.js new file mode 100644 index 00000000..0ceb5a01 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cs",{button:"Šablony",emptyListMsg:"(Není definována žádná šablona)",insertOption:"Nahradit aktuální obsah",options:"Nastavení šablon",selectPromptMsg:"Prosím zvolte šablonu pro otevření v editoru
(aktuální obsah editoru bude ztracen):",title:"Šablony obsahu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/cy.js new file mode 100644 index 00000000..86896b0e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cy",{button:"Templedi",emptyListMsg:"(Dim templedi wedi'u diffinio)",insertOption:"Amnewid y cynnwys go iawn",options:"Opsiynau Templedi",selectPromptMsg:"Dewiswch dempled i'w agor yn y golygydd",title:"Templedi Cynnwys"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/da.js new file mode 100644 index 00000000..a7505cc7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","da",{button:"Skabeloner",emptyListMsg:"(Der er ikke defineret nogen skabelon)",insertOption:"Erstat det faktiske indhold",options:"Skabelon muligheder",selectPromptMsg:"Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):",title:"Indholdsskabeloner"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/de.js new file mode 100644 index 00000000..de5a7619 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","de",{button:"Vorlagen",emptyListMsg:"(keine Vorlagen definiert)",insertOption:"Aktuellen Inhalt ersetzen",options:"Vorlagen Optionen",selectPromptMsg:"Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",title:"Vorlagen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/el.js new file mode 100644 index 00000000..ca7464d9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","el",{button:"Πρότυπα",emptyListMsg:"(Δεν έχουν καθοριστεί πρότυπα)",insertOption:"Αντικατάσταση υπάρχοντων περιεχομένων",options:"Επιλογές Προτύπου",selectPromptMsg:"Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα",title:"Πρότυπα Περιεχομένου"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-au.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-au.js new file mode 100644 index 00000000..65e54336 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-au",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-ca.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-ca.js new file mode 100644 index 00000000..5472454f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-ca",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-gb.js new file mode 100644 index 00000000..ec9a7fd7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-gb",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en.js new file mode 100644 index 00000000..c5fef88d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/eo.js new file mode 100644 index 00000000..5d5afe6c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eo",{button:"Ŝablonoj",emptyListMsg:"(Neniu ŝablono difinita)",insertOption:"Anstataŭigi la nunan enhavon",options:"Opcioj pri ŝablonoj",selectPromptMsg:"Bonvolu selekti la ŝablonon por malfermi ĝin en la redaktilo",title:"Enhavo de ŝablonoj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/es.js new file mode 100644 index 00000000..c541e307 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","es",{button:"Plantillas",emptyListMsg:"(No hay plantillas definidas)",insertOption:"Reemplazar el contenido actual",options:"Opciones de plantillas",selectPromptMsg:"Por favor selecciona la plantilla a abrir en el editor
(el contenido actual se perderá):",title:"Contenido de Plantillas"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/et.js new file mode 100644 index 00000000..7e5e5855 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","et",{button:"Mall",emptyListMsg:"(Ühtegi malli ei ole defineeritud)",insertOption:"Praegune sisu asendatakse",options:"Malli valikud",selectPromptMsg:"Palun vali mall, mis avada redaktoris
(praegune sisu läheb kaotsi):",title:"Sisumallid"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/eu.js new file mode 100644 index 00000000..25b36ae1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eu",{button:"Txantiloiak",emptyListMsg:"(Ez dago definitutako txantiloirik)",insertOption:"Ordeztu oraingo edukiak",options:"Txantiloi Aukerak",selectPromptMsg:"Mesedez txantiloia aukeratu editorean kargatzeko
(orain dauden edukiak galduko dira):",title:"Eduki Txantiloiak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fa.js new file mode 100644 index 00000000..b7a94ba4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fa",{button:"الگوها",emptyListMsg:"(الگوئی تعریف نشده است)",insertOption:"محتویات کنونی جایگزین شوند",options:"گزینه‌های الگو",selectPromptMsg:"لطفاً الگوی مورد نظر را برای بازکردن در ویرایشگر انتخاب کنید",title:"الگوهای محتویات"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fi.js new file mode 100644 index 00000000..e58e9e46 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fi",{button:"Pohjat",emptyListMsg:"(Ei määriteltyjä pohjia)",insertOption:"Korvaa koko sisältö",options:"Sisältöpohjan ominaisuudet",selectPromptMsg:"Valitse editoriin avattava pohja",title:"Sisältöpohjat"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fo.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fo.js new file mode 100644 index 00000000..9ef42b39 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fo",{button:"Skabelónir",emptyListMsg:"(Ongar skabelónir tøkar)",insertOption:"Yvirskriva núverandi innihald",options:"Møguleikar fyri Template",selectPromptMsg:"Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum
(Hetta yvirskrivar núverandi innihald):",title:"Innihaldsskabelónir"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fr-ca.js new file mode 100644 index 00000000..91003fc7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr-ca",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer tout le contenu actuel",options:"Options de modèles",selectPromptMsg:"Sélectionner le modèle à ouvrir dans l'éditeur",title:"Modèles de contenu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fr.js new file mode 100644 index 00000000..48cb6d3d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer le contenu actuel",options:"Options des modèles",selectPromptMsg:"Veuillez sélectionner le modèle pour l'ouvrir dans l'éditeur",title:"Contenu des modèles"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/gl.js new file mode 100644 index 00000000..24483d1a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gl",{button:"Modelos",emptyListMsg:"(Non hai modelos definidos)",insertOption:"Substituír o contido actual",options:"Opcións de modelos",selectPromptMsg:"Seleccione o modelo a abrir no editor",title:"Modelos de contido"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/gu.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/gu.js new file mode 100644 index 00000000..ae121968 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gu",{button:"ટેમ્પ્લેટ",emptyListMsg:"(કોઈ ટેમ્પ્લેટ ડિફાઇન નથી)",insertOption:"મૂળ શબ્દને બદલો",options:"ટેમ્પ્લેટના વિકલ્પો",selectPromptMsg:"એડિટરમાં ઓપન કરવા ટેમ્પ્લેટ પસંદ કરો (વર્તમાન કન્ટેન્ટ સેવ નહીં થાય):",title:"કન્ટેન્ટ ટેમ્પ્લેટ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/he.js new file mode 100644 index 00000000..0e970ca5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","he",{button:"תבניות",emptyListMsg:"(לא הוגדרו תבניות)",insertOption:"החלפת תוכן ממשי",options:"אפשרויות התבניות",selectPromptMsg:"יש לבחור תבנית לפתיחה בעורך.
התוכן המקורי ימחק:",title:"תביות תוכן"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hi.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hi.js new file mode 100644 index 00000000..246bfe04 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hi",{button:"टॅम्प्लेट",emptyListMsg:"(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",insertOption:"मूल शब्दों को बदलें",options:"Template Options",selectPromptMsg:"ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",title:"कन्टेन्ट टॅम्प्लेट"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hr.js new file mode 100644 index 00000000..3bc52ea0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hr",{button:"Predlošci",emptyListMsg:"(Nema definiranih predložaka)",insertOption:"Zamijeni trenutne sadržaje",options:"Opcije predložaka",selectPromptMsg:"Molimo odaberite predložak koji želite otvoriti
(stvarni sadržaj će biti izgubljen):",title:"Predlošci sadržaja"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hu.js new file mode 100644 index 00000000..90ccbb66 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hu",{button:"Sablonok",emptyListMsg:"(Nincs sablon megadva)",insertOption:"Kicseréli a jelenlegi tartalmat",options:"Sablon opciók",selectPromptMsg:"Válassza ki melyik sablon nyíljon meg a szerkesztőben
(a jelenlegi tartalom elveszik):",title:"Elérhető sablonok"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/id.js new file mode 100644 index 00000000..8dc86b0b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","id",{button:"Contoh",emptyListMsg:"(Tidak ada contoh didefinisikan)",insertOption:"Ganti konten sebenarnya",options:"Opsi Contoh",selectPromptMsg:"Mohon pilih contoh untuk dibuka di editor",title:"Contoh Konten"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/is.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/is.js new file mode 100644 index 00000000..13e0736d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","is",{button:"Sniðmát",emptyListMsg:"(Ekkert sniðmát er skilgreint!)",insertOption:"Skipta út raunverulegu innihaldi",options:"Template Options",selectPromptMsg:"Veldu sniðmát til að opna í ritlinum.
(Núverandi innihald víkur fyrir því!):",title:"Innihaldssniðmát"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/it.js new file mode 100644 index 00000000..c3303ce1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","it",{button:"Modelli",emptyListMsg:"(Nessun modello definito)",insertOption:"Cancella il contenuto corrente",options:"Opzioni del Modello",selectPromptMsg:"Seleziona il modello da aprire nell'editor",title:"Contenuto dei modelli"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ja.js new file mode 100644 index 00000000..dbf519c3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ja",{button:"テンプレート",emptyListMsg:"(テンプレートが定義されていません)",insertOption:"現在のエディタの内容と置き換えます",options:"テンプレートオプション",selectPromptMsg:"エディターで使用するテンプレートを選択してください。
(現在のエディタの内容は失われます):",title:"内容テンプレート"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ka.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ka.js new file mode 100644 index 00000000..5864b757 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ka",{button:"თარგები",emptyListMsg:"(თარგი არაა განსაზღვრული)",insertOption:"მიმდინარე შეგთავსის შეცვლა",options:"თარგების პარამეტრები",selectPromptMsg:"აირჩიეთ თარგი რედაქტორისთვის",title:"თარგები"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/km.js new file mode 100644 index 00000000..14a0cf02 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","km",{button:"ពុម្ព​គំរូ",emptyListMsg:"(មិន​មាន​ពុម្ព​គំរូ​ត្រូវ​បាន​កំណត់)",insertOption:"ជំនួស​ក្នុង​មាតិកា​បច្ចុប្បន្ន",options:"ជម្រើស​ពុម្ព​គំរូ",selectPromptMsg:"សូម​រើស​ពុម្ព​គំរូ​ដើម្បី​បើក​ក្នុង​កម្មវិធី​សរសេរ​អត្ថបទ",title:"ពុម្ព​គំរូ​មាតិកា"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ko.js new file mode 100644 index 00000000..99c4f608 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ko",{button:"템플릿",emptyListMsg:"(템플릿이 없습니다.)",insertOption:"현재 내용 바꾸기",options:"템플릿 옵션",selectPromptMsg:"에디터에서 사용할 템플릿을 선택하십시요.
(지금까지 작성된 내용은 사라집니다.):",title:"내용 템플릿"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ku.js new file mode 100644 index 00000000..a5bda7d0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ku",{button:"ڕووکار",emptyListMsg:"(هیچ ڕووکارێك دیارینەکراوە)",insertOption:"لە شوێن دانانی ئەم پێکهاتانەی ئێستا",options:"هەڵبژاردەکانی ڕووکار",selectPromptMsg:"ڕووکارێك هەڵبژێره بۆ کردنەوەی له سەرنووسەر:",title:"پێکهاتەی ڕووکار"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/lt.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/lt.js new file mode 100644 index 00000000..ebbf213c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lt",{button:"Šablonai",emptyListMsg:"(Šablonų sąrašas tuščias)",insertOption:"Pakeisti dabartinį turinį pasirinktu šablonu",options:"Template Options",selectPromptMsg:"Pasirinkite norimą šabloną
(Dėmesio! esamas turinys bus prarastas):",title:"Turinio šablonai"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/lv.js new file mode 100644 index 00000000..a08ad5b4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lv",{button:"Sagataves",emptyListMsg:"(Nav norādītas sagataves)",insertOption:"Aizvietot pašreizējo saturu",options:"Sagataves uzstādījumi",selectPromptMsg:"Lūdzu, norādiet sagatavi, ko atvērt editorā
(patreizējie dati tiks zaudēti):",title:"Satura sagataves"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/mk.js new file mode 100644 index 00000000..ade20ea2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mk",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/mn.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/mn.js new file mode 100644 index 00000000..768bce5a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mn",{button:"Загварууд",emptyListMsg:"(Загвар тодорхойлогдоогүй байна)",insertOption:"Одоогийн агууллагыг дарж бичих",options:"Template Options",selectPromptMsg:"Загварыг нээж editor-рүү сонгож оруулна уу
(Одоогийн агууллагыг устаж магадгүй):",title:"Загварын агуулга"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ms.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ms.js new file mode 100644 index 00000000..5bf40cdf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ms",{button:"Templat",emptyListMsg:"(Tiada Templat Disimpan)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Sila pilih templat untuk dibuka oleh editor
(kandungan sebenar akan hilang):",title:"Templat Kandungan"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/nb.js new file mode 100644 index 00000000..5260dc85 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nb",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/nl.js new file mode 100644 index 00000000..a752e4bc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nl",{button:"Sjablonen",emptyListMsg:"(Geen sjablonen gedefinieerd)",insertOption:"Vervang de huidige inhoud",options:"Template opties",selectPromptMsg:"Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",title:"Inhoud sjablonen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/no.js new file mode 100644 index 00000000..cf5948b3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","no",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pl.js new file mode 100644 index 00000000..537d93c6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pl",{button:"Szablony",emptyListMsg:"(Brak zdefiniowanych szablonów)",insertOption:"Zastąp obecną zawartość",options:"Opcje szablonów",selectPromptMsg:"Wybierz szablon do otwarcia w edytorze
(obecna zawartość okna edytora zostanie utracona):",title:"Szablony zawartości"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pt-br.js new file mode 100644 index 00000000..65949501 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt-br",{button:"Modelos de layout",emptyListMsg:"(Não foram definidos modelos de layout)",insertOption:"Substituir o conteúdo atual",options:"Opções de Template",selectPromptMsg:"Selecione um modelo de layout para ser aberto no editor
(o conteúdo atual será perdido):",title:"Modelo de layout de conteúdo"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pt.js new file mode 100644 index 00000000..829299eb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt",{button:"Modelos",emptyListMsg:"(Sem modelos definidos)",insertOption:"Substituir conteúdos actuais",options:"Opções do Modelo",selectPromptMsg:"Por favor, selecione o modelo para abrir no editor",title:"Conteúdo dos Modelos"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ro.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ro.js new file mode 100644 index 00000000..8ef5d355 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ro",{button:"Template-uri (şabloane)",emptyListMsg:"(Niciun template (şablon) definit)",insertOption:"Înlocuieşte cuprinsul actual",options:"Opțiuni șabloane",selectPromptMsg:"Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor
(conţinutul actual va fi pierdut):",title:"Template-uri (şabloane) de conţinut"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ru.js new file mode 100644 index 00000000..201fa65b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ru",{button:"Шаблоны",emptyListMsg:"(не определено ни одного шаблона)",insertOption:"Заменить текущее содержимое",options:"Параметры шаблона",selectPromptMsg:"Пожалуйста, выберите, какой шаблон следует открыть в редакторе",title:"Шаблоны содержимого"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/si.js new file mode 100644 index 00000000..dc4ea690 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","si",{button:"අච්චුව",emptyListMsg:"කිසිම අච්චුවක් කලින් තීරණය කර ",insertOption:"සත්‍ය අන්තර්ගතයන් ප්‍රතිස්ථාපනය කරන්න",options:"අච්චු ",selectPromptMsg:"කරුණාකර සංස්කරණය සදහා අච්චුවක් ",title:"අන්තර්ගත් අච්චුන්"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sk.js new file mode 100644 index 00000000..60f33664 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sk",{button:"Šablóny",emptyListMsg:"(Žiadne šablóny nedefinované)",insertOption:"Nahradiť aktuálny obsah",options:"Možnosti šablóny",selectPromptMsg:"Prosím vyberte šablónu na otvorenie v editore",title:"Šablóny obsahu"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sl.js new file mode 100644 index 00000000..db33ea9a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sl",{button:"Predloge",emptyListMsg:"(Ni pripravljenih predlog)",insertOption:"Zamenjaj trenutno vsebino",options:"Možnosti Predloge",selectPromptMsg:"Izberite predlogo, ki jo želite odpreti v urejevalniku
(trenutna vsebina bo izgubljena):",title:"Vsebinske predloge"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sq.js new file mode 100644 index 00000000..f10c387e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sq",{button:"Shabllonet",emptyListMsg:"(Asnjë shabllon nuk është paradefinuar)",insertOption:"Zëvendëso përmbajtjen aktuale",options:"Opsionet e Shabllonit",selectPromptMsg:"Përzgjidhni shabllonin për të hapur tek redaktuesi",title:"Përmbajtja e Shabllonit"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sr-latn.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sr-latn.js new file mode 100644 index 00000000..96498838 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr-latn",{button:"Obrasci",emptyListMsg:"(Nema definisanih obrazaca)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",title:"Obrasci za sadržaj"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sr.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sr.js new file mode 100644 index 00000000..fea8b5ea --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr",{button:"Обрасци",emptyListMsg:"(Нема дефинисаних образаца)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",title:"Обрасци за садржај"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sv.js new file mode 100644 index 00000000..78e82de7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sv",{button:"Sidmallar",emptyListMsg:"(Ingen mall är vald)",insertOption:"Ersätt aktuellt innehåll",options:"Inställningar för mall",selectPromptMsg:"Var god välj en mall att använda med editorn
(allt nuvarande innehåll raderas):",title:"Sidmallar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/th.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/th.js new file mode 100644 index 00000000..e9d8e6b0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","th",{button:"เทมเพลต",emptyListMsg:"(ยังไม่มีการกำหนดเทมเพลต)",insertOption:"แทนที่เนื้อหาเว็บไซต์ที่เลือก",options:"ตัวเลือกเกี่ยวกับเทมเพลท",selectPromptMsg:"กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์
(เนื้อหาส่วนนี้จะหายไป):",title:"เทมเพลตของส่วนเนื้อหาเว็บไซต์"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/tr.js new file mode 100644 index 00000000..bd550faa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tr",{button:"Şablonlar",emptyListMsg:"(Belirli bir şablon seçilmedi)",insertOption:"Mevcut içerik ile değiştir",options:"Şablon Seçenekleri",selectPromptMsg:"Düzenleyicide açmak için lütfen bir şablon seçin.
(hali hazırdaki içerik kaybolacaktır.):",title:"İçerik Şablonları"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/tt.js new file mode 100644 index 00000000..04f0c93c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tt",{button:"Шаблоннар",emptyListMsg:"(Шаблоннар билгеләнмәгән)",insertOption:"Әлеге эчтәлекне алмаштыру",options:"Шаблон үзлекләре",selectPromptMsg:"Please select the template to open in the editor",title:"Эчтәлек шаблоннары"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ug.js new file mode 100644 index 00000000..bb66471e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ug",{button:"قېلىپ",emptyListMsg:"(قېلىپ يوق)",insertOption:"نۆۋەتتىكى مەزمۇننى ئالماشتۇر",options:"قېلىپ تاللانمىسى",selectPromptMsg:"تەھرىرلىگۈچنىڭ مەزمۇن قېلىپىنى تاللاڭ:",title:"مەزمۇن قېلىپى"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/uk.js new file mode 100644 index 00000000..9e543981 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","uk",{button:"Шаблони",emptyListMsg:"(Не знайдено жодного шаблону)",insertOption:"Замінити поточний вміст",options:"Опції шаблону",selectPromptMsg:"Оберіть, будь ласка, шаблон для відкриття в редакторі
(поточний зміст буде втрачено):",title:"Шаблони змісту"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/vi.js new file mode 100644 index 00000000..3c182f47 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","vi",{button:"Mẫu dựng sẵn",emptyListMsg:"(Không có mẫu dựng sẵn nào được định nghĩa)",insertOption:"Thay thế nội dung hiện tại",options:"Tùy chọn mẫu dựng sẵn",selectPromptMsg:"Hãy chọn mẫu dựng sẵn để mở trong trình biên tập
(nội dung hiện tại sẽ bị mất):",title:"Nội dung Mẫu dựng sẵn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/zh-cn.js new file mode 100644 index 00000000..f0216481 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh-cn",{button:"模板",emptyListMsg:"(没有模板)",insertOption:"替换当前内容",options:"模板选项",selectPromptMsg:"请选择要在编辑器中使用的模板:",title:"内容模板"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/zh.js new file mode 100644 index 00000000..dd974dff --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh",{button:"範本",emptyListMsg:"(尚未定義任何範本)",insertOption:"替代實際內容",options:"範本選項",selectPromptMsg:"請選擇要在編輯器中開啟的範本。",title:"內容範本"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/templates/plugin.js new file mode 100644 index 00000000..a5f6d642 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/templates/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"templates,templates-rtl",hidpi:!0,init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&& +a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=[],b=0,c=a.length;bType the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template1.gif b/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template1.gif new file mode 100644 index 00000000..efdabbeb Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template1.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template2.gif b/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template2.gif new file mode 100644 index 00000000..d1cebb3a Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template2.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template3.gif b/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template3.gif new file mode 100644 index 00000000..db41cb4f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/templates/templates/images/template3.gif differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js new file mode 100644 index 00000000..adc1cfb3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("uicolor",function(b){function f(a){/^#/.test(a)&&(a=window.YAHOO.util.Color.hex2rgb(a.substr(1)));c.setValue(a,!0);c.refresh(e)}function g(a){b.setUiColor(a);d._.contents.tab1.configBox.setValue('config.uiColor = "#'+c.get("hex")+'"')}var d,c,h=b.getUiColor(),e="cke_uicolor_picker"+CKEDITOR.tools.getNextNumber();return{title:b.lang.uicolor.title,minWidth:360,minHeight:320,onLoad:function(){d=this;this.setupContent();CKEDITOR.env.ie7Compat&&d.parts.contents.setStyle("overflow", +"hidden")},contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{id:"yuiColorPicker",type:"html",html:"
",onLoad:function(){var a=CKEDITOR.getUrl("plugins/uicolor/yui/");this.picker=c=new window.YAHOO.widget.ColorPicker(e,{showhsvcontrols:!0,showhexcontrols:!0,images:{PICKER_THUMB:a+"assets/picker_thumb.png",HUE_THUMB:a+"assets/hue_thumb.png"}});h&&f(h);c.on("rgbChange",function(){d._.contents.tab1.predefined.setValue(""); +g("#"+c.get("hex"))});for(var a=new CKEDITOR.dom.nodeList(c.getElementsByTagName("input")),b=0;b
 
'}]},{id:"configBox",type:"text",label:b.lang.uicolor.config,onShow:function(){var a=b.getUiColor();a&&this.setValue('config.uiColor = "'+a+'"')}}]}]}],buttons:[CKEDITOR.dialog.okButton]}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png b/platforms/browser/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png new file mode 100644 index 00000000..e6efa4a3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png b/platforms/browser/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png new file mode 100644 index 00000000..d5739dff Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt new file mode 100644 index 00000000..2af2d324 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 4 Missing: 0 +cs.js Found: 4 Missing: 0 +cy.js Found: 4 Missing: 0 +da.js Found: 4 Missing: 0 +de.js Found: 4 Missing: 0 +el.js Found: 4 Missing: 0 +eo.js Found: 4 Missing: 0 +et.js Found: 4 Missing: 0 +fa.js Found: 4 Missing: 0 +fi.js Found: 4 Missing: 0 +fr.js Found: 4 Missing: 0 +he.js Found: 4 Missing: 0 +hr.js Found: 4 Missing: 0 +it.js Found: 4 Missing: 0 +mk.js Found: 4 Missing: 0 +nb.js Found: 4 Missing: 0 +nl.js Found: 4 Missing: 0 +no.js Found: 4 Missing: 0 +pl.js Found: 4 Missing: 0 +tr.js Found: 4 Missing: 0 +ug.js Found: 4 Missing: 0 +uk.js Found: 4 Missing: 0 +vi.js Found: 4 Missing: 0 +zh-cn.js Found: 4 Missing: 0 diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ar.js new file mode 100644 index 00000000..6dcf6470 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ar",{title:"منتقي الألوان",preview:"معاينة مباشرة",config:"قص السطر إلى الملف config.js",predefined:"مجموعات ألوان معرفة مسبقا"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/bg.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/bg.js new file mode 100644 index 00000000..6c58885a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","bg",{title:"ПИ избор на цвят",preview:"Преглед",config:"Вмъкнете този низ във Вашия config.js fajl",predefined:"Предефинирани цветови палитри"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ca.js new file mode 100644 index 00000000..6f97e2a7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ca",{title:"UI Color Picker",preview:"Vista prèvia",config:"Enganxa aquest text dins el fitxer config.js",predefined:"Conjunts de colors predefinits"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/cs.js new file mode 100644 index 00000000..ef0e2e0b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cs",{title:"Výběr barvy rozhraní",preview:"Živý náhled",config:"Vložte tento řetězec do vašeho souboru config.js",predefined:"Přednastavené sady barev"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/cy.js new file mode 100644 index 00000000..45634661 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cy",{title:"Dewisydd Lliwiau'r UI",preview:"Rhagolwg Byw",config:"Gludwch y llinyn hwn i'ch ffeil config.js",predefined:"Setiau lliw wedi'u cyn-ddiffinio"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/da.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/da.js new file mode 100644 index 00000000..d05bbe87 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","da",{title:"Brugerflade på farvevælger",preview:"Vis liveeksempel",config:"Indsæt denne streng i din config.js fil",predefined:"Prædefinerede farveskemaer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/de.js new file mode 100644 index 00000000..dfb3f1a4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","de",{title:"UI Pipette",preview:"Live-Vorschau",config:"Fügen Sie diese Zeichenfolge in die 'config.js' Datei.",predefined:"Vordefinierte Farbsätze"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/el.js new file mode 100644 index 00000000..3cb51681 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","el",{title:"Διεπαφή Επιλογής Χρωμάτων",preview:"Ζωντανή Προεπισκόπηση",config:"Επικολλήστε αυτό το κείμενο στο αρχείο config.js",predefined:"Προκαθορισμένα σύνολα χρωμάτων"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js new file mode 100644 index 00000000..ce29dcdd --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en-gb",{title:"UI Colour Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined colour sets"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/en.js new file mode 100644 index 00000000..b43a201d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en",{title:"UI Color Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined color sets"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/eo.js new file mode 100644 index 00000000..2498f670 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eo",{title:"UI Kolorselektilo",preview:"Vidigi la aspekton",config:"Gluu tiun signoĉenon en vian dosieron config.js",predefined:"Antaŭdifinita koloraro"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/es.js new file mode 100644 index 00000000..ef68b1d4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","es",{title:"Recolector de Color de Interfaz de Usuario",preview:"Vista previa en vivo",config:"Pega esta cadena en tu archivo config.js",predefined:"Conjuntos predefinidos de colores"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/et.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/et.js new file mode 100644 index 00000000..7ebe8364 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","et",{title:"Värvivalija kasutajaliides",preview:"Automaatne eelvaade",config:"Aseta see sõne oma config.js faili.",predefined:"Eelmääratud värvikomplektid"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/eu.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/eu.js new file mode 100644 index 00000000..52e479f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eu",{title:"EI Kolore Hautatzailea",preview:"Zuzeneko aurreikuspena",config:"Itsatsi karaktere kate hau zure config.js fitxategian.",predefined:"Aurredefinitutako kolore multzoak"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fa.js new file mode 100644 index 00000000..7d62b4cc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fa",{title:"انتخاب رنگ رابط کاربری",preview:"پیش‌نمایش زنده",config:"این رشته را در پروندهٔ config.js خود رونوشت کنید.",predefined:"مجموعه رنگ از پیش تعریف شده"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fi.js new file mode 100644 index 00000000..724ff5ad --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fi",{title:"Käyttöliittymän väripaletti",preview:"Esikatsele heti",config:"Liitä tämä merkkijono config.js tiedostoosi",predefined:"Esimääritellyt värijoukot"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js new file mode 100644 index 00000000..75791374 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr-ca",{title:"Sélecteur de couleur",preview:"Aperçu",config:"Insérez cette ligne dans votre fichier config.js",predefined:"Ensemble de couleur prédéfinies"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fr.js new file mode 100644 index 00000000..457a953d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr",{title:"UI Sélecteur de couleur",preview:"Aperçu",config:"Collez cette chaîne de caractères dans votre fichier config.js",predefined:"Palettes de couleurs prédéfinies"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/gl.js new file mode 100644 index 00000000..6151989e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","gl",{title:"Recolledor de cor da interface de usuario",preview:"Vista previa en vivo",config:"Pegue esta cadea no seu ficheiro config.js",predefined:"Conxuntos predefinidos de cores"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/he.js new file mode 100644 index 00000000..e210e039 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","he",{title:"בחירת צבע ממשק משתמש",preview:"תצוגה מקדימה",config:"הדבק את הטקסט הבא לתוך הקובץ config.js",predefined:"קבוצות צבעים מוגדרות מראש"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/hr.js new file mode 100644 index 00000000..1495ab04 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hr",{title:"UI odabir boja",preview:"Pregled uživo",config:"Zalijepite ovaj tekst u Vašu config.js datoteku.",predefined:"Već postavljeni setovi boja"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/hu.js new file mode 100644 index 00000000..2c4a5e55 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hu",{title:"UI Színválasztó",preview:"Élő előnézet",config:"Illessze be ezt a szöveget a config.js fájlba",predefined:"Előre definiált színbeállítások"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/id.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/id.js new file mode 100644 index 00000000..b2af0502 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","id",{title:"Pengambil Warna UI",preview:"Pratinjau",config:"Tempel string ini ke arsip config.js anda.",predefined:"Set warna belum terdefinisi."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/it.js new file mode 100644 index 00000000..3c294a76 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","it",{title:"Selettore Colore UI",preview:"Anteprima Live",config:"Incolla questa stringa nel tuo file config.js",predefined:"Set di colori predefiniti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ja.js new file mode 100644 index 00000000..55b1f9c2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ja",{title:"UIカラーピッカー",preview:"ライブプレビュー",config:"この文字列を config.js ファイルへ貼り付け",predefined:"既定カラーセット"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/km.js new file mode 100644 index 00000000..c38c5be9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","km",{title:"ប្រដាប់​រើស​ពណ៌",preview:"មើល​ជាមុន​ផ្ទាល់",config:"បិទ​ភ្ជាប់​ខ្សែ​អក្សរ​នេះ​ទៅ​ក្នុង​ឯកសារ config.js របស់​អ្នក",predefined:"ឈុត​ពណ៌​កំណត់​រួច​ស្រេច"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ko.js new file mode 100644 index 00000000..af9199f4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ko",{title:"UI 색상 선택기",preview:"미리보기",config:"이 문자열을 config.js 에 붙여넣으세요",predefined:"미리 정의된 색깔들"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ku.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ku.js new file mode 100644 index 00000000..11b7fd1c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ku",{title:"هەڵگری ڕەنگ بۆ ڕووکاری بەکارهێنەر",preview:"پێشبینین بە زیندوویی",config:"ئەم دەقانە بلکێنە بە پەڕگەی config.js-fil",predefined:"کۆمەڵە ڕەنگە دیاریکراوەکانی پێشوو"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/lv.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/lv.js new file mode 100644 index 00000000..5655b659 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","lv",{title:"UI krāsas izvēle",preview:"Priekšskatījums",config:"Ielīmējiet šo rindu jūsu config.js failā",predefined:"Predefinēti krāsu komplekti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/mk.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/mk.js new file mode 100644 index 00000000..b219d766 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/mk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","mk",{title:"Палета со бои",preview:"Преглед",config:"Залепи го овој текст во config.js датотеката",predefined:"Предефинирани множества на бои"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/nb.js new file mode 100644 index 00000000..84ae603b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nb",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/nl.js new file mode 100644 index 00000000..8a62e469 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nl",{title:"UI Kleurenkiezer",preview:"Live voorbeeld",config:"Plak deze tekst in jouw config.js bestand",predefined:"Voorgedefinieerde kleurensets"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/no.js new file mode 100644 index 00000000..b51a6994 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","no",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pl.js new file mode 100644 index 00000000..38b0c2aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pl",{title:"Wybór koloru interfejsu",preview:"Podgląd na żywo",config:"Wklej poniższy łańcuch znaków do pliku config.js:",predefined:"Predefiniowane zestawy kolorów"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js new file mode 100644 index 00000000..be6aa759 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt-br",{title:"Paleta de Cores",preview:"Visualização ao vivo",config:"Cole o texto no seu arquivo config.js",predefined:"Conjuntos de cores predefinidos"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pt.js new file mode 100644 index 00000000..f96f758b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt",{title:"Seleção da Cor da IU",preview:"Pré-visualização Live ",config:"Colar este item no seu ficheiro config.js",predefined:"Conjuntos de cor predefinidos"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ru.js new file mode 100644 index 00000000..133e6dd4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ru",{title:"Выбор цвета интерфейса",preview:"Предпросмотр в реальном времени",config:"Вставьте эту строку в файл config.js",predefined:"Предопределенные цветовые схемы"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/si.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/si.js new file mode 100644 index 00000000..2c9755a1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","si",{title:"වර්ණ ",preview:"සජීව නැවත නරභීම",config:"මෙම අක්ෂර පේලිය ගෙන config.js ලිපිගොනුව මතින් තබන්න",predefined:"කලින් වෙන්කරගත් පරිදි ඇති වර්ණ"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sk.js new file mode 100644 index 00000000..2456d281 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sk",{title:"UI výber farby",preview:"Živý náhľad",config:"Vložte tento reťazec do vášho config.js súboru",predefined:"Preddefinované sady farieb"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sl.js new file mode 100644 index 00000000..62dda984 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sl",{title:"UI Izbiralec Barve",preview:"Živi predogled",config:"Prilepite ta niz v vašo config.js datoteko",predefined:"Vnaprej določeni barvni kompleti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sq.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sq.js new file mode 100644 index 00000000..56ebe486 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sq",{title:"UI Mbledhës i Ngjyrave",preview:"Parapamje direkte",config:"Hidhni këtë varg në skedën tuaj config.js",predefined:"Setet e paradefinuara të ngjyrave"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sv.js new file mode 100644 index 00000000..9b3e7231 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sv",{title:"UI Färgväljare",preview:"Live förhandsgranskning",config:"Klistra in den här strängen i din config.js-fil",predefined:"Fördefinierade färguppsättningar"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/tr.js new file mode 100644 index 00000000..ec553d0d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tr",{title:"UI Renk Seçici",preview:"Canlı ön izleme",config:"Bu yazıyı config.js dosyasının içine yapıştırın",predefined:"Önceden tanımlı renk seti"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/tt.js new file mode 100644 index 00000000..66990c45 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tt",{title:"Интерфейс төсләрен сайлау",preview:"Тере карап алу",config:"Бу юлны config.js файлына языгыз",predefined:"Баштан билгеләнгән төсләр җыелмасы"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ug.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ug.js new file mode 100644 index 00000000..4cadfee2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ug",{title:"ئىشلەتكۈچى ئارايۈزى رەڭ تاللىغۇچ",preview:"شۇئان ئالدىن كۆزىتىش",config:"بۇ ھەرپ تىزىقىنى config.js ھۆججەتكە چاپلايدۇ",predefined:"ئالدىن بەلگىلەنگەن رەڭلەر"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/uk.js new file mode 100644 index 00000000..acd28a19 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","uk",{title:"Color Picker Інтерфейс",preview:"Перегляд наживо",config:"Вставте цей рядок у файл config.js",predefined:"Стандартний набір кольорів"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/vi.js new file mode 100644 index 00000000..bd02f062 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","vi",{title:"Giao diện người dùng Color Picker",preview:"Xem trước trực tiếp",config:"Dán chuỗi này vào tập tin config.js của bạn",predefined:"Tập màu định nghĩa sẵn"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js new file mode 100644 index 00000000..552dc689 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh-cn",{title:"用户界面颜色选择器",preview:"即时预览",config:"粘贴此字符串到您的 config.js 文件",predefined:"预定义颜色集"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/zh.js new file mode 100644 index 00000000..cff7a9a9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh",{title:"UI 色彩選擇器",preview:"即時預覽",config:"請將此段字串複製到您的 config.js 檔案中。",predefined:"設定預先定義的色彩"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/plugin.js new file mode 100644 index 00000000..fc402d0a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("uicolor",{requires:"dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,mk,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",icons:"uicolor",hidpi:!0,init:function(a){CKEDITOR.env.ie6Compat||(a.addCommand("uicolor",new CKEDITOR.dialogCommand("uicolor")),a.ui.addButton&&a.ui.addButton("UIColor",{label:a.lang.uicolor.title,command:"uicolor",toolbar:"tools,1"}),CKEDITOR.dialog.add("uicolor",this.path+"dialogs/uicolor.js"), +CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("plugins/uicolor/yui/yui.js")),CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl("plugins/uicolor/yui/assets/yui.css")))}}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png new file mode 100644 index 00000000..d9bcdeb5 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png new file mode 100644 index 00000000..14d5db48 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png new file mode 100644 index 00000000..f8d91932 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png new file mode 100644 index 00000000..78445a2f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css new file mode 100644 index 00000000..2e10cb69 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css @@ -0,0 +1,7 @@ +/* +Copyright (c) 2009, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.7.0 +*/ +.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;} diff --git a/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/yui.js b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/yui.js new file mode 100644 index 00000000..cb187ddc --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/uicolor/yui/yui.js @@ -0,0 +1,225 @@ +if("undefined"==typeof YAHOO||!YAHOO)var YAHOO={};YAHOO.namespace=function(){var c=arguments,e=null,b,d,a;for(b=0;b "),c.isObject(a[d])?i.push(0h)break;i=a.indexOf("}",h);if(h+1>=i)break;k=n=a.substring(h+1,i);l=null;j=k.indexOf(" ");-1b.ie&&(j=g=2,h=e.compatMode,m=o(e.documentElement,"borderLeftWidth"),e=o(e.documentElement,"borderTopWidth"),6===b.ie&&"BackCompat"!==h&&(j=g=0),"BackCompat"==h&&("medium"!==m&& +(g=parseInt(m,10)),"medium"!==e&&(j=parseInt(e,10))),f[0]-=g,f[1]-=j);if(d||a)f[0]+=a,f[1]+=d;f[0]=k(f[0]);f[1]=k(f[1])}return f}:function(a){var d,f,e,g=!1,j=a;if(c.Dom._canPosition(a)){g=[a.offsetLeft,a.offsetTop];d=c.Dom.getDocumentScrollLeft(a.ownerDocument);f=c.Dom.getDocumentScrollTop(a.ownerDocument);for(e=m||519=this.left&&c.right<=this.right&&c.top>=this.top&&c.bottom<=this.bottom};YAHOO.util.Region.prototype.getArea=function(){return(this.bottom-this.top)*(this.right-this.left)};YAHOO.util.Region.prototype.intersect=function(c){var e=Math.max(this.top,c.top),b=Math.min(this.right,c.right),d=Math.min(this.bottom,c.bottom),c=Math.max(this.left,c.left);return d>=e&&b>=c?new YAHOO.util.Region(e,b,d,c):null}; +YAHOO.util.Region.prototype.union=function(c){var e=Math.min(this.top,c.top),b=Math.max(this.right,c.right),d=Math.max(this.bottom,c.bottom),c=Math.min(this.left,c.left);return new YAHOO.util.Region(e,b,d,c)};YAHOO.util.Region.prototype.toString=function(){return"Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}"}; +YAHOO.util.Region.getRegion=function(c){var e=YAHOO.util.Dom.getXY(c);return new YAHOO.util.Region(e[1],e[0]+c.offsetWidth,e[1]+c.offsetHeight,e[0])};YAHOO.util.Point=function(c,e){YAHOO.lang.isArray(c)&&(e=c[1],c=c[0]);YAHOO.util.Point.superclass.constructor.call(this,e,c,e,c)};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region); +(function(){var c=YAHOO.util,e=/^width|height$/,b=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,d={get:function(a,d){var e="",e=a.currentStyle[d];return e="opacity"===d?c.Dom.getStyle(a,"opacity"):!e||e.indexOf&&-1d&&(c=d-(a[j]-d)),a.style[b]="auto")):(!a.style[k]&&!a.style[b]&&(a.style[b]=d),c=a.style[k]);return c+"px"},getBorderWidth:function(a,b){var d=null;a.currentStyle.hasLayout||(a.style.zoom=1);switch(b){case "borderTopWidth":d=a.clientTop;break;case "borderBottomWidth":d=a.offsetHeight-a.clientHeight-a.clientTop;break;case "borderLeftWidth":d=a.clientLeft;break;case "borderRightWidth":d=a.offsetWidth-a.clientWidth-a.clientLeft}return d+"px"},getPixel:function(a, +b){var d=null,c=a.currentStyle.right;a.style.right=a.currentStyle[b];d=a.style.pixelRight;a.style.right=c;return d+"px"},getMargin:function(a,b){return"auto"==a.currentStyle[b]?"0px":c.Dom.IE.ComputedStyle.getPixel(a,b)},getVisibility:function(a,b){for(var d;(d=a.currentStyle)&&"inherit"==d[b];)a=a.parentNode;return d?d[b]:"visible"},getColor:function(a,b){return c.Dom.Color.toRGB(a.currentStyle[b])||"transparent"},getBorderColor:function(a,b){var d=a.currentStyle;return c.Dom.Color.toRGB(c.Dom.Color.toHex(d[b]|| +d.color))}},a={};a.top=a.right=a.bottom=a.left=a.width=a.height=d.getOffset;a.color=d.getColor;a.borderTopWidth=a.borderRightWidth=a.borderBottomWidth=a.borderLeftWidth=d.getBorderWidth;a.marginTop=a.marginRight=a.marginBottom=a.marginLeft=d.getMargin;a.visibility=d.getVisibility;a.borderColor=a.borderTopColor=a.borderRightColor=a.borderBottomColor=a.borderLeftColor=d.getBorderColor;c.Dom.IE_COMPUTED=a;c.Dom.IE_ComputedStyle=d})(); +(function(){var c=parseInt,e=RegExp,b=YAHOO.util;b.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(d){b.Dom.Color.re_RGB.test(d)||(d=b.Dom.Color.toHex(d));b.Dom.Color.re_hex.exec(d)&& +(d="rgb("+[c(e.$1,16),c(e.$2,16),c(e.$3,16)].join(", ")+")");return d},toHex:function(d){d=b.Dom.Color.KEYWORDS[d]||d;if(b.Dom.Color.re_RGB.exec(d))var d=1===e.$2.length?"0"+e.$2:Number(e.$2),a=1===e.$3.length?"0"+e.$3:Number(e.$3),d=[(1===e.$1.length?"0"+e.$1:Number(e.$1)).toString(16),d.toString(16),a.toString(16)].join("");6>d.length&&(d=d.replace(b.Dom.Color.re_hex3,"$1$1"));"transparent"!==d&&0>d.indexOf("#")&&(d="#"+d);return d.toLowerCase()}}})(); +YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(c,e,b,d){this.type=c;this.scope=e||window;this.silent=b;this.signature=d||YAHOO.util.CustomEvent.LIST;this.subscribers=[];"_YUICEOnSubscribe"!==c&&(this.subscribeEvent=new YAHOO.util.CustomEvent("_YUICEOnSubscribe",this,!0));this.lastError=null};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1; +YAHOO.util.CustomEvent.prototype={subscribe:function(c,e,b){if(!c)throw Error("Invalid callback for subscriber to '"+this.type+"'");this.subscribeEvent&&this.subscribeEvent.fire(c,e,b);this.subscribers.push(new YAHOO.util.Subscriber(c,e,b))},unsubscribe:function(c,e){if(!c)return this.unsubscribeAll();for(var b=!1,d=0,a=this.subscribers.length;dthis.webkit&& +("click"==b||"dblclick"==b)},removeListener:function(d,c,f,g){var j,h,k;if("string"==typeof d)d=this.getEl(d);else if(this._isValidCollection(d)){g=!0;for(j=d.length-1;-1c.webkit?c._dri=setInterval(function(){var b=document.readyState;if("loaded"==b||"complete"==b)clearInterval(c._dri),c._dri=null,c._ready()},c.POLL_INTERVAL):c._simpleAdd(document,"DOMContentLoaded",c._ready);c._simpleAdd(window,"load",c._load);c._simpleAdd(window,"unload",c._unload);c._tryPreloadAttach()}());YAHOO.util.EventProvider=function(){}; +YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(c,e,b,d){this.__yui_events=this.__yui_events||{};var a=this.__yui_events[c];if(a)a.subscribe(e,b,d);else{a=this.__yui_subscribers=this.__yui_subscribers||{};a[c]||(a[c]=[]);a[c].push({fn:e,obj:b,overrideContext:d})}},unsubscribe:function(c,e,b){var d=this.__yui_events=this.__yui_events||{};if(c){if(d=d[c])return d.unsubscribe(e,b)}else{var c=true,a;for(a in d)YAHOO.lang.hasOwnProperty(d,a)&&(c=c&&d[a].unsubscribe(e, +b));return c}return false},unsubscribeAll:function(c){return this.unsubscribe(c)},createEvent:function(c,e){this.__yui_events=this.__yui_events||{};var b=e||{},d=this.__yui_events;if(!d[c]){var a=new YAHOO.util.CustomEvent(c,b.scope||this,b.silent,YAHOO.util.CustomEvent.FLAT);d[c]=a;b.onSubscribeCallback&&a.subscribeEvent.subscribe(b.onSubscribeCallback);this.__yui_subscribers=this.__yui_subscribers||{};if(b=this.__yui_subscribers[c])for(var f=0;fthis.clickPixelThresh||c>this.clickPixelThresh)&&this.startDrag(this.startX,this.startY)}if(this.dragThreshMet){if(d&& +d.events.b4Drag){d.b4Drag(b);d.fireEvent("b4DragEvent",{e:b})}if(d&&d.events.drag){d.onDrag(b);d.fireEvent("dragEvent",{e:b})}d&&this.fireEvents(b,false)}this.stopEvent(b)}},fireEvents:function(b,d){var a=this.dragCurrent;if(a&&!a.isLocked()&&!a.dragOnly){var c=YAHOO.util.Event.getPageX(b),e=YAHOO.util.Event.getPageY(b),h=new YAHOO.util.Point(c,e),e=a.getTargetCoord(h.x,h.y),i=a.getDragEl(),c=["out","over","drop","enter"],j=new YAHOO.util.Region(e.y,e.x+i.offsetWidth,e.y+i.offsetHeight,e.x),k=[], +l={},e=[],i={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]},m;for(m in this.dragOvers){var n=this.dragOvers[m];if(this.isTypeOfDD(n)){this.isOverTarget(h,n,this.mode,j)||i.outEvts.push(n);k[m]=true;delete this.dragOvers[m]}}for(var o in a.groups)if("string"==typeof o)for(m in this.ids[o]){n=this.ids[o][m];if(this.isTypeOfDD(n)&&n.isTarget&&(!n.isLocked()&&n!=a)&&this.isOverTarget(h,n,this.mode,j)){l[o]=true;if(d)i.dropEvts.push(n);else{k[n.id]?i.overEvts.push(n):i.enterEvts.push(n);this.dragOvers[n.id]= +n}}}this.interactionInfo={out:i.outEvts,enter:i.enterEvts,over:i.overEvts,drop:i.dropEvts,point:h,draggedRegion:j,sourceRegion:this.locationCache[a.id],validDrop:d};for(var r in l)e.push(r);if(d&&!i.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(b);a.fireEvent("invalidDropEvent",{e:b})}}for(m=0;m2E3)){setTimeout(b._addListeners,10);if(document&&document.body)b._timeoutCount=b._timeoutCount+1}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id))return true;for(var a=b.parentNode;a;){if(this.isHandle(d,a.id))return true;a=a.parentNode}return false}}}(), +YAHOO.util.DDM=YAHOO.util.DragDropMgr,YAHOO.util.DDM._addListeners()); +(function(){var c=YAHOO.util.Event,e=YAHOO.util.Dom;YAHOO.util.DragDrop=function(b,d,a){b&&this.init(b,d,a)};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments)},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},unlock:function(){this.locked=false},isTarget:true,padding:null,dragOnly:false,useShim:false, +_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(){},startDrag:function(){},b4Drag:function(){},onDrag:function(){},onDragEnter:function(){},b4DragOver:function(){},onDragOver:function(){},b4DragOut:function(){},onDragOut:function(){},b4DragDrop:function(){},onDragDrop:function(){}, +onInvalidDrop:function(){},b4EndDrag:function(){},endDrag:function(){},b4MouseDown:function(){},onMouseDown:function(){},onMouseUp:function(){},onAvailable:function(){},getEl:function(){if(!this._domRef)this._domRef=e.get(this.id);return this._domRef},getDragEl:function(){return e.get(this.dragElId)},init:function(b,d,a){this.initTarget(b,d,a);c.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var e in this.events)this.createEvent(e+"Event")},initTarget:function(b,d,a){this.config= +a||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof b!=="string"){this._domRef=b;b=e.generateId(b)}this.id=b;this.addToGroup(d?d:"default");this.handleElId=b;c.onAvailable(b,this.handleOnAvailable,this,true);this.setDragElId(b);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig()},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true, +b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events)for(var b in this.config.events)this.config.events[b]===false&&(this.events[b]=false);this.padding=this.config.padding||[0,0,0,0];this.isTarget=this.config.isTarget!==false;this.maintainOffset=this.config.maintainOffset;this.primaryButtonOnly=this.config.primaryButtonOnly!==false;this.dragOnly=this.config.dragOnly===true?true:false;this.useShim= +this.config.useShim===true?true:false},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(b,d,a,c){this.padding=!d&&0!==d?[b,b,b,b]:!a&&0!==a?[b,d,b,d]:[b,d,a,c]},setInitPosition:function(b,d){var a=this.getEl();if(this.DDM.verifyEl(a)){var c=b||0,g=d||0,a=e.getXY(a);this.initPageX=a[0]-c;this.initPageY=a[1]-g;this.lastPageX=a[0];this.lastPageY=a[1];this.setStartPosition(a)}},setStartPosition:function(b){b=b||e.getXY(this.getEl());this.deltaSetXY= +null;this.startPageX=b[0];this.startPageY=b[1]},addToGroup:function(b){this.groups[b]=true;this.DDM.regDragDrop(this,b)},removeFromGroup:function(b){this.groups[b]&&delete this.groups[b];this.DDM.removeDDFromGroup(this,b)},setDragElId:function(b){this.dragElId=b},setHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.handleElId=b;this.DDM.regHandle(this.id,b)},setOuterHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));c.on(b,"mousedown",this.handleMouseDown,this,true); +this.setHandleElId(b);this.hasOuterHandles=true},unreg:function(){c.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(b){var d=b.which||b.button;if(!(this.primaryButtonOnly&&d>1)&&!this.isLocked()){var d=this.b4MouseDown(b),a=true;this.events.b4MouseDown&&(a=this.fireEvent("b4MouseDownEvent",b));var e=this.onMouseDown(b),g=true;this.events.mouseDown&&(g=this.fireEvent("mouseDownEvent", +b));if(!(d===false||e===false||a===false||g===false)){this.DDM.refreshCache(this.groups);d=new YAHOO.util.Point(c.getPageX(b),c.getPageY(b));if((this.hasOuterHandles||this.DDM.isOverTarget(d,this))&&this.clickValidator(b)){this.setStartPosition();this.DDM.handleMouseDown(b,this);this.DDM.stopEvent(b)}}}},clickValidator:function(b){b=YAHOO.util.Event.getTarget(b);return this.isValidHandleChild(b)&&(this.id==this.handleElId||this.DDM.handleWasClicked(b,this.id))},getTargetCoord:function(b,d){var a= +b-this.deltaX,c=d-this.deltaY;if(this.constrainX){if(athis.maxX)a=this.maxX}if(this.constrainY){if(cthis.maxY)c=this.maxY}a=this.getTick(a,this.xTicks);c=this.getTick(c,this.yTicks);return{x:a,y:c}},addInvalidHandleType:function(b){b=b.toUpperCase();this.invalidHandleTypes[b]=b},addInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.invalidHandleIds[b]=b},addInvalidHandleClass:function(b){this.invalidHandleClasses.push(b)}, +removeInvalidHandleType:function(b){delete this.invalidHandleTypes[b.toUpperCase()]},removeInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));delete this.invalidHandleIds[b]},removeInvalidHandleClass:function(b){for(var d=0,a=this.invalidHandleClasses.length;d=this.minX;c=c-d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}for(c=this.initPageX;c<=this.maxX;c=c+d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(b,d){this.yTicks=[];this.yTickSize=d;for(var a={},c=this.initPageY;c>=this.minY;c= +c-d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}for(c=this.initPageY;c<=this.maxY;c=c+d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(b,d,a){this.leftConstraint=parseInt(b,10);this.rightConstraint=parseInt(d,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;a&&this.setXTicks(this.initPageX,a);this.constrainX=true},clearConstraints:function(){this.constrainY=this.constrainX= +false;this.clearTicks()},clearTicks:function(){this.yTicks=this.xTicks=null;this.yTickSize=this.xTickSize=0},setYConstraint:function(b,d,a){this.topConstraint=parseInt(b,10);this.bottomConstraint=parseInt(d,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;a&&this.setYTicks(this.initPageY,a);this.constrainY=true},resetConstraints:function(){this.initPageX||this.initPageX===0?this.setInitPosition(this.maintainOffset?this.lastPageX-this.initPageX:0,this.maintainOffset? +this.lastPageY-this.initPageY:0):this.setInitPosition();this.constrainX&&this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);this.constrainY&&this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)},getTick:function(b,d){if(d){if(d[0]>=b)return d[0];for(var a=0,c=d.length;a=b)return d[e]-b>b-d[a]?d[a]:d[e]}return d[d.length-1]}return b},toString:function(){return"DragDrop "+this.id}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider)})(); +YAHOO.util.DD=function(c,e,b){c&&this.init(c,e,b)}; +YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:!0,autoOffset:function(c,e){this.setDelta(c-this.startPageX,e-this.startPageY)},setDelta:function(c,e){this.deltaX=c;this.deltaY=e},setDragElPos:function(c,e){this.alignElWithMouse(this.getDragEl(),c,e)},alignElWithMouse:function(c,e,b){var d=this.getTargetCoord(e,b);if(this.deltaSetXY){YAHOO.util.Dom.setStyle(c,"left",d.x+this.deltaSetXY[0]+"px");YAHOO.util.Dom.setStyle(c,"top",d.y+this.deltaSetXY[1]+"px")}else{YAHOO.util.Dom.setXY(c,[d.x,d.y]); +e=parseInt(YAHOO.util.Dom.getStyle(c,"left"),10);b=parseInt(YAHOO.util.Dom.getStyle(c,"top"),10);this.deltaSetXY=[e-d.x,b-d.y]}this.cachePosition(d.x,d.y);var a=this;setTimeout(function(){a.autoScroll.call(a,d.x,d.y,c.offsetHeight,c.offsetWidth)},0)},cachePosition:function(c,e){if(c){this.lastPageX=c;this.lastPageY=e}else{var b=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=b[0];this.lastPageY=b[1]}},autoScroll:function(c,e,b,d){if(this.scroll){var a=this.DDM.getClientHeight(),f=this.DDM.getClientWidth(), +g=this.DDM.getScrollTop(),h=this.DDM.getScrollLeft(),d=d+c,i=a+g-e-this.deltaY,j=f+h-c-this.deltaX,k=document.all?80:30;b+e>a&&i<40&&window.scrollTo(h,g+k);e0&&e-g<40)&&window.scrollTo(h,g-k);d>f&&j<40&&window.scrollTo(h+k,g);c0&&c-h<40)&&window.scrollTo(h-k,g)}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=this.config.scroll!==false},b4MouseDown:function(c){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))}, +b4Drag:function(c){this.setDragElPos(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))},toString:function(){return"DD "+this.id}});YAHOO.util.DDProxy=function(c,e,b){if(c){this.init(c,e,b);this.initFrame()}};YAHOO.util.DDProxy.dragElId="ygddfdiv"; +YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:!0,centerFrame:!1,createFrame:function(){var c=this,e=document.body;if(!e||!e.firstChild)setTimeout(function(){c.createFrame()},50);else{var b=this.getDragEl(),d=YAHOO.util.Dom;if(!b){b=document.createElement("div");b.id=this.dragElId;var a=b.style;a.position="absolute";a.visibility="hidden";a.cursor="move";a.border="2px solid #aaa";a.zIndex=999;a.height="25px";a.width="25px";a=document.createElement("div");d.setStyle(a,"height","100%");d.setStyle(a, +"width","100%");d.setStyle(a,"background-color","#ccc");d.setStyle(a,"opacity","0");b.appendChild(a);e.insertBefore(b,e.firstChild)}}},initFrame:function(){this.createFrame()},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=this.config.resizeFrame!==false;this.centerFrame=this.config.centerFrame;this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId)},showFrame:function(c,e){this.getEl();var b=this.getDragEl(),d=b.style;this._resizeProxy(); +this.centerFrame&&this.setDelta(Math.round(parseInt(d.width,10)/2),Math.round(parseInt(d.height,10)/2));this.setDragElPos(c,e);YAHOO.util.Dom.setStyle(b,"visibility","visible")},_resizeProxy:function(){if(this.resizeFrame){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl(),d=parseInt(c.getStyle(b,"borderTopWidth"),10),a=parseInt(c.getStyle(b,"borderRightWidth"),10),f=parseInt(c.getStyle(b,"borderBottomWidth"),10),g=parseInt(c.getStyle(b,"borderLeftWidth"),10);isNaN(d)&&(d=0);isNaN(a)&&(a=0);isNaN(f)&& +(f=0);isNaN(g)&&(g=0);a=Math.max(0,e.offsetWidth-a-g);e=Math.max(0,e.offsetHeight-d-f);c.setStyle(b,"width",a+"px");c.setStyle(b,"height",e+"px")}},b4MouseDown:function(c){this.setStartPosition();var e=YAHOO.util.Event.getPageX(c),c=YAHOO.util.Event.getPageY(c);this.autoOffset(e,c)},b4StartDrag:function(c,e){this.showFrame(c,e)},b4EndDrag:function(){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden")},endDrag:function(){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl();c.setStyle(b, +"visibility","");c.setStyle(e,"visibility","hidden");YAHOO.util.DDM.moveToEl(e,b);c.setStyle(b,"visibility","hidden");c.setStyle(e,"visibility","")},toString:function(){return"DDProxy "+this.id}});YAHOO.util.DDTarget=function(c,e,b){c&&this.initTarget(c,e,b)};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return"DDTarget "+this.id}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.7.0",build:"1796"}); +(function(){function c(a,b,d,e){c.ANIM_AVAIL=!YAHOO.lang.isUndefined(YAHOO.util.Anim);if(a){this.init(a,b,true);this.initSlider(e);this.initThumb(d)}}var e=YAHOO.util.Dom.getXY,b=YAHOO.util.Event,d=Array.prototype.slice;YAHOO.lang.augmentObject(c,{getHorizSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,d,e,0,0,i),"horiz")},getVertSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,0,0,d,e,i),"vert")},getSliderRegion:function(a,b,d,e,i,j,k){return new c(a, +a,new YAHOO.widget.SliderThumb(b,a,d,e,i,j,k),"region")},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(c,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(a){this.type=a;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=c.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration= +0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0]},initThumb:function(a){var b=this;this.thumb=a;a.cacheBetweenDrags=true;if(a._isHoriz&&a.xTicks&&a.xTicks.length)this.tickPause=Math.round(360/a.xTicks.length);else if(a.yTicks&&a.yTicks.length)this.tickPause=Math.round(360/a.yTicks.length);a.onAvailable=function(){return b.setStartSliderState()};a.onMouseDown=function(){b._mouseDown=true;return b.focus()};a.startDrag=function(){b._slideStart()}; +a.onDrag=function(){b.fireEvents(true)};a.onMouseUp=function(){b.thumbMouseUp()}},onAvailable:function(){this._bindKeyEvents()},_bindKeyEvents:function(){b.on(this.id,"keydown",this.handleKeyDown,this,true);b.on(this.id,"keypress",this.handleKeyPress,this,true)},handleKeyPress:function(a){if(this.enableKeys)switch(b.getCharCode(a)){case 37:case 38:case 39:case 40:case 36:case 35:b.preventDefault(a)}},handleKeyDown:function(a){if(this.enableKeys){var d=b.getCharCode(a),e=this.thumb,h=this.getXValue(), +i=this.getYValue(),j=true;switch(d){case 37:h=h-this.keyIncrement;break;case 38:i=i-this.keyIncrement;break;case 39:h=h+this.keyIncrement;break;case 40:i=i+this.keyIncrement;break;case 36:h=e.leftConstraint;i=e.topConstraint;break;case 35:h=e.rightConstraint;i=e.bottomConstraint;break;default:j=false}if(j){e._isRegion?this._setRegionValue(c.SOURCE_KEY_EVENT,h,i,true):this._setValue(c.SOURCE_KEY_EVENT,e._isHoriz?h:i,true);b.stopEvent(a)}}},setStartSliderState:function(){this.setThumbCenterPoint(); +this.baselinePos=e(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion)if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null}else this.setRegionValue(0,0,true,true,true);else if(this.deferredSetValue){this._setValue.apply(this,this.deferredSetValue);this.deferredSetValue=null}else this.setValue(0,true,true,true)},setThumbCenterPoint:function(){var a=this.thumb.getEl(); +if(a)this.thumbCenterPoint={x:parseInt(a.offsetWidth/2,10),y:parseInt(a.offsetHeight/2,10)}},lock:function(){this.thumb.lock();this.locked=true},unlock:function(){this.thumb.unlock();this.locked=false},thumbMouseUp:function(){this._mouseDown=false;!this.isLocked()&&!this.moveComplete&&this.endMove()},onMouseUp:function(){this._mouseDown=false;this.backgroundEnabled&&(!this.isLocked()&&!this.moveComplete)&&this.endMove()},getThumb:function(){return this.thumb},focus:function(){this.valueChangeSource= +c.SOURCE_UI_EVENT;var a=this.getEl();if(a.focus)try{a.focus()}catch(b){}this.verifyOffset();return!this.isLocked()},onChange:function(){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue()},getXValue:function(){return this.thumb.getXValue()},getYValue:function(){return this.thumb.getYValue()},setValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setValue.apply(this,a)},_setValue:function(a,b,d,e,i){var j=this.thumb,k; +if(!j.available){this.deferredSetValue=arguments;return false}if(this.isLocked()&&!e||isNaN(b)||j._isRegion)return false;this._silent=i;this.valueChangeSource=a||c.SOURCE_SET_VALUE;j.lastOffset=[b,b];this.verifyOffset(true);this._slideStart();if(j._isHoriz){k=j.initPageX+b+this.thumbCenterPoint.x;this.moveThumb(k,j.initPageY,d)}else{k=j.initPageY+b+this.thumbCenterPoint.y;this.moveThumb(j.initPageX,k,d)}return true},setRegionValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setRegionValue.apply(this, +a)},_setRegionValue:function(a,b,d,e,i,j){var k=this.thumb;if(!k.available){this.deferredSetRegionValue=arguments;return false}if(this.isLocked()&&!i||isNaN(b)||!k._isRegion)return false;this._silent=j;this.valueChangeSource=a||c.SOURCE_SET_VALUE;k.lastOffset=[b,d];this.verifyOffset(true);this._slideStart();this.moveThumb(k.initPageX+b+this.thumbCenterPoint.x,k.initPageY+d+this.thumbCenterPoint.y,e);return true},verifyOffset:function(){var a=e(this.getEl()),b=this.thumb;(!this.thumbCenterPoint||!this.thumbCenterPoint.x)&& +this.setThumbCenterPoint();if(a&&(a[0]!=this.baselinePos[0]||a[1]!=this.baselinePos[1])){this.setInitPosition();this.baselinePos=a;b.initPageX=this.initPageX+b.startOffset[0];b.initPageY=this.initPageY+b.startOffset[1];b.deltaSetXY=null;this.resetThumbConstraints();return false}return true},moveThumb:function(a,b,d,h){var i=this.thumb,j=this,k,l;if(i.available){i.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);l=i.getTargetCoord(a,b);k=[Math.round(l.x),Math.round(l.y)];if(this.animate&& +i._graduated&&!d){this.lock();this.curCoord=e(this.thumb.getEl());this.curCoord=[Math.round(this.curCoord[0]),Math.round(this.curCoord[1])];setTimeout(function(){j.moveOneTick(k)},this.tickPause)}else if(this.animate&&c.ANIM_AVAIL&&!d){this.lock();a=new YAHOO.util.Motion(i.id,{points:{to:k}},this.animationDuration,YAHOO.util.Easing.easeOut);a.onComplete.subscribe(function(){j.unlock();j._mouseDown||j.endMove()});a.animate()}else{i.setDragElPos(a,b);!h&&!this._mouseDown&&this.endMove()}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart(); +this.fireEvent("slideStart")}this._sliding=true}},_slideEnd:function(){if(this._sliding&&this.moveComplete){var a=this._silent;this.moveComplete=this._silent=this._sliding=false;if(!a){this.onSlideEnd();this.fireEvent("slideEnd")}}},moveOneTick:function(a){var b=this.thumb,d=this,c=null,e;if(b._isRegion){c=this._getNextX(this.curCoord,a);e=c!==null?c[0]:this.curCoord[0];c=this._getNextY(this.curCoord,a);c=c!==null?c[1]:this.curCoord[1];c=e!==this.curCoord[0]||c!==this.curCoord[1]?[e,c]:null}else c= +b._isHoriz?this._getNextX(this.curCoord,a):this._getNextY(this.curCoord,a);if(c){this.curCoord=c;this.thumb.alignElWithMouse(b.getEl(),c[0]+this.thumbCenterPoint.x,c[1]+this.thumbCenterPoint.y);if(c[0]==a[0]&&c[1]==a[1]){this.unlock();this._mouseDown||this.endMove()}else setTimeout(function(){d.moveOneTick(a)},this.tickPause)}else{this.unlock();this._mouseDown||this.endMove()}},_getNextX:function(a,b){var d=this.thumb,c;c=[];c=null;if(a[0]>b[0]){c=d.tickSize-this.thumbCenterPoint.x;c=d.getTargetCoord(a[0]- +c,a[1]);c=[c.x,c.y]}else if(a[0]b[1]){c=d.tickSize-this.thumbCenterPoint.y;c=d.getTargetCoord(a[0],a[1]-c);c=[c.x,c.y]}else if(a[1]1)this._graduated=true;this._isHoriz=c||e;this._isVert=b||d;this._isRegion=this._isHoriz&&this._isVert},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); +this.tickSize=0;this._graduated=false},getValue:function(){return this._isHoriz?this.getXValue():this.getYValue()},getXValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[0])){this.lastOffset=c;return c[0]-this.startOffset[0]}return this.lastOffset[0]-this.startOffset[0]},getYValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[1])){this.lastOffset=c;return c[1]-this.startOffset[1]}return this.lastOffset[1]- +this.startOffset[1]},toString:function(){return"SliderThumb "+this.id},onChange:function(){}}); +(function(){function c(b,a,c,e){var h=this,i=false,j=false,k,l;this.minSlider=b;this.maxSlider=a;this.activeSlider=b;this.isHoriz=b.thumb._isHoriz;k=this.minSlider.thumb.onMouseDown;l=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){h.activeSlider=h.minSlider;k.apply(this,arguments)};this.maxSlider.thumb.onMouseDown=function(){h.activeSlider=h.maxSlider;l.apply(this,arguments)};this.minSlider.thumb.onAvailable=function(){b.setStartSliderState();i=true;j&&h.fireEvent("ready", +h)};this.maxSlider.thumb.onAvailable=function(){a.setStartSliderState();j=true;i&&h.fireEvent("ready",h)};b.onMouseDown=a.onMouseDown=function(a){return this.backgroundEnabled&&h._handleMouseDown(a)};b.onDrag=a.onDrag=function(a){h._handleDrag(a)};b.onMouseUp=a.onMouseUp=function(a){h._handleMouseUp(a)};b._bindKeyEvents=function(){h._bindKeyEvents(this)};a._bindKeyEvents=function(){};b.subscribe("change",this._handleMinChange,b,this);b.subscribe("slideStart",this._handleSlideStart,b,this);b.subscribe("slideEnd", +this._handleSlideEnd,b,this);a.subscribe("change",this._handleMaxChange,a,this);a.subscribe("slideStart",this._handleSlideStart,a,this);a.subscribe("slideEnd",this._handleSlideEnd,a,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);e=YAHOO.lang.isArray(e)?e:[0,c];e[0]=Math.min(Math.max(parseInt(e[0],10)|0,0),c);e[1]=Math.max(Math.min(parseInt(e[1],10)|0,c),0);e[0]>e[1]&&e.splice(0,2,e[1],e[0]);this.minVal=e[0]; +this.maxVal=e[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true)}var e=YAHOO.util.Event,b=YAHOO.widget;c.prototype={minVal:-1,maxVal:-1,minRange:0,_handleSlideStart:function(b,a){this.fireEvent("slideStart",a)},_handleSlideEnd:function(b,a){this.fireEvent("slideEnd",a)},_handleDrag:function(d){b.Slider.prototype.onDrag.call(this.activeSlider,d)},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue()},_handleMaxChange:function(){this.activeSlider= +this.maxSlider;this.updateValue()},_bindKeyEvents:function(b){e.on(b.id,"keydown",this._handleKeyDown,this,true);e.on(b.id,"keypress",this._handleKeyPress,this,true)},_handleKeyDown:function(b){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments)},_handleKeyPress:function(b){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments)},setValues:function(b,a,c,e,h){var i=this.minSlider,j=this.maxSlider,k=i.thumb,l=j.thumb,m=this,n=false,o=false;if(k._isHoriz){k.setXConstraint(k.leftConstraint, +l.rightConstraint,k.tickSize);l.setXConstraint(k.leftConstraint,l.rightConstraint,l.tickSize)}else{k.setYConstraint(k.topConstraint,l.bottomConstraint,k.tickSize);l.setYConstraint(k.topConstraint,l.bottomConstraint,l.tickSize)}this._oneTimeCallback(i,"slideEnd",function(){n=true;if(o){m.updateValue(h);setTimeout(function(){m._cleanEvent(i,"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});this._oneTimeCallback(j,"slideEnd",function(){o=true;if(n){m.updateValue(h);setTimeout(function(){m._cleanEvent(i, +"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});i.setValue(b,c,e,false);j.setValue(a,c,e,false)},setMinValue:function(b,a,c,e){var h=this.minSlider,i=this;this.activeSlider=h;i=this;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")},0)});h.setValue(b,a,c)},setMaxValue:function(b,a,c,e){var h=this.maxSlider,i=this;this.activeSlider=h;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")}, +0)});h.setValue(b,a,c)},updateValue:function(b){var a=this.minSlider.getValue(),c=this.maxSlider.getValue(),e=false,h,i,j,k;if(a!=this.minVal||c!=this.maxVal){e=true;h=this.minSlider.thumb;i=this.maxSlider.thumb;j=this.isHoriz?"x":"y";k=this.minSlider.thumbCenterPoint[j]+this.maxSlider.thumbCenterPoint[j];j=Math.max(c-k-this.minRange,0);k=Math.min(-a-k-this.minRange,0);if(this.isHoriz){j=Math.min(j,i.rightConstraint);h.setXConstraint(h.leftConstraint,j,h.tickSize);i.setXConstraint(k,i.rightConstraint, +i.tickSize)}else{j=Math.min(j,i.bottomConstraint);h.setYConstraint(h.leftConstraint,j,h.tickSize);i.setYConstraint(k,i.bottomConstraint,i.tickSize)}}this.minVal=a;this.maxVal=c;e&&!b&&this.fireEvent("change",this)},selectActiveSlider:function(b){var a=this.minSlider,c=this.maxSlider,e=a.isLocked()||!a.backgroundEnabled,h=c.isLocked()||!a.backgroundEnabled,i=YAHOO.util.Event;if(e||h)this.activeSlider=e?c:a;else{b=this.isHoriz?i.getPageX(b)-a.thumb.initPageX-a.thumbCenterPoint.x:i.getPageY(b)-a.thumb.initPageY- +a.thumbCenterPoint.y;this.activeSlider=b*2>c.getValue()+a.getValue()?c:a}},_handleMouseDown:function(d){if(d._handled)return false;d._handled=true;this.selectActiveSlider(d);return b.Slider.prototype.onMouseDown.call(this.activeSlider,d)},_handleMouseUp:function(d){b.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments)},_oneTimeCallback:function(b,a,c){b.subscribe(a,function(){b.unsubscribe(a,arguments.callee);c.apply({},[].slice.apply(arguments))})},_cleanEvent:function(b,a){var c,e,h,i, +j,k;if(b.__yui_events&&b.events[a]){for(e=b.__yui_events.length;e>=0;--e)if(b.__yui_events[e].type===a){c=b.__yui_events[e];break}if(c){j=c.subscribers;k=[];e=i=0;for(h=j.length;e255||b<0?0:b).toString(16)).slice(-2).toUpperCase()}, +hex2dec:function(b){return parseInt(b,16)},hex2rgb:function(b){var c=this.hex2dec;return[c(b.slice(0,2)),c(b.slice(2,4)),c(b.slice(4,6))]},websafe:function(b,d,a){if(c(b))return this.websafe.apply(this,b);var f=function(a){if(e(a)){var a=Math.min(Math.max(0,a),255),b,c;for(b=0;b<256;b=b+51){c=b+51;if(a>=b&&a<=c)return a-b>25?c:b}}return a};return[f(b),f(d),f(a)]}}}(); +(function(){function c(a,b){e=e+1;b=b||{};if(arguments.length===1&&!YAHOO.lang.isString(a)&&!a.nodeName){b=a;a=b.element||null}!a&&!b.element&&(a=this._createHostElement(b));c.superclass.constructor.call(this,a,b);this.initPicker()}var e=0,b=YAHOO.util,d=YAHOO.lang,a=YAHOO.widget.Slider,f=b.Color,g=b.Dom,h=b.Event,i=d.substitute;YAHOO.extend(c,YAHOO.util.Element,{ID:{R:"yui-picker-r",R_HEX:"yui-picker-rhex",G:"yui-picker-g",G_HEX:"yui-picker-ghex",B:"yui-picker-b",B_HEX:"yui-picker-bhex",H:"yui-picker-h", +S:"yui-picker-s",V:"yui-picker-v",PICKER_BG:"yui-picker-bg",PICKER_THUMB:"yui-picker-thumb",HUE_BG:"yui-picker-hue-bg",HUE_THUMB:"yui-picker-hue-thumb",HEX:"yui-picker-hex",SWATCH:"yui-picker-swatch",WEBSAFE_SWATCH:"yui-picker-websafe-swatch",CONTROLS:"yui-picker-controls",RGB_CONTROLS:"yui-picker-rgb-controls",HSV_CONTROLS:"yui-picker-hsv-controls",HEX_CONTROLS:"yui-picker-hex-controls",HEX_SUMMARY:"yui-picker-hex-summary",CONTROLS_LABEL:"yui-picker-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered", +SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"°",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv", +RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var a=document.createElement("div");if(this.CSS.BASE)a.className=this.CSS.BASE;return a},_updateHueSlider:function(){var a= +this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.HUE),b=a-Math.round(b/360*a);b===a&&(b=0);this.hueSlider.setValue(b,this.skipAnim)},_updatePickerSlider:function(){var a=this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.SATURATION),c=this.get(this.OPT.VALUE),b=Math.round(b*a/100),c=Math.round(a-c*a/100);this.pickerSlider.setRegionValue(b,c,this.skipAnim)},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider()},setValue:function(a,b){this.set(this.OPT.RGB,a,b||false);this._updateSliders()}, +hueSlider:null,pickerSlider:null,_getH:function(){var a=this.get(this.OPT.PICKER_SIZE),a=(a-this.hueSlider.getValue())/a,a=Math.round(a*360);return a===360?0:a},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE)},_getV:function(){var a=this.get(this.OPT.PICKER_SIZE);return(a-this.pickerSlider.getYValue())/a},_updateSwatch:function(){var a=this.get(this.OPT.RGB),b=this.get(this.OPT.WEBSAFE),c=this.getElement(this.ID.SWATCH),a=a.join(","),d=this.get(this.OPT.TXT);g.setStyle(c, +"background-color","rgb("+a+")");c.title=i(d.CURRENT_COLOR,{rgb:"#"+this.get(this.OPT.HEX)});c=this.getElement(this.ID.WEBSAFE_SWATCH);a=b.join(",");g.setStyle(c,"background-color","rgb("+a+")");c.title=i(d.CLOSEST_WEBSAFE,{rgb:"#"+f.rgb2hex(b)})},_getValuesFromSliders:function(){this.set(this.OPT.RGB,f.hsv2rgb(this._getH(),this._getS(),this._getV()))},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION); +this.getElement(this.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=f.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=f.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=f.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX)}, +_onHueSliderChange:function(){var b=this._getH(),c="rgb("+f.hsv2rgb(b,1,1).join(",")+")";this.set(this.OPT.HUE,b,true);g.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",c);this.hueSlider.valueChangeSource!==a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_onPickerSliderChange:function(){var b=this._getS(),c=this._getV();this.set(this.OPT.SATURATION,Math.round(b*100),true);this.set(this.OPT.VALUE,Math.round(c*100),true);this.pickerSlider.valueChangeSource!== +a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_getCommand:function(a){var b=h.getCharCode(a);return b===38?3:b===13?6:b===40?4:b>=48&&b<=57?1:b>=97&&b<=102?2:b>=65&&b<=70?2:"8, 9, 13, 27, 37, 39".indexOf(b)>-1||a.ctrlKey||a.metaKey?5:0},_useFieldValue:function(a,b,c){a=b.value;c!==this.OPT.HEX&&(a=parseInt(a,10));a!==this.get(c)&&this.set(c,a)},_rgbFieldKeypress:function(a,b,c){var d=this._getCommand(a),e=a.shiftKey?10:1;switch(d){case 6:this._useFieldValue.apply(this, +arguments);break;case 3:this.set(c,Math.min(this.get(c)+e,255));this._updateFormFields();break;case 4:this.set(c,Math.max(this.get(c)-e,0));this._updateFormFields()}},_hexFieldKeypress:function(a,b,c){this._getCommand(a)===6&&this._useFieldValue.apply(this,arguments)},_hexOnly:function(a,b){switch(this._getCommand(a)){case 6:case 5:case 1:break;case 2:if(b!==true)break;default:h.stopEvent(a);return false}},_numbersOnly:function(a){return this._hexOnly(a,true)},getElement:function(a){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[a]]}, +_createElements:function(){var a,b,c,e,f=this.get(this.OPT.IDS),g=this.get(this.OPT.TXT),h=this.get(this.OPT.IMAGES),i=function(a,b){var c=document.createElement(a);b&&d.augmentObject(c,b,true);return c},q=function(a,b){var c=d.merge({autocomplete:"off",value:"0",size:3,maxlength:3},b);c.name=c.id;return new i(a,c)};e=this.get("element");a=new i("div",{id:f[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.PICKER_THUMB],className:"yui-picker-thumb"}); +c=new i("img",{src:h.PICKER_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"});c=new i("img",{src:h.HUE_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.CONTROLS],className:"yui-picker-controls"});e.appendChild(a);e=a;a=new i("div",{className:"hd"});b=new i("a",{id:f[this.ID.CONTROLS_LABEL], +href:"#"});a.appendChild(b);e.appendChild(a);a=new i("div",{className:"bd"});e.appendChild(a);e=a;a=new i("ul",{id:f[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});b=new i("li");b.appendChild(document.createTextNode(g.R+" "));c=new q("input",{id:f[this.ID.R],className:"yui-picker-r"});b.appendChild(c);a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.G+" "));c=new q("input",{id:f[this.ID.G],className:"yui-picker-g"});b.appendChild(c);a.appendChild(b);b=new i("li"); +b.appendChild(document.createTextNode(g.B+" "));c=new q("input",{id:f[this.ID.B],className:"yui-picker-b"});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls"});b=new i("li");b.appendChild(document.createTextNode(g.H+" "));c=new q("input",{id:f[this.ID.H],className:"yui-picker-h"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.DEG));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.S+" ")); +c=new q("input",{id:f[this.ID.S],className:"yui-picker-s"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.V+" "));c=new q("input",{id:f[this.ID.V],className:"yui-picker-v"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});b=new i("li",{id:f[this.ID.R_HEX]});a.appendChild(b); +b=new i("li",{id:f[this.ID.G_HEX]});a.appendChild(b);b=new i("li",{id:f[this.ID.B_HEX]});a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});a.appendChild(document.createTextNode(g.HEX+" "));b=new q("input",{id:f[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});a.appendChild(b);e.appendChild(a);e=this.get("element");a=new i("div",{id:f[this.ID.SWATCH],className:"yui-picker-swatch"});e.appendChild(a);a=new i("div",{id:f[this.ID.WEBSAFE_SWATCH], +className:"yui-picker-websafe-swatch"});e.appendChild(a)},_attachRGBHSV:function(a,b){h.on(this.getElement(a),"keydown",function(a,c){c._rgbFieldKeypress(a,this,b)},this);h.on(this.getElement(a),"keypress",this._numbersOnly,this,true);h.on(this.getElement(a),"blur",function(a,c){c._useFieldValue(a,this,b)},this)},_updateRGB:function(){this.set(this.OPT.RGB,[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)]);this._updateSliders()},_initElements:function(){var a=this.OPT,b=this.get(a.IDS), +a=this.get(a.ELEMENTS),c,e,f;for(c in this.ID)d.hasOwnProperty(this.ID,c)&&(b[this.ID[c]]=b[c]);(e=g.get(b[this.ID.PICKER_BG]))||this._createElements();for(c in b)if(d.hasOwnProperty(b,c)){e=g.get(b[c]);f=g.generateId(e);b[c]=f;b[b[c]]=f;a[f]=e}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true)},_initSliders:function(){var b=this.ID,c=this.get(this.OPT.PICKER_SIZE);this.hueSlider=a.getVertSlider(this.getElement(b.HUE_BG),this.getElement(b.HUE_THUMB),0,c);this.pickerSlider= +a.getSliderRegion(this.getElement(b.PICKER_BG),this.getElement(b.PICKER_THUMB),0,c,0,c);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE))},_bindUI:function(){var a=this.ID,b=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);h.on(this.getElement(a.WEBSAFE_SWATCH),"click",function(){this.setValue(this.get(b.WEBSAFE))},this,true);h.on(this.getElement(a.CONTROLS_LABEL),"click",function(a){this.set(b.SHOW_CONTROLS, +!this.get(b.SHOW_CONTROLS));h.preventDefault(a)},this,true);this._attachRGBHSV(a.R,b.RED);this._attachRGBHSV(a.G,b.GREEN);this._attachRGBHSV(a.B,b.BLUE);this._attachRGBHSV(a.H,b.HUE);this._attachRGBHSV(a.S,b.SATURATION);this._attachRGBHSV(a.V,b.VALUE);h.on(this.getElement(a.HEX),"keydown",function(a,c){c._hexFieldKeypress(a,this,b.HEX)},this);h.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);h.on(this.getElement(this.ID.HEX),"blur",function(a,c){c._useFieldValue(a,this,b.HEX)}, +this)},syncUI:function(a){this.skipAnim=a;this._updateRGB();this.skipAnim=false},_updateRGBFromHSV:function(){var a=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100];this.set(this.OPT.RGB,f.hsv2rgb(a));this._updateSliders()},_updateHex:function(){var a=this.get(this.OPT.HEX),b=a.length,c;if(b===3){a=a.split("");for(c=0;c1)for(h in b)d.hasOwnProperty(b,h)&&(b[h]=b[h]+e);this.setAttributeConfig(this.OPT.IDS,{value:b,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:a.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:a.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:d.isBoolean(a.showcontrols)?a.showcontrols:true, +method:function(a){this._hideShowEl(g.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0],a);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=a?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:d.isBoolean(a.showrgbcontrols)?a.showrgbcontrols:true,method:function(a){this._hideShowEl(this.ID.RGB_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:d.isBoolean(a.showhsvcontrols)? +a.showhsvcontrols:false,method:function(a){this._hideShowEl(this.ID.HSV_CONTROLS,a);a&&this.get(this.OPT.SHOW_HEX_SUMMARY)&&this.set(this.OPT.SHOW_HEX_SUMMARY,false)}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:d.isBoolean(a.showhexcontrols)?a.showhexcontrols:false,method:function(a){this._hideShowEl(this.ID.HEX_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:d.isBoolean(a.showwebsafe)?a.showwebsafe:true,method:function(a){this._hideShowEl(this.ID.WEBSAFE_SWATCH, +a)}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:d.isBoolean(a.showhexsummary)?a.showhexsummary:true,method:function(a){this._hideShowEl(this.ID.HEX_SUMMARY,a);a&&this.get(this.OPT.SHOW_HSV_CONTROLS)&&this.set(this.OPT.SHOW_HSV_CONTROLS,false)}});this.setAttributeConfig(this.OPT.ANIMATE,{value:d.isBoolean(a.animate)?a.animate:true,method:function(a){if(this.pickerSlider){this.pickerSlider.animate=a;this.hueSlider.animate=a}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this, +true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements()}});YAHOO.widget.ColorPicker=c})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.7.0",build:"1796"}); +(function(){var c=YAHOO.util,e=function(b,c,a,e){this.init(b,c,a,e)};e.NAME="Anim";e.prototype={toString:function(){var b=this.getEl()||{};return this.constructor.NAME+": "+(b.id||b.tagName)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(b,c,a){return this.method(this.currentFrame,c,a-c,this.totalFrames)},setAttribute:function(b, +d,a){var e=this.getEl();this.patterns.noNegatives.test(b)&&(d=d>0?d:0);"style"in e?c.Dom.setStyle(e,b,d+a):b in e&&(e[b]=d)},getAttribute:function(b){var d=this.getEl(),a=c.Dom.getStyle(d,b);if(a!=="auto"&&!this.patterns.offsetUnit.test(a))return parseFloat(a);var e=this.patterns.offsetAttribute.exec(b)||[],g=!!e[3],h=!!e[2];"style"in d?a=h||c.Dom.getStyle(d,"position")=="absolute"&&g?d["offset"+e[0].charAt(0).toUpperCase()+e[0].substr(1)]:0:b in d&&(a=d[b]);return a},getDefaultUnit:function(b){return this.patterns.defaultUnit.test(b)? +"px":""},setRuntimeAttribute:function(b){var c,a,e=this.attributes;this.runtimeAttributes[b]={};var g=function(a){return typeof a!=="undefined"};if(!g(e[b].to)&&!g(e[b].by))return false;c=g(e[b].from)?e[b].from:this.getAttribute(b);if(g(e[b].to))a=e[b].to;else if(g(e[b].by))if(c.constructor==Array){a=[];for(var h=0,i=c.length;h0&&isFinite(l)){g.currentFrame+l>=h&&(l=h-(i+1));g.currentFrame= +g.currentFrame+l}}c._onTween.fire()}else YAHOO.util.AnimMgr.stop(c,b)}}};YAHOO.util.Bezier=new function(){this.getPosition=function(c,e){for(var b=c.length,d=[],a=0;a0&&!(j[0]instanceof Array))j=[j];else{var n=[];l=0;for(m=j.length;l0&&(this.runtimeAttributes[c]=this.runtimeAttributes[c].concat(j)); +this.runtimeAttributes[c][this.runtimeAttributes[c].length]=k}else b.setRuntimeAttribute.call(this,c)};var a=function(a,b){var c=e.Dom.getXY(this.getEl());return a=[a[0]-c[0]+b[0],a[1]-c[1]+b[1]]},f=function(a){return typeof a!=="undefined"};e.Motion=c})(); +(function(){var c=function(a,b,d,e){a&&c.superclass.constructor.call(this,a,b,d,e)};c.NAME="Scroll";var e=YAHOO.util;YAHOO.extend(c,e.ColorAnim);var b=c.superclass,d=c.prototype;d.doMethod=function(a,c,d){var e=null;return e=a=="scroll"?[this.method(this.currentFrame,c[0],d[0]-c[0],this.totalFrames),this.method(this.currentFrame,c[1],d[1]-c[1],this.totalFrames)]:b.doMethod.call(this,a,c,d)};d.getAttribute=function(a){var c=null,c=this.getEl();return c=a=="scroll"?[c.scrollLeft,c.scrollTop]:b.getAttribute.call(this, +a)};d.setAttribute=function(a,c,d){var e=this.getEl();if(a=="scroll"){e.scrollLeft=c[0];e.scrollTop=c[1]}else b.setAttribute.call(this,a,c,d)};e.Scroll=c})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/images/handle.png b/platforms/browser/www/lib/ckeditor/plugins/widget/images/handle.png new file mode 100644 index 00000000..ba8cda5b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/plugins/widget/images/handle.png differ diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ar.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ar.js new file mode 100644 index 00000000..02901ca4 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ar",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ca.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ca.js new file mode 100644 index 00000000..bcee2d0a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ca",{move:"Clicar i arrossegar per moure"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/cs.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/cs.js new file mode 100644 index 00000000..2f2ab938 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cs",{move:"Klepněte a táhněte pro přesunutí"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/cy.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/cy.js new file mode 100644 index 00000000..19bc34b0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cy",{move:"Clcio a llusgo i symud"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/de.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/de.js new file mode 100644 index 00000000..0de3212c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","de",{move:"Zum verschieben anwählen und ziehen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/el.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/el.js new file mode 100644 index 00000000..9200420f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","el",{move:"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/en-gb.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/en-gb.js new file mode 100644 index 00000000..af267ba8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en-gb",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/en.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/en.js new file mode 100644 index 00000000..5b1d70a7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/eo.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/eo.js new file mode 100644 index 00000000..eb556143 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","eo",{move:"klaki kaj treni por movi"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/es.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/es.js new file mode 100644 index 00000000..d59696db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","es",{move:"Dar clic y arrastrar para mover"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fa.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fa.js new file mode 100644 index 00000000..cd7b4e08 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fa",{move:"کلیک و کشیدن برای جابجایی"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fi.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fi.js new file mode 100644 index 00000000..cd2fccef --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fi",{move:"Siirrä klikkaamalla ja raahaamalla"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fr.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fr.js new file mode 100644 index 00000000..4a07790c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fr",{move:"Cliquer et glisser pour déplacer"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/gl.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/gl.js new file mode 100644 index 00000000..4213bd7a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","gl",{move:"Prema e arrastre para mover"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/he.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/he.js new file mode 100644 index 00000000..aa9754ae --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","he",{move:"לחץ וגרור להזזה"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/hr.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/hr.js new file mode 100644 index 00000000..c58da39d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hr",{move:"Klikni i povuci da pomakneš"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/hu.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/hu.js new file mode 100644 index 00000000..03305f3b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hu",{move:"Kattints és húzd a mozgatáshoz"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/it.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/it.js new file mode 100644 index 00000000..d1a714e3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","it",{move:"Fare clic e trascinare per spostare"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ja.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ja.js new file mode 100644 index 00000000..33cdb9ef --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ja",{move:"ドラッグして移動"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/km.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/km.js new file mode 100644 index 00000000..bc46a96e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","km",{move:"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ko.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ko.js new file mode 100644 index 00000000..4bf733aa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ko",{move:"움직이려면 클릭 후 드래그 하세요"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/nb.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/nb.js new file mode 100644 index 00000000..b5bfd46d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nb",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/nl.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/nl.js new file mode 100644 index 00000000..a5bfea95 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nl",{move:"Klik en sleep om te verplaatsen"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/no.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/no.js new file mode 100644 index 00000000..92db9080 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","no",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pl.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pl.js new file mode 100644 index 00000000..a51890f2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pl",{move:"Kliknij i przeciągnij, by przenieść."}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pt-br.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pt-br.js new file mode 100644 index 00000000..e6387da3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt-br",{move:"Click e arraste para mover"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pt.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pt.js new file mode 100644 index 00000000..0a7f1171 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt",{move:"Clique e arraste para mover"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ru.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ru.js new file mode 100644 index 00000000..e3d4e3e6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ru",{move:"Нажмите и перетащите"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sk.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sk.js new file mode 100644 index 00000000..d26dab0c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sk",{move:"Kliknite a potiahnite pre presunutie"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sl.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sl.js new file mode 100644 index 00000000..f99d4e74 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sl",{move:"Kliknite in povlecite, da premaknete"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sv.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sv.js new file mode 100644 index 00000000..33f6f126 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sv",{move:"Klicka och drag för att flytta"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/tr.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/tr.js new file mode 100644 index 00000000..5f2ca8f1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tr",{move:"Taşımak için, tıklayın ve sürükleyin"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/tt.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/tt.js new file mode 100644 index 00000000..1b158207 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tt",{move:"Күчереп куер өчен басып шудырыгыз"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/uk.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/uk.js new file mode 100644 index 00000000..a07313c8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","uk",{move:"Клікніть і потягніть для переміщення"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/vi.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/vi.js new file mode 100644 index 00000000..785a5323 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","vi",{move:"Nhấp chuột và kéo để di chuyển"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/zh-cn.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/zh-cn.js new file mode 100644 index 00000000..690512a2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh-cn",{move:"点击并拖拽以移动"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/lang/zh.js b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/zh.js new file mode 100644 index 00000000..e683c06c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh",{move:"拖曳以移動"}); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/widget/plugin.js b/platforms/browser/www/lib/ckeditor/plugins/widget/plugin.js new file mode 100644 index 00000000..a9cc00fb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/widget/plugin.js @@ -0,0 +1,58 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function o(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};I(this);J(this);this.on("checkWidgets",K);this.editor.on("contentDomInvalidated",this.checkWidgets,this);L(this);M(this);N(this);O(this);P(this)}function k(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({}, +"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:k.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);Q(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes", +this.getClasses());this.dataReady=!0;s(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function q(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function R(a,b){a.addCommand(b.name, +{exec:function(){function c(){a.widgets.finalizeCreation(g)}var d=a.widgets.focused;if(d&&d.name==b.name)d.edit();else if(b.insert)b.insert();else if(b.template){var d="function"==typeof b.defaults?b.defaults():b.defaults,d=CKEDITOR.dom.element.createFromHtml(b.template.output(d)),e,f=a.widgets.wrapElement(d,b.name),g=new CKEDITOR.dom.documentFragment(f.getDocument());g.append(f);(e=a.widgets.initOn(d,b))?(d=e.once("edit",function(b){if(b.data.dialog)e.once("dialog",function(b){var b=b.data,d,f;d= +b.once("ok",c,null,null,20);f=b.once("cancel",function(){a.widgets.destroy(e,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else c()},null,null,999),e.edit(),d.removeListener()):c()}},refresh:function(a,b){this.setState(l(a.editable(),b.blockLimit)?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF)},context:"div",allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function t(a,b){a.focused= +null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function K(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e;if(b){for(d in c)b.contains(c[d].wrapper)||this.destroy(c[d],!0);if(a&&a.initOnlyNew)b=this.initOnAll();else{var f=b.find(".cke_widget_wrapper"),b=[];d=0;for(c=f.count();dCKEDITOR.env.version||d.isInline()?d:b.document;d.attachListener(e, +"drop",function(c){var d=c.data.$.dataTransfer.getData("text"),e,h;if(d){try{e=JSON.parse(d)}catch(j){return}if("cke-widget"==e.type&&(c.data.preventDefault(),e.editor==b.name&&(h=a.instances[e.id]))){a:if(e=c.data.$,d=b.createRange(),c.data.testRange)d=c.data.testRange;else if(document.caretRangeFromPoint)c=b.document.$.caretRangeFromPoint(e.clientX,e.clientY),d.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),d.collapse(!0);else if(e.rangeParent)d.setStart(CKEDITOR.dom.node(e.rangeParent), +e.rangeOffset),d.collapse(!0);else if(document.body.createTextRange)c=b.document.getBody().$.createTextRange(),c.moveToPoint(e.clientX,e.clientY),e="cke-temp-"+(new Date).getTime(),c.pasteHTML(''),c=b.document.getById(e),d.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START),c.remove();else{d=null;break a}d&&(CKEDITOR.env.gecko?setTimeout(A,0,b,h,d):A(b,h,d))}}});CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(a){if(!a.is(CKEDITOR.dtd.$listItem)&&a.is(CKEDITOR.dtd.$block)){for(;a;){if(w(a))return; +a=a.getParent()}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function M(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var b=c.data.getTarget();if(!b.type)return!1;e=a.getByElement(b);f= +0;e&&(e.inline&&b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")?f=1:l(e.wrapper,b)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){e&&f&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){e&&setTimeout(function(){e.focus();e=null})})});b.on("doubleclick",function(c){var b=a.getByElement(c.data.element);if(b&&!l(b.wrapper,c.data.element))return b.fire("doubleclick",{element:c.data.element})}, +null,null,1)}function N(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e}, +null,null,1)}function P(a){function b(c){a.focused&&B(a.focused,"cut"==c.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function L(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=l(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;if(e){if(e!==d||!e.focusedEditable.equals(c))n(a, +e,null),d&&c&&n(a,d,c)}else d&&c&&n(a,d,c)});b.on("dataReady",function(){C(a).commit()});b.on("blur",function(){var c;(c=a.focused)&&t(a,c);(c=a.widgetHoldingFocusedEditable)&&n(a,c,null)})}function J(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(c){var b=c.attributes,d;if("data-cke-widget-id"in b){if(b=a.instances[b["data-cke-widget-id"]])d=c.getFirst(v),f.push({wrapper:c,element:d, +widget:b,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in b)return f[f.length-1].editables[b["data-cke-widget-editable"]]=c,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var a=c[a.data.downcastingSessionId],b,f,g,i,h,j;b=a.shift();){f=b.widget;g=b.element;i=f._.downcastFn&&f._.downcastFn.call(f,g);for(j in b.editables)h=b.editables[j],delete h.attributes.contenteditable, +h.setHtml(f.editables[j].getData());i||(i=g);b.wrapper.replaceWith(i)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function I(a){function b(){c.fire("lockSnapshot");a.checkWidgets({initOnlyNew:!0,focusInited:d});c.fire("unlockSnapshot")}var c=a.editor,d,e;c.on("toHtml",function(c){var b=T(a),e;for(c.data.dataValue.forEach(b.iterator,CKEDITOR.NODE_ELEMENT,!0);e=b.toBeWrapped.pop();){var h=e[0],j=h.parent;j.type==CKEDITOR.NODE_ELEMENT&&j.attributes["data-cke-widget-wrapper"]&& +j.replaceWith(h);a.wrapElement(e[0],e[1])}d=1==c.data.dataValue.children.length&&c.data.dataValue.children[0].type==CKEDITOR.NODE_ELEMENT&&c.data.dataValue.children[0].attributes["data-cke-widget-wrapper"]},null,null,8);c.on("dataReady",function(){if(e)for(var b=a,d=c.editable().find(".cke_widget_wrapper"),i,h,j=0,k=d.count();jCKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,i;a.editor.fire("lockSnapshot"); +for(f&&(g=a.focused)&&t(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(i=g.editor.checkDirty(),g.setSelected(!1),!i&&g.editor.resetDirty());f&&e&&(i=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!i&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function D(a,b,c){var d=0,b=E(b),e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f], +d=1);d&&a.setData("classes",e)}}function F(a){a.cancel()}function B(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),g=d.createElement(e),e=CKEDITOR.env.ie&&9>CKEDITOR.env.version;g.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?"left":"right","-5000px");f.setHtml(''+ +a.wrapper.getOuterHtml()+'');c.fire("saveSnapshot");c.fire("lockSnapshot");g.append(f);c.editable().append(g);var i=c.on("selectionChange",F,null,null,0),h=a.repository.on("checkSelection",F,null,null,0);if(e)var j=d.getDocumentElement().$,k=j.scrollTop;d=c.createRange();d.selectNodeContents(f);d.select();e&&(j.scrollTop=k);setTimeout(function(){b||a.focus();g.remove();i.removeListener();h.removeListener();c.fire("unlockSnapshot");if(b){a.repository.del(a);c.fire("saveSnapshot")}}, +100)}}function E(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function G(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function H(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function Y(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)(!a|| +!a[d])&&this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function Z(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(U),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1", +src:CKEDITOR.tools.transparentImageData,width:m,title:b.lang.widget.move,height:m}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(a.inline)d.on("dragstart",function(c){c.data.$.dataTransfer.setData("text",JSON.stringify({type:"cke-widget",editor:b.name,id:a.id}))});else d.on("mousedown",$,a);a.dragHandlerContainer=c}}function $(){function a(){var a; +for(j.reset();a=g.pop();)a.removeListener();var c=i,b=this.repository.finder;a=this.repository.liner;var d=this.editor,e=this.editor.editable();CKEDITOR.tools.isEmpty(a.visible)||(c=b.getRange(c[0]),this.focus(),d.fire("saveSnapshot"),d.fire("lockSnapshot",{dontUpdate:1}),d.getSelection().reset(),e.insertElementIntoRange(this.wrapper,c),this.focus(),d.fire("unlockSnapshot"),d.fire("saveSnapshot"));e.removeClass("cke_widget_dragging");a.hideVisible()}var b=this.repository.finder,c=this.repository.locator, +d=this.repository.liner,e=this.editor,f=e.editable(),g=[],i=[],h=b.greedySearch(),j=CKEDITOR.tools.eventsBuffer(50,function(){k=c.locate(h);i=c.sort(l,1);i.length&&(d.prepare(h,k),d.placeLine(i[0]),d.cleanup())}),k,l;f.addClass("cke_widget_dragging");g.push(f.on("mousemove",function(a){l=a.data.$.clientY;j.input()}));g.push(e.document.once("mouseup",a,this));g.push(CKEDITOR.document.once("mouseup",a,this))}function aa(a){var b,c,d=a.editables;a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b, +"string"==typeof c?{selector:c}:c)}function ba(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function ca(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function Q(a,b){da(a);ca(a);aa(a);ba(a);Z(a);Y(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart", +function(c){var b=c.data.getTarget();!l(a,b)&&(!a.inline||!(b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")))&&c.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){B(a,b==CKEDITOR.CTRL+88);return}if(b in ea||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&& +b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function da(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function s(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}var m=15;CKEDITOR.plugins.add("widget",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,ko,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"lineutils,clipboard",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover>.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:"+ +m+"px;height:0;left:-9999px;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{height:"+m+"px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:"+m+"px;height:"+m+"px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},beforeInit:function(a){a.widgets= +new o(a)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});V(a)}});o.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));R(this.editor,b);var c=b,d=c.upcast;if(d)if("string"==typeof d)for(d= +d.split(",");d.length;)this._.upcasts.push([c.upcasts[d.pop()],c.name]);else this._.upcasts.push([d,c.name]);return this.registered[a]=b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=C(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=r;b=a.next();)c.select(this.getByElement(b)); +c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,c=b.createRange(),d;if(!(d=c.moveToClosestEditablePosition(a.wrapper,!0)))d=c.moveToClosestEditablePosition(a.wrapper,!1);d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&n(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a){var b= +this.instances,c,d;for(d in b)c=b[d],this.destroy(c,a)},finalizeCreation:function(a){if((a=a.getFirst())&&r(a))this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus()},getByElement:function(){var a={div:1,span:1};return function(b,c){if(!b)return null;var d=b.is(a)&&b.data("cke-widget-id");if(!c&&!d){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(d=b.is(a)&&b.data("cke-widget-id")))}return this.instances[d]||null}}(),initOn:function(a,b,c){b? +"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new k(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){for(var a=(a||this.editor.editable()).find(".cke_widget_new"),b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(p)))&&b.push(c);return b},parseElementClasses:function(a){if(!a)return null;for(var a= +CKEDITOR.tools.trim(a).split(/\s+/),b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){d=this.registered[b||a.data("widget")];if(!d)return null;if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);b&&a.data("widget",b);e=z(d,a.getName());c=new CKEDITOR.dom.element(e? +"span":"div");c.setAttributes(x(e));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){d=this.registered[b||a.attributes["data-widget"]];if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]= +b);e=z(d,a.name);c=new CKEDITOR.htmlParser.element(e?"span":"div",x(e));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&y(d,f,c)}return c},_tests_getNestedEditable:l,_tests_createEditableFilter:u};CKEDITOR.event.implementOn(o.prototype);k.prototype={addClass:function(a){this.element.addClass(a)},applyStyle:function(a){D(this,a,1)},checkStyleActive:function(a){var a=E(a),b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1; +return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",H);c.removeListener("blur", +G);this.editor.focusManager.remove(c);b||(c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,e;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),e=a.on("ok",function(){var d,e=b.on("data", +function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);e.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();e.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this.wrapper.findOne(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)? +(c=new q(this.editor,c,{filter:u.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&c.data("cke-filter",c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",H,this),CKEDITOR.env.ie&&c.on("blur",G,this),c.setData(c.getHtml()),!0):!1},isInited:function(){return!(!this.wrapper|| +!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a)},removeStyle:function(a){D(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(s(this),this.fire("data", +c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-m};if(!c||!(b.x==c.x&&b.y==c.y))c=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+ +"px",left:b.x+"px"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b}};CKEDITOR.event.implementOn(k.prototype);q.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(), +filter:this.filter,enterMode:this.enterMode})}});var X=RegExp('^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?]*data-cke-copybin-start="1"[^>]*>.?([\\s\\S]+)]*data-cke-copybin-end="1"[^>]*>.?(?:)?(?:)?$'),ea={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}function b(a,b,e){return!e||!this.checkElement(a)?!1:(a=e.widgets.getByElement(a,!0))&&a.checkStyleActive(this)} +CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget},apply:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.applyStyle(this)},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return!(b instanceof CKEDITOR.editor)?!1:this.checkElement(a.lastElement)}, +checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return!r(a)?!1:(a=a.getFirst(p))&&a.data("widget")==this.widget},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;var a=a.widgets.registered[this.widget],b,e={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;e[a.styleableElements]={classes:b,propertiesOnly:!0};return e}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this): +null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=k;k.repository=o;k.nestedEditable=q})(); \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/plugins/wsc/LICENSE.md b/platforms/browser/www/lib/ckeditor/plugins/wsc/LICENSE.md new file mode 100644 index 00000000..6096de23 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/wsc/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html new file mode 100644 index 00000000..8e0a10df --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -0,0 +1,66 @@ + + + + + + + + +

+ diff --git a/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html new file mode 100644 index 00000000..61203e03 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git a/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css new file mode 100644 index 00000000..da2f1743 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css @@ -0,0 +1,82 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js new file mode 100644 index 00000000..443145c9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js @@ -0,0 +1,74 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function y(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString,f=a.fn||null,g=a.id||"",e=a.target||window,i=a.message||{id:g};a.message&&"[object Object]"== +b.call(a.message)&&(a.message.id||(a.message.id=g),i=a.message);a=window.JSON.stringify(i,f);e.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}, +misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){return!(0===a.offsetWidth||0==a.offsetHeight||"none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display))},hasClass:function(a,b){return!(!a.className||!a.className.match(RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(), +a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null, +text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var z=function(b){var c,d;for(d in b)c=b[d].instance.getElement().getFirst()|| +b[d].instance.getElement(),c.setText(a.LocalizationComing[d])},A=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}},j,q;a.framesetHtml=function(b){return"'};a.setIframe=function(b,c){var d;d=a.framesetHtml(c);var f=a.iframeNumber+"_"+c;b.getElement().setHtml(d); +d=document.getElementById(f);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('iframe
+ + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/api.html b/platforms/browser/www/lib/ckeditor/samples/api.html new file mode 100644 index 00000000..a957eed0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/api.html @@ -0,0 +1,207 @@ + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/appendto.html b/platforms/browser/www/lib/ckeditor/samples/appendto.html new file mode 100644 index 00000000..b8467702 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/appendto.html @@ -0,0 +1,56 @@ + + + + + + Append To Page Element Using JavaScript Code — CKEditor Sample + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace(), + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/assets/inlineall/logo.png b/platforms/browser/www/lib/ckeditor/samples/assets/inlineall/logo.png new file mode 100644 index 00000000..b4d5979e Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/samples/assets/inlineall/logo.png differ diff --git a/platforms/browser/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/platforms/browser/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css new file mode 100644 index 00000000..fa0ff379 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/platforms/browser/www/lib/ckeditor/samples/assets/posteddata.php b/platforms/browser/www/lib/ckeditor/samples/assets/posteddata.php new file mode 100644 index 00000000..6b26aae3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/assets/posteddata.php @@ -0,0 +1,59 @@ + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/assets/sample.jpg b/platforms/browser/www/lib/ckeditor/samples/assets/sample.jpg new file mode 100644 index 00000000..9498271c Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/samples/assets/sample.jpg differ diff --git a/platforms/browser/www/lib/ckeditor/samples/assets/uilanguages/languages.js b/platforms/browser/www/lib/ckeditor/samples/assets/uilanguages/languages.js new file mode 100644 index 00000000..3f7ff624 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/assets/uilanguages/languages.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese", +zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name + + + + + Data Filtering — CKEditor Sample + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/divreplace.html b/platforms/browser/www/lib/ckeditor/samples/divreplace.html new file mode 100644 index 00000000..873c8c2e --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/divreplace.html @@ -0,0 +1,141 @@ + + + + + + Replace DIV — CKEditor Sample + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/index.html b/platforms/browser/www/lib/ckeditor/samples/index.html new file mode 100644 index 00000000..5ae467f8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/index.html @@ -0,0 +1,170 @@ + + + + + + CKEditor Samples + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+ +
Create editors with jQuery
+
Creating standard and inline CKEditor instances with jQuery adapter.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ + +

Plugins

+
+
Code Snippet plugin New!
+
View and modify code using the Code Snippet plugin.
+ +
New Image plugin New!
+
Using the new Image plugin to insert captioned images and adjust their dimensions.
+ +
Mathematics plugin New!
+
Create mathematical equations in TeX and display them in visual form.
+ +
Editing source code in a dialog New!
+
Editing HTML content of both inline and classic editor instances.
+ +
AutoGrow plugin
+
Using the AutoGrow plugin in order to make the editor grow to fit the size of its content.
+ +
Output for BBCode
+
Configuring CKEditor to produce BBCode tags instead of HTML.
+ +
Developer Tools plugin
+
Using the Developer Tools plugin to display information about dialog window UI elements to allow for easier customization.
+ +
Document Properties plugin
+
Manage various page meta data with a dialog.
+ +
Magicline plugin
+
Using the Magicline plugin to access difficult focus spaces.
+ +
Placeholder plugin
+
Using the Placeholder plugin to create uneditable sections that can only be created and modified with a proper dialog window.
+ +
Shared-Space plugin
+
Having the toolbar and the bottom bar spaces shared by different editor instances.
+ +
Stylesheet Parser plugin
+
Using the Stylesheet Parser plugin to fill the Styles drop-down list based on the CSS classes available in the document stylesheet.
+ +
TableResize plugin
+
Using the TableResize plugin to enable table column resizing.
+ +
UIColor plugin
+
Using the UIColor plugin to pick up skin color.
+ +
Full page support
+
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
+
+
+
+

+ Inline Editing +

+
+
Massive inline editor creation
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ +
Replace textarea with inline editor New!
+
A form with a textarea that is replaced by an inline editor at runtime.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation
+
Navigating among editor instances with tab key.
+ + + +
Using the JavaScript API to customize dialog windows
+
Using the dialog windows API to customize dialog windows without changing the original editor code.
+ +
Replace Textarea with a "DIV-based" editor
+
Using div instead of iframe for rich editing.
+ +
Using the "Enter" key in CKEditor
+
Configuring the behavior of Enter and Shift+Enter keys.
+ +
Output for Flash
+
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+ +
Output HTML
+
Configuring CKEditor to produce legacy HTML 4 code.
+ +
Toolbar Configurations
+
Configuring CKEditor to display full or custom toolbar layout.
+ +
+
+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/inlineall.html b/platforms/browser/www/lib/ckeditor/samples/inlineall.html new file mode 100644 index 00000000..f82af1db --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/inlineall.html @@ -0,0 +1,311 @@ + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/inlinebycode.html b/platforms/browser/www/lib/ckeditor/samples/inlinebycode.html new file mode 100644 index 00000000..4e475367 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/inlinebycode.html @@ -0,0 +1,121 @@ + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/inlinetextarea.html b/platforms/browser/www/lib/ckeditor/samples/inlinetextarea.html new file mode 100644 index 00000000..fd27c0f1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/inlinetextarea.html @@ -0,0 +1,110 @@ + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea with Inline Editor +

+
+

+ You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+

This is a sample form with some fields

+

+ Title:
+

+

+ Article Body (Textarea converted to CKEditor):
+ +

+

+ +

+
+ + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/jquery.html b/platforms/browser/www/lib/ckeditor/samples/jquery.html new file mode 100644 index 00000000..380b8284 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/jquery.html @@ -0,0 +1,100 @@ + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Create Editors with jQuery +

+
+
+

+ This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

+ +
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckeditor/ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+ +

Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.

+ +
+$( document ).ready( function() {
+	$( 'textarea#editor1' ).ckeditor();
+} );
+
+
+ +

Inline Example

+ +
+

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +
+ +

Classic (iframe-based) Example

+ + + +

+ + + + + +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html b/platforms/browser/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html new file mode 100644 index 00000000..39434152 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html @@ -0,0 +1,99 @@ + + + + + + AutoGrow Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using AutoGrow Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + AutoGrow (autogrow) plugin that lets the editor window expand + and shrink depending on the amount and size of content entered in the editing area. +

+

+ In its default implementation the AutoGrow feature can expand the + CKEditor window infinitely in order to avoid introducing scrollbars to the editing area. +

+

+ It is also possible to set a maximum height for the editor window. Once CKEditor + editing area reaches the value in pixels specified in the + autoGrow_maxHeight + configuration setting, scrollbars will be added and the editor window will no longer expand. +

+

+ To add a CKEditor instance using the autogrow plugin and its + autoGrow_maxHeight attribute, insert the following JavaScript call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'autogrow',
+	autoGrow_maxHeight: 800,
+
+	// Remove the Resize plugin as it does not make sense to use it in conjunction with the AutoGrow plugin.
+	removePlugins: 'resize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. The maximum height should + be given in pixels. +

+
+
+

+ + + +

+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html b/platforms/browser/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html new file mode 100644 index 00000000..940d12c0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html @@ -0,0 +1,111 @@ + + + + + + BBCode Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » BBCode Plugin +

+
+

+ This sample shows how to configure CKEditor to output BBCode format instead of HTML. + Please note that the editor configuration was modified to reflect what is needed in a BBCode editing environment. + Smiley images, for example, were stripped to the emoticons that are commonly used in some BBCode dialects. +

+

+ Please note that currently there is no standard for the BBCode markup language, so its implementation + for different platforms (message boards, blogs etc.) can vary. This means that before using CKEditor to + output BBCode you may need to adjust the implementation to your own environment. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + a full definition: +

+
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'bbcode',
+	toolbar: [
+		[ 'Source', '-', 'Save', 'NewPage', '-', 'Undo', 'Redo' ],
+		[ 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat' ],
+		[ 'Link', 'Unlink', 'Image' ],
+		'/',
+		[ 'FontSize', 'Bold', 'Italic', 'Underline' ],
+		[ 'NumberedList', 'BulletedList', '-', 'Blockquote' ],
+		[ 'TextColor', '-', 'Smiley', 'SpecialChar', '-', 'Maximize' ]
+	],
+	... some other configurations omitted here
+});	
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html b/platforms/browser/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html new file mode 100644 index 00000000..52588cf0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html @@ -0,0 +1,233 @@ + + + + + + Code Snippet — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Code Snippet Plugin +

+ +
+

+ This editor is using the Code Snippet plugin which introduces beautiful code snippets. + By default the codesnippet plugin depends on the built-in client-side syntax highlighting + library highlight.js. +

+

+ You can adjust the appearance of code snippets using the codeSnippet_theme configuration variable + (see available themes). +

+

+ Select theme: +

+

+ The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'codesnippet',
+	codeSnippet_theme: 'monokai_sublime'
+} );
+
+ +

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + +

Inline editor

+ +
+

+ The following sample shows the Code Snippet plugin running inside + an inline CKEditor instance. The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'codesnippet'
+} );
+
+ +

+ Note: The highlight.js themes + must be loaded manually to be applied inside an inline editor instance, as the + codeSnippet_theme setting will not work in that case. + You need to include the stylesheet in the <head> section of the page, for example: +

+ +
+<head>
+	...
+	<link href="path/to/highlight.js/styles/monokai_sublime.css" rel="stylesheet">
+</head>
+
+ +
+ +
+ +

JavaScript code:

+ +
function isEmpty( object ) {
+	for ( var i in object ) {
+		if ( object.hasOwnProperty( i ) )
+			return false;
+	}
+	return true;
+}
+ +

SQL query:

+ +
SELECT cust.id, cust.name, loc.city FROM cust LEFT JOIN loc ON ( cust.loc_id = loc.id ) WHERE cust.type IN ( 1, 2 );
+ +

Unknown markup:

+ +
 ________________
+/                \
+| How about moo? |  ^__^
+\________________/  (oo)\_______
+                  \ (__)\       )\/\
+                        ||----w |
+                        ||     ||
+
+
+ +

Server-side Highlighting and Custom Highlighting Engines

+ +

+ The Code Snippet GeSHi plugin is an + extension of the Code Snippet plugin which uses a server-side highligter. +

+ +

+ It also is possible to replace the default highlighter with any library using + the Highlighter API + and the editor.plugins.codesnippet.setHighlighter() method. +

+ + + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/devtools/devtools.html b/platforms/browser/www/lib/ckeditor/samples/plugins/devtools/devtools.html new file mode 100644 index 00000000..da3552ff --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/devtools/devtools.html @@ -0,0 +1,83 @@ + + + + + + Using DevTools Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the Developer Tools Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Developer Tools (devtools) plugin that displays + information about dialog window elements, including the name of the dialog window, + tab, and UI element. Please note that the tooltip also contains a link to the + CKEditor JavaScript API + documentation for each of the selected elements. +

+

+ This plugin is aimed at developers who would like to customize their CKEditor + instances and create their own plugins. By default it is turned off; it is + usually useful to only turn it on in the development phase. Note that it works with + all CKEditor dialog windows, including the ones that were created by custom plugins. +

+

+ To add a CKEditor instance using the devtools plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'devtools'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/platforms/browser/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js new file mode 100644 index 00000000..3edd0728 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/dialog/dialog.html b/platforms/browser/www/lib/ckeditor/samples/plugins/dialog/dialog.html new file mode 100644 index 00000000..df09d25b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/dialog/dialog.html @@ -0,0 +1,187 @@ + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/divarea/divarea.html b/platforms/browser/www/lib/ckeditor/samples/plugins/divarea/divarea.html new file mode 100644 index 00000000..d2880bd2 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/divarea/divarea.html @@ -0,0 +1,61 @@ + + + + + + Replace Textarea with a "DIV-based" editor — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Replace Textarea with a "DIV-based" editor +

+
+
+

+ This editor is using a <div> element-based editing area, provided by the Divarea plugin. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'divarea'
+});
+
+ + +

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/docprops/docprops.html b/platforms/browser/www/lib/ckeditor/samples/plugins/docprops/docprops.html new file mode 100644 index 00000000..fcea6468 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/docprops/docprops.html @@ -0,0 +1,78 @@ + + + + + + Document Properties — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Document Properties Plugin +

+
+

+ This sample shows how to configure CKEditor to use the Document Properties plugin. + This plugin allows you to set the metadata of the page, including the page encoding, margins, + meta tags, or background. +

+

Note: This plugin is to be used along with the fullPage configuration.

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	extraPlugins: 'docprops',
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html b/platforms/browser/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html new file mode 100644 index 00000000..2d515012 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html @@ -0,0 +1,103 @@ + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla new file mode 100644 index 00000000..27e68ccd Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla differ diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf new file mode 100644 index 00000000..dbe17b6b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf differ diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js new file mode 100644 index 00000000..95fdf0a7 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -0,0 +1,18 @@ +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html new file mode 100644 index 00000000..f25697df --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -0,0 +1,221 @@ + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg b/platforms/browser/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg new file mode 100644 index 00000000..ca491e39 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg differ diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg b/platforms/browser/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg new file mode 100644 index 00000000..3dd6d61f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg differ diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/image2/image2.html b/platforms/browser/www/lib/ckeditor/samples/plugins/image2/image2.html new file mode 100644 index 00000000..34a5339a --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/image2/image2.html @@ -0,0 +1,65 @@ + + + + + + New Image plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » New Image plugin +

+ +
+

+ This editor is using the new Image (image2) plugin, which implements a dynamic click-and-drag resizing + and easy captioning of the images. +

+

+ To use the new plugin, extend config.extraPlugins: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'image2'
+} );
+
+
+ + + + + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/magicline/magicline.html b/platforms/browser/www/lib/ckeditor/samples/plugins/magicline/magicline.html new file mode 100644 index 00000000..800fbb3b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/magicline/magicline.html @@ -0,0 +1,206 @@ + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html b/platforms/browser/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html new file mode 100644 index 00000000..bdccc158 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html @@ -0,0 +1,82 @@ + + + + + + Mathematical Formulas — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Mathematical Formulas +

+ +
+

+ This sample shows the usage of the CKEditor mathematical plugin that introduces a MathJax widget. You can now use it to create or modify equations using TeX. +

+

+ TeX content will be automatically replaced by a widget when you put it in a <span class="math-tex"> element. You can also add new equations by using the Math toolbar button and entering TeX content in the plugin dialog window. After you click OK, a widget will be inserted into the editor content. +

+

+ The output of the editor will be plain TeX with MathJax delimiters: \( and \), as in the code below: +

+
+<span class="math-tex">\( \sqrt{1} + (1)^2 = 2 \)</span>
+
+

+ To transform TeX into a visual equation, a page must include the MathJax script. +

+

+ In order to use the new plugin, include it in the config.extraPlugins configuration setting. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'mathjax'
+} );
+
+

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html b/platforms/browser/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html new file mode 100644 index 00000000..5a09a8ef --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html @@ -0,0 +1,72 @@ + + + + + + Placeholder Plugin — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Using the Placeholder Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Placeholder plugin that lets you insert read-only elements + into your content. To enter and modify read-only text, use the + Create Placeholder   button and its matching dialog window. +

+

+ To add a CKEditor instance that uses the placeholder plugin and a related + Create Placeholder   toolbar button, insert the following JavaScript + call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'placeholder',
+	toolbar: [ [ 'Source', 'Bold' ], ['CreatePlaceholder'] ]
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html b/platforms/browser/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html new file mode 100644 index 00000000..30ac7fcf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html @@ -0,0 +1,119 @@ + + + + + + Shared-Space Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Sharing Toolbar and Bottom-bar Spaces +

+
+

+ This sample shows several editor instances that share the very same spaces for both the toolbar and the bottom bar. +

+
+
+ +
+ +
+ +
+
+ +
+ +
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+ +
+ +
+ +
+ + + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html b/platforms/browser/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html new file mode 100644 index 00000000..2b920dff --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html @@ -0,0 +1,118 @@ + + + + + + Editing source code in a dialog — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Editing source code in a dialog +

+
+

+ Sourcedialog plugin provides an easy way to edit raw HTML content + of an editor, similarly to what is possible with Sourcearea + plugin for classic (iframe-based) instances but using dialogs. Thanks to that, it's also possible + to manipulate raw content of inline editor instances. +

+

+ This plugin extends the toolbar with a button, + which opens a dialog window with a source code editor. It works with both classic + and inline instances. To enable this + plugin, basically add extraPlugins: 'sourcedialog' to editor's + config: +

+
+// Inline editor.
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'sourcedialog'
+});
+
+// Classic (iframe-based) editor.
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'sourcedialog',
+	removePlugins: 'sourcearea'
+});
+
+

+ Note that you may want to include removePlugins: 'sourcearea' + in your config when using Sourcedialog in classic editor instances. + This prevents feature redundancy. +

+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+ +
+

This is some sample text. You are using CKEditor.

+
+
+
+
+ + +
+ + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css b/platforms/browser/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css new file mode 100644 index 00000000..ce545eec --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css @@ -0,0 +1,70 @@ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 12px; + color: #222; + background-color: #fff; +} + +/* preserved spaces for rtl list item bullets. (#6249)*/ +ol,ul,dl +{ + padding-right:40px; +} + +h1,h2,h3,h4 +{ + font-family: Georgia, Times, serif; +} + +h1.lightBlue +{ + color: #00A6C7; + font-size: 1.8em; + font-weight:normal; +} + +h3.green +{ + color: #739E39; + font-weight:normal; +} + +span.markYellow { background-color: yellow; } +span.markGreen { background-color: lime; } + +img.left +{ + padding: 5px; + margin-right: 5px; + float:left; + border:2px solid #DDD; +} + +img.right +{ + padding: 5px; + margin-right: 5px; + float:right; + border:2px solid #DDD; +} + +a.green +{ + color:#739E39; +} + +table.grey +{ + background-color : #F5F5F5; +} + +table.grey th +{ + background-color : #DDD; +} + +ul.square +{ + list-style-type : square; +} diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html b/platforms/browser/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html new file mode 100644 index 00000000..450bc11f --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html @@ -0,0 +1,82 @@ + + + + + + Using Stylesheet Parser Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using the Stylesheet Parser Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Stylesheet Parser (stylesheetparser) plugin that fills + the Styles drop-down list based on the CSS rules available in the document stylesheet. +

+

+ To add a CKEditor instance using the stylesheetparser plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'stylesheetparser'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html b/platforms/browser/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html new file mode 100644 index 00000000..6dec40d6 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html @@ -0,0 +1,104 @@ + + + + + + Using TableResize Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the TableResize Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + TableResize (tableresize) plugin that allows + the user to edit table columns by using the mouse. +

+

+ The TableResize plugin makes it possible to modify table column width. Hover + your mouse over the column border to see the cursor change to indicate that + the column can be resized. Click and drag your mouse to set the desired width. +

+

+ By default the plugin is turned off. To add a CKEditor instance using the + TableResize plugin, insert the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'tableresize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html b/platforms/browser/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html new file mode 100644 index 00000000..6cf2ddf1 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html @@ -0,0 +1,232 @@ + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html b/platforms/browser/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html new file mode 100644 index 00000000..a6309be0 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html @@ -0,0 +1,103 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + + + + +

+ CKEditor Samples » UI Color Plugin +

+
+

+ This sample shows how to use the UI Color picker toolbar button to preview the skin color of the editor. + Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+
+

+ If the uicolor plugin along with the dedicated UIColor + toolbar button is added to CKEditor, the user will also be able to pick the color of the + UI from the color palette available in the UI Color Picker dialog window. +

+

+ To insert a CKEditor instance with the uicolor plugin enabled, + use the following JavaScript call: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'uicolor',
+	toolbar: [ [ 'Bold', 'Italic' ], [ 'UIColor' ] ]
+});
+

Used in themed instance

+

+ Click the UI Color Picker toolbar button to open up a color picker dialog. +

+

+ + +

+

Used in inline instance

+

+ Click the below editable region to display floating toolbar, then click UI Color Picker button. +

+
+

This is some sample text. You are using CKEditor.

+
+ +
+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/platforms/browser/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html new file mode 100644 index 00000000..174a25f3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -0,0 +1,77 @@ + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/readonly.html b/platforms/browser/www/lib/ckeditor/samples/readonly.html new file mode 100644 index 00000000..58f97069 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/readonly.html @@ -0,0 +1,73 @@ + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/replacebyclass.html b/platforms/browser/www/lib/ckeditor/samples/replacebyclass.html new file mode 100644 index 00000000..6fc3e6fe --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/replacebyclass.html @@ -0,0 +1,57 @@ + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/replacebycode.html b/platforms/browser/www/lib/ckeditor/samples/replacebycode.html new file mode 100644 index 00000000..e5a4c5ba --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/replacebycode.html @@ -0,0 +1,56 @@ + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/sample.css b/platforms/browser/www/lib/ckeditor/samples/sample.css new file mode 100644 index 00000000..8fd71aaa --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/sample.css @@ -0,0 +1,365 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre +{ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} + +.marker +{ + background-color: Yellow; +} diff --git a/platforms/browser/www/lib/ckeditor/samples/sample.js b/platforms/browser/www/lib/ckeditor/samples/sample.js new file mode 100644 index 00000000..b25482d3 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/sample.js @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/platforms/browser/www/lib/ckeditor/samples/sample_posteddata.php b/platforms/browser/www/lib/ckeditor/samples/sample_posteddata.php new file mode 100644 index 00000000..e4869b7c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/sample_posteddata.php @@ -0,0 +1,16 @@ +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.md or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/platforms/browser/www/lib/ckeditor/samples/tabindex.html b/platforms/browser/www/lib/ckeditor/samples/tabindex.html new file mode 100644 index 00000000..89521668 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/tabindex.html @@ -0,0 +1,75 @@ + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/uicolor.html b/platforms/browser/www/lib/ckeditor/samples/uicolor.html new file mode 100644 index 00000000..ce4b2a26 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/uicolor.html @@ -0,0 +1,69 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/uilanguages.html b/platforms/browser/www/lib/ckeditor/samples/uilanguages.html new file mode 100644 index 00000000..66acca43 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/uilanguages.html @@ -0,0 +1,119 @@ + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/samples/xhtmlstyle.html b/platforms/browser/www/lib/ckeditor/samples/xhtmlstyle.html new file mode 100644 index 00000000..f219d11d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/samples/xhtmlstyle.html @@ -0,0 +1,231 @@ + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/dialog.css b/platforms/browser/www/lib/ckeditor/skins/kama/dialog.css new file mode 100644 index 00000000..31152d4c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie.css b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie.css new file mode 100644 index 00000000..359d4574 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie7.css b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie7.css new file mode 100644 index 00000000..3973bd10 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_single_page .cke_dialog_footer{margin-top:22px}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{top:33px}.cke_dialog_footer_buttons{position:static;margin-top:7px;margin-right:24px}.cke_rtl .cke_dialog_footer_buttons{margin-right:0;margin-left:24px}.cke_rtl .cke_dialog_close_button{margin-top:0;position:absolute;left:10px;top:5px}span.cke_dialog_ui_buttonm{margin:2px 0}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{position:absolute}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{height:14px;position:relative} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie8.css b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie8.css new file mode 100644 index 00000000..ddbd6012 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_rtl .cke_dialog_footer_buttons td{padding-left:2px}.cke_rtl .cke_dialog_close_button{left:8px} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/dialog_iequirks.css b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_iequirks.css new file mode 100644 index 00000000..04ba2ee5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_dialog_page_contents{position:absolute}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_dialog_close_button{top:27px;background-image:url(images/sprites_ie6.png)}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{display:block;top:33px;margin-top:33px}.cke_rtl .cke_dialog_ui_labeled_content{_width:95%}a.cke_dialog_ui_button{background:0;padding:0}a.cke_dialog_ui_button span{width:70px;padding:5px 15px;text-align:center;color:#3b3b1f;background:#53d9f0 none;display:inline-block;cursor:default}a.cke_dialog_ui_button_ok span{background-image:none;background-color:#b8e834;margin-right:0}a.cke_dialog_ui_button_cancel span{background-image:none;background-color:#f65d20;margin-right:0}a.cke_dialog_ui_button:hover span,a.cke_dialog_ui_button:focus span,a.cke_dialog_ui_button:active span{background-image:none;background:#f7a922}div.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{width:99%}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid red!important;filter:chroma(color=red)}.cke_dialog_ui_focused,.cke_btn_over{border:1px dotted #696969!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/editor.css b/platforms/browser/www/lib/ckeditor/skins/kama/editor.css new file mode 100644 index 00000000..8ac84cbf --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie.css b/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie.css new file mode 100644 index 00000000..f9059430 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie7.css b/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie7.css new file mode 100644 index 00000000..e47ea631 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:22px}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle;padding-bottom:8px}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:3px;height:5px;padding:0;position:absolute;right:8px;top:11px;background-position:0 -1411px}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -1390px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie8.css b/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie8.css new file mode 100644 index 00000000..926a9ceb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/editor_iequirks.css b/platforms/browser/www/lib/ckeditor/skins/kama/editor_iequirks.css new file mode 100644 index 00000000..809e90f5 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *{float:none}.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,.cke_rtl .cke_button_arrow{vertical-align:top;display:inline-block}.cke_toolgroup,.cke_combo_button,.cke_combo_arrow,.cke_button_arrow,.cke_toolbox_collapser,.cke_resizer{background-image:url(images/sprites_ie6.png)}.cke_toolgroup{background-color:#fff;display:inline-block;padding:2px}.cke_inner{padding-top:2px;background-color:#d3d3d3;background-image:none}.cke_toolbar{margin:2px 0}.cke_rtl .cke_toolbar{margin-bottom:-1px;margin-top:-1px}.cke_toolbar_separator{vertical-align:top}.cke_toolbox{width:100%;float:left;padding-bottom:4px}.cke_rtl .cke_toolbox{margin-top:2px;margin-bottom:-4px}.cke_combo_button{background-color:#fff}.cke_rtl .cke_combo_button{padding-right:6px;padding-left:0}.cke_combo_text{line-height:21px}.cke_ltr .cke_combo_open{margin-left:-3px}.cke_combo_arrow{background-position:2px -1467px;margin:2px 0 0;border:0;width:8px;height:13px}.cke_rtl .cke_button_arrow{background-position-x:0}.cke_toolbox_collapser .cke_arrow{display:block;visibility:hidden;font-size:0;color:transparent;border:0}.cke_button_arrow{background-position:2px -1467px;margin:0;border:0;width:8px;height:15px}.cke_ltr .cke_button_arrow{background-position:0 -1467px;margin-left:-3px}.cke_toolbox_collapser{background-position:3px -1367px}.cke_toolbox_collapser_min{background-position:4px -1387px;margin:2px 0 0}.cke_rtl .cke_toolbox_collapser_min{background-position:4px -1408px}.cke_resizer{background-position:0 -1427px;width:12px;height:12px;border:0;margin:9px 0 0;vertical-align:baseline}.cke_dialog_tabs{position:absolute;top:38px;left:0}.cke_dialog_body{clear:both;margin-top:20px}a.cke_dialog_ui_button{background:url(images/sprites.png) repeat_x 0 _ 1069px}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1179px}a.cke_dialog_ui_button_ok{background:url(images/sprites.png) repeat_x 0 _ 1144px}a.cke_dialog_ui_button_cancel{background:url(images/sprites.png) repeat_x 0 _ 1105px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{background-image:none}.cke_menubutton_label{height:25px}.cke_menuarrow{background-image:url(images/sprites_ie6.png)}.cke_menuitem .cke_icon,.cke_button_icon,.cke_menuitem .cke_disabled .cke_icon,.cke_button_disabled .cke_button_icon{filter:""}.cke_menuseparator{font-size:0}.cke_colorbox{font-size:0}.cke_source{white-space:normal} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/icons.png b/platforms/browser/www/lib/ckeditor/skins/kama/icons.png new file mode 100644 index 00000000..a041850a Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/icons.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/icons_hidpi.png b/platforms/browser/www/lib/ckeditor/skins/kama/icons_hidpi.png new file mode 100644 index 00000000..1581f600 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/icons_hidpi.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides.gif b/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides.gif new file mode 100644 index 00000000..b5d9a532 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides.gif differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides.png b/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides.png new file mode 100644 index 00000000..2df7a15b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png b/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png new file mode 100644 index 00000000..b179935f Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/mini.gif b/platforms/browser/www/lib/ckeditor/skins/kama/images/mini.gif new file mode 100644 index 00000000..babc31a5 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/mini.gif differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/sprites.png b/platforms/browser/www/lib/ckeditor/skins/kama/images/sprites.png new file mode 100644 index 00000000..5fc409d1 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/sprites.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/sprites_ie6.png b/platforms/browser/www/lib/ckeditor/skins/kama/images/sprites_ie6.png new file mode 100644 index 00000000..070a8cee Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/sprites_ie6.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/images/toolbar_start.gif b/platforms/browser/www/lib/ckeditor/skins/kama/images/toolbar_start.gif new file mode 100644 index 00000000..94aa4abc Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/kama/images/toolbar_start.gif differ diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/readme.md b/platforms/browser/www/lib/ckeditor/skins/kama/readme.md new file mode 100644 index 00000000..ac304db8 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/readme.md @@ -0,0 +1,40 @@ +"Kama" Skin +==================== + +"Kama" is the default skin of CKEditor 3.x. +It's been ported to CKEditor 4 and fully featured. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/platforms/browser/www/lib/ckeditor/skins/kama/skin.js b/platforms/browser/www/lib/ckeditor/skins/kama/skin.js new file mode 100644 index 00000000..5d2c0959 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/kama/skin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.skin.name="kama";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8"; +CKEDITOR.skin.chameleon=function(e,d){function b(a){return"background:-moz-linear-gradient("+a+");background:-webkit-linear-gradient("+a+");background:-o-linear-gradient("+a+");background:-ms-linear-gradient("+a+");background:linear-gradient("+a+");"}var c,a="."+e.id;"editor"==d?c=a+" .cke_inner,"+a+" .cke_dialog_tab{background-color:$color;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to($color));"+b("top,#fff -15px,$color 40px")+"}"+a+" .cke_toolgroup{background:-webkit-gradient(linear,0 0,0 100,from(#fff),to($color));"+ +b("top,#fff,$color 100px")+"}"+a+" .cke_combo_button{background:-webkit-gradient(linear, left bottom, left -100, from(#fff), to($color));"+b("bottom,#fff,$color 100px")+"}"+a+" .cke_dialog_contents,"+a+" .cke_dialog_footer{background-color:$color !important;}"+a+" .cke_dialog_tab:hover,"+a+" .cke_dialog_tab:active,"+a+" .cke_dialog_tab:focus,"+a+" .cke_dialog_tab_selected{background-color:$color;background-image:none;}":"panel"==d&&(c=".cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_label,.cke_menubutton:focus .cke_menubutton_label,.cke_menubutton:active .cke_menubutton_label{background-color:$color !important;}.cke_menubutton_disabled:hover .cke_menubutton_label,.cke_menubutton_disabled:focus .cke_menubutton_label,.cke_menubutton_disabled:active .cke_menubutton_label{background-color: transparent !important;}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton_disabled .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menuseparator{background-color:$color !important;}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:$color !important;}"); +return c}; \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/dialog.css b/platforms/browser/www/lib/ckeditor/skins/moono/dialog.css new file mode 100644 index 00000000..1504938d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie.css b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie.css new file mode 100644 index 00000000..93cf7aed --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie7.css b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie7.css new file mode 100644 index 00000000..4b98ae57 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie8.css b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie8.css new file mode 100644 index 00000000..4f2edca9 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/dialog_iequirks.css b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_iequirks.css new file mode 100644 index 00000000..bb36a95d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/editor.css b/platforms/browser/www/lib/ckeditor/skins/moono/editor.css new file mode 100644 index 00000000..c21d8f8d --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/editor_gecko.css b/platforms/browser/www/lib/ckeditor/skins/moono/editor_gecko.css new file mode 100644 index 00000000..7aa2f32c --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/editor_gecko.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie.css b/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie.css new file mode 100644 index 00000000..9afe7e92 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie7.css b/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie7.css new file mode 100644 index 00000000..ba856696 --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie8.css b/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie8.css new file mode 100644 index 00000000..c4f4a1af --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/editor_iequirks.css b/platforms/browser/www/lib/ckeditor/skins/moono/editor_iequirks.css new file mode 100644 index 00000000..3de6bfdb --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0} \ No newline at end of file diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/icons.png b/platforms/browser/www/lib/ckeditor/skins/moono/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/icons.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/icons_hidpi.png b/platforms/browser/www/lib/ckeditor/skins/moono/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/icons_hidpi.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/arrow.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/arrow.png new file mode 100644 index 00000000..d72b5f3b Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/arrow.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/close.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/close.png new file mode 100644 index 00000000..6a04ab52 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/close.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/close.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/close.png new file mode 100644 index 00000000..e406c2c3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/close.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png new file mode 100644 index 00000000..edbd12f3 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/lock.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/lock.png new file mode 100644 index 00000000..1b87bbb7 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/lock.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png new file mode 100644 index 00000000..c6c2b86e Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/lock-open.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/lock-open.png new file mode 100644 index 00000000..04769877 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/lock-open.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/lock.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/lock.png new file mode 100644 index 00000000..c5a14400 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/lock.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/images/refresh.png b/platforms/browser/www/lib/ckeditor/skins/moono/images/refresh.png new file mode 100644 index 00000000..1ff63c30 Binary files /dev/null and b/platforms/browser/www/lib/ckeditor/skins/moono/images/refresh.png differ diff --git a/platforms/browser/www/lib/ckeditor/skins/moono/readme.md b/platforms/browser/www/lib/ckeditor/skins/moono/readme.md new file mode 100644 index 00000000..d086fe9b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/skins/moono/readme.md @@ -0,0 +1,51 @@ +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/platforms/browser/www/lib/ckeditor/styles.js b/platforms/browser/www/lib/ckeditor/styles.js new file mode 100644 index 00000000..18e4316b --- /dev/null +++ b/platforms/browser/www/lib/ckeditor/styles.js @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/platforms/browser/www/lib/d3/.bower.json b/platforms/browser/www/lib/d3/.bower.json new file mode 100644 index 00000000..5c7a0fde --- /dev/null +++ b/platforms/browser/www/lib/d3/.bower.json @@ -0,0 +1,35 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ], + "homepage": "https://github.com/mbostock/d3", + "_release": "3.4.11", + "_resolution": { + "type": "version", + "tag": "v3.4.11", + "commit": "9dbb2266543a6c998c3552074240efb36e4c7cab" + }, + "_source": "git://github.com/mbostock/d3.git", + "_target": "~3.4.11", + "_originalSource": "d3", + "_direct": true +} \ No newline at end of file diff --git a/platforms/browser/www/lib/d3/.spmignore b/platforms/browser/www/lib/d3/.spmignore new file mode 100644 index 00000000..0a673041 --- /dev/null +++ b/platforms/browser/www/lib/d3/.spmignore @@ -0,0 +1,4 @@ +bin +lib +src +test diff --git a/platforms/browser/www/lib/d3/CONTRIBUTING.md b/platforms/browser/www/lib/d3/CONTRIBUTING.md new file mode 100644 index 00000000..76126d5f --- /dev/null +++ b/platforms/browser/www/lib/d3/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing + +If you’re looking for ways to contribute, please [peruse open issues](https://github.com/mbostock/d3/issues?milestone=&page=1&state=open). The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed. + +Before submitting a pull request, consider implementing a live example first, say using [bl.ocks.org](http://bl.ocks.org). Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the d3-js Google group. + +If your proposed feature does not involve changing core functionality, consider submitting it instead as a [D3 plugin](https://github.com/d3/d3-plugins). New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core. + +To contribute new documentation or add examples to the gallery, just [edit the Wiki](https://github.com/mbostock/d3/wiki)! + +## How to Submit a Pull Request + +1. Click the “Fork” button to create your personal fork of the D3 repository. + +2. After cloning your fork of the D3 repository in the terminal, run `npm install` to install D3’s dependencies. + +3. Create a new branch for your new feature. For example: `git checkout -b my-awesome-feature`. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. + +4. The `d3.js` and `d3.min.js` files are built from source files in the `src` directory. _Do not edit `d3.js` directly._ Instead, edit the source files, and then run `make` to build the generated files. + +5. Use `make test` to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. + +6. Sign D3’s [Individual Contributor License Agreement](https://docs.google.com/forms/d/1CzjdBKtDuA8WeuFJinadx956xLQ4Xriv7-oDvXnZMaI/viewform). Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute. + +7. Submit your pull request, and good luck! diff --git a/platforms/browser/www/lib/d3/LICENSE b/platforms/browser/www/lib/d3/LICENSE new file mode 100644 index 00000000..83013469 --- /dev/null +++ b/platforms/browser/www/lib/d3/LICENSE @@ -0,0 +1,26 @@ +Copyright (c) 2010-2014, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/platforms/browser/www/lib/d3/README.md b/platforms/browser/www/lib/d3/README.md new file mode 100644 index 00000000..eb334e27 --- /dev/null +++ b/platforms/browser/www/lib/d3/README.md @@ -0,0 +1,9 @@ +# Data-Driven Documents + + + +**D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation. + +Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) + +For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). diff --git a/platforms/browser/www/lib/d3/bower.json b/platforms/browser/www/lib/d3/bower.json new file mode 100644 index 00000000..9f5968d2 --- /dev/null +++ b/platforms/browser/www/lib/d3/bower.json @@ -0,0 +1,24 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ] +} diff --git a/platforms/browser/www/lib/d3/composer.json b/platforms/browser/www/lib/d3/composer.json new file mode 100644 index 00000000..bfc5b7b5 --- /dev/null +++ b/platforms/browser/www/lib/d3/composer.json @@ -0,0 +1,19 @@ +{ + "name": "mbostock/d3", + "description": "A small, free JavaScript library for manipulating documents based on data.", + "keywords": ["dom", "svg", "visualization", "js", "canvas"], + "homepage": "http://d3js.org/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Mike Bostock", + "homepage": "http://bost.ocks.org/mike" + } + ], + "support": { + "issues": "https://github.com/mbostock/d3/issues", + "wiki": "https://github.com/mbostock/d3/wiki", + "API": "https://github.com/mbostock/d3/wiki/API-Reference", + "source": "https://github.com/mbostock/d3" + } +} diff --git a/platforms/browser/www/lib/d3/d3.js b/platforms/browser/www/lib/d3/d3.js new file mode 100644 index 00000000..82287776 --- /dev/null +++ b/platforms/browser/www/lib/d3/d3.js @@ -0,0 +1,9233 @@ +!function() { + var d3 = { + version: "3.4.11" + }; + if (!Date.now) Date.now = function() { + return +new Date(); + }; + var d3_arraySlice = [].slice, d3_array = function(list) { + return d3_arraySlice.call(list); + }; + var d3_document = document, d3_documentElement = d3_document.documentElement, d3_window = window; + try { + d3_array(d3_documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } + try { + d3_document.createElement("div").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ""); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ""); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; + } + d3.ascending = d3_ascending; + function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; + }; + d3.max = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; + }; + d3.extent = function(array, f) { + var i = -1, n = array.length, a, b, c; + if (arguments.length === 1) { + while (++i < n && !((a = c = array[i]) != null && a <= a)) a = c = undefined; + while (++i < n) if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n && !((a = c = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [ a, c ]; + }; + d3.sum = function(array, f) { + var s = 0, n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + return s; + }; + function d3_number(x) { + return x != null && !isNaN(x); + } + d3.mean = function(array, f) { + var s = 0, n = array.length, a, i = -1, j = n; + if (arguments.length === 1) { + while (++i < n) if (d3_number(a = array[i])) s += a; else --j; + } else { + while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j; + } + return j ? s / j : undefined; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + if (arguments.length > 1) array = array.map(f); + array = array.filter(d3_number); + return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined; + }; + function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1; + } + return lo; + } + }; + } + var d3_bisect = d3_bisector(d3_ascending); + d3.bisectLeft = d3_bisect.left; + d3.bisect = d3.bisectRight = d3_bisect.right; + d3.bisector = function(f) { + return d3_bisector(f.length === 1 ? function(d, x) { + return d3_ascending(f(d), x); + } : f); + }; + d3.shuffle = function(array) { + var m = array.length, t, i; + while (m) { + i = Math.random() * m-- | 0; + t = array[m], array[m] = array[i], array[i] = t; + } + return array; + }; + d3.permute = function(array, indexes) { + var i = indexes.length, permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.pairs = function(array) { + var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; + return pairs; + }; + d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { + zip[j] = arguments[j][i]; + } + } + return zips; + }; + function d3_zipLength(d) { + return d.length; + } + d3.transpose = function(matrix) { + return d3.zip.apply(d3, matrix); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + var n = arrays.length, m, i = -1, j = 0, merged, array; + while (++i < n) j += arrays[i].length; + merged = new Array(j); + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + return merged; + }; + var abs = Math.abs; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error("infinite range"); + var range = [], k = d3_range_integerScale(abs(step)), i = -1, j; + start *= k, stop *= k, step *= k; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while (x * k % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + try { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } catch (e) { + ctor.prototype = properties; + } + } + d3.map = function(object) { + var map = new d3_Map(); + if (object instanceof d3_Map) object.forEach(function(key, value) { + map.set(key, value); + }); else for (var key in object) map.set(key, object[key]); + return map; + }; + function d3_Map() {} + d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this[d3_map_prefix + key]; + }, + set: function(key, value) { + return this[d3_map_prefix + key] = value; + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + this.forEach(function(key, value) { + values.push(value); + }); + return values; + }, + entries: function() { + var entries = []; + this.forEach(function(key, value) { + entries.push({ + key: key, + value: value + }); + }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) f.call(this, key.substring(1), this[key]); + } + }); + var d3_map_prefix = "\x00", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); + function d3_map_has(key) { + return d3_map_prefix + key in this; + } + function d3_map_remove(key) { + key = d3_map_prefix + key; + return key in this && delete this[key]; + } + function d3_map_keys() { + var keys = []; + this.forEach(function(key) { + keys.push(key); + }); + return keys; + } + function d3_map_size() { + var size = 0; + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) ++size; + return size; + } + function d3_map_empty() { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) return false; + return true; + } + d3.nest = function() { + var nest = {}, keys = [], sortKeys = [], sortValues, rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; + var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(object = array[i]))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [ object ]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + nest.key = function(d) { + keys.push(d); + return nest; + }; + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; + }; + function d3_Set() {} + d3_class(d3_Set, { + has: d3_map_has, + add: function(value) { + this[d3_map_prefix + value] = true; + return value; + }, + remove: function(value) { + value = d3_map_prefix + value; + return value in this && delete this[value]; + }, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var value in this) if (value.charCodeAt(0) === d3_map_prefixCode) f.call(this, value.substring(1)); + } + }); + d3.behavior = {}; + d3.rebind = function(target, source) { + var i = 1, n = arguments.length, method; + while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.substring(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; + } + } + var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ]; + function d3_noop() {} + d3.dispatch = function() { + var dispatch = new d3_dispatch(), i = -1, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), name = ""; + if (i >= 0) { + name = type.substring(i + 1); + type = type.substring(0, i); + } + if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } + }; + function d3_dispatch_event(dispatch) { + var listeners = [], listenerByName = new d3_Map(); + function event() { + var z = listeners, i = -1, n = z.length, l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; + } + event.on = function(name, listener) { + var l = listenerByName.get(name), i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) listeners.push(listenerByName.set(name, { + on: listener + })); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventPreventDefault() { + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), i = 0, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + var d3_subclass = {}.__proto__ ? function(object, prototype) { + object.__proto__ = prototype; + } : function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; + function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, d3_selectMatcher = d3_documentElement.matches || d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + if (typeof Sizzle === "function") { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3_selectionRoot; + }; + var d3_selectionPrototype = d3.selection.prototype = []; + d3_selectionPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, group, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i, j)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return typeof selector === "function" ? selector : function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], subgroup, node; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); + subgroup.parentNode = node; + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return typeof selector === "function" ? selector : function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsPrefix = { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(":"), prefix = name; + if (i >= 0) { + prefix = name.substring(0, i); + name = name.substring(i + 1); + } + return d3_nsPrefix.hasOwnProperty(prefix) ? { + space: d3_nsPrefix[prefix], + local: name + } : name; + } + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); + } + return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); + } + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); + } + function d3_selection_classes(name) { + return (name + "").trim().split(/^|\s+/); + } + function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + return typeof value === "function" ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); + priority = ""; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); + } + return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; else this[name] = x; + } + return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + } : value == null ? function() { + this.textContent = ""; + } : function() { + this.textContent = value; + }) : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + } : value == null ? function() { + this.innerHTML = ""; + } : function() { + this.innerHTML = value; + }) : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); + }); + }; + function d3_selection_creator(name) { + return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? function() { + return this.ownerDocument.createElementNS(name.space, name.local); + } : function() { + return this.ownerDocument.createElementNS(this.namespaceURI, name); + }; + } + d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); + }); + }; + d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); + }; + d3_selectionPrototype.data = function(value, key) { + var i = -1, n = this.length, group, node; + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; + } + } + return value; + } + function bind(group, groupData) { + var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; + for (i = -1; ++i < n; ) { + keyValue = key.call(node = group[i], node.__data__, i); + if (nodeByKeyValue.has(keyValue)) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues.push(keyValue); + } + for (i = -1; ++i < m; ) { + keyValue = key.call(groupData, nodeData = groupData[i], i); + if (node = nodeByKeyValue.get(keyValue)) { + updateNodes[i] = node; + node.__data__ = nodeData; + } else if (!dataByKeyValue.has(keyValue)) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + dataByKeyValue.set(keyValue, nodeData); + nodeByKeyValue.remove(keyValue); + } + for (i = -1; ++i < n; ) { + if (nodeByKeyValue.has(keyValues[i])) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (;i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (;i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length ? this.property("__data__", value) : this.property("__data__"); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + d3_selectionPrototype.size = function() { + var n = 0; + this.each(function() { + ++n; + }); + return n; + }; + function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.call = d3_selectionPrototype.call; + d3_selection_enterPrototype.size = d3_selectionPrototype.size; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, upgroup, group, node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); + }; + function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, n = group.length, node; + if (j != j0) j0 = j, i0 = 0; + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n) ; + return node; + }; + } + d3_selectionPrototype.transition = function() { + var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || { + time: Date.now(), + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) d3_transitionNode(node, i, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, id); + }; + d3_selectionPrototype.interrupt = function() { + return this.each(d3_selection_interrupt); + }; + function d3_selection_interrupt() { + var lock = this.__transition__; + if (lock) ++lock.active; + } + d3.select = function(node) { + var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ]; + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + d3.selectAll = function(nodes) { + var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + var d3_selectionRoot = d3.select(d3_documentElement); + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + if (n < 2) return (n = this.node()["__on" + type]) && n._; + capture = false; + } + return this.each(d3_selection_on(type, listener, capture)); + }; + function d3_selection_on(type, listener, capture) { + var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; + if (i > 0) type = type.substring(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; + } + var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }); + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; + } + function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, related = e.relatedTarget; + if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) { + l.call(target, e); + } + }; + } + var d3_event_dragSelect = "onselectstart" in d3_document ? null : d3_vendorSymbol(d3_documentElement.style, "userSelect"), d3_event_dragId = 0; + function d3_event_dragSuppress() { + var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); + if (d3_event_dragSelect) { + var style = d3_documentElement.style, select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = "none"; + } + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { + function off() { + w.on(click, null); + } + w.on(click, function() { + d3_eventPreventDefault(); + off(); + }, true); + setTimeout(off, 0); + } + }; + } + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, + point.y = e.clientY; + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [ point.x, point.y ]; + } + var rect = container.getBoundingClientRect(); + return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; + } + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, "touchmove", "touchend"); + function drag() { + this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); + } + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId); + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; + } else { + dragOffset = [ 0, 0 ]; + } + dispatch({ + type: "dragstart" + }); + function moved() { + var position1 = position(parent, dragId), dx, dy; + if (!position1) return; + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + dispatch({ + type: "drag", + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + function ended() { + if (!position(parent, dragId)) return; + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged && d3.event.target === target); + dispatch({ + type: "dragend" + }); + } + }; + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, "on"); + }; + function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; + } + function d3_behavior_dragTouchSubject() { + return d3.event.target; + } + function d3_behavior_dragMouseSubject() { + return d3_window; + } + var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); + } + function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); + } + function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); + } + function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; + } + function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; + } + function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); + } + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; + } + var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; + d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2]; + var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ; + function interpolate(t) { + var s = t * S; + if (dr) { + var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; + } + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ]; + } + interpolate.duration = S * 1e3; + return interpolate; + }; + d3.behavior.zoom = function() { + var view = { + x: 0, + y: 0, + k: 1 + }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + function zoom(g) { + g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); + } + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), view1 = view; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.zoom", function() { + view = this.__chart__ || { + x: 0, + y: 0, + k: 1 + }; + zoomstarted(dispatch); + }).tween("zoom:zoom", function() { + var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); + return function(t) { + var l = i(t), k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }).each("end.zoom", function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + zoom.translate = function(_) { + if (!arguments.length) return [ view.x, view.y ]; + view = { + x: +_[0], + y: +_[1], + k: view.k + }; + rescale(); + return zoom; + }; + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { + x: view.x, + y: view.y, + k: +_ + }; + rescale(); + return zoom; + }; + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ]; + return zoom; + }; + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + function location(p) { + return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ]; + } + function point(l) { + return [ l[0] * view.k + view.x, l[1] * view.k + view.y ]; + } + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + function rescale() { + if (x1) x1.domain(x0.range().map(function(x) { + return (x - view.x) / view.k; + }).map(x0.invert)); + if (y1) y1.domain(y0.range().map(function(y) { + return (y - view.y) / view.k; + }).map(y0.invert)); + } + function zoomstarted(dispatch) { + dispatch({ + type: "zoomstart" + }); + } + function zoomed(dispatch) { + rescale(); + dispatch({ + type: "zoom", + scale: view.k, + translate: [ view.x, view.y ] + }); + } + function zoomended(dispatch) { + dispatch({ + type: "zoomend" + }); + } + function mousedowned() { + var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged && d3.event.target === target); + zoomended(dispatch); + } + } + function touchstarted() { + var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + started(); + zoomstarted(dispatch); + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) locations0[t.identifier] = location(t); + }); + return touches; + } + function started() { + var target = d3.event.target; + d3.select(target).on(touchmove, moved).on(touchend, ended); + targets.push(target); + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + var touches = relocate(), now = Date.now(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0], l = locations0[p.identifier]; + scaleTo(view.k * 2); + translateTo(p, l); + d3_eventPreventDefault(); + zoomed(dispatch); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + function moved() { + var touches = d3.touches(that), p0, l0, p1, l1; + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if (l1 = locations0[p1.identifier]) { + if (l0) break; + p0 = p1, l0 = l1; + } + } + if (l1) { + var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; + l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; + scaleTo(scale1 * scale0); + } + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + function ended() { + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + for (var identifier in locations0) { + return void relocate(); + } + } + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), + d3_selection_interrupt.call(this), zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + function dblclicked() { + var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2; + zoomstarted(dispatch); + scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); + translateTo(p, l); + zoomed(dispatch); + zoomended(dispatch); + } + return d3.rebind(zoom, event, "on"); + }; + var d3_behavior_zoomInfinity = [ 0, Infinity ]; + var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { + return this.rgb() + ""; + }; + d3.hsl = d3_hsl; + function d3_hsl(h, s, l) { + return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); + } + var d3_hslPrototype = d3_hsl.prototype = new d3_color(); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + } + d3.hcl = d3_hcl; + function d3_hcl(h, c, l) { + return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); + } + var d3_hclPrototype = d3_hcl.prototype = new d3_color(); + d3_hclPrototype.brighter = function(k) { + return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.darker = function(k) { + return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); + } + d3.lab = d3_lab; + function d3_lab(l, a, b) { + return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); + } + var d3_lab_K = 18; + var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; + var d3_labPrototype = d3_lab.prototype = new d3_color(); + d3_labPrototype.brighter = function(k) { + return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.darker = function(k) { + return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); + } + function d3_lab_hcl(l, a, b) { + return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); + } + function d3_lab_xyz(x) { + return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; + } + function d3_xyz_lab(x) { + return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; + } + function d3_xyz_rgb(r) { + return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); + } + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); + } + function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); + } + function d3_rgbString(value) { + return d3_rgbNumber(value) + ""; + } + var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + var r = this.r, g = this.g, b = this.b, i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); + }; + d3_rgbPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); + } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, g = 0, b = 0, m1, m2, color; + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": + { + return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); + } + + case "rgb": + { + return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); + } + } + } + if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b); + if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.substring(1), 16))) { + if (format.length === 4) { + r = (color & 3840) >> 4; + r = r >> 4 | r; + g = color & 240; + g = g >> 4 | g; + b = color & 15; + b = b << 4 | b; + } else if (format.length === 7) { + r = (color & 16711680) >> 16; + g = (color & 65280) >> 8; + b = color & 255; + } + } + return rgb(r, g, b); + } + function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return new d3_hsl(h, s, l); + } + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); + } + function d3_rgb_xyz(r) { + return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); + } + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; + } + var d3_rgb_names = d3.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); + }); + function d3_functor(v) { + return typeof v === "function" ? v : function() { + return v; + }; + } + d3.functor = d3_functor; + function d3_identity(d) { + return d; + } + d3.xhr = d3_xhrType(d3_identity); + function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, + mimeType = null; + return d3_xhr(url, mimeType, response, callback); + }; + } + function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; + if (d3_window.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); + "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }; + function respond() { + var status = request.status, result; + if (!status && request.responseText || status >= 200 && status < 300 || status === 304) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } + } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; else headers[name] = value + ""; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + [ "get", "post" ].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) xhr.on("error", callback).on("load", function(request) { + callback(null, request); + }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, "on"); + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); + } + function d3_xhr_fixCallback(callback) { + return callback.length === 1 ? function(error, request) { + callback(error == null ? request : null); + } : callback; + } + d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) callback = row, row = null; + var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback); + xhr.row = function(_) { + return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; + }; + return xhr; + } + function response(request) { + return dsv.parse(request.responseText); + } + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function("d", "return {" + row.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "]"; + }).join(",") + "}"); + o = f ? function(row, i) { + return f(a(row), i); + } : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; + function token() { + if (I >= N) return EOF; + if (eol) return eol = false, EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), k = 1; + if (c === 10) eol = true; else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.substring(j, I - k); + } + return text.substring(j); + } + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && !(a = f(a, n++))) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { + return fields.map(function(field) { + return formatValue(row[field]); + }).join(delimiter); + })).join("\n"); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join("\n"); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + }; + d3.csv = d3.dsv(",", "text/csv"); + d3.tsv = d3.dsv(" ", "text/tab-separated-values"); + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } + }; + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, "requestAnimationFrame")] || function(callback) { + setTimeout(callback, 17); + }; + d3.timer = function(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + var time = then + delay, timer = { + c: callback, + t: time, + f: false, + n: null + }; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + }; + function d3_timer_step() { + var now = d3_timer_mark(), delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + } + d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); + }; + function d3_timer_mark() { + var now = Date.now(); + d3_timer_active = d3_timer_queueHead; + while (d3_timer_active) { + if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t); + d3_timer_active = d3_timer_active.n; + } + return now; + } + function d3_timer_sweep() { + var t0, t1 = d3_timer_queueHead, time = Infinity; + while (t1) { + if (t1.f) { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; + } else { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } + } + d3_timer_queueTail = t0; + return time; + } + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); + } + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if (value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { + return d / k; + } : function(d) { + return d * k; + }, + symbol: d + }; + } + function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) { + var i = value.length, t = [], j = 0, g = locale_grouping[0]; + while (i > 0 && g > 0) { + t.push(value.substring(i -= g, i + g)); + g = locale_grouping[j = (j + 1) % locale_grouping.length]; + } + return t.reverse().join(locale_thousands); + } : d3_identity; + return function(specifier) { + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false; + if (precision) precision = +precision.substring(1); + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + switch (type) { + case "n": + comma = true; + type = "g"; + break; + + case "%": + scale = 100; + suffix = "%"; + type = "f"; + break; + + case "p": + scale = 100; + suffix = "%"; + type = "r"; + break; + + case "b": + case "o": + case "x": + case "X": + if (symbol === "#") prefix = "0" + type.toLowerCase(); + + case "c": + case "d": + integer = true; + precision = 0; + break; + + case "s": + scale = -1; + type = "r"; + break; + } + if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1]; + if (type == "r" && !precision) type = "g"; + if (precision != null) { + if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); + } + type = d3_format_types.get(type) || d3_format_typeDefault; + var zcomma = zfill && comma; + return function(value) { + var fullSuffix = suffix; + if (integer && value % 1) return ""; + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; + if (scale < 0) { + var unit = d3.formatPrefix(value, precision); + value = unit.scale(value); + fullSuffix = unit.symbol + suffix; + } else { + value *= scale; + } + value = type(value, precision); + var i = value.lastIndexOf("."), before = i < 0 ? value : value.substring(0, i), after = i < 0 ? "" : locale_decimal + value.substring(i + 1); + if (!zfill && comma) before = formatGroup(before); + var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; + if (zcomma) before = formatGroup(padding + before); + negative += prefix; + value = before + after; + return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; + }; + }; + } + var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); + } + }); + function d3_format_typeDefault(x) { + return x + ""; + } + var d3_time = d3.time = {}, d3_date = Date; + function d3_date_utc() { + this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); + } + d3_date_utc.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step(date = local(new d3_date(date - 1)), 1); + return date; + } + function offset(date, k) { + step(date = new d3_date(+date), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; + } + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; + } + d3_time.year = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; + }, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, function(date) { + return date.getFullYear(); + }); + d3_time.years = d3_time.year.range; + d3_time.years.utc = d3_time.year.utc.range; + d3_time.day = d3_time_interval(function(date) { + var day = new d3_date(2e3, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, function(date, offset) { + date.setDate(date.getDate() + offset); + }, function(date) { + return date.getDate() - 1; + }); + d3_time.days = d3_time.day.range; + d3_time.days.utc = d3_time.day.utc.range; + d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); + }; + [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) { + i = 7 - i; + var interval = d3_time[day] = d3_time_interval(function(date) { + (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + d3_time[day + "s"] = interval.range; + d3_time[day + "s"].utc = interval.utc.range; + d3_time[day + "OfYear"] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); + }; + }); + d3_time.week = d3_time.sunday; + d3_time.weeks = d3_time.sunday.range; + d3_time.weeks.utc = d3_time.sunday.utc.range; + d3_time.weekOfYear = d3_time.sundayOfYear; + function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; + function d3_time_format(template) { + var n = template.length; + function format(date) { + var string = [], i = -1, j = 0, c, p, f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.substring(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); + string.push(c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0, + Z: null + }, i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ("p" in d) d.H = d.H % 12 + d.p * 12; + var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) { + date.setFullYear(d.y, 0, 1); + date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); + } else date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H + Math.floor(d.Z / 100), d.M + d.Z % 100, d.S, d.L); + return localZ ? date._ : date; + }; + format.toString = function() { + return template; + }; + return format; + } + function d3_time_parse(date, template, string, j) { + var c, p, t, i = 0, n = template.length, m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + format.toString = local.toString; + return format; + }; + d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; + var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + var d3_time_formats = { + a: function(d) { + return locale_shortDays[d.getDay()]; + }, + A: function(d) { + return locale_days[d.getDay()]; + }, + b: function(d) { + return locale_shortMonths[d.getMonth()]; + }, + B: function(d) { + return locale_months[d.getMonth()]; + }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return locale_periods[+(d.getHours() >= 12)]; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); + }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + "%": function() { + return "%"; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + "%": d3_time_parseLiteralPercent + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.substring(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + return d3_time_format; + } + var d3_time_formatPads = { + "-": "", + _: " ", + "0": "0" + }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/; + function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); + } + function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); + } + function d3_time_formatLookup(names) { + var map = new d3_Map(), i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; + } + function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 1)); + return n ? (date.w = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.U = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.W = +n[0], i + n[0].length) : -1; + } + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.y = +n[0], i + n[0].length) : -1; + } + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; + } + function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string, + i + 5) : -1; + } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); + } + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.m = n[0] - 1, i + n[0].length) : -1; + } + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.d = +n[0], i + n[0].length) : -1; + } + function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.j = +n[0], i + n[0].length) : -1; + } + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.H = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.M = +n[0], i + n[0].length) : -1; + } + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.S = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.L = +n[0], i + n[0].length) : -1; + } + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(abs(z) / 60), zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); + } + function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.substring(i, i + 1)); + return n ? i + n[0].length : -1; + } + function d3_time_formatMulti(formats) { + var n = formats.length, i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; + } + d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; + }; + var d3_locale_enUS = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [ 3 ], + currency: [ "$", "" ], + dateTime: "%a %b %e %X %Y", + date: "%m/%d/%Y", + time: "%H:%M:%S", + periods: [ "AM", "PM" ], + days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], + shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] + }); + d3.format = d3_locale_enUS.numberFormat; + d3.geo = {}; + function d3_adder() {} + d3_adder.prototype = { + s: 0, + t: 0, + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } + }; + var d3_adderTemp = new d3_adder(); + function d3_adderSum(a, b, o) { + var x = o.s = a + b, bv = x - a, av = x - bv; + o.t = a - av + (b - bv); + } + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } + } + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); + } + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); + } + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder(); + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), + sinφ0 = Math.sin(φ); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; + var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; + } + function d3_geo_cartesian(spherical) { + var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); + return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; + } + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + function d3_geo_cartesianCross(a, b) { + return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; + } + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + } + function d3_geo_cartesianScale(vector, k) { + return [ vector[0] * k, vector[1] * k, vector[2] * k ]; + } + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ]; + } + function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + function point(λ, φ) { + ranges.push(range = [ λ0 = λ, λ1 = λ ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + function linePoint(λ, φ) { + var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; + } + function lineStart() { + bound.point = linePoint; + } + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; + } + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + function ringStart() { + d3_geo_area.lineStart(); + } + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; + } + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; + } + function compareRanges(a, b) { + return a[0] - b[0]; + } + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; + } + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + var n = ranges.length; + if (n) { + ranges.sort(compareRanges); + for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; + } + } + ranges = range = null; + return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ]; + }; + }(); + d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z; + if (m < ε2) { + x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; + if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; + m = x * x + y * y + z * z; + if (m < ε2) return [ NaN, NaN ]; + } + return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ]; + }; + var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2; + var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } + }; + function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); + } + function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_geo_centroidRingStart() { + var λ00, φ00, x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ00 = λ, φ00 = φ; + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u); + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { + var subject = [], clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; + } + var start = subject[0], points, point; + while (1) { + var current = start, isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); + } + } + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, i = 0, a = array[0], b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; + } + function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; + this.e = entry; + this.v = false; + this.n = this.p = null; + } + function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); + if (segments.length) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); + } else if (clipStartInside) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); + } + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); + } + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + var segments; + var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring; + function pointRing(λ, φ) { + ring.push([ λ, φ ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); + } + function ringStart() { + ringListener.lineStart(); + ring = []; + } + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; + ring.pop(); + polygon.push(ring); + ring = null; + if (!n) return; + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, i = -1, point; + if (n > 0) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], line; + return { + lineStart: function() { + lines.push(line = []); + }, + point: function(λ, φ) { + line.push([ λ, φ ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; + } + function d3_geo_clipSort(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); + } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], m = ring.length; + if (!m) continue; + var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } + } + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + } + var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); + } + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | (v00 && v0) << 1; + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); + var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [ q, d3_geo_spherical(q1) ]; + } + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, code = 0; + if (λ < -r) code |= 1; else if (λ > r) code |= 2; + if (φ < -r) code |= 4; else if (φ > r) code |= 8; + return code; + } + } + function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r; + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + if (t0 > 0) line.a = { + x: ax + t0 * dx, + y: ay + t0 * dy + }; + if (t1 < 1) line.b = { + x: ax + t1 * dx, + y: ay + t1 * dy + }; + return line; + }; + } + var d3_geo_clipExtentMAX = 1e9; + d3.geo.clipExtent = function() { + var x0, y0, x1, y1, stream, clip, clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; + return stream; + }, + extent: function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); + if (stream) stream.valid = false, stream = null; + return clipExtent; + } + }; + return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]); + }; + function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function insidePolygon(p) { + var wn = 0, n = polygon.length, y = p[1]; + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first, clean; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([ x, y ]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); else { + var l = { + a: { + x: x_, + y: y_ + }, + b: { + x: x, + y: y + } + }; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + return clip; + }; + function corner(p, direction) { + return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; + } + function compare(a, b) { + return comparePoints(a.x, b.x); + } + function comparePoints(a, b) { + var ca = corner(a, 1), cb = corner(b, 1); + return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; + } + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_geo_conic(projectAt) { + var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); + }; + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); + var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); + var point, pointStream = { + point: function(x, y) { + point = [ x, y ]; + } + }, lower48Point, alaskaPoint, hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); + return point; + } + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; + return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * .35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point; + alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); + }; + var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); + } + }; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; + } + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); + } + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; + } + function pointLine(x, y) { + buffer.push("L", x, ",", y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + buffer.push("Z"); + } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } + }; + function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x, y); + context.arc(x, y, pointRadius, 0, τ); + } + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + function pointLine(x, y) { + context.lineTo(x, y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + context.closePath(); + } + return stream; + } + function d3_geo_resample(project) { + var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16; + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); + } + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = ringStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + function ringPoint(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + } + function ringEnd() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); + } + return resample; + } + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.path = function() { + var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream; + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ]; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return reset(); + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return reset(); + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + function reset() { + cacheStream = null; + return path; + } + return path.projection(d3.geo.albersUsa()).context(null); + }; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { + return project([ x * d3_degrees, y * d3_degrees ]); + }); + return function(stream) { + return d3_geo_projectionRadians(resample(stream)); + }; + } + d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; + }; + function d3_geo_transform(stream) { + this.stream = stream; + } + d3_geo_transform.prototype = { + point: function(x, y) { + this.stream.point(x, y); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); + } + }; + function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [ x[0] * k + δx, δy - x[1] * k ]; + }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [ point[0] * k + δx, δy - point[1] * k ]; + } + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; + } + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output)))); + stream.valid = true; + return stream; + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity; + return invalidate(); + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [ x, y ]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, "precision"); + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); + } + function invalidate() { + if (stream) stream.valid = false, stream = null; + return projection; + } + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); + } + function d3_geo_equirectangular(λ, φ) { + return [ λ, φ ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + } + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + return forward; + }; + function d3_geo_identityRotation(λ, φ) { + return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + } + d3_geo_identityRotation.invert = d3_geo_equirectangular; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; + return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; + return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [ 0, 0 ], angle, precision = 6, interpolate; + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + return { + type: "Polygon", + coordinates: [ ring ] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - .5 * step; + } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); + }; + d3.geo.graticule = function() { + var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; + function graticule() { + return { + type: "MultiLineString", + coordinates: lines() + }; + } + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { + return abs(x % DX) > ε; + }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { + return abs(y % DY) > ε; + }).map(y)); + } + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: "LineString", + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [ DX, DY ]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [ dx, dy ]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); + }; + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [ x, y ]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [ x, y ]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, source_, target = d3_target, target_; + function greatArc() { + return { + type: "LineString", + coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ] + }; + } + greatArc.distance = function() { + return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments)); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; + }; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d); + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; + return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ]; + } : function() { + return [ x0 * d3_degrees, y0 * d3_degrees ]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); + return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); + return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, function(ρ) { + return 2 * Math.asin(ρ / 2); + }); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + if (F > 0) { + if (φ < -halfπ + ε) φ = -halfπ + ε; + } else { + if (φ > halfπ - ε) φ = halfπ - ε; + } + var ρ = F / Math.pow(t(φ), n); + return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; + if (abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; + }; + return forward; + } + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; + } + d3_geo_mercator.invert = function(x, y) { + return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + return m.clipExtent(null); + } + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, function(ρ) { + return 2 * Math.atan(ρ); + }); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ]; + } + d3_geo_transverseMercator.invert = function(x, y) { + return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ]; + }; + (d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; + projection.center = function(_) { + return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); + }; + projection.rotate = function(_) { + return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), + [ _[0], _[1], _[2] - 90 ]); + }; + return rotate([ 0, 0, 90 ]); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + function d3_geom_pointX(d) { + return d[0]; + } + function d3_geom_pointY(d) { + return d[1]; + } + d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, y = d3_geom_pointY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = []; + for (i = 0; i < n; i++) { + points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]); + } + points.sort(d3_geom_hullOrder); + for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]); + var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints); + var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = []; + for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); + return polygon; + } + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + return hull; + }; + function d3_geom_hullUpper(points) { + var n = points.length, hull = [ 0, 1 ], hs = 2; + for (var i = 2; i < n; i++) { + while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs; + hull[hs++] = i; + } + return hull.slice(0, hs); + } + function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; + } + d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; + }; + var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; + d3_geom_polygonPrototype.area = function() { + var i = -1, n = this.length, a, b = this[n - 1], area = 0; + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + return area * .5; + }; + d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c; + if (!arguments.length) k = -1 / (6 * this.area()); + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [ x * k, y * k ]; + }; + d3_geom_polygonPrototype.clip = function(subject) { + var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + if (closed) subject.push(subject[0]); + a = b; + } + return subject; + }; + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [ x1 + ua * x21, y1 + ua * y21 ]; + } + function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); + } + var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = []; + function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = this.site = this.circle = null; + } + function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); + beach.site = site; + return beach; + } + function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); + } + function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, x = circle.x, y = circle.cy, vertex = { + x: x, + y: y + }, previous = beach.P, next = beach.N, disappearing = [ beach ]; + d3_geom_voronoiDetachBeach(beach); + var lArc = previous; + while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; + } + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + var rArc = next; + while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; + } + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + var nArcs = disappearing.length, iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + } + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiAddBeach(site) { + var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._; + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } + } + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + if (!lArc && !rArc) return; + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; + } + if (!rArc) { + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; + } + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = { + x: (cy * hb - by * hc) / d + ax, + y: (bx * hc - cx * hb) / d + ay + }; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix; + if (!pby2) return rfocx; + var lArc = arc.P; + if (!lArc) return -Infinity; + site = lArc.site; + var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix; + if (!plby2) return lfocx; + var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2; + if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; + return (rfocx + lfocx) / 2; + } + function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; + } + function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; + } + d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge; + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + } + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; + }; + function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end; + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; + start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? { + x: x0, + y: abs(x2 - x0) < ε ? y2 : y1 + } : abs(y3 - y1) < ε && x1 - x3 > ε ? { + x: abs(y2 - y1) < ε ? x2 : x1, + y: y1 + } : abs(x3 - x1) < ε && y3 - y0 > ε ? { + x: x1, + y: abs(x2 - x1) < ε ? y2 : y0 + } : abs(y3 - y0) < ε && x3 - x0 > ε ? { + x: abs(y2 - y0) < ε ? x2 : x0, + y: y0 + } : null), cell.site, null)); + ++nHalfEdges; + } + } + } + } + function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; + } + function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = this.y = this.arc = this.site = this.cy = null; + } + function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, rArc = arc.N; + if (!lArc || !rArc) return; + var lSite = lArc.site, cSite = arc.site, rSite = rArc.site; + if (lSite === rSite) return; + var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by; + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by; + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); + circle.cy = cy; + arc.circle = circle; + var before = null, node = d3_geom_voronoiCircles._; + while (node) { + if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) { + if (node.L) node = node.L; else { + before = node.P; + break; + } + } else { + if (node.R) node = node.R; else { + before = node; + break; + } + } + } + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; + } + function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; + } + } + function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e; + while (i--) { + e = edges[i]; + if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) { + e.a = e.b = null; + edges.splice(i, 1); + } + } + } + function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb; + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) va = { + x: fx, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: fx, + y: y1 + }; + } else { + if (!va) va = { + x: fx, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: fx, + y: y0 + }; + } + } else { + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) va = { + x: (y0 - fb) / fm, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: (y1 - fb) / fm, + y: y1 + }; + } else { + if (!va) va = { + x: (y1 - fb) / fm, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: (y0 - fb) / fm, + y: y0 + }; + } + } else { + if (ly < ry) { + if (!va) va = { + x: x0, + y: fm * x0 + fb + }; else if (va.x >= x1) return; + vb = { + x: x1, + y: fm * x1 + fb + }; + } else { + if (!va) va = { + x: x1, + y: fm * x1 + fb + }; else if (va.x < x0) return; + vb = { + x: x0, + y: fm * x0 + fb + }; + } + } + } + edge.a = va; + edge.b = vb; + return true; + } + function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; + } + function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); + d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); + return edge; + } + function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; + } + function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; + } + } + function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y); + } + d3_geom_voronoiHalfEdge.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + } + }; + function d3_geom_voronoiRedBlackTree() { + this._ = null; + } + function d3_geom_voronoiRedBlackNode(node) { + node.U = node.C = node.L = node.R = node.P = node.N = null; + } + d3_geom_voronoiRedBlackTree.prototype = { + insert: function(after, node) { + var parent, grandpa, uncle; + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; + } + node.L = node.R = null; + node.U = parent; + node.C = true; + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + var parent = node.U, sibling, left = node.L, right = node.R, next, red; + if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right); + if (parent) { + if (parent.L === node) parent.L = next; else parent.R = next; + } else { + this._ = next; + } + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + if (node) node.U = parent; + if (red) return; + if (node && node.C) { + node.C = false; + return; + } + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + if (node) node.C = false; + } + }; + function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, q = node.R, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; + } + function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, q = node.L, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; + } + function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; + } + function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle; + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); + while (true) { + circle = d3_geom_voronoiFirstCircle; + if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + x0 = site.x, y0 = site.y; + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } + } + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + var diagram = { + cells: d3_geom_voronoiCells, + edges: d3_geom_voronoiEdges + }; + d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; + return diagram; + } + function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; + } + d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent; + if (points) return voronoi(points); + function voronoi(data) { + var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1]; + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) { + var s = e.start(); + return [ s.x, s.y ]; + }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : []; + polygon.point = data[i]; + }); + return polygons; + } + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); + } + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { + return edge.l && edge.r; + }).map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + voronoi.triangles = function(data) { + var triangles = []; + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l; + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { + triangles.push([ data[i], data[s0.i], data[s1.i] ]); + } + } + }); + return triangles; + }; + voronoi.x = function(_) { + return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; + }; + voronoi.clipExtent = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + voronoi.size = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]); + }; + return voronoi; + }; + var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ]; + function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); + } + d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); + }; + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, y = d3_geom_pointY, compat; + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + function quadtree(data) { + var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + var dx = x2_ - x1_, dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, ny = n.y; + if (nx != null) { + if (abs(nx - x) + abs(ny - y) < .01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = sx; else x2 = sx; + if (bottom) y1 = sy; else y2 = sy; + insert(n, d, x, y, x1, y1, x2, y2); + } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; + } + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], + y2 = +_[1][1]; + return quadtree; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; + return quadtree; + }; + return quadtree; + }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; + return function(t) { + return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, c = {}, k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + b -= a = +a; + return function(t) { + return a + b * t; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.substring(bi, bs); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; else s[++i] = bm; + } else { + s[++i] = null; + q.push({ + i: i, + x: d3_interpolateNumber(am, bm) + }); + } + bi = d3_interpolate_numberB.lastIndex; + } + if (bi < b.length) { + bs = b.substring(bi); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { + return b(t) + ""; + }) : function() { + return b; + } : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); + } + var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; + return f; + } + d3.interpolators = [ function(a, b) { + var t = typeof b; + return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + } ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (;i < na; ++i) c[i] = a[i]; + for (;i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; + } + }); + var d3_ease_mode = d3.map({ + "in": d3_identity, + out: d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); + }; + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = .45; + if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); + }; + function d3_transform(m) { + var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [ m.e, m.f ]; + this.scale = [ kx, ky ]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransform(a, b) { + var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; + if (ta[0] != tb[0] || ta[1] != tb[1]) { + s.push("translate(", null, ",", null, ")"); + q.push({ + i: 1, + x: d3_interpolateNumber(ta[0], tb[0]) + }, { + i: 3, + x: d3_interpolateNumber(ta[1], tb[1]) + }); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } else { + s.push(""); + } + if (ra != rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(s.pop() + "rotate(", null, ")") - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(s.pop() + "rotate(" + rb + ")"); + } + if (wa != wb) { + q.push({ + i: s.push(s.pop() + "skewX(", null, ")") - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(s.pop() + "skewX(" + wb + ")"); + } + if (ka[0] != kb[0] || ka[1] != kb[1]) { + n = s.push(s.pop() + "scale(", null, ",", null, ")"); + q.push({ + i: n - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, { + i: n - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + }); + } else if (kb[0] != 1 || kb[1] != 1) { + s.push(s.pop() + "scale(" + kb + ")"); + } + n = q.length; + return function(t) { + var i = -1, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return (x - a) * b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return Math.max(0, Math.min(1, (x - a) * b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], i = -1, n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; + function relayout() { + var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; + chords = []; + groups = []; + k = 0, i = -1; + while (++i < n) { + x = 0, j = -1; + while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (τ - padding * n) / k; + x = 0, i = -1; + while (++i < n) { + x0 = x, j = -1; + while (++j < n) { + var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }; + x += padding; + } + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value ? { + source: target, + target: source + } : { + source: source, + target: target + }); + } + } + } + if (sortChords) resort(); + } + function resort() { + chords.sort(function(a, b) { + return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + return chord; + }; + d3.layout.force = function() { + var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy; + if (dw * dw / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + force.tick = function() { + if ((alpha *= .99) < .005) { + event.end({ + type: "end", + alpha: alpha = 0 + }); + return true; + } + var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = x * x + y * y) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: "tick", + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) alpha = x; else alpha = 0; + } else if (x > 0) { + event.start({ + type: "start", + alpha: alpha = x + }); + d3.timer(force.tick); + } + return force; + }; + force.start = function() { + var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + var candidates = neighbors[i], j = -1, m = candidates.length, x; + while (++j < m) if (!isNaN(x = candidates[j][dimension])) return x; + return Math.random() * size; + } + return force.resume(); + }; + force.resume = function() { + return force.alpha(.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); + }; + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); + } + return d3.rebind(force, event, "on"); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + d.px = d.x, d.py = d.y; + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, n = nodes.length, i = -1, c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; + function hierarchy(root) { + var stack = [ root ], nodes = [], node; + root.depth = 0; + while ((node = stack.pop()) != null) { + nodes.push(node); + if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { + var n, childs, child; + while (--n >= 0) { + stack.push(child = childs[n]); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + return nodes; + } + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; + if (parent = node.parent) parent.value += node.value; + }); + } + return root; + }; + return hierarchy; + }; + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [ node ]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } + } + } + function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [ node ], nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, n, children; + while (++i < n) nodes.push(children[i]); + } + } + while ((node = nodes2.pop()) != null) { + callback(node); + } + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + })); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, n, c, d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + function depth(node) { + var children = node.children, d = 0; + if (children && (n = children.length)) { + var i = -1, n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); + }; + d3.layout.pie = function() { + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ; + function pie(data) { + var values = data.map(function(d, i) { + return +value.call(pie, d, i); + }); + var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); + var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values); + var index = d3.range(data.length); + if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { + return values[j] - values[i]; + } : function(i, j) { + return sort(data[i], data[j]); + }); + var arcs = []; + index.forEach(function(i) { + var d; + arcs[i] = { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + return arcs; + } + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + return pie; + }; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; + function stack(data, index) { + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [ x.call(stack, v, i), y.call(stack, v, i) ]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var n = series.length, m = series[0].length, i, j, o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + return data; + } + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; + }; + function d3_layout_stackX(d) { + return d.x; + } + function d3_layout_stackY(d) { + return d.y; + } + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + "inside-out": function(data) { + var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), top = 0, bottom = 0, tops = [], bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + "default": d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, m = data[0].length, y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, j = 0, v = array[0][1], k, n = array.length; + for (;i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; + } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; + }; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [ d3.min(values), d3.max(values) ]; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { + return radius; + }; + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r = +r(d.value); + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + if (padding) { + var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r -= dr; + }); + } + d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); + return nodes; + } + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === "function" ? _ : +_; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); + }; + function d3_layout_packSort(a, b) { + return a.value - b.value; + } + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; + } + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; + } + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; + return .999 * dr * dr > dx * dx + dy * dy; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } + } + d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0); + d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; + d3_layout_hierarchyVisitBefore(root1, secondWalk); + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else { + var left = root0, right = root0, bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return nodes; + } + function wrapTree(root0) { + var root1 = { + A: null, + children: [ root0 ] + }, queue = [ root1 ], node1; + while ((node1 = queue.pop()) != null) { + for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { + queue.push((children[i] = child = { + _: children[i], + parent: node1, + children: (child = children[i].children) && child.slice() || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: i + }).a = child); + } + } + return root1.children[0]; + } + function firstWalk(v) { + var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + function apportion(v, w, ancestor) { + if (w) { + var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); + }; + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; + } + function d3_layout_treeRight(v) { + var children = v.children, n; + return (n = children.length) ? children[n - 1] : v.t; + } + function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + function d3_layout_treeShift(v) { + var shift = 0, change = 0, children = v.children, i = children.length, w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } + } + function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; + d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + return nodes; + } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); + }; + function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); + } + function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, n = children.length, child, area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), remaining = children.slice(), child, row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + function worst(row, u) { + var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; + } + function position(row, u, rect, flush) { + var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } + } + function treemap(d) { + var nodes = stickies || hierarchy(d), root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([ root ], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); + } + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], + padConstant) : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; + } + function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { + x += dx / 2; + dx = 0; + } + if (dy < 0) { + y += dy / 2; + dy = 0; + } + return { + x: x, + y: y, + dx: dx, + dy: dy + }; + } + d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; + } + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [ start, stop ] : [ stop, start ]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); + } + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; + } + function d3_scale_nice(domain, nice) { + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; + } + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; + } + function d3_scale_niceStep(step) { + return step ? { + floor: function(x) { + return Math.floor(x / step) * step; + }, + ceil: function(x) { + return Math.ceil(x / step) * step; + } + } : d3_scale_niceIdentity; + } + var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity + }; + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; + } + d3.scale.linear = function() { + return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); + }; + function d3_scale_linear(domain, range, interpolate, clamp) { + var output, input; + function rescale() { + var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); + } + function d3_scale_linearRebind(scale, linear) { + return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); + } + function d3_scale_linearNice(domain, m) { + return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + } + function d3_scale_linearTickRange(domain, m) { + if (m == null) m = 10; + var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; + if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; + extent[2] = step; + return extent; + } + function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + } + function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === "s") { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = "f"; + format = d3.format(match.join("")); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(""); + } else { + format = ",." + d3_scale_linearPrecision(range[2]) + "f"; + } + return d3.format(format); + } + var d3_scale_linearFormatSignificant = { + s: 1, + g: 1, + p: 1, + r: 1, + e: 1 + }; + function d3_scale_linearPrecision(value) { + return -Math.floor(Math.log(value) / Math.LN10 + .01); + } + function d3_scale_linearFormatPrecision(type, range) { + var p = d3_scale_linearPrecision(range[2]); + return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2; + } + d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]); + }; + function d3_scale_log(linear, base, positive, domain) { + function log(x) { + return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base); + } + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); + } + function scale(x) { + return linear(log(x)); + } + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + positive = x[0] >= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + scale.nice = function() { + var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); + linear.domain(niced); + domain = niced.map(pow); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); + var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, + Math.floor), e; + return function(d) { + return d / pow(f(log(d) + e)) <= k ? format(d) : ""; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = { + floor: function(x) { + return -Math.ceil(-x); + }, + ceil: function(x) { + return -Math.floor(-x); + } + }; + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); + } + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + return scale.domain(d3_scale_linearNice(domain, m)); + }; + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; + } + d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); + }; + d3.scale.ordinal = function() { + return d3_scale_ordinal([], { + t: "range", + a: [ [] ] + }); + }; + function d3_scale_ordinal(domain, ranger) { + var index, range, rangeBand; + function scale(x) { + return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length]; + } + function steps(start, step) { + return d3.range(domain.length).map(function(i) { + return start + step * i; + }); + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map(); + var i = -1, n = x.length, xi; + while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = { + t: "range", + a: arguments + }; + return scale; + }; + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); + range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); + rangeBand = 0; + ranger = { + t: "rangePoints", + a: arguments + }; + return scale; + }; + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = { + t: "rangeBands", + a: arguments + }; + return scale; + }; + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; + range = steps(start + Math.round(error / 2), step); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = { + t: "rangeRoundBands", + a: arguments + }; + return scale; + }; + scale.rangeBand = function() { + return rangeBand; + }; + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + return scale.domain(domain); + } + d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); + }; + d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); + }; + d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); + }; + d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); + }; + var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString); + var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString); + var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString); + var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString); + d3.scale.quantile = function() { + return d3_scale_quantile([], []); + }; + function d3_scale_quantile(domain, range) { + var thresholds; + function rescale() { + var k = 0, q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + function scale(x) { + if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)]; + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(d3_number).sort(d3_ascending); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.quantiles = function() { + return thresholds; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ]; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); + } + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [ 0, 1 ]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + scale.domain = function(x) { + if (!arguments.length) return [ x0, x1 ]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [ y, y + 1 / kx ]; + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([ .5 ], [ 0, 1 ]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; + } + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [ domain[y - 1], domain[y] ]; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([ 0, 1 ]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg = {}; + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function arc() { + var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, + a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); + return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; + } + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [ Math.cos(a) * r, Math.sin(a) * r ]; + }; + return arc; + }; + var d3_svg_arcOffset = -halfπ, d3_svg_arcMax = τ - ε; + function d3_svg_arcInnerRadius(d) { + return d.innerRadius; + } + function d3_svg_arcOuterRadius(d) { + return d.outerRadius; + } + function d3_svg_arcStartAngle(d) { + return d.startAngle; + } + function d3_svg_arcEndAngle(d) { + return d.endAngle; + } + function d3_svg_line(projection) { + var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; + function line(data) { + var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); + function segment() { + segments.push("M", interpolate(projection(points), tension)); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join("") : null; + } + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; + } + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + step: d3_svg_lineStep, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.join("L"); + } + function d3_svg_lineLinearClosed(points) { + return d3_svg_lineLinear(points) + "Z"; + } + function d3_svg_lineStep(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); + if (n > 1) path.push("H", p[0]); + return path.join(""); + } + function d3_svg_lineStepBefore(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); + } + function d3_svg_lineStepAfter(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); + } + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); + } + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + } + } + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + } + return path; + } + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); + } + return tangents; + } + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push("L", pi); + return path.join(""); + } + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBasisClosed(points) { + var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); + } + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + } + var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); + } + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); + } + function d3_svg_lineFiniteDifferences(points) { + var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; + } + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([ s || 0, m[i] * s || 0 ]); + } + return tangents; + } + function d3_svg_lineMonotone(points) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); + } + d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; + }; + function d3_svg_lineRadial(points) { + var point, i = -1, n = points.length, r, a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; + } + function d3_svg_area(projection) { + var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; + function area(data) { + var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { + return x; + } : d3_functor(x1), fy1 = y0 === y1 ? function() { + return y; + } : d3_functor(y1), x, y; + function segment() { + segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); + points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + if (points0.length) segment(); + return segments.length ? segments.join("") : null; + } + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? "M" : "L"; + return area; + }; + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + return area; + } + d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; + d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + d3.svg.area = function() { + return d3_svg_area(d3_identity); + }; + d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; + }; + d3.svg.chord = function() { + var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function chord(d, i) { + var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); + return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; + } + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [ r * Math.cos(a0), r * Math.sin(a0) ], + p1: [ r * Math.cos(a1), r * Math.sin(a1) ] + }; + } + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + function arc(r, p, a) { + return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + } + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; + } + d3.svg.diagonal = function() { + var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; + function diagonal(d, i) { + var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { + x: p0.x, + y: m + }, { + x: p3.x, + y: m + }, p3 ]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + return diagonal; + }; + function d3_svg_diagonalProjection(d) { + return [ d.x, d.y ]; + } + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; + return [ r * Math.cos(a), r * Math.sin(a) ]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); + } + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + return symbol; + }; + function d3_svg_symbolSize() { + return 64; + } + function d3_svg_symbolType() { + return "circle"; + } + function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; + } + var d3_svg_symbols = d3.map({ + circle: d3_svg_symbolCircle, + cross: function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; + }, + diamond: function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; + }, + square: function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; + } + }); + d3.svg.symbolTypes = d3_svg_symbols.keys(); + var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); + function d3_transition(groups, id) { + d3_subclass(groups, d3_transitionPrototype); + groups.id = id; + return groups; + } + var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit; + d3_transitionPrototype.call = d3_selectionPrototype.call; + d3_transitionPrototype.empty = d3_selectionPrototype.empty; + d3_transitionPrototype.node = d3_selectionPrototype.node; + d3_transitionPrototype.size = d3_selectionPrototype.size; + d3.transition = function(selection) { + return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); + }; + d3.transition.prototype = d3_transitionPrototype; + d3_transitionPrototype.select = function(selector) { + var id = this.id, subgroups = [], subgroup, subnode, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, id, node.__transition__[id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + transition = node.__transition__[id]; + subnodes = selector.call(node, node.__data__, i, j); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o; ) { + if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition); + subgroup.push(subnode); + } + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_transition(subgroups, this.id); + }; + d3_transitionPrototype.tween = function(name, tween) { + var id = this.id; + if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); + return d3_selection_each(this, tween == null ? function(node) { + node.__transition__[id].tween.remove(name); + } : function(node) { + node.__transition__[id].tween.set(name, tween); + }); + }; + function d3_transition_tween(groups, name, value, tween) { + var id = groups.id; + return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); + } : (value = tween(value), function(node) { + node.__transition__[id].tween.set(name, value); + })); + } + d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrTween(b) { + return b == null ? attrNull : (b += "", function() { + var a = this.getAttribute(name), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttribute(name, i(t)); + }); + }); + } + function attrTweenNS(b) { + return b == null ? attrNullNS : (b += "", function() { + var a = this.getAttributeNS(name.space, name.local), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttributeNS(name.space, name.local, i(t)); + }); + }); + } + return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { + this.setAttribute(name, f(t)); + }; + } + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + }; + } + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + priority = ""; + } + function styleNull() { + this.style.removeProperty(name); + } + function styleString(b) { + return b == null ? styleNull : (b += "", function() { + var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; + return a !== b && (i = d3_interpolate(a, b), function(t) { + this.style.setProperty(name, i(t), priority); + }); + }); + } + return d3_transition_tween(this, "style." + name, value, styleString); + }; + d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + function styleTween(d, i) { + var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { + this.style.setProperty(name, f(t), priority); + }; + } + return this.tween("style." + name, styleTween); + }; + d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, "text", value, d3_transition_text); + }; + function d3_transition_text(b) { + if (b == null) b = ""; + return function() { + this.textContent = b; + }; + } + d3_transitionPrototype.remove = function() { + return this.each("end.transition", function() { + var p; + if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this); + }); + }; + d3_transitionPrototype.ease = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].ease; + if (typeof value !== "function") value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { + node.__transition__[id].ease = value; + }); + }; + d3_transitionPrototype.delay = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].delay; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].delay = +value.call(node, node.__data__, i, j); + } : (value = +value, function(node) { + node.__transition__[id].delay = value; + })); + }; + d3_transitionPrototype.duration = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].duration; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j)); + } : (value = Math.max(1, value), function(node) { + node.__transition__[id].duration = value; + })); + }; + d3_transitionPrototype.each = function(type, listener) { + var id = this.id; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node.__transition__[id]; + type.call(node, node.__data__, i, j); + }); + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } else { + d3_selection_each(this, function(node) { + var transition = node.__transition__[id]; + (transition.event || (transition.event = d3.dispatch("start", "end"))).on(type, listener); + }); + } + return this; + }; + d3_transitionPrototype.transition = function() { + var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if (node = group[i]) { + transition = Object.create(node.__transition__[id0]); + transition.delay += transition.duration; + d3_transitionNode(node, i, id1, transition); + } + subgroup.push(node); + } + } + return d3_transition(subgroups, id1); + }; + function d3_transitionNode(node, i, id, inherit) { + var lock = node.__transition__ || (node.__transition__ = { + active: 0, + count: 0 + }), transition = lock[id]; + if (!transition) { + var time = inherit.time; + transition = lock[id] = { + tween: new d3_Map(), + time: time, + ease: inherit.ease, + delay: inherit.delay, + duration: inherit.duration + }; + ++lock.count; + d3.timer(function(elapsed) { + var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = []; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + transition.event && transition.event.start.call(node, d, i); + transition.tween.forEach(function(key, value) { + if (value = value.call(node, d, i)) { + tweened.push(value); + } + }); + d3.timer(function() { + timer.c = tick(elapsed || 1) ? d3_true : tick; + return 1; + }, 0, time); + } + function tick(elapsed) { + if (lock.active !== id) return stop(); + var t = elapsed / duration, e = ease(t), n = tweened.length; + while (n > 0) { + tweened[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, d, i); + return stop(); + } + } + function stop() { + if (--lock.count) delete lock[id]; else delete node.__transition__; + return 1; + } + }, 0, time); + } + } + d3.svg.axis = function() { + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); + var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickTransform; + var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), + d3.transition(path)); + tickEnter.append("line"); + tickEnter.append("text"); + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); + switch (orient) { + case "bottom": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", innerTickSize); + textEnter.attr("y", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", 0).attr("y2", innerTickSize); + textUpdate.attr("x", 0).attr("y", Math.max(innerTickSize, 0) + tickPadding); + text.attr("dy", ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + outerTickSize + "V0H" + range[1] + "V" + outerTickSize); + break; + } + + case "top": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", -innerTickSize); + textEnter.attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); + textUpdate.attr("x", 0).attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + text.attr("dy", "0em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + -outerTickSize + "V0H" + range[1] + "V" + -outerTickSize); + break; + } + + case "left": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", -innerTickSize); + textEnter.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", -innerTickSize).attr("y2", 0); + textUpdate.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "end"); + pathUpdate.attr("d", "M" + -outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + -outerTickSize); + break; + } + + case "right": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", innerTickSize); + textEnter.attr("x", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", innerTickSize).attr("y2", 0); + textUpdate.attr("x", Math.max(innerTickSize, 0) + tickPadding).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "start"); + pathUpdate.attr("d", "M" + outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + outerTickSize); + break; + } + } + if (scale1.rangeBand) { + var x = scale1, dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { + return x(d) + dx; + }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1); + } + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale1); + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { + return "translate(" + x(d) + ",0)"; + }); + } + function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { + return "translate(0," + y(d) + ")"; + }); + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0]; + function brush(g) { + g.each(function() { + var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); + var background = g.selectAll(".background").data([ 0 ]); + background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); + g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move"); + var resize = g.selectAll(".resize").data(resizes, d3_identity); + resize.exit().remove(); + resize.enter().append("g").attr("class", function(d) { + return "resize " + d; + }).style("cursor", function(d) { + return d3_svg_brushCursor[d]; + }).append("rect").attr("x", function(d) { + return /[ew]$/.test(d) ? -3 : null; + }).attr("y", function(d) { + return /^[ns]/.test(d) ? -3 : null; + }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); + resize.style("display", brush.empty() ? "none" : null); + var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range; + if (x) { + range = d3_scaleRange(x); + backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); + redrawX(gUpdate); + } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); + redrawY(gUpdate); + } + redraw(gUpdate); + }); + } + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), extent1 = { + x: xExtent, + y: yExtent, + i: xExtentDomain, + j: yExtentDomain + }, extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.brush", function() { + xExtentDomain = extent0.i; + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({ + type: "brushstart" + }); + }).tween("brush:brush", function() { + var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({ + type: "brush", + mode: "resize" + }); + }; + }).each("end.brush", function() { + xExtentDomain = extent1.i; + yExtentDomain = extent1.j; + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + }); + } else { + event_({ + type: "brushstart" + }); + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + } + }); + }; + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; + }); + } + function redrawX(g) { + g.select(".extent").attr("x", xExtent[0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); + } + function redrawY(g) { + g.select(".extent").attr("y", yExtent[0]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); + } + function brushstart() { + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset; + var w = d3.select(d3_window).on("keydown.brush", keydown).on("keyup.brush", keyup); + if (d3.event.changedTouches) { + w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); + } else { + w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); + } + g.interrupt().selectAll("*").interrupt(); + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); + offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } else if (d3.event.altKey) center = origin.slice(); + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + event_({ + type: "brushstart" + }); + brushmove(); + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); + } + } + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); + } + } + function brushmove() { + var point = d3.mouse(target), moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ]; + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: "brush", + mode: dragging ? "move" : "resize" + }); + } + } + function move1(point, scale, i) { + var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; + if (dragging) { + max = (min += position) + size; + } else { + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); + dragRestore(); + event_({ + type: "brushend" + }); + } + } + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.clamp = function(z) { + if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null; + if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + x0 = xExtentDomain[0], x1 = xExtentDomain[1]; + } else { + x0 = xExtent[0], x1 = xExtent[1]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + if (yExtentDomain) { + y0 = yExtentDomain[0], y1 = yExtentDomain[1]; + } else { + y0 = yExtent[0], y1 = yExtent[1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; + } + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + xExtentDomain = [ x0, x1 ]; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ]; + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + yExtentDomain = [ y0, y1 ]; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ]; + } + return brush; + }; + brush.clear = function() { + if (!brush.empty()) { + xExtent = [ 0, 0 ], yExtent = [ 0, 0 ]; + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + brush.empty = function() { + return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1]; + }; + return d3.rebind(brush, event, "on"); + }; + var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" + }; + var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; + var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; + var d3_time_formatUtc = d3_time_format.utc; + var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); + d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3_time.second = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, function(date) { + return date.getSeconds(); + }); + d3_time.seconds = d3_time.second.range; + d3_time.seconds.utc = d3_time.second.utc.range; + d3_time.minute = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, function(date) { + return date.getMinutes(); + }); + d3_time.minutes = d3_time.minute.range; + d3_time.minutes.utc = d3_time.minute.utc.range; + d3_time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, function(date) { + return date.getHours(); + }); + d3_time.hours = d3_time.hour.range; + d3_time.hours.utc = d3_time.hour.utc.range; + d3_time.month = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; + }, function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, function(date) { + return date.getMonth(); + }); + d3_time.months = d3_time.month.range; + d3_time.months.utc = d3_time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); + } + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + function tickMethod(extent, count) { + var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) { + return d / 31536e6; + }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + } + scale.nice = function(interval, skip) { + var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval); + if (method) interval = method[0], skip = method[1]; + function skipped(date) { + return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; + } + return scale.domain(d3_scale_nice(domain, skip > 1 ? { + floor: function(date) { + while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); + return date; + } + } : interval)); + }; + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ { + range: interval + }, skip ]; + if (method) interval = method[0], skip = method[1]; + return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; + var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ]; + var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) { + return d.getMilliseconds(); + } ], [ ":%S", function(d) { + return d.getSeconds(); + } ], [ "%I:%M", function(d) { + return d.getMinutes(); + } ], [ "%I %p", function(d) { + return d.getHours(); + } ], [ "%a %d", function(d) { + return d.getDay() && d.getDate() != 1; + } ], [ "%b %d", function(d) { + return d.getDate() != 1; + } ], [ "%B", function(d) { + return d.getMonth(); + } ], [ "%Y", d3_true ] ]); + var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { + return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); + }, + floor: d3_identity, + ceil: d3_identity + }; + d3_time_scaleLocalMethods.year = d3_time.year; + d3_time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); + }; + var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [ m[0].utc, m[1] ]; + }); + var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) { + return d.getUTCMilliseconds(); + } ], [ ":%S", function(d) { + return d.getUTCSeconds(); + } ], [ "%I:%M", function(d) { + return d.getUTCMinutes(); + } ], [ "%I %p", function(d) { + return d.getUTCHours(); + } ], [ "%a %d", function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } ], [ "%b %d", function(d) { + return d.getUTCDate() != 1; + } ], [ "%B", function(d) { + return d.getUTCMonth(); + } ], [ "%Y", d3_true ] ]); + d3_time_scaleUtcMethods.year = d3_time.year.utc; + d3_time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); + }; + d3.text = d3_xhrType(function(request) { + return request.responseText; + }); + d3.json = function(url, callback) { + return d3_xhr(url, "application/json", d3_json, callback); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3_xhr(url, "text/html", d3_html, callback); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = d3_xhrType(function(request) { + return request.responseXML; + }); + if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; + this.d3 = d3; +}(); \ No newline at end of file diff --git a/platforms/browser/www/lib/d3/d3.min.js b/platforms/browser/www/lib/d3/d3.min.js new file mode 100644 index 00000000..88550ae5 --- /dev/null +++ b/platforms/browser/www/lib/d3/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function r(n){return n.length}function u(n){for(var t=1;n*t%1;)t*=10;return t}function i(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function o(){}function a(n){return ia+n in this}function c(n){return n=ia+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function l(){var n=0;for(var t in this)t.charCodeAt(0)===oa&&++n;return n}function f(){for(var n in this)if(n.charCodeAt(0)===oa)return!1;return!0}function h(){}function g(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function p(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=aa.length;r>e;++e){var u=aa[e]+t;if(u in n)return u}}function v(){}function d(){}function m(n){function t(){for(var t,r=e,u=-1,i=r.length;++ue;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function U(n){return sa(n,da),n}function j(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t0&&(n=n.substring(0,a));var s=ya.get(n);return s&&(n=s,c=Y),a?t?u:r:t?v:i}function O(n,t){return function(e){var r=Zo.event;Zo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Zo.event=r}}}function Y(n,t){var e=O(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function I(){var n=".dragsuppress-"+ ++Ma,t="click"+n,e=Zo.select(Wo).on("touchmove"+n,y).on("dragstart"+n,y).on("selectstart"+n,y);if(xa){var r=Bo.style,u=r[xa];r[xa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),xa&&(r[xa]=u),i&&(e.on(t,function(){y(),o()},!0),setTimeout(o,0))}}function Z(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>_a&&(Wo.scrollX||Wo.scrollY)){e=Zo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();_a=!(u.f||u.e),e.remove()}return _a?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function V(){return Zo.event.changedTouches[0].identifier}function X(){return Zo.event.target}function $(){return Wo}function B(n){return n>0?1:0>n?-1:0}function W(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function J(n){return n>1?0:-1>n?ba:Math.acos(n)}function G(n){return n>1?Sa:-1>n?-Sa:Math.asin(n)}function K(n){return((n=Math.exp(n))-1/n)/2}function Q(n){return((n=Math.exp(n))+1/n)/2}function nt(n){return((n=Math.exp(2*n))-1)/(n+1)}function tt(n){return(n=Math.sin(n/2))*n}function et(){}function rt(n,t,e){return this instanceof rt?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof rt?new rt(n.h,n.s,n.l):mt(""+n,yt,rt):new rt(n,t,e)}function ut(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new gt(u(n+120),u(n),u(n-120))}function it(n,t,e){return this instanceof it?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof it?new it(n.h,n.c,n.l):n instanceof at?st(n.l,n.a,n.b):st((n=xt((n=Zo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new it(n,t,e)}function ot(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new at(e,Math.cos(n*=Aa)*t,Math.sin(n)*t)}function at(n,t,e){return this instanceof at?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof at?new at(n.l,n.a,n.b):n instanceof it?ot(n.l,n.c,n.h):xt((n=gt(n)).r,n.g,n.b):new at(n,t,e)}function ct(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=lt(u)*ja,r=lt(r)*Ha,i=lt(i)*Fa,new gt(ht(3.2404542*u-1.5371385*r-.4985314*i),ht(-.969266*u+1.8760108*r+.041556*i),ht(.0556434*u-.2040259*r+1.0572252*i))}function st(n,t,e){return n>0?new it(Math.atan2(e,t)*Ca,Math.sqrt(t*t+e*e),n):new it(0/0,0/0,n)}function lt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function ft(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function ht(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function gt(n,t,e){return this instanceof gt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof gt?new gt(n.r,n.g,n.b):mt(""+n,gt,ut):new gt(n,t,e)}function pt(n){return new gt(n>>16,255&n>>8,255&n)}function vt(n){return pt(n)+""}function dt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(_t(u[0]),_t(u[1]),_t(u[2]))}return(i=Ia.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.substring(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function yt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new rt(r,u,c)}function xt(n,t,e){n=Mt(n),t=Mt(t),e=Mt(e);var r=ft((.4124564*n+.3575761*t+.1804375*e)/ja),u=ft((.2126729*n+.7151522*t+.072175*e)/Ha),i=ft((.0193339*n+.119192*t+.9503041*e)/Fa);return at(116*u-16,500*(r-u),200*(u-i))}function Mt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function _t(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function bt(n){return"function"==typeof n?n:function(){return n}}function wt(n){return n}function St(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),kt(t,e,n,r)}}function kt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Zo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Wo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Zo.event;Zo.event=n;try{o.progress.call(i,c)}finally{Zo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Xo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Zo.rebind(i,o,"on"),null==r?i:i.get(Et(r))}function Et(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function At(){var n=Ct(),t=Nt()-n;t>24?(isFinite(t)&&(clearTimeout($a),$a=setTimeout(At,t)),Xa=0):(Xa=1,Wa(At))}function Ct(){var n=Date.now();for(Ba=Za;Ba;)n>=Ba.t&&(Ba.f=Ba.c(n-Ba.t)),Ba=Ba.n;return n}function Nt(){for(var n,t=Za,e=1/0;t;)t.f?t=n?n.n=t.n:Za=t.n:(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Tt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r?function(n){for(var t=n.length,u=[],i=0,o=r[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=r[i=(i+1)%r.length];return u.reverse().join(e)}:wt;return function(n){var e=Ga.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"",c=e[4]||"",s=e[5],l=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1;switch(h&&(h=+h.substring(1)),(s||"0"===r&&"="===o)&&(s=r="0",o="=",f&&(l-=Math.floor((l-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=Ka.get(g)||qt;var y=s&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}}}function qt(n){return n+""}function Rt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Dt(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new nc(e-1)),1),e}function i(n,e){return t(n=new nc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{nc=Rt;var r=new Rt;return r._=n,o(r,t,e)}finally{nc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Pt(n);return c.floor=c,c.round=Pt(r),c.ceil=Pt(u),c.offset=Pt(i),c.range=a,n}function Pt(n){return function(t,e){try{nc=Rt;var r=new Rt;return r._=t,n(r,e)._}finally{nc=Date}}}function Ut(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++aa;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in ec?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.substring(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.substring(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.substring(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.substring(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function s(n,t,r){return e(n,C.X.toString(),t,r)}function l(n,t,e){var r=x.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{nc=Rt;var t=new nc;return t._=n,r(t)}finally{nc=Date}}var r=t(n);return e.parse=function(n){try{nc=Rt;var t=r.parse(n);return t&&t._}finally{nc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=re;var x=Zo.map(),M=Ht(v),_=Ft(v),b=Ht(d),w=Ft(d),S=Ht(m),k=Ft(m),E=Ht(y),A=Ft(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return jt(n.getDate(),t,2)},e:function(n,t){return jt(n.getDate(),t,2)},H:function(n,t){return jt(n.getHours(),t,2)},I:function(n,t){return jt(n.getHours()%12||12,t,2)},j:function(n,t){return jt(1+Qa.dayOfYear(n),t,3)},L:function(n,t){return jt(n.getMilliseconds(),t,3)},m:function(n,t){return jt(n.getMonth()+1,t,2)},M:function(n,t){return jt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return jt(n.getSeconds(),t,2)},U:function(n,t){return jt(Qa.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return jt(Qa.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return jt(n.getFullYear()%100,t,2)},Y:function(n,t){return jt(n.getFullYear()%1e4,t,4)},Z:te,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Wt,e:Wt,H:Gt,I:Gt,j:Jt,L:ne,m:Bt,M:Kt,p:l,S:Qt,U:Yt,w:Ot,W:It,x:c,X:s,y:Vt,Y:Zt,Z:Xt,"%":ee};return t}function jt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Ht(n){return new RegExp("^(?:"+n.map(Zo.requote).join("|")+")","i")}function Ft(n){for(var t=new o,e=-1,r=n.length;++e68?1900:2e3)}function Bt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Wt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Jt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Gt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Kt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Qt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ne(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function te(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(ua(t)/60),u=ua(t)%60;return e+jt(r,"0",2)+jt(u,"0",2)}function ee(n,t,e){uc.lastIndex=0;var r=uc.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function re(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,c=Math.cos(t),s=Math.sin(t),l=i*s,f=u*c+l*Math.cos(a),h=l*o*Math.sin(a);lc.add(Math.atan2(h,f)),r=n,u=c,i=s}var t,e,r,u,i;fc.point=function(o,a){fc.point=n,r=(t=o)*Aa,u=Math.cos(a=(e=a)*Aa/2+ba/4),i=Math.sin(a)},fc.lineEnd=function(){n(t,e)}}function le(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function fe(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function he(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function ge(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function pe(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function ve(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function de(n){return[Math.atan2(n[1],n[0]),G(n[2])]}function me(n,t){return ua(n[0]-t[0])a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new Ee(e,n,null,!0),s=new Ee(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new Ee(r,n,null,!1),s=new Ee(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),ke(i),ke(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ke(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Ce))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=Zo.merge(g);var n=Le(m,p);g.length?(_||(i.polygonStart(),_=!0),Se(g,ze,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ne(),M=t(x),_=!1;return y}}function Ce(n){return n.length>1}function Ne(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:v,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function ze(n,t){return((n=n.x)[0]<0?n[1]-Sa-ka:Sa-n[1])-((t=t.x)[0]<0?t[1]-Sa-ka:Sa-t[1])}function Le(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;lc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ba/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ba/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>ba,k=p*x;if(lc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*wa:_,S^h>=e^m>=e){var E=he(le(f),le(n));ve(E);var A=he(u,E);ve(A);var C=(S^_>=0?-1:1)*G(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-ka>i||ka>i&&0>lc)^1&o}function Te(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ba:-ba,c=ua(i-e);ua(c-ba)0?Sa:-Sa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ba&&(ua(e-u)ka?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Re(n,t,e,r){var u;if(null==n)u=e*Sa,r.point(-ba,u),r.point(0,u),r.point(ba,u),r.point(ba,0),r.point(ba,-u),r.point(0,-u),r.point(-ba,-u),r.point(-ba,0),r.point(-ba,u);else if(ua(n[0]-t[0])>ka){var i=n[0]i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ba:-ba),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(me(e,g)||me(p,g))&&(p[0]+=ka,p[1]+=ka,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&me(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=le(n),u=le(t),o=[1,0,0],a=he(r,u),c=fe(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=he(o,a),p=pe(o,f),v=pe(a,h);ge(p,v);var d=g,m=fe(p,d),y=fe(d,d),x=m*m-y*(fe(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=pe(d,(-m-M)/y);if(ge(_,p),_=de(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ua(A-ba)A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ua(_[0]-w)ba^(w<=_[0]&&_[0]<=S)){var z=pe(d,(-m+M)/y);return ge(z,p),[_,de(z)]}}}function u(t,e){var r=o?n:ba-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ua(i)>ka,c=sr(n,6*Aa);return Ae(t,e,c,o?[0,-n]:[-ba,n-ba])}function Pe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function Ue(n,t,e,r){function u(r,u){return ua(r[0]-n)0?0:3:ua(r[0]-e)0?2:1:ua(r[1]-t)0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,s=a[0];c>o;++o)i=a[o],s[1]<=r?i[1]>r&&W(s,i,n)>0&&++t:i[1]<=r&&W(s,i,n)<0&&--t,s=i;return 0!==t}function s(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function l(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){l(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-kc,Math.min(kc,n)),t=Math.max(-kc,Math.min(kc,t));var e=l(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=Ne(),C=Pe(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Zo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),u&&Se(v,i,t,s,a),a.polygonEnd()),v=d=m=null}};return N}}function je(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function He(n){var t=0,e=ba/3,r=tr(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ba/180,e=n[1]*ba/180):[180*(t/ba),180*(e/ba)]},u}function Fe(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,G((i-(n*n+e*e)*u*u)/(2*u))]},e}function Oe(){function n(n,t){Ac+=u*n-r*t,r=n,u=t}var t,e,r,u;Tc.point=function(i,o){Tc.point=n,t=r=i,e=u=o},Tc.lineEnd=function(){n(t,e)}}function Ye(n,t){Cc>n&&(Cc=n),n>zc&&(zc=n),Nc>t&&(Nc=t),t>Lc&&(Lc=t)}function Ie(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Ze(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Ze(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Ze(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Ve(n,t){pc+=n,vc+=t,++dc}function Xe(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);mc+=o*(t+n)/2,yc+=o*(e+r)/2,xc+=o,Ve(t=n,e=r)}var t,e;Rc.point=function(r,u){Rc.point=n,Ve(t=r,e=u)}}function $e(){Rc.point=Ve}function Be(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);mc+=o*(r+n)/2,yc+=o*(u+t)/2,xc+=o,o=u*n-r*t,Mc+=o*(r+n),_c+=o*(u+t),bc+=3*o,Ve(r=n,u=t)}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,Ve(t=r=i,e=u=o)},Rc.lineEnd=function(){n(t,e)}}function We(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,wa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:v};return a}function Je(n){function t(n){return(a?r:e)(n)}function e(t){return Qe(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=le([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ua(ua(w)-1)i||ua((y*z+x*L)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Aa),a=16; +return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function Ge(n){var t=Je(function(t,e){return n([t*Ca,e*Ca])});return function(n){return er(t(n))}}function Ke(n){this.stream=n}function Qe(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function nr(n){return tr(function(){return n})()}function tr(n){function t(n){return n=a(n[0]*Aa,n[1]*Aa),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ca,n[1]*Ca]}function r(){a=je(o=ir(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=Je(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Sc,_=wt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=er(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Sc):De((b=+n)*Aa),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Ue(n[0][0],n[0][1],n[1][0],n[1][1]):wt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Aa,d=n[1]%360*Aa,r()):[v*Ca,d*Ca]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Aa,y=n[1]%360*Aa,x=n.length>2?n[2]%360*Aa:0,r()):[m*Ca,y*Ca,x*Ca]},Zo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function er(n){return Qe(n,function(t,e){n.point(t*Aa,e*Aa)})}function rr(n,t){return[n,t]}function ur(n,t){return[n>ba?n-wa:-ba>n?n+wa:n,t]}function ir(n,t,e){return n?t||e?je(ar(n),cr(t,e)):ar(n):t||e?cr(t,e):ur}function or(n){return function(t,e){return t+=n,[t>ba?t-wa:-ba>t?t+wa:t,e]}}function ar(n){var t=or(n);return t.invert=or(-n),t}function cr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),G(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),G(l*r-a*u)]},e}function sr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=lr(e,u),i=lr(e,i),(o>0?i>u:u>i)&&(u+=o*wa)):(u=n+o*wa,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=de([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function lr(n,t){var e=le(t);e[0]-=n,ve(e);var r=J(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-ka)%(2*Math.PI)}function fr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function hr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function gr(n){return n.source}function pr(n){return n.target}function vr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(tt(r-t)+u*o*tt(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ca,Math.atan2(o,Math.sqrt(r*r+u*u))*Ca]}:function(){return[n*Ca,t*Ca]};return p.distance=h,p}function dr(){function n(n,u){var i=Math.sin(u*=Aa),o=Math.cos(u),a=ua((n*=Aa)-t),c=Math.cos(a);Dc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Pc.point=function(u,i){t=u*Aa,e=Math.sin(i*=Aa),r=Math.cos(i),Pc.point=n},Pc.lineEnd=function(){Pc.point=Pc.lineEnd=v}}function mr(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function yr(n,t){function e(n,t){o>0?-Sa+ka>t&&(t=-Sa+ka):t>Sa-ka&&(t=Sa-ka);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ba/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=B(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Sa]},e):Mr}function xr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ua(u)u;u++){for(;r>1&&W(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function Er(n,t){return n[0]-t[0]||n[1]-t[1]}function Ar(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Cr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function Nr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function zr(){Gr(this),this.edge=this.site=this.circle=null}function Lr(n){var t=Bc.pop()||new zr;return t.site=n,t}function Tr(n){Yr(n),Vc.remove(n),Bc.push(n),Gr(n)}function qr(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Tr(n);for(var c=i;c.circle&&ua(e-c.circle.x)l;++l)s=a[l],c=a[l-1],Br(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=Xr(c.site,s.site,null,u),Or(c),Or(s)}function Rr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Vc._;a;)if(r=Dr(a,o)-i,r>ka)a=a.L;else{if(u=i-Pr(a,o),!(u>ka)){r>-ka?(t=a.P,e=a):u>-ka?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Lr(n);if(Vc.insert(t,c),t||e){if(t===e)return Yr(t),e=Lr(t.site),Vc.insert(c,e),c.edge=e.edge=Xr(t.site,c.site),Or(t),Or(e),void 0;if(!e)return c.edge=Xr(t.site,c.site),void 0;Yr(t),Yr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};Br(e.edge,s,p,M),c.edge=Xr(s,n,null,M),e.edge=Xr(n,p,null,M),Or(t),Or(e)}}function Dr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function Pr(n,t){var e=n.N;if(e)return Dr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ur(n){this.site=n,this.edges=[]}function jr(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Zc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(ua(r-t)>ka||ua(u-e)>ka)&&(a.splice(o,0,new Wr($r(i.site,l,ua(r-f)ka?{x:f,y:ua(t-f)ka?{x:ua(e-p)ka?{x:h,y:ua(t-h)ka?{x:ua(e-g)=-Ea)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Wc.pop()||new Fr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=$c._;x;)if(m.yd||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.yg){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.xi&&(u=t.substring(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:lu(e,r)})),i=Kc.lastIndex;return ir;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function hu(n,t){for(var e,r=Zo.interpolators.length;--r>=0&&!(e=Zo.interpolators[r](n,t)););return e}function gu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(hu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function pu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function vu(n){return function(t){return 1-n(1-t)}}function du(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function mu(n){return n*n}function yu(n){return n*n*n}function xu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Mu(n){return function(t){return Math.pow(t,n)}}function _u(n){return 1-Math.cos(n*Sa)}function bu(n){return Math.pow(2,10*(n-1))}function wu(n){return 1-Math.sqrt(1-n*n)}function Su(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/wa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*wa/t)}}function ku(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Eu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Au(n,t){n=Zo.hcl(n),t=Zo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ot(e+i*n,r+o*n,u+a*n)+""}}function Cu(n,t){n=Zo.hsl(n),t=Zo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ut(e+i*n,r+o*n,u+a*n)+""}}function Nu(n,t){n=Zo.lab(n),t=Zo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function zu(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Lu(n){var t=[n.a,n.b],e=[n.c,n.d],r=qu(t),u=Tu(t,e),i=qu(Ru(e,t,-u))||0;t[0]*e[1]180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:lu(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:lu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:lu(g[0],p[0])},{i:e-2,x:lu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i=0;)e.push(u[r])}function Bu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++oe;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function ii(n){return n.reduce(oi,0)}function oi(n,t){return n+t[1]}function ai(n,t){return ci(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ci(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function si(n){return[Zo.min(n),Zo.max(n)]}function li(n,t){return n.value-t.value}function fi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function hi(n,t){n._pack_next=t,t._pack_prev=n}function gi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function pi(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(vi),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],yi(r,u,i),t(i),fi(r,i),r._pack_prev=i,fi(i,u),u=r._pack_next,o=3;s>o;o++){yi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(gi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!gi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.ro;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(di)}}function vi(n){n._pack_next=n._pack_prev=n}function di(n){delete n._pack_next,delete n._pack_prev}function mi(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Si(n,t,e){return n.a.parent===t.parent?n.a:e}function ki(n){return 1+Zo.max(n,function(n){return n.y})}function Ei(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ai(n){var t=n.children;return t&&t.length?Ai(t[0]):n}function Ci(n){var t,e=n.children;return e&&(t=e.length)?Ci(e[t-1]):n}function Ni(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function zi(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Li(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ti(n){return n.rangeExtent?n.rangeExtent():Li(n.range())}function qi(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Di(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function Pi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Pi:qi,c=r?Uu:Pu;return o=u(n,t,c,e),a=u(t,n,c,hu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(zu)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Oi(n,t)},i.tickFormat=function(t,e){return Yi(n,t,e)},i.nice=function(t){return Hi(n,t),u()},i.copy=function(){return Ui(n,t,e,r)},u()}function ji(n,t){return Zo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Hi(n,t){return Ri(n,Di(Fi(n,t)[2]))}function Fi(n,t){null==t&&(t=10);var e=Li(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Oi(n,t){return Zo.range.apply(Zo,Fi(n,t))}function Yi(n,t,e){var r=Fi(n,t);if(e){var u=Ga.exec(e);if(u.shift(),"s"===u[8]){var i=Zo.formatPrefix(Math.max(ua(r[0]),ua(r[1])));return u[7]||(u[7]="."+Ii(i.scale(r[2]))),u[8]="f",e=Zo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Zi(u[8],r)),e=u.join("")}else e=",."+Ii(r[2])+"f";return Zo.format(e)}function Ii(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Zi(n,t){var e=Ii(t[2]);return n in ls?Math.abs(e-Ii(Math.max(ua(t[0]),ua(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Vi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Li(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++0;h--)o.push(i(s)*h);for(s=0;o[s]c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=Zo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Vi(n.copy(),t,e,r)},ji(o,n)}function Xi(n,t,e){function r(t){return n(u(t))}var u=$i(t),i=$i(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Oi(e,n)},r.tickFormat=function(n,t){return Yi(e,n,t)},r.nice=function(n){return r.domain(Hi(e,n))},r.exponent=function(o){return arguments.length?(u=$i(t=o),i=$i(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Xi(n.copy(),t,e)},ji(r,n)}function $i(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Bi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Zo.range(n.length).map(function(n){return t+e*n})}var u,i,a;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new o;for(var i,a=-1,c=r.length;++an?[0/0,0/0]:[n>0?o[n-1]:e[0],nt?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return Ji(n,t,e)},u()}function Gi(n,t){function e(e){return e>=e?t[Zo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Gi(n,t)},e}function Ki(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Oi(n,t)},t.tickFormat=function(t,e){return Yi(n,t,e)},t.copy=function(){return Ki(n)},t}function Qi(n){return n.innerRadius}function no(n){return n.outerRadius}function to(n){return n.startAngle}function eo(n){return n.endAngle}function ro(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=bt(e),p=bt(r);++f1&&u.push("H",r[0]),u.join("")}function ao(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function So(n){return n.length<3?uo(n):n[0]+ho(n,wo(n))}function ko(n){for(var t,e,r,u=-1,i=n.length;++ue?s():(u.active=e,i.event&&i.event.start.call(n,l,t),i.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),Zo.timer(function(){return p.c=c(r||1)?we:c,1},0,a),void 0)}function c(r){if(u.active!==e)return s();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a); +return o>=1?(i.event&&i.event.end.call(n,l,t),s()):void 0}function s(){return--u.count?delete u[e]:delete n.__transition__,1}var l=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ba,v=[];return p.t=h+a,r>=h?o(r-h):(p.c=o,void 0)},0,a)}}function Uo(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function jo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function Ho(n){return n.toISOString()}function Fo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Zo.bisect(Us,u);return i==Us.length?[t.year,Fi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Us[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Oo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Oo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Li(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Oo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Fo(n.copy(),t,e)},ji(r,n)}function Oo(n){return new Date(n)}function Yo(n){return JSON.parse(n.responseText)}function Io(n){var t=$o.createRange();return t.selectNode($o.body),t.createContextualFragment(n.responseText)}var Zo={version:"3.4.11"};Date.now||(Date.now=function(){return+new Date});var Vo=[].slice,Xo=function(n){return Vo.call(n)},$o=document,Bo=$o.documentElement,Wo=window;try{Xo(Bo.childNodes)[0].nodeType}catch(Jo){Xo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{$o.createElement("div").style.setProperty("opacity",0,"")}catch(Go){var Ko=Wo.Element.prototype,Qo=Ko.setAttribute,na=Ko.setAttributeNS,ta=Wo.CSSStyleDeclaration.prototype,ea=ta.setProperty;Ko.setAttribute=function(n,t){Qo.call(this,n,t+"")},Ko.setAttributeNS=function(n,t,e){na.call(this,n,t,e+"")},ta.setProperty=function(n,t,e){ea.call(this,n,t+"",e)}}Zo.ascending=n,Zo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Zo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ur&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ur&&(e=r)}return e},Zo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ue&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ue&&(e=r)}return e},Zo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i=e);)e=u=void 0;for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=e);)e=void 0;for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},Zo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i1&&(e=e.map(r)),e=e.filter(t),e.length?Zo.quantile(e.sort(n),.5):void 0};var ra=e(n);Zo.bisectLeft=ra.left,Zo.bisect=Zo.bisectRight=ra.right,Zo.bisector=function(t){return e(1===t.length?function(e,r){return n(t(e),r)}:t)},Zo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Zo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Zo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Zo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,t=Zo.min(arguments,r),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ua=Math.abs;Zo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,i=[],o=u(ua(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)i.push(r/o);else for(;(r=n+e*++a)=i.length)return r?r.call(u,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=i[c++],d=new o;++g=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Zo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Zo.set=function(n){var t=new h;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},i(h,{has:a,add:function(n){return this[ia+n]=!0,n},remove:function(n){return n=ia+n,n in this&&delete this[n]},values:s,size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===oa&&n.call(this,t.substring(1))}}),Zo.behavior={},Zo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Zo.event=null,Zo.requote=function(n){return n.replace(ca,"\\$&")};var ca=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},la=function(n,t){return t.querySelector(n)},fa=function(n,t){return t.querySelectorAll(n)},ha=Bo.matches||Bo[p(Bo,"matchesSelector")],ga=function(n,t){return ha.call(n,t)};"function"==typeof Sizzle&&(la=function(n,t){return Sizzle(n,t)[0]||null},fa=Sizzle,ga=Sizzle.matchesSelector),Zo.selection=function(){return ma};var pa=Zo.selection.prototype=[];pa.select=function(n){var t,e,r,u,i=[];n=b(n);for(var o=-1,a=this.length;++o=0&&(e=n.substring(0,t),n=n.substring(t+1)),va.hasOwnProperty(e)?{space:va[e],local:n}:n}},pa.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Zo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},pa.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=A(n)).length,u=-1;if(t=e.classList){for(;++ur){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(z(e,n[e],t));return this}if(2>r)return Wo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(z(n,t,e))},pa.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},pa.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},pa.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},pa.append=function(n){return n=T(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},pa.insert=function(n,t){return n=T(n),t=b(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},pa.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},pa.data=function(n,t){function e(n,e){var r,u,i,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new o,y=new o,x=[];for(r=-1;++rr;++r)p[r]=q(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,u,i=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return _(u)},pa.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},pa.sort=function(n){n=D.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},pa.size=function(){var n=0;return this.each(function(){++n}),n};var da=[];Zo.selection.enter=U,Zo.selection.enter.prototype=da,da.append=pa.append,da.empty=pa.empty,da.node=pa.node,da.call=pa.call,da.size=pa.size,da.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(F(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(F(n,t,e))};var ya=Zo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ya.forEach(function(n){"on"+n in $o&&ya.remove(n)});var xa="onselectstart"in $o?null:p(Bo.style,"userSelect"),Ma=0;Zo.mouse=function(n){return Z(n,x())};var _a=/WebKit/.test(Wo.navigator.userAgent)?-1:0;Zo.touches=function(n,t){return arguments.length<2&&(t=x().touches),t?Xo(t).map(function(t){var e=Z(n,t);return e.identifier=t.identifier,e}):[]},Zo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+s[0],y:r[1]+s[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Zo.event.target===f),g({type:"dragend"}))}var s,l=this,f=Zo.event.target,h=l.parentNode,g=e.of(l,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Zo.select(u()).on(i+d,a).on(o+d,c),y=I(),x=t(h,v);r?(s=r.apply(l,arguments),s=[s.x-x[0],s.y-x[1]]):s=[0,0],g({type:"dragstart"})}}var e=M(n,"drag","dragstart","dragend"),r=null,u=t(v,Zo.mouse,$,"mousemove","mouseup"),i=t(V,Zo.touch,X,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Zo.rebind(n,e,"on")};var ba=Math.PI,wa=2*ba,Sa=ba/2,ka=1e-6,Ea=ka*ka,Aa=ba/180,Ca=180/ba,Na=Math.SQRT2,za=2,La=4;Zo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=Q(v),o=i/(za*h)*(e*nt(Na*t+v)-K(v));return[r+o*s,u+o*l,i*e/Q(Na*t+v)]}return[r+n*s,u+n*l,i*Math.exp(Na*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+La*f)/(2*i*za*h),p=(c*c-i*i-La*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Na;return e.duration=1e3*y,e},Zo.behavior.zoom=function(){function n(n){n.on(A,s).on(Ra+".zoom",f).on("dblclick.zoom",h).on(z,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(x.range().map(function(n){return(n-S.x)/S.k}).map(x.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u(Zo.mouse(r),h),a(s)}function e(){f.on(C,null).on(N,null),g(l&&Zo.event.target===i),c(s)}var r=this,i=Zo.event.target,s=L.of(r,arguments),l=0,f=Zo.select(Wo).on(C,n).on(N,e),h=t(Zo.mouse(r)),g=I();H.call(r),o(s)}function l(){function n(){var n=Zo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Zo.event.target;Zo.select(t).on(M,i).on(_,f),b.push(t);for(var e=Zo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var s=n(),l=Date.now();if(1===s.length){if(500>l-m){var h=s[0],g=v[h.identifier];r(2*S.k),u(h,g),y(),a(p)}m=l}else if(s.length>1){var h=s[0],x=s[1],w=h[0]-x[0],k=h[1]-x[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Zo.touches(g),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=d&&Math.sqrt(l/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Zo.event.touches.length){for(var t=Zo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Zo.selectAll(b).on(x,null),w.on(A,s).on(z,l),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,x=".zoom-"+Zo.event.changedTouches[0].identifier,M="touchmove"+x,_="touchend"+x,b=[],w=Zo.select(g).on(A,null).on(z,e),k=I();H.call(g),e(),o(p)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Zo.mouse(this)),H.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),y(),r(Math.pow(2,.002*Ta())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Zo.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Zo.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,x,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=qa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=M(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Ss?Zo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Zo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?qa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,x=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},Zo.rebind(n,L,"on")};var Ta,qa=[0,1/0],Ra="onwheel"in $o?(Ta=function(){return-Zo.event.deltaY*(Zo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in $o?(Ta=function(){return Zo.event.wheelDelta},"mousewheel"):(Ta=function(){return-Zo.event.detail},"MozMousePixelScroll");Zo.color=et,et.prototype.toString=function(){return this.rgb()+""},Zo.hsl=rt;var Da=rt.prototype=new et;Da.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,this.l/n)},Da.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,n*this.l)},Da.rgb=function(){return ut(this.h,this.s,this.l)},Zo.hcl=it;var Pa=it.prototype=new et;Pa.brighter=function(n){return new it(this.h,this.c,Math.min(100,this.l+Ua*(arguments.length?n:1)))},Pa.darker=function(n){return new it(this.h,this.c,Math.max(0,this.l-Ua*(arguments.length?n:1)))},Pa.rgb=function(){return ot(this.h,this.c,this.l).rgb()},Zo.lab=at;var Ua=18,ja=.95047,Ha=1,Fa=1.08883,Oa=at.prototype=new et;Oa.brighter=function(n){return new at(Math.min(100,this.l+Ua*(arguments.length?n:1)),this.a,this.b)},Oa.darker=function(n){return new at(Math.max(0,this.l-Ua*(arguments.length?n:1)),this.a,this.b)},Oa.rgb=function(){return ct(this.l,this.a,this.b)},Zo.rgb=gt;var Ya=gt.prototype=new et;Ya.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new gt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new gt(u,u,u)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new gt(n*this.r,n*this.g,n*this.b)},Ya.hsl=function(){return yt(this.r,this.g,this.b)},Ya.toString=function(){return"#"+dt(this.r)+dt(this.g)+dt(this.b)};var Ia=Zo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ia.forEach(function(n,t){Ia.set(n,pt(t))}),Zo.functor=bt,Zo.xhr=St(wt),Zo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=kt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=s)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],s=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new h,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Zo.csv=Zo.dsv(",","text/csv"),Zo.tsv=Zo.dsv(" ","text/tab-separated-values"),Zo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=x().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return Z(n,r)};var Za,Va,Xa,$a,Ba,Wa=Wo[p(Wo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Zo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Va?Va.n=i:Za=i,Va=i,Xa||($a=clearTimeout($a),Xa=1,Wa(At))},Zo.timer.flush=function(){Ct(),Nt()},Zo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Ja=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Lt);Zo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Zo.round(n,zt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),Ja[8+e/3]};var Ga=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ka=Zo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Zo.round(n,zt(n,t))).toFixed(Math.max(0,Math.min(20,zt(n*(1+1e-15),t))))}}),Qa=Zo.time={},nc=Date;Rt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){tc.setUTCDate.apply(this._,arguments)},setDay:function(){tc.setUTCDay.apply(this._,arguments)},setFullYear:function(){tc.setUTCFullYear.apply(this._,arguments)},setHours:function(){tc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){tc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){tc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){tc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){tc.setUTCSeconds.apply(this._,arguments)},setTime:function(){tc.setTime.apply(this._,arguments)}};var tc=Date.prototype;Qa.year=Dt(function(n){return n=Qa.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Qa.years=Qa.year.range,Qa.years.utc=Qa.year.utc.range,Qa.day=Dt(function(n){var t=new nc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Qa.days=Qa.day.range,Qa.days.utc=Qa.day.utc.range,Qa.dayOfYear=function(n){var t=Qa.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=Qa[n]=Dt(function(n){return(n=Qa.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Qa[n+"s"]=e.range,Qa[n+"s"].utc=e.utc.range,Qa[n+"OfYear"]=function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)}}),Qa.week=Qa.sunday,Qa.weeks=Qa.sunday.range,Qa.weeks.utc=Qa.sunday.utc.range,Qa.weekOfYear=Qa.sundayOfYear;var ec={"-":"",_:" ",0:"0"},rc=/^\s*\d+/,uc=/^%/;Zo.locale=function(n){return{numberFormat:Tt(n),timeFormat:Ut(n)}};var ic=Zo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Zo.format=ic.numberFormat,Zo.geo={},ue.prototype={s:0,t:0,add:function(n){ie(n,this.t,oc),ie(oc.s,this.s,this),this.s?this.t+=oc.t:this.s=oc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oc=new ue;Zo.geo.stream=function(n,t){n&&ac.hasOwnProperty(n.type)?ac[n.type](n,t):oe(n,t)};var ac={Feature:function(n,t){oe(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*ba+n:n,fc.lineStart=fc.lineEnd=fc.point=v}};Zo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=le([t*Aa,e*Aa]);if(m){var u=he(m,r),i=[u[1],-u[0],0],o=he(i,u);ve(o),o=de(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ca*s,d=ua(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ca;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ca;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ua(r)>180?r+(r>0?360:-360):r}else v=n,d=e;fc.point(n,e),t(n,e)}function i(){fc.lineStart()}function o(){u(v,d),fc.lineEnd(),ua(y)>ka&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nlc?(l=-(h=180),f=-(g=90)):y>ka?g=90:-ka>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],Zo.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e); +for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),Zo.geo.centroid=function(n){hc=gc=pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,wc);var t=Mc,e=_c,r=bc,u=t*t+e*e+r*r;return Ea>u&&(t=mc,e=yc,r=xc,ka>gc&&(t=pc,e=vc,r=dc),u=t*t+e*e+r*r,Ea>u)?[0/0,0/0]:[Math.atan2(e,t)*Ca,G(r/Math.sqrt(u))*Ca]};var hc,gc,pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc={sphere:v,point:ye,lineStart:Me,lineEnd:_e,polygonStart:function(){wc.lineStart=be},polygonEnd:function(){wc.lineStart=Me}},Sc=Ae(we,Te,Re,[-ba,-ba/2]),kc=1e9;Zo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Zo.geo.conicEqualArea=function(){return He(Fe)}).raw=Fe,Zo.geo.albers=function(){return Zo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Zo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Zo.geo.albers(),o=Zo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Zo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+ka,f+.12*s+ka],[l-.214*s-ka,f+.234*s-ka]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+ka,f+.166*s+ka],[l-.115*s-ka,f+.234*s-ka]]).stream(c).point,n},n.scale(1070)};var Ec,Ac,Cc,Nc,zc,Lc,Tc={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Ac=0,Tc.lineStart=Oe},polygonEnd:function(){Tc.lineStart=Tc.lineEnd=Tc.point=v,Ec+=ua(Ac/2)}},qc={point:Ye,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Rc={point:Ve,lineStart:Xe,lineEnd:$e,polygonStart:function(){Rc.lineStart=Be},polygonEnd:function(){Rc.point=Ve,Rc.lineStart=Xe,Rc.lineEnd=$e}};Zo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Zo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Ec=0,Zo.geo.stream(n,u(Tc)),Ec},n.centroid=function(n){return pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,u(Rc)),bc?[Mc/bc,_c/bc]:xc?[mc/xc,yc/xc]:dc?[pc/dc,vc/dc]:[0/0,0/0]},n.bounds=function(n){return zc=Lc=-(Cc=Nc=1/0),Zo.geo.stream(n,u(qc)),[[Cc,Nc],[zc,Lc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Ge(n):wt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Ie:new We(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Zo.geo.albersUsa()).context(null)},Zo.geo.transform=function(n){return{stream:function(t){var e=new Ke(t);for(var r in n)e[r]=n[r];return e}}},Ke.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Zo.geo.projection=nr,Zo.geo.projectionMutator=tr,(Zo.geo.equirectangular=function(){return nr(rr)}).raw=rr.invert=rr,Zo.geo.rotation=function(n){function t(t){return t=n(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t}return n=ir(n[0]%360*Aa,n[1]*Aa,n.length>2?n[2]*Aa:0),t.invert=function(t){return t=n.invert(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t},t},ur.invert=rr,Zo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=ir(-n[0]*Aa,-n[1]*Aa,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ca,n[1]*=Ca}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=sr((t=+r)*Aa,u*Aa),n):t},n.precision=function(r){return arguments.length?(e=sr(t*Aa,(u=+r)*Aa),n):u},n.angle(90)},Zo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Aa,u=n[1]*Aa,i=t[1]*Aa,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},Zo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Zo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Zo.range(Math.ceil(s/m)*m,c,m).map(g)).concat(Zo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ua(n%d)>ka}).map(l)).concat(Zo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ua(n%m)>ka}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=fr(a,o,90),f=hr(r,e,y),h=fr(s,c,90),g=hr(i,u,y),n):y},n.majorExtent([[-180,-90+ka],[180,90-ka]]).minorExtent([[-180,-80-ka],[180,80+ka]])},Zo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=gr,u=pr;return n.distance=function(){return Zo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Zo.geo.interpolate=function(n,t){return vr(n[0]*Aa,n[1]*Aa,t[0]*Aa,t[1]*Aa)},Zo.geo.length=function(n){return Dc=0,Zo.geo.stream(n,Pc),Dc};var Dc,Pc={sphere:v,point:v,lineStart:dr,lineEnd:v,polygonStart:v,polygonEnd:v},Uc=mr(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Zo.geo.azimuthalEqualArea=function(){return nr(Uc)}).raw=Uc;var jc=mr(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},wt);(Zo.geo.azimuthalEquidistant=function(){return nr(jc)}).raw=jc,(Zo.geo.conicConformal=function(){return He(yr)}).raw=yr,(Zo.geo.conicEquidistant=function(){return He(xr)}).raw=xr;var Hc=mr(function(n){return 1/n},Math.atan);(Zo.geo.gnomonic=function(){return nr(Hc)}).raw=Hc,Mr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Sa]},(Zo.geo.mercator=function(){return _r(Mr)}).raw=Mr;var Fc=mr(function(){return 1},Math.asin);(Zo.geo.orthographic=function(){return nr(Fc)}).raw=Fc;var Oc=mr(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Zo.geo.stereographic=function(){return nr(Oc)}).raw=Oc,br.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Sa]},(Zo.geo.transverseMercator=function(){var n=_r(br),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=br,Zo.geom={},Zo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=bt(e),i=bt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(Er),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var s=kr(a),l=kr(c),f=l[0]===s[0],h=l[l.length-1]===s[s.length-1],g=[];for(t=s.length-1;t>=0;--t)g.push(n[a[s[t]][2]]);for(t=+f;t=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/ka)*ka,y:Math.round(o(n,t)/ka)*ka,i:t}})}var r=wr,u=Sr,i=r,o=u,a=Jc;return n?t(n):(t.links=function(n){return tu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return tu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Hr),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=ou()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=bt(a),M=bt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.xm&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=ou();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){au(n,k,v,d,m,y)},g=-1,null==t){for(;++g=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ns.get(e)||Qc,r=ts.get(r)||wt,pu(r(e.apply(null,Vo.call(arguments,1))))},Zo.interpolateHcl=Au,Zo.interpolateHsl=Cu,Zo.interpolateLab=Nu,Zo.interpolateRound=zu,Zo.transform=function(n){var t=$o.createElementNS(Zo.ns.prefix.svg,"g");return(Zo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Lu(e?e.matrix:es)})(n)},Lu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var es={a:1,b:0,c:0,d:1,e:0,f:0};Zo.interpolateTransform=Du,Zo.layout={},Zo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/d){if(p>c){var s=t.charge/c;n.px-=i*s,n.py-=o*s}return!0}if(t.point&&c&&p>c){var s=t.pointCharge/c;n.px-=i*s,n.py-=o*s}}return!t.charge}}function t(n){n.px=Zo.event.x,n.py=Zo.event.y,a.resume()}var e,r,u,i,o,a={},c=Zo.dispatch("start","tick","end"),s=[1,1],l=.9,f=rs,h=us,g=-30,p=is,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=s[0]/2,M=s[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Vu(t=Zo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Zo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++at;++t)(r=m[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Zo.behavior.drag().origin(wt).on("dragstart.force",Ou).on("drag.force",t).on("dragend.force",Yu)),arguments.length?(this.on("mouseover.force",Iu).on("mouseout.force",Zu).call(e),void 0):e},Zo.rebind(a,c,"on")};var rs=20,us=1,is=1/0;Zo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(s=e.call(n,i,i.depth))&&(c=s.length)){for(var c,s,l;--c>=0;)o.push(l=s[c]),l.parent=i,l.depth=i.depth+1;r&&(i.value=0),i.children=s}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Bu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=Gu,e=Wu,r=Ju;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&($u(t,function(n){n.children&&(n.value=0)}),Bu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Zo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++sg;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=wt,e=ei,r=ri,u=ti,i=Qu,o=ni;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||ei,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||ri,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=Zo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ui),i=n.map(ii),o=Zo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return Zo.range(n.length).reverse()},"default":ei}),cs=Zo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ri});Zo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=l[0]&&a<=l[1]&&(o=c[Zo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=si,u=ai;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=bt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return ci(n,t)}:bt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Zo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Bu(a,function(n){n.r=+l(n.value)}),Bu(a,pi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Bu(a,function(n){n.r+=f}),Bu(a,pi),Bu(a,function(n){n.r-=f})}return mi(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=Zo.layout.hierarchy().sort(li),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Xu(n,e)},Zo.layout.tree=function(){function n(n,u){var l=o.call(this,n,u),f=l[0],h=t(f);if(Bu(h,e),h.parent.m=-h.z,$u(h,r),s)$u(f,i);else{var g=f,p=f,v=f;$u(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);$u(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return l}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){wi(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],s=u.m,l=i.m,f=o.m,h=c.m;o=_i(o),u=Mi(u),o&&u;)c=Mi(c),i=_i(i),i.a=n,r=o.z+f-u.z-s+a(o._,u._),r>0&&(bi(Si(o,n,e),n,r),s+=r,l+=r),f+=o.m,s+=u.m,h+=c.m,l+=i.m;o&&!_i(i)&&(i.t=o,i.m+=f-l),u&&!Mi(c)&&(c.t=u,c.m+=s-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Zo.layout.hierarchy().sort(null).value(null),a=xi,c=[1,1],s=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(s=null==(c=t)?i:null,n):s?null:c},n.nodeSize=function(t){return arguments.length?(s=null==(c=t)?null:i,n):s?c:null},Xu(n,o)},Zo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Bu(c,function(n){var t=n.children;t&&t.length?(n.x=Ei(t),n.y=ki(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ai(c),f=Ci(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Bu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Zo.layout.hierarchy().sort(null).value(null),e=xi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Xu(n,t)},Zo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++oe&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++ie.dx)&&(l=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Zo.random.normal.apply(Zo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Zo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Zo.scale={};var ss={floor:wt,ceil:wt};Zo.scale.linear=function(){return Ui([0,1],[0,1],hu,!1)};var ls={s:1,g:1,p:1,r:1,e:1};Zo.scale.log=function(){return Vi(Zo.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=Zo.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Zo.scale.pow=function(){return Xi(Zo.scale.linear(),1,[0,1])},Zo.scale.sqrt=function(){return Zo.scale.pow().exponent(.5)},Zo.scale.ordinal=function(){return Bi([],{t:"range",a:[[]]})},Zo.scale.category10=function(){return Zo.scale.ordinal().range(gs)},Zo.scale.category20=function(){return Zo.scale.ordinal().range(ps)},Zo.scale.category20b=function(){return Zo.scale.ordinal().range(vs)},Zo.scale.category20c=function(){return Zo.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(vt),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(vt),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(vt),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(vt);Zo.scale.quantile=function(){return Wi([],[])},Zo.scale.quantize=function(){return Ji(0,1,[0,1])},Zo.scale.threshold=function(){return Gi([.5],[0,1])},Zo.scale.identity=function(){return Ki([0,1])},Zo.svg={},Zo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ba>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a); +return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=Qi,e=no,r=to,u=eo;return n.innerRadius=function(e){return arguments.length?(t=bt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=bt(t),n):e},n.startAngle=function(t){return arguments.length?(r=bt(t),n):r},n.endAngle=function(t){return arguments.length?(u=bt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Sa,ys=wa-ka;Zo.svg.line=function(){return ro(wt)};var xs=Zo.map({linear:uo,"linear-closed":io,step:oo,"step-before":ao,"step-after":co,basis:po,"basis-open":vo,"basis-closed":mo,bundle:yo,cardinal:fo,"cardinal-open":so,"cardinal-closed":lo,monotone:So});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];Zo.svg.line.radial=function(){var n=ro(ko);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},ao.reverse=co,co.reverse=ao,Zo.svg.area=function(){return Eo(wt)},Zo.svg.area.radial=function(){var n=Eo(ko);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Zo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ba)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=gr,o=pr,a=Ao,c=to,s=eo;return n.radius=function(t){return arguments.length?(a=bt(t),n):a},n.source=function(t){return arguments.length?(i=bt(t),n):i},n.target=function(t){return arguments.length?(o=bt(t),n):o},n.startAngle=function(t){return arguments.length?(c=bt(t),n):c},n.endAngle=function(t){return arguments.length?(s=bt(t),n):s},n},Zo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=gr,e=pr,r=Co;return n.source=function(e){return arguments.length?(t=bt(e),n):t},n.target=function(t){return arguments.length?(e=bt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Zo.svg.diagonal.radial=function(){var n=Zo.svg.diagonal(),t=Co,e=n.projection;return n.projection=function(n){return arguments.length?e(No(t=n)):t},n},Zo.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||To)(e.call(this,n,r))}var t=Lo,e=zo;return n.type=function(e){return arguments.length?(t=bt(e),n):t},n.size=function(t){return arguments.length?(e=bt(t),n):e},n};var ws=Zo.map({circle:To,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Zo.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*Aa),Cs=[],Ns=0;Cs.call=pa.call,Cs.empty=pa.empty,Cs.node=pa.node,Cs.size=pa.size,Zo.transition=function(n){return arguments.length?Ss?n.transition():n:ma.transition()},Zo.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=b(n);for(var o=-1,a=this.length;++oi;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return qo(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):P(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Du:hu,a=Zo.ns.qualify(n);return Ro(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Zo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Wo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=hu(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return Ro(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Wo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return Ro(this,"text",n,Do)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Zo.ease.apply(Zo,arguments)),P(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,P(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else P(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Zo.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Po(e,s,i,r)),n.push(e)}return qo(o,i)},Zo.svg.axis=function(){function n(n){n.each(function(){var n,s=Zo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):wt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",ka),d=Zo.transition(p.exit()).style("opacity",ka).remove(),m=Zo.transition(p.order()).style("opacity",1),y=Ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Zo.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=Uo,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Uo,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=jo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=jo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;l=f=function(n){return E(n)+A}}else l.rangeBand?l=f:d.call(n,f);v.call(n,l),m.call(n,f)})}var t,e=Zo.scale.linear(),r=zs,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ls?t+"":zs,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var zs="bottom",Ls={top:1,right:1,bottom:1,left:1};Zo.svg.brush=function(){function n(i){i.each(function(){var i=Zo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,wt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Ts[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=Zo.transition(i),h=Zo.transition(o);c&&(l=Ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=Ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Zo.event.keyCode&&(C||(x=null,z[0]-=l[1],z[1]-=f[1],C=2),y())}function p(){32==Zo.event.keyCode&&2==C&&(z[0]+=l[1],z[1]+=f[1],C=0,y())}function v(){var n=Zo.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Zo.event.altKey?(x||(x=[(l[0]+l[1])/2,(f[0]+f[1])/2]),z[0]=l[+(n[0]p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Zo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=Zo.select(Zo.event.target),w=a.of(_,arguments),S=Zo.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=I(),z=Zo.mouse(_),L=Zo.select(Wo).on("keydown.brush",u).on("keyup.brush",p);if(Zo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=l[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);M=[l[1-T]-z[0],f[1-q]-z[1]],z[0]=l[T],z[1]=f[q]}else Zo.event.altKey&&(x=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Zo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=M(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],f=[0,0],h=!0,g=!0,p=qs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?Zo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=gu(l,t.x),r=gu(f,t.y);return i=o=null,function(u){l=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=qs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,p=qs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(h=!!t[0],g=!!t[1]):c?h=!!t:s&&(g=!!t),n):c&&s?[h,g]:c?h:s?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),s&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(h=u,u=a,a=h))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&f[0]==f[1]},Zo.rebind(n,a,"on")};var Ts={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},qs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=Qa.format=ic.timeFormat,Ds=Rs.utc,Ps=Ds("%Y-%m-%dT%H:%M:%S.%LZ");Rs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ho:Ps,Ho.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Ho.toString=Ps.toString,Qa.second=Dt(function(n){return new nc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Qa.seconds=Qa.second.range,Qa.seconds.utc=Qa.second.utc.range,Qa.minute=Dt(function(n){return new nc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Qa.minutes=Qa.minute.range,Qa.minutes.utc=Qa.minute.utc.range,Qa.hour=Dt(function(n){var t=n.getTimezoneOffset()/60;return new nc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Qa.hours=Qa.hour.range,Qa.hours.utc=Qa.hour.utc.range,Qa.month=Dt(function(n){return n=Qa.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Qa.months=Qa.month.range,Qa.months.utc=Qa.month.utc.range;var Us=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],js=[[Qa.second,1],[Qa.second,5],[Qa.second,15],[Qa.second,30],[Qa.minute,1],[Qa.minute,5],[Qa.minute,15],[Qa.minute,30],[Qa.hour,1],[Qa.hour,3],[Qa.hour,6],[Qa.hour,12],[Qa.day,1],[Qa.day,2],[Qa.week,1],[Qa.month,1],[Qa.month,3],[Qa.year,1]],Hs=Rs.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",we]]),Fs={range:function(n,t,e){return Zo.range(Math.ceil(n/e)*e,+t,e).map(Oo)},floor:wt,ceil:wt};js.year=Qa.year,Qa.scale=function(){return Fo(Zo.scale.linear(),js,Hs)};var Os=js.map(function(n){return[n[0].utc,n[1]]}),Ys=Ds.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",we]]);Os.year=Qa.year.utc,Qa.scale.utc=function(){return Fo(Zo.scale.linear(),Os,Ys)},Zo.text=St(function(n){return n.responseText}),Zo.json=function(n,t){return kt(n,"application/json",Yo,t)},Zo.html=function(n,t){return kt(n,"text/html",Io,t)},Zo.xml=St(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Zo):"object"==typeof module&&module.exports&&(module.exports=Zo),this.d3=Zo}(); \ No newline at end of file diff --git a/platforms/browser/www/lib/es5-shim/.bower.json b/platforms/browser/www/lib/es5-shim/.bower.json new file mode 100644 index 00000000..2841e33b --- /dev/null +++ b/platforms/browser/www/lib/es5-shim/.bower.json @@ -0,0 +1,44 @@ +{ + "name": "es5-shim", + "version": "3.1.1", + "main": "es5-shim.js", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/es5-shim" + }, + "homepage": "https://github.com/es-shims/es5-shim", + "authors": [ + "Kris Kowal (http://github.com/kriskowal/)", + "Sami Samhuri (http://samhuri.net/)", + "Florian Schäfer (http://github.com/fschaefer)", + "Irakli Gozalishvili (http://jeditoolkit.com)", + "Kit Cambridge (http://kitcambridge.github.com)", + "Jordan Harband (https://github.com/ljharb/)" + ], + "description": "ECMAScript 5 compatibility shims for legacy JavaScript engines", + "keywords": [ + "shim", + "es5", + "es5", + "shim", + "javascript", + "ecmascript", + "polyfill" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "tests" + ], + "_release": "3.1.1", + "_resolution": { + "type": "version", + "tag": "v3.1.1", + "commit": "f5ca40f6f49b7eb0abef39bb1c3a5b4f7ca176d5" + }, + "_source": "git://github.com/es-shims/es5-shim.git", + "_target": "~3.1.0", + "_originalSource": "es5-shim" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/es5-shim/CHANGES b/platforms/browser/www/lib/es5-shim/CHANGES new file mode 100644 index 00000000..2447cfc9 --- /dev/null +++ b/platforms/browser/www/lib/es5-shim/CHANGES @@ -0,0 +1,124 @@ +3.1.1 + - Update minified files (#231) + +3.1.0 + - Fix String#replace in Firefox up through 29 (#228) + +3.0.2 + - Fix `Function#bind` in IE 7 and 8 (#224, #225, #226) + +3.0.1 + - Version bump to ensure npm has newest minified assets + +3.0.0 + - es5-sham: fix `Object.getPrototypeOf` and `Object.getOwnPropertyDescriptor` for Opera Mini + - Better override noncompliant native ES5 methods: `Array#forEach`, `Array#map`, `Array#filter`, `Array#every`, `Array#some`, `Array#reduce`, `Date.parse`, `String#trim` + - Added spec-compliant shim for `parseInt` + - Ensure `Object.keys` handles more edge cases with `arguments` objects and boxed primitives + - Improve minification of builds + +2.3.0 + - parseInt is now properly shimmed in ES3 browsers to default the radix + - update URLs to point to the new organization + +2.2.0 + - Function.prototype.bind shim now reports correct length on a bound function + - fix node 0.6.x v8 bug in Array#forEach + - test improvements + +2.1.0 + - Object.create fixes + - tweaks to the Object.defineProperties shim + +2.0.0 + - Separate reliable shims from dubious shims (shams). + +1.2.10 + - Group-effort Style Cleanup + - Took a stab at fixing Object.defineProperty on IE8 without + bad side-effects. (@hax) + - Object.isExtensible no longer fakes it. (@xavierm) + - Date.prototype.toISOString no longer deals with partial + ISO dates, per spec (@kitcambridge) + - More (mostly from @bryanforbes) + +1.2.9 + - Corrections to toISOString by @kitcambridge + - Fixed three bugs in array methods revealed by Jasmine tests. + - Cleaned up Function.prototype.bind with more fixes and tests from + @bryanforbes. + +1.2.8 + - Actually fixed problems with Function.prototype.bind, and regressions + from 1.2.7 (@bryanforbes, @jdalton #36) + +1.2.7 - REGRESSED + - Fixed problems with Function.prototype.bind when called as a constructor. + (@jdalton #36) + +1.2.6 + - Revised Date.parse to match ES 5.1 (kitcambridge) + +1.2.5 + - Fixed a bug for padding it Date..toISOString (tadfisher issue #33) + +1.2.4 + - Fixed a descriptor bug in Object.defineProperty (raynos) + +1.2.3 + - Cleaned up RequireJS and + + +**When used in a web browser**, JSON 3 exposes an additional `JSON3` object containing the `noConflict()` and `runInContext()` functions, as well as aliases to the `stringify()` and `parse()` functions. + +### `noConflict` and `runInContext` + +* `JSON3.noConflict()` restores the original value of the global `JSON` object and returns a reference to the `JSON3` object. +* `JSON3.runInContext([context, exports])` initializes JSON 3 using the given `context` object (e.g., `window`, `global`, etc.), or the global object if omitted. If an `exports` object is specified, the `stringify()`, `parse()`, and `runInContext()` functions will be attached to it instead of a new object. + +### Asynchronous Module Loaders + +JSON 3 is defined as an [anonymous module](https://github.com/amdjs/amdjs-api/wiki/AMD#define-function-) for compatibility with [RequireJS](http://requirejs.org/), [`curl.js`](https://github.com/cujojs/curl), and other asynchronous module loaders. + + + + +To avoid issues with third-party scripts, **JSON 3 is exported to the global scope even when used with a module loader**. If this behavior is undesired, `JSON3.noConflict()` can be used to restore the global `JSON` object to its original value. + +## CommonJS Environments + + var JSON3 = require("./path/to/json3"); + JSON3.parse("[1, 2, 3]"); + // => [1, 2, 3] + +## JavaScript Engines + + load("path/to/json3.js"); + JSON.stringify({"Hello": 123, "Good-bye": 456}, ["Hello"], "\t"); + // => '{\n\t"Hello": 123\n}' + +# Compatibility # + +JSON 3 has been **tested** with the following web browsers, CommonJS environments, and JavaScript engines. + +## Web Browsers + +- Windows [Internet Explorer](http://www.microsoft.com/windows/internet-explorer), version 6.0 and higher +- Mozilla [Firefox](http://www.mozilla.com/firefox), version 1.0 and higher +- Apple [Safari](http://www.apple.com/safari), version 2.0 and higher +- [Opera](http://www.opera.com) 7.02 and higher +- [Mozilla](http://sillydog.org/narchive/gecko.php) 1.0, [Netscape](http://sillydog.org/narchive/) 6.2.3, and [SeaMonkey](http://www.seamonkey-project.org/) 1.0 and higher + +## CommonJS Environments + +- [Node](http://nodejs.org/) 0.2.6 and higher +- [RingoJS](http://ringojs.org/) 0.4 and higher +- [Narwhal](http://narwhaljs.org/) 0.3.2 and higher + +## JavaScript Engines + +- Mozilla [Rhino](http://www.mozilla.org/rhino) 1.5R5 and higher +- WebKit [JSC](https://trac.webkit.org/wiki/JSC) +- Google [V8](http://code.google.com/p/v8) + +## Known Incompatibilities + +* Attempting to serialize the `arguments` object may produce inconsistent results across environments due to specification version differences. As a workaround, please convert the `arguments` object to an array first: `JSON.stringify([].slice.call(arguments, 0))`. + +## Required Native Methods + +JSON 3 assumes that the following methods exist and function as described in the ECMAScript specification: + +- The `Number`, `String`, `Array`, `Object`, `Date`, `SyntaxError`, and `TypeError` constructors. +- `String.fromCharCode` +- `Object#toString` +- `Function#call` +- `Math.floor` +- `Number#toString` +- `Date#valueOf` +- `String.prototype`: `indexOf`, `charCodeAt`, `charAt`, `slice`. +- `Array.prototype`: `push`, `pop`, `join`. + +# Contribute # + +Check out a working copy of the JSON 3 source code with [Git](http://git-scm.com/): + + $ git clone git://github.com/bestiejs/json3.git + $ cd json3 + +If you'd like to contribute a feature or bug fix, you can [fork](http://help.github.com/fork-a-repo/) JSON 3, commit your changes, and [send a pull request](http://help.github.com/send-pull-requests/). Please make sure to update the unit tests in the `test` directory as well. + +Alternatively, you can use the [GitHub issue tracker](https://github.com/bestiejs/json3/issues) to submit bug reports, feature requests, and questions, or send tweets to [@kitcambridge](http://twitter.com/kitcambridge). + +JSON 3 is released under the [MIT License](http://kit.mit-license.org/). diff --git a/platforms/browser/www/lib/json3/bower.json b/platforms/browser/www/lib/json3/bower.json new file mode 100644 index 00000000..7215dada --- /dev/null +++ b/platforms/browser/www/lib/json3/bower.json @@ -0,0 +1,38 @@ +{ + "name": "json3", + "version": "3.3.2", + "main": "lib/json3.js", + "repository": { + "type": "git", + "url": "git://github.com/bestiejs/json3.git" + }, + "ignore": [ + ".*", + "**/.*", + "build.js", + "index.html", + "index.js", + "component.json", + "package.json", + "benchmark", + "page", + "test", + "vendor", + "tests" + ], + "homepage": "https://github.com/bestiejs/json3", + "description": "A modern JSON implementation compatible with nearly all JavaScript platforms", + "keywords": [ + "json", + "spec", + "ecma", + "es5", + "lexer", + "parser", + "stringify" + ], + "authors": [ + "Kit Cambridge " + ], + "license": "MIT" +} diff --git a/platforms/browser/www/lib/json3/lib/json3.js b/platforms/browser/www/lib/json3/lib/json3.js new file mode 100644 index 00000000..4817c9e7 --- /dev/null +++ b/platforms/browser/www/lib/json3/lib/json3.js @@ -0,0 +1,902 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; + + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; + + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; + + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } + + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } + + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } + } + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; + } + + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); + }; + } + + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; + }; + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } + + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } + } + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } + } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; + + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; + + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; + } + result += useCharIndex ? symbols[index] : value.charAt(index); + } + } + return result + '"'; + }; + + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); + } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; + } else { + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); + } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; + } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; + + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); + } + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); + } + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); + }; + } + + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; + + // Internal: Stores the parser state. + var Index, Source; + + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; + + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } + } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); + } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; + + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); + } + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; + } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; + + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; + }; + } + } + + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); diff --git a/platforms/browser/www/lib/json3/lib/json3.min.js b/platforms/browser/www/lib/json3/lib/json3.min.js new file mode 100644 index 00000000..5f896fa0 --- /dev/null +++ b/platforms/browser/www/lib/json3/lib/json3.min.js @@ -0,0 +1,17 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +(function(){function N(p,r){function q(a){if(q[a]!==w)return q[a];var c;if("bug-string-char-index"==a)c="a"!="a"[0];else if("json"==a)c=q("json-stringify")&&q("json-parse");else{var e;if("json-stringify"==a){c=r.stringify;var b="function"==typeof c&&s;if(b){(e=function(){return 1}).toJSON=e;try{b="0"===c(0)&&"0"===c(new t)&&'""'==c(new A)&&c(u)===w&&c(w)===w&&c()===w&&"1"===c(e)&&"[1]"==c([e])&&"[null]"==c([w])&&"null"==c(null)&&"[null,null,null]"==c([w,u,null])&&'{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'== +c({a:[e,!0,!1,null,"\x00\b\n\f\r\t"]})&&"1"===c(null,e)&&"[\n 1,\n 2\n]"==c([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==c(new C(-864E13))&&'"+275760-09-13T00:00:00.000Z"'==c(new C(864E13))&&'"-000001-01-01T00:00:00.000Z"'==c(new C(-621987552E5))&&'"1969-12-31T23:59:59.999Z"'==c(new C(-1))}catch(f){b=!1}}c=b}if("json-parse"==a){c=r.parse;if("function"==typeof c)try{if(0===c("0")&&!c(!1)){e=c('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');var n=5==e.a.length&&1===e.a[0];if(n){try{n=!c('"\t"')}catch(d){}if(n)try{n= +1!==c("01")}catch(g){}if(n)try{n=1!==c("1.")}catch(m){}}}}catch(X){n=!1}c=n}}return q[a]=!!c}p||(p=k.Object());r||(r=k.Object());var t=p.Number||k.Number,A=p.String||k.String,H=p.Object||k.Object,C=p.Date||k.Date,G=p.SyntaxError||k.SyntaxError,K=p.TypeError||k.TypeError,L=p.Math||k.Math,I=p.JSON||k.JSON;"object"==typeof I&&I&&(r.stringify=I.stringify,r.parse=I.parse);var H=H.prototype,u=H.toString,v,B,w,s=new C(-0xc782b5b800cec);try{s=-109252==s.getUTCFullYear()&&0===s.getUTCMonth()&&1===s.getUTCDate()&& +10==s.getUTCHours()&&37==s.getUTCMinutes()&&6==s.getUTCSeconds()&&708==s.getUTCMilliseconds()}catch(Q){}if(!q("json")){var D=q("bug-string-char-index");if(!s)var x=L.floor,M=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,c){return M[c]+365*(a-1970)+x((a-1969+(c=+(1d){c+="\\u00"+y(2,d.toString(16));break}c+=f?n[b]:a.charAt(b)}}return c+'"'},O=function(a,c,b,h,f,n,d){var g,m,k,l,p,r,s,t,q;try{g=c[a]}catch(z){}if("object"==typeof g&&g)if(m=u.call(g),"[object Date]"!=m||v.call(g, +"toJSON"))"function"==typeof g.toJSON&&("[object Number]"!=m&&"[object String]"!=m&&"[object Array]"!=m||v.call(g,"toJSON"))&&(g=g.toJSON(a));else if(g>-1/0&&g<1/0){if(E){l=x(g/864E5);for(m=x(l/365.2425)+1970-1;E(m+1,0)<=l;m++);for(k=x((l-E(m,0))/30.42);E(m,k+1)<=l;k++);l=1+l-E(m,k);p=(g%864E5+864E5)%864E5;r=x(p/36E5)%24;s=x(p/6E4)%60;t=x(p/1E3)%60;p%=1E3}else m=g.getUTCFullYear(),k=g.getUTCMonth(),l=g.getUTCDate(),r=g.getUTCHours(),s=g.getUTCMinutes(),t=g.getUTCSeconds(),p=g.getUTCMilliseconds(); +g=(0>=m||1E4<=m?(0>m?"-":"+")+y(6,0>m?-m:m):y(4,m))+"-"+y(2,k+1)+"-"+y(2,l)+"T"+y(2,r)+":"+y(2,s)+":"+y(2,t)+"."+y(3,p)+"Z"}else g=null;b&&(g=b.call(c,a,g));if(null===g)return"null";m=u.call(g);if("[object Boolean]"==m)return""+g;if("[object Number]"==m)return g>-1/0&&g<1/0?""+g:"null";if("[object String]"==m)return R(""+g);if("object"==typeof g){for(a=d.length;a--;)if(d[a]===g)throw K();d.push(g);q=[];c=n;n+=f;if("[object Array]"==m){k=0;for(a=g.length;k=b.length?b:b.slice(0,10));return O("",(l={},l[""]=a,l),f,n,h,"",[])}}if(!q("json-parse")){var V=A.fromCharCode,W={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},b,J,l=function(){b=J=null;throw G();},z=function(){for(var a=J,c=a.length,e,h,f,k,d;bd)l();else if(92==d)switch(d=a.charCodeAt(++b),d){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=W[d];b++;break;case 117:h=++b;for(f=b+4;b=d||97<=d&&102>=d||65<=d&&70>=d||l();e+=V("0x"+a.slice(h,b));break;default:l()}else{if(34==d)break;d=a.charCodeAt(b);for(h=b;32<=d&&92!=d&&34!=d;)d=a.charCodeAt(++b);e+=a.slice(h,b)}if(34==a.charCodeAt(b))return b++,e;l();default:h= +b;45==d&&(k=!0,d=a.charCodeAt(++b));if(48<=d&&57>=d){for(48==d&&(d=a.charCodeAt(b+1),48<=d&&57>=d)&&l();b=d);b++);if(46==a.charCodeAt(b)){for(f=++b;f=d);f++);f==b&&l();b=f}d=a.charCodeAt(b);if(101==d||69==d){d=a.charCodeAt(++b);43!=d&&45!=d||b++;for(f=b;f=d);f++);f==b&&l();b=f}return+a.slice(h,b)}k&&l();if("true"==a.slice(b,b+4))return b+=4,!0;if("false"==a.slice(b,b+5))return b+=5,!1;if("null"==a.slice(b, +b+4))return b+=4,null;l()}return"$"},P=function(a){var c,b;"$"==a&&l();if("string"==typeof a){if("@"==(D?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(c=[];;b||(b=!0)){a=z();if("]"==a)break;b&&(","==a?(a=z(),"]"==a&&l()):l());","==a&&l();c.push(P(a))}return c}if("{"==a){for(c={};;b||(b=!0)){a=z();if("}"==a)break;b&&(","==a?(a=z(),"}"==a&&l()):l());","!=a&&"string"==typeof a&&"@"==(D?a.charAt(0):a[0])&&":"==z()||l();c[a.slice(1)]=P(z())}return c}l()}return a},T=function(a,b,e){e=S(a,b,e);e=== +w?delete a[b]:a[b]=e},S=function(a,b,e){var h=a[b],f;if("object"==typeof h&&h)if("[object Array]"==u.call(h))for(f=h.length;f--;)T(h,f,e);else B(h,function(a){T(h,a,e)});return e.call(a,b,h)};r.parse=function(a,c){var e,h;b=0;J=""+a;e=P(z());"$"!=z()&&l();b=J=null;return c&&"[object Function]"==u.call(c)?S((h={},h[""]=e,h),"",c):e}}}r.runInContext=N;return r}var K=typeof define==="function"&&define.amd,F={"function":!0,object:!0},G=F[typeof exports]&&exports&&!exports.nodeType&&exports,k=F[typeof window]&& +window||this,t=G&&F[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;!t||t.global!==t&&t.window!==t&&t.self!==t||(k=t);if(G&&!K)N(k,G);else{var L=k.JSON,Q=k.JSON3,M=!1,A=N(k,k.JSON3={noConflict:function(){M||(M=!0,k.JSON=L,k.JSON3=Q,L=Q=null);return A}});k.JSON={parse:A.parse,stringify:A.stringify}}K&&define(function(){return A})}).call(this); diff --git a/platforms/browser/www/lib/lodash/.bower.json b/platforms/browser/www/lib/lodash/.bower.json new file mode 100644 index 00000000..f8119955 --- /dev/null +++ b/platforms/browser/www/lib/lodash/.bower.json @@ -0,0 +1,33 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ], + "homepage": "https://github.com/lodash/lodash", + "_release": "2.4.1", + "_resolution": { + "type": "version", + "tag": "2.4.1", + "commit": "c7aa842eded639d6d90a5714d3195a8802c86687" + }, + "_source": "git://github.com/lodash/lodash.git", + "_target": "~2.4.1", + "_originalSource": "lodash" +} \ No newline at end of file diff --git a/platforms/browser/www/lib/lodash/LICENSE.txt b/platforms/browser/www/lib/lodash/LICENSE.txt new file mode 100644 index 00000000..49869bba --- /dev/null +++ b/platforms/browser/www/lib/lodash/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2013 The Dojo Foundation +Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/platforms/browser/www/lib/lodash/bower.json b/platforms/browser/www/lib/lodash/bower.json new file mode 100644 index 00000000..a6f139d7 --- /dev/null +++ b/platforms/browser/www/lib/lodash/bower.json @@ -0,0 +1,23 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ] +} diff --git a/platforms/browser/www/lib/moment/moment.js b/platforms/browser/www/lib/moment/moment.js new file mode 100644 index 00000000..c003e95f --- /dev/null +++ b/platforms/browser/www/lib/moment/moment.js @@ -0,0 +1,3606 @@ +//! moment.js +//! version : 2.11.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + function isUndefined(input) { + return input === void 0; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + // internal storage for locale config files + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function get_set__set (mom, unit, value) { + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + return isArray(this._months) ? this._months[m.month()] : + this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i'); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + //the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(utils_hooks__hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to begining of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + if (!valid__isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(utils_hooks__hooks.now()); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = ((string || '').match(matcher) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + } else if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(matchOffset, this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this > +localInput; + } else { + return +localInput < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this < +localInput; + } else { + return +this.clone().endOf(units) < +localInput; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + return +this === +localInput; + } else { + inputMs = +localInput; + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input,units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input,units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + delta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // JSON.stringify(new Date(NaN)) === 'null' + return this.isValid() ? this.toISOString() : 'null'; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + // console.log("got", weekYear, week, weekday, "set", date.toISOString()); + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = local__createLocal([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isSameOrAfter = isSameOrAfter; + momentPrototype__proto.isSameOrBefore = isSameOrBefore; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = toJSON; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + momentPrototype__proto.creationData = creationData; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + prototype__proto._monthsRegex = defaultMonthsRegex; + prototype__proto.monthsRegex = monthsRegex; + prototype__proto._monthsShortRegex = defaultMonthsShortRegex; + prototype__proto.monthsShortRegex = monthsShortRegex; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.11.1'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.now = now; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + utils_hooks__hooks.prototype = momentPrototype; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/platforms/browser/www/plugins/cordova-plugin-device/src/browser/DeviceProxy.js b/platforms/browser/www/plugins/cordova-plugin-device/src/browser/DeviceProxy.js new file mode 100644 index 00000000..f62801db --- /dev/null +++ b/platforms/browser/www/plugins/cordova-plugin-device/src/browser/DeviceProxy.js @@ -0,0 +1,84 @@ +cordova.define("cordova-plugin-device.DeviceProxy", function(require, exports, module) { /* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +var browser = require('cordova/platform'); + +function getPlatform() { + return "browser"; +} + +function getModel() { + return getBrowserInfo(true); +} + +function getVersion() { + return getBrowserInfo(false); +} + +function getBrowserInfo(getModel) { + var userAgent = navigator.userAgent; + var returnVal = ''; + var offset; + + if ((offset = userAgent.indexOf('Chrome')) !== -1) { + returnVal = (getModel) ? 'Chrome' : userAgent.substring(offset + 7); + } else if ((offset = userAgent.indexOf('Safari')) !== -1) { + if (getModel) { + returnVal = 'Safari'; + } else { + returnVal = userAgent.substring(offset + 7); + + if ((offset = userAgent.indexOf('Version')) !== -1) { + returnVal = userAgent.substring(offset + 8); + } + } + } else if ((offset = userAgent.indexOf('Firefox')) !== -1) { + returnVal = (getModel) ? 'Firefox' : userAgent.substring(offset + 8); + } else if ((offset = userAgent.indexOf('MSIE')) !== -1) { + returnVal = (getModel) ? 'MSIE' : userAgent.substring(offset + 5); + } else if ((offset = userAgent.indexOf('Trident')) !== -1) { + returnVal = (getModel) ? 'MSIE' : '11'; + } + + if ((offset = returnVal.indexOf(';')) !== -1 || (offset = returnVal.indexOf(' ')) !== -1) { + returnVal = returnVal.substring(0, offset); + } + + return returnVal; +} + + +module.exports = { + getDeviceInfo: function (success, error) { + setTimeout(function () { + success({ + cordova: browser.cordovaVersion, + platform: getPlatform(), + model: getModel(), + version: getVersion(), + uuid: null + }); + }, 0); + } +}; + +require("cordova/exec/proxy").add("Device", module.exports); + +}); diff --git a/platforms/browser/www/plugins/cordova-plugin-device/www/device.js b/platforms/browser/www/plugins/cordova-plugin-device/www/device.js new file mode 100644 index 00000000..ff0c5b48 --- /dev/null +++ b/platforms/browser/www/plugins/cordova-plugin-device/www/device.js @@ -0,0 +1,85 @@ +cordova.define("cordova-plugin-device.device", function(require, exports, module) { /* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var argscheck = require('cordova/argscheck'), + channel = require('cordova/channel'), + utils = require('cordova/utils'), + exec = require('cordova/exec'), + cordova = require('cordova'); + +channel.createSticky('onCordovaInfoReady'); +// Tell cordova channel to wait on the CordovaInfoReady event +channel.waitForInitialization('onCordovaInfoReady'); + +/** + * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the + * phone, etc. + * @constructor + */ +function Device() { + this.available = false; + this.platform = null; + this.version = null; + this.uuid = null; + this.cordova = null; + this.model = null; + this.manufacturer = null; + this.isVirtual = null; + this.serial = null; + + var me = this; + + channel.onCordovaReady.subscribe(function() { + me.getInfo(function(info) { + //ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js + //TODO: CB-5105 native implementations should not return info.cordova + var buildLabel = cordova.version; + me.available = true; + me.platform = info.platform; + me.version = info.version; + me.uuid = info.uuid; + me.cordova = buildLabel; + me.model = info.model; + me.isVirtual = info.isVirtual; + me.manufacturer = info.manufacturer || 'unknown'; + me.serial = info.serial || 'unknown'; + channel.onCordovaInfoReady.fire(); + },function(e) { + me.available = false; + utils.alert("[ERROR] Error initializing Cordova: " + e); + }); + }); +} + +/** + * Get device info + * + * @param {Function} successCallback The function to call when the heading data is available + * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) + */ +Device.prototype.getInfo = function(successCallback, errorCallback) { + argscheck.checkArgs('fF', 'Device.getInfo', arguments); + exec(successCallback, errorCallback, "Device", "getDeviceInfo", []); +}; + +module.exports = new Device(); + +}); diff --git a/platforms/browser/www/robots.txt b/platforms/browser/www/robots.txt new file mode 100644 index 00000000..94174950 --- /dev/null +++ b/platforms/browser/www/robots.txt @@ -0,0 +1,3 @@ +# robotstxt.org + +User-agent: * diff --git a/platforms/browser/www/scripts/app.js b/platforms/browser/www/scripts/app.js new file mode 100644 index 00000000..057cc822 --- /dev/null +++ b/platforms/browser/www/scripts/app.js @@ -0,0 +1,249 @@ +// 'use strict'; + +/** + * @ngdoc overview + * @name livewellApp + * @description + * # livewellApp + * + * Main module of the application. + */ +angular + .module('livewellApp', [ + 'ngAnimate', + 'ngCookies', + 'ngResource', + 'ngRoute', + 'ngSanitize', + 'ngTouch', + 'highcharts-ng', + 'angularMoment' + ]) + .config(function ($routeProvider) { + $routeProvider + .when('/', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/main', { + templateUrl: 'views/main.html', + controller: 'MainCtrl' + }) + .when('/about', { + templateUrl: 'views/about.html', + controller: 'AboutCtrl' + }) + .when('/foundations', { + templateUrl: 'views/foundations.html', + controller: 'FoundationsCtrl' + }) + .when('/checkins', { + templateUrl: 'views/checkins.html', + controller: 'CheckinsCtrl' + }) + .when('/daily_review', { + templateUrl: 'views/daily_review.html', + controller: 'DailyReviewCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness/:section', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/instructions', { + templateUrl: 'views/instructions.html', + controller: 'InstructionsCtrl' + }) + .when('/daily_review_summary', { + templateUrl: 'views/daily_review_summary.html', + controller: 'DailyReviewSummaryCtrl' + }) + .when('/daily_review_conclusion', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:intervention_set/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/medications', { + templateUrl: 'views/medications.html', + controller: 'MedicationsCtrl' + }) + .when('/skills', { + templateUrl: 'views/skills.html', + controller: 'SkillsCtrl' + }) + .when('/team', { + templateUrl: 'views/team.html', + controller: 'TeamCtrl' + }) + .when('/intervention', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/intervention/:code', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/exit', { + templateUrl: 'views/exit.html', + controller: 'ExitCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/weekly_check_in', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/weekly_check_in/:questionIndex', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/daily_check_in', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/daily_check_in/:id', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/settings', { + templateUrl: 'views/settings.html', + controller: 'SettingsCtrl' + }) + .when('/localStorageBackupRestore', { + templateUrl: 'views/localstoragebackuprestore.html', + controller: 'LocalstoragebackuprestoreCtrl' + }) + .when('/cms', { + templateUrl: 'views/cms.html', + controller: 'CmsCtrl' + }) + .when('/admin', { + templateUrl: 'views/admin.html', + controller: 'AdminCtrl' + }) + .when('/load_interventions', { + templateUrl: 'views/load_interventions.html', + controller: 'LoadInterventionsCtrl' + }) + .when('/lesson_player/:id', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/:id/:post', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/skills_awareness', { + templateUrl: 'views/skills_awareness.html', + controller: 'SkillsAwarenessCtrl' + }) + .when('/skills_lifestyle', { + templateUrl: 'views/skills_lifestyle.html', + controller: 'SkillsLifestyleCtrl' + }) + .when('/skills_coping', { + templateUrl: 'views/skills_coping.html', + controller: 'SkillsCopingCtrl' + }) + .when('/skills_team', { + templateUrl: 'views/skills_team.html', + controller: 'SkillsTeamCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/ews', { + templateUrl: 'views/ews.html', + controller: 'EwsCtrl' + }) + .when('/ews2', { + templateUrl: 'views/ews2.html', + controller: 'Ews2Ctrl' + }) + .when('/schedule', { + templateUrl: 'views/schedule.html', + controller: 'ScheduleCtrl' + }) + .when('/summary_player', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/summary_player/:id/:post', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/load_interventions_review', { + templateUrl: 'views/load_interventions_review.html', + controller: 'LoadInterventionsReviewCtrl' + }) + .when('/mySkills', { + templateUrl: 'views/myskills.html', + controller: 'MyskillsCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/chartsMedication', { + templateUrl: 'views/chartsmedication.html', + controller: 'ChartsmedicationCtrl' + }) + .when('/chartsSleep', { + templateUrl: 'views/chartssleep.html', + controller: 'ChartssleepCtrl' + }) + .when('/chartsRoutine', { + templateUrl: 'views/chartsroutine.html', + controller: 'ChartsroutineCtrl' + }) + .when('/chartsActivity', { + templateUrl: 'views/chartsactivity.html', + controller: 'ChartsactivityCtrl' + }) + .when('/dailyReviewTester', { + templateUrl: 'views/dailyreviewtester.html', + controller: 'DailyreviewtesterCtrl' + }) + .when('/personalSnapshot', { + templateUrl: 'views/personalsnapshot.html', + controller: 'PersonalsnapshotCtrl' + }) + .when('/home', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/usereditor', { + templateUrl: 'views/usereditor.html', + controller: 'UsereditorCtrl' + }) + .otherwise({ + redirectTo: '/' + }); + }).run(function($rootScope) { + +}); diff --git a/platforms/browser/www/scripts/controllers/about.js b/platforms/browser/www/scripts/controllers/about.js new file mode 100644 index 00000000..7e72299c --- /dev/null +++ b/platforms/browser/www/scripts/controllers/about.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AboutCtrl + * @description + * # AboutCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AboutCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/admin.js b/platforms/browser/www/scripts/controllers/admin.js new file mode 100644 index 00000000..03b340f1 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/admin.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AdminCtrl + * @description + * # AdminCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AdminCtrl', function ($scope,Questions) { + + }); diff --git a/platforms/browser/www/scripts/controllers/awareness.js b/platforms/browser/www/scripts/controllers/awareness.js new file mode 100644 index 00000000..883f8e80 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/awareness.js @@ -0,0 +1,50 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AwarenessCtrl + * @description + * # AwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AwarenessCtrl', function ($scope,UserData) { + + //awareness variables + $scope.awareness = UserData.query('awareness'); + $scope.intervention_anchors = UserData.query('anchors'); + $scope.plan = UserData.query('plan'); + + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + + $scope.loadAnchors = function(){ + $scope.showAnchors = true; + $scope.showAction = false; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-anchors').addClass('btn-active'); + } + + $scope.loadAction = function(){ + $scope.showAnchors = false; + $scope.showAction = true; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-action').addClass('btn-active'); + } + + $scope.loadPlan = function(){ + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + } + + + }); diff --git a/platforms/browser/www/scripts/controllers/backup b/platforms/browser/www/scripts/controllers/backup new file mode 100644 index 00000000..d87a458c --- /dev/null +++ b/platforms/browser/www/scripts/controllers/backup @@ -0,0 +1 @@ +"{\"awareness\":\"[{\\\"userId\\\":\\\"test\\\",\\\"order\\\":3,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"+2\\\",\\\"name\\\":\\\"Mild Up\\\",\\\"id\\\":\\\"cdd38c91ddf29885\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":4,\\\"value\\\":\\\"+1\\\",\\\"name\\\":\\\"Slight Up\\\",\\\"id\\\":\\\"d612cfee454b4a2a\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":5,\\\"value\\\":\\\"0\\\",\\\"name\\\":\\\"Balanced\\\",\\\"id\\\":\\\"83b912bed2eee8cd\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":6,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-1\\\",\\\"name\\\":\\\"Slight Down\\\",\\\"id\\\":\\\"529da655f43f3853\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":7,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-2\\\",\\\"name\\\":\\\"Mild Down\\\",\\\"id\\\":\\\"186ca99b9fa64874\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":8,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-3\\\",\\\"name\\\":\\\"Moderate Down\\\",\\\"id\\\":\\\"a4737da1b0cb1b0f\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":9,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-4\\\",\\\"name\\\":\\\"Severe Down\\\",\\\"id\\\":\\\"07f10ba389bdf871\\\"},{\\\"name\\\":\\\"Severe Up\\\",\\\"order\\\":1,\\\"response\\\":\\\"Crisis, call 911\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+4\\\",\\\"id\\\":\\\"bc86889da8728a75\\\"},{\\\"name\\\":\\\"Moderate Up\\\",\\\"order\\\":2,\\\"response\\\":\\\"Work closely with your psychiatrist\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+3\\\",\\\"id\\\":\\\"bf79863b86ad795f\\\"}]\",\"medications\":\"[{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Paxil\\\",\\\"dose\\\":\\\"30mg\\\",\\\"when\\\":\\\"twice daily\\\",\\\"id\\\":\\\"1207f5105ded9947\\\"},{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Havidol\\\",\\\"dose\\\":\\\"100g\\\",\\\"when\\\":\\\"every 5 minutes\\\",\\\"id\\\":\\\"1e3cf5b135943a7d\\\"}]\",\"pound\":\"[\\\"user\\\",\\\"pound\\\"]\",\"questioncriteria\":\"[{\\\"levelOrder\\\":\\\"1\\\",\\\"levelOrderValue\\\":\\\"1\\\",\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"section\\\":\\\"medication\\\",\\\"id\\\":\\\"0b60522013b62834\\\"}]\",\"questionresponses\":\"[{\\\"label\\\":\\\"Not at all\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"6f04febc1dcd9901\\\"},{\\\"label\\\":\\\"Several days\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"06baf3eab84568a9\\\"},{\\\"label\\\":\\\"More than half the days\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"2255a56c9a5d7840\\\"},{\\\"label\\\":\\\"Nearly every day\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"2b8171b28d4a9872\\\"},{\\\"label\\\":\\\" I often feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"dcbcb90d9073f8b9\\\"},{\\\"label\\\":\\\" I feel happier or more cheerful than usual most of the time.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"e788aab4046c2bcb\\\"},{\\\"label\\\":\\\"I feel happier or more cheerful than usual all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"7e6bdf02e6c088d5\\\"},{\\\"label\\\":\\\" I occasionally feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"8afbd4f2cb39a841\\\"},{\\\"label\\\":\\\" I occasionally feel more self-confident than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"9b55a9e0c9e35a08\\\"},{\\\"label\\\":\\\" I often feel more self-confident than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"3b32f497db74d831\\\"},{\\\"label\\\":\\\" I feel more self-confident than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"b82d2f1d064b39f5\\\"},{\\\"label\\\":\\\" I feel extremely self-confident all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\" 3\\\",\\\"id\\\":\\\"e9634a047324d807\\\"},{\\\"label\\\":\\\" I occasionally talk more than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"248dd7f49401b816\\\"},{\\\"label\\\":\\\" I occasionally need less sleep than usual\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"26daf6c957e1d83b\\\"},{\\\"label\\\":\\\" I frequently need less sleep than usual\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"c6b337238dac09cb\\\"},{\\\"label\\\":\\\" I often need less sleep than usual\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"a5938f5841d23a8d\\\"},{\\\"label\\\":\\\" I can go all day and night without any sleep and still not feel tired.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"dd04b42fb498a867\\\"},{\\\"label\\\":\\\" I talk constantly and cannot be interrupted.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"95c03e5561173858\\\"},{\\\"label\\\":\\\" I frequently talk more than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"31d48584769878d1\\\"},{\\\"label\\\":\\\" I often talk more than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"ee97165355d88836\\\"},{\\\"label\\\":\\\" I have occasionally been more active than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"bbfc7642a646194e\\\"},{\\\"label\\\":\\\" I have often been more active than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"d62f39be9109c8fe\\\"},{\\\"label\\\":\\\" I have frequently been more active than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"d1c802de87aefa16\\\"},{\\\"label\\\":\\\" I am constantly active or on the go all the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"b1121bbd24aaf9e7\\\"},{\\\"responseGroupId\\\":\\\"a1\\\",\\\"responseGroupLabel\\\":\\\"a1\\\",\\\"order\\\":\\\"1\\\",\\\"label\\\":\\\"Page 1\\\",\\\"value\\\":\\\"1\\\",\\\"goToCriteria\\\":\\\"\\\",\\\"id\\\":\\\"d5ba075d4538bbac\\\"}]\",\"questions\":\"[{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING DOWN, DEPRESSED, OR HOPELESS?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"phq2\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"07189e9eea498a07\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by a POOR APPETITE OR OVEREATING?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"phq5\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"d4c04f0d4f0e0bc7\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING BAD ABOUT YOURSELF - OR THAT YOU ARE A FAILURE OR HAVE LET YOURSELF OR YOUR FAMILY DOWN?\\\",\\\"order\\\":6,\\\"questionDataLabel\\\":\\\"phq6\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"a1d7af08b11de878\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE CONCENTRATING ON THINGS, SUCH AS READING THE NEWSPAPER OR WATCHING TELEVISION?\\\",\\\"order\\\":7,\\\"questionDataLabel\\\":\\\"phq7\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"c317fef4e47308d2\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by MOVING OR SPEAKING SO SLOWLY THAT OTHER PEOPLE COULD HAVE NOTICED? OR THE OPPOSITE - BEING SO FIDGETY OR RESTLESS THAT YOU HAVE BEEN MOVING AROUND A LOT MORE THAN USUAL?\\\",\\\"order\\\":8,\\\"questionDataLabel\\\":\\\"phq8\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"3144ed93440c28ec\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by THOUGHTS THAT YOU WOULD BE BETTER OFF DEAD, OR OF HURTING YOURSELF?\\\",\\\"order\\\":9,\\\"questionDataLabel\\\":\\\"phq9\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"decf5d36ced538d0\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE FALLING OR STAYING ASLEEP, OR SLEEPING TOO MUCH?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"phq3\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"2bbfc1e863d4b98a\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by LITTLE INTEREST OR PLEASURE IN DOING THINGS?\\\",\\\"order\\\":1,\\\"questionDataLabel\\\":\\\"phq1\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responses\\\":\\\"{}\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"f99a845eea530b2c\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING TIRED OR HAVING LITTLE ENERGY?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"phq4\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"4632c4b2ab01d86a\\\"},{\\\"questionGroup\\\":\\\"phq9\\\",\\\"order\\\":0,\\\"type\\\":\\\"html\\\",\\\"content\\\":\\\"

Welcome to the Weekly Check-In!

\\\",\\\"questionDataLabel\\\":\\\"\\\",\\\"responseGroupId\\\":\\\"\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"d485d4c8d859f8cc\\\"},{\\\"questionGroup\\\":\\\"amrs\\\",\\\"order\\\":1,\\\"type\\\":\\\"radio\\\",\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"questionDataLabel\\\":\\\"amrs1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"90c7b6d682c7187f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"amrs2\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"430194fe140b18e8\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"amrs4\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"ba2637d288da182f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"amrs3\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"23fae8ba4842c866\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"amrs5\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"53c964a687dff873\\\"},{\\\"content\\\":\\\"Where should I go next\\\",\\\"hideBackButton\\\":true,\\\"hideNextButton\\\":true,\\\"order\\\":1,\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"questionDataLabel\\\":\\\"a1\\\",\\\"questionGroup\\\":\\\"cyoa\\\",\\\"responseGroupId\\\":\\\"a\\\",\\\"showBackButton\\\":\\\"false\\\",\\\"showNextButton\\\":\\\"false\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"aed39f2a638cbb1c\\\"}]\",\"responsecriteria\":\"[]\",\"smarts\":\"[]\",\"staticcontent\":\"[{\\\"content\\\":\\\"Put in awesome text to teach people about livewell\\\",\\\"dateTimeUpdated\\\":\\\"NOW\\\",\\\"sectionKey\\\":\\\"instructions\\\",\\\"id\\\":\\\"fba0d88650522987\\\"}]\",\"team\":\"[{\\\"name\\\":\\\"Donatella Jackson\\\",\\\"role\\\":\\\"Nurse\\\",\\\"phone\\\":\\\"555.555.5555\\\",\\\"userId\\\":\\\"test\\\",\\\"id\\\":\\\"3e6ac0f8ce202a51\\\"}]\",\"user\":\"[{\\\"id\\\":1,\\\"userID\\\":null,\\\"groupID\\\":null,\\\"loginKey\\\":null,\\\"created_at\\\":\\\"2014-09-18T22:29:39.609Z\\\"}]\",\"userresponses\":\"[]\"}" \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/charts.js b/platforms/browser/www/scripts/controllers/charts.js new file mode 100644 index 00000000..b46fb271 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/charts.js @@ -0,0 +1,192 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ChartsactivityCtrl + * @description + * # ChartsactivityCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ChartsCtrl', function($scope, $timeout,Pound) { + + $scope.pageTitle = 'My Charts'; + + + $timeout(function(){$('td').tooltip()}); + + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn'); + $scope.recodedResponses = JSON.parse(localStorage['recodedResponses']); + $scope.timezoneoffset = new Date().getTimezoneOffset() / 60; + + $scope.graph = [] + if ($scope.dailyCheckInResponseArray.length > 7) { + $scope.graph[6] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]; + $scope.graph[5] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]; + $scope.graph[4] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]; + $scope.graph[3] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]; + $scope.graph[2] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]; + $scope.graph[1] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]; + $scope.graph[0] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]; + } else { + $scope.graph = $scope.dailyCheckInResponseArray; + } + + console.log($scope.graph); + + $scope.wellness = []; + $scope.dates = []; + + for (var i = 0; i < $scope.graph.length; i++) { + debugger; + $scope.wellness.push(parseInt($scope.graph[i].wellness)); + $scope.dates.push(moment($scope.graph[i].created_at).format('MM-DD')); + } + + + + $scope.routine = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','missed two']; + break; + case 1: + returnvalue = ['b','missed one']; + break; + case 2: + returnvalue = ['a','in range']; + break; + } + return returnvalue + } + }; + + $scope.medication = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','took none']; + break; + case 0.5: + returnvalue = ['b','took some']; + break; + case 1: + returnvalue = ['a','took all']; + break; + } + return returnvalue + } + }; + + $scope.sleep = { + class: function(value) { + var returnvalue = null; + + switch (value) { + case -1: + returnvalue = ['c','too little']; + break; + case -0.5: + returnvalue = ['b','too little']; + break; + case 0: + returnvalue = ['a','in range']; + break; + case .5: + returnvalue = ['b','too much']; + break; + case 1: + returnvalue = ['c','too much']; + break; + } + + return returnvalue + } + }; + + + + + Highcharts.theme = { + exporting: { + enabled: false + }, + chart: { + backgroundColor: 'transparent', + style: { + fontFamily: "sans-serif" + }, + plotBorderColor: '#606063' + }, + yAxis: { + max:3, + min:-3, + gridLineColor: '#707073', + labels: { + style: { + color: '#E0E0E3' + } + }, + lineColor: 'white', + minorGridLineColor: '#505053', + minorGridLineWidth: '1.5', + tickColor: '#707073', + }, + // special colors for some of the + legendBackgroundColor: 'rgba(0, 0, 0, 0.5)', + background2: '#505053', + dataLabelsColor: '#B0B0B3', + textColor: '#C0C0C0', + contrastTextColor: '#F0F0F3', + maskColor: 'rgba(255,255,255,0.3)' + }; + + Highcharts.setOptions(Highcharts.theme); + + $scope.config = { + title: { + text: ' ', + x: -20, //center, + enabled: false + }, + subtitle: { + text: '', + x: -20 + }, + xAxis: { + categories: $scope.dates + }, + yAxis: { + title: { + text: '' + }, + plotLines: [{ + value: 0, + width: 1.5, + color: 'white' + }], + labels: { + enabled: false + } + }, + tooltip: { + valueSuffix: '', + enabled: false + }, + legend: { + layout: 'vertical', + align: 'right', + verticalAlign: 'middle', + borderWidth: 0, + enabled: false + }, + series: [{ + showInLegend: false, + name: 'Wellness', + data: $scope.wellness + }] + }; + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/checkins.js b/platforms/browser/www/scripts/controllers/checkins.js new file mode 100644 index 00000000..a65a9f33 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/checkins.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CheckinsCtrl + * @description + * # CheckinsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('CheckinsCtrl', function ($scope, $location) { + $scope.pageTitle = 'Check Ins'; + + + + }); diff --git a/platforms/browser/www/scripts/controllers/cms.js b/platforms/browser/www/scripts/controllers/cms.js new file mode 100644 index 00000000..48226abc --- /dev/null +++ b/platforms/browser/www/scripts/controllers/cms.js @@ -0,0 +1,70 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CmsCtrl + * @description + * # CmsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('CmsCtrl', function ($scope,Questions) { + + + $scope.formFieldTypes = ['checkbox','radio','html','text','textarea','select','email','time','phone','url']; + + $scope.questionGroups = Questions.uniqueQuestionGroups(); + $scope.questions = Questions.questions; + $scope.responses = Questions.responses; + $scope.questionCriteria = Questions.questionCriteria; + $scope.responseCriteria = Questions.responseCriteria; + + console.log(Questions); + + $scope.viewTypes = [{name:'Table', value:'table'},{name:'Map', value:'map'}]; + $scope.viewType = 'table'; + $scope.questionGroup = 'cyoa'; + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + + $scope.showGroup = function(){ + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + console.log($scope.selectedQuestions); + + } + +$scope.editResponses = function(id){ + $scope.modalTitle = 'Edit Responses'; + $scope.responseGroupId = id; + $scope.showResponses = _.where($scope.responses,{responseGroupId:$scope.responseGroupId}); + $scope.uniqueResponseGroups = _.pluck(_.uniq($scope.responses,'responseGroupId'),'responseGroupId'); + $scope.goesToOptions = $scope.selectedQuestions; + $("#responseModal").modal(); +} + +$scope.saveResponses = function(id){ + $("#responseModal").modal('toggle'); + Questions.save('responses',$scope.responses); + Questions.save('responseCriteria',$scope.responseCriteria); +} + + + +$scope.editQuestion = function(id){ + +} + +$scope.addQuestion = function(id){ + +} +$scope.deleteQuestion = function(id){ + +} + +$scope.editCriteria = function(id){ + +} + + + + +}); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/daily_check_in.js b/platforms/browser/www/scripts/controllers/daily_check_in.js new file mode 100644 index 00000000..3076cfa5 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/daily_check_in.js @@ -0,0 +1,500 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyCheckInCtrl + * @description + * # DailyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyCheckInCtrl', function($scope, $location, $routeParams, Pound, Guid) { + $scope.pageTitle = 'Daily Check In'; + + $scope.dailyCheckIn = { + gotUp: '', + toBed: '', + wellness: '', + medications: '', + startTime: new Date() + }; + + $scope.emergency = false; + + $scope.warningPhoneNumber = null; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0] != undefined) { + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + } else { + $scope.phoneNumber = '312-503-1886'; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachNumber = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].phone; + } else { + $scope.coachNumber = '312-503-1886'; + } + + $scope.responses = [{ + order: 1, + callCoach: true, + response: '-4', + label: '-4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a -4, if this is correct, close and press submit.' + }, { + order: 2, + callCoach: false, + response: '-3', + label: '-3', + tailoredMessage: 'some message' + }, { + order: 3, + callCoach: false, + response: '-2', + label: '-2', + tailoredMessage: 'some message' + }, { + order: 4, + callCoach: false, + response: '-1', + label: '-1', + tailoredMessage: 'some message' + }, { + order: 5, + callCoach: false, + response: '0', + label: '0', + tailoredMessage: 'some message' + }, { + order: 6, + callCoach: false, + response: '1', + label: '+1', + tailoredMessage: 'some message' + }, { + order: 7, + callCoach: false, + response: '2', + label: '+2', + tailoredMessage: 'some message' + }, { + order: 8, + callCoach: false, + response: '3', + label: '+3', + tailoredMessage: 'some message' + }, { + order: 9, + callCoach: true, + response: '4', + label: '+4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a +4, if this is correct, close and press submit.' + }]; + + $scope.times = [{ + value: "0000", + label: "12:00AM" + }, { + value: "0030", + label: "12:30AM" + }, { + value: "0100", + label: "1:00AM" + }, { + value: "0130", + label: "1:30AM" + }, { + value: "0200", + label: "2:00AM" + }, { + value: "0230", + label: "2:30AM" + }, { + value: "0300", + label: "3:00AM" + }, { + value: "0330", + label: "3:30AM" + }, { + value: "0400", + label: "4:00AM" + }, { + value: "0430", + label: "4:30AM" + }, { + value: "0500", + label: "5:00AM" + }, { + value: "0530", + label: "5:30AM" + }, { + value: "0600", + label: "6:00AM" + }, { + value: "0630", + label: "6:30AM" + }, { + value: "0700", + label: "7:00AM" + }, { + value: "0730", + label: "7:30AM" + }, { + value: "0800", + label: "8:00AM" + }, { + value: "0830", + label: "8:30AM" + }, { + value: "0900", + label: "9:00AM" + }, { + value: "0930", + label: "9:30AM" + }, { + value: "1000", + label: "10:00AM" + }, { + value: "1030", + label: "10:30AM" + }, { + value: "1100", + label: "11:00AM" + }, { + value: "1130", + label: "11:30AM" + }, { + value: "1200", + label: "12:00PM" + }, { + value: "1230", + label: "12:30PM" + }, { + value: "1300", + label: "1:00PM" + }, { + value: "1330", + label: "1:30PM" + }, { + value: "1400", + label: "2:00PM" + }, { + value: "1430", + label: "2:30PM" + }, { + value: "1500", + label: "3:00PM" + }, { + value: "1530", + label: "3:30PM" + }, { + value: "1600", + label: "4:00PM" + }, { + value: "1630", + label: "4:30PM" + }, { + value: "1700", + label: "5:00PM" + }, { + value: "1730", + label: "5:30PM" + }, { + value: "1800", + label: "6:00PM" + }, { + value: "1830", + label: "6:30PM" + }, { + value: "1900", + label: "7:00PM" + }, { + value: "1930", + label: "7:30PM" + }, { + value: "2000", + label: "8:00PM" + }, { + value: "2030", + label: "8:30PM" + }, { + value: "2100", + label: "9:00PM" + }, { + value: "2130", + label: "9:30PM" + }, { + value: "2200", + label: "10:00PM" + }, { + value: "2230", + label: "10:30PM" + }, { + value: "2300", + label: "11:00PM" + }, { + value: "2330", + label: "11:30PM" + }]; + + $scope.hours = [{ + value: "0", + label: "0 hrs" + }, { + value: "0.5", + label: "0.5 hrs" + }, { + value: "1", + label: "1 hrs" + }, { + value: "1.5", + label: "1.5 hrs" + }, { + value: "2", + label: "2 hrs" + }, { + value: "2.5", + label: "2.5 hrs" + }, { + value: "3", + label: "3 hrs" + }, { + value: "3.5", + label: "3.5 hrs" + }, { + value: "4", + label: "4 hrs" + }, { + value: "4.5", + label: "4.5 hrs" + }, { + value: "5", + label: "5 hrs" + }, { + value: "5.5", + label: "5.5 hrs" + }, { + value: "6", + label: "6 hrs" + }, { + value: "6.5", + label: "6.5 hrs" + }, { + value: "7", + label: "7 hrs" + }, { + value: "7.5", + label: "7.5 hrs" + }, { + value: "8", + label: "8 hrs" + }, { + value: "8.5", + label: "8.5 hrs" + }, { + value: "9", + label: "9 hrs" + }, { + value: "9.5", + label: "9.5 hrs" + }, { + value: "10", + label: "10 hrs" + }, { + value: "10.5", + label: "10.5 hrs" + }, { + value: "11", + label: "11 hrs" + }, { + value: "11.5", + label: "11.5 hrs" + }, { + value: "12", + label: "12 hrs" + }, { + value: "12.5", + label: "12.5 hrs" + }, { + value: "13", + label: "13 hrs" + }, { + value: "13.5", + label: "13.5 hrs" + }, { + value: "14", + label: "14 hrs" + }, { + value: "14.5", + label: "14.5 hrs" + }, { + value: "15", + label: "15 hrs" + }, { + value: "15.5", + label: "15.5 hrs" + }, { + value: "16", + label: "16 hrs" + }, { + value: "16.5", + label: "16.5 hrs" + }, { + value: "17", + label: "17 hrs" + }, { + value: "17.5", + label: "17.5 hrs" + }, { + value: "18", + label: "18 hrs" + }, { + value: "18.5", + label: "18.5 hrs" + }, { + value: "19", + label: "19 hrs" + }, { + value: "19.5", + label: "19.5 hrs" + }, { + value: "20", + label: "20 hrs" + }, { + value: "20.5", + label: "20.5 hrs" + }, { + value: "21", + label: "21 hrs" + }, { + value: "21.5", + label: "21.5 hrs" + }, { + value: "22", + label: "22 hrs" + }, { + value: "22.5", + label: "22.5 hrs" + }, { + value: "23", + label: "23 hrs" + }, { + value: "23.5", + label: "23.5 hrs" + }, { + value: "24", + label: "24 hrs" + }]; + + + $scope.saveCheckIn = function() { + + var allAnswersFinished = $scope.dailyCheckIn.gotUp != '' & $scope.dailyCheckIn.toBed != '' & $scope.dailyCheckIn.medications != '' & $scope.dailyCheckIn.wellness != '' & $scope.dailyCheckIn.sleepDuration != ''; + + if (allAnswersFinished) { + $scope.dailyCheckIn.endTime = new Date(); + if ($scope.dailyCheckIn.wellness == 4 || $scope.dailyCheckIn.wellness == -4) { + $scope.emergency = true; + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: 'User answered with a ' + $scope.dailyCheckIn.wellness + ' on the daily check in' + }).execute(); + } + + Pound.add('dailyCheckIn', $scope.dailyCheckIn); + $scope.nextId = $routeParams.id; + + var sessionID = Guid.create(); + + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'toBed', + questionValue: $scope.dailyCheckIn.toBed + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'gotUp', + questionValue: $scope.dailyCheckIn.gotUp + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'wellness', + questionValue: $scope.dailyCheckIn.wellness + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'medications', + questionValue: $scope.dailyCheckIn.medications + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'sleepDuration', + questionValue: $scope.dailyCheckIn.sleepDuration + }).execute(); + + $("#continue").modal(); + } else { + $("#warning").modal(); + $scope.selectedWarningMessage = 'You must respond to all questions on this page!'; + } + } + + $scope.highlight = function(id, response) { + + $('label').removeClass('highlight'); + $(id).addClass('highlight'); + $scope.dailyCheckIn.wellness = response; + + } + + $scope.warning = function(response) { + + if (response.warningMessage.length > 0) { + $scope.selectedWarningMessage = response.warningMessage; + if (response.callCoach == true) { + $scope.warningPhoneNumber = $scope.phoneNumber; + } else { + $scope.warningPhoneNumber = null; + } + $("#warning").modal(); + } + + + } + + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/daily_review.js b/platforms/browser/www/scripts/controllers/daily_review.js new file mode 100644 index 00000000..b83c2238 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/daily_review.js @@ -0,0 +1,150 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewCtrl + * @description + * # DailyReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewCtrl', function($scope, $routeParams, $timeout, UserData, Pound, DailyReviewAlgorithm, ClinicalStatusUpdate, Guid) { + $scope.pageTitle = "Daily Review"; + + Pound.add('dailyReviewStarted', { + userStarted: true, + code: $scope.code + }); + + $timeout(function(){$('.add-tooltip').tooltip()}); + + $scope.routineData = UserData.query('sleepRoutineRanges'); + + $scope.cleanTime = function(militaryTime){ + + var time = militaryTime.toString(); + var cleanTime = ''; + + if (time[0] == '0' && time[1] == '0'){ + cleanTime = '12:' + time[2] + time[3]; + } else if( time[0] == '0'){ + cleanTime = time[1] + ":" + time[2] + time[3]; + } else if (parseInt(time[0] + time[1]) > 12 ){ + cleanTime = (parseInt(time[0] + time[1]) - 12) + ":" + time[2] + time[3]; + } else { + cleanTime = time[0] + time[1] + ":" + time[2] + time[3]; + } + + if (parseInt(militaryTime) > 1200){ + return cleanTime + ' PM' + } + else { + return cleanTime + ' AM' + } + + } + + $scope.interventionGroups = UserData.query('dailyReview'); + + $scope.updatedClinicalStatus = {}; + + var runAlgorithm = function(Pound) { + var object = {}; + var sessionID = Guid.create(); + + object.code = DailyReviewAlgorithm.code(); + $scope.updatedClinicalStatus = ClinicalStatusUpdate.execute(); + + (new PurpleRobot()).emitReading('livewell_dailyreviewcode', { + sessionGUID: sessionID, + code: object.code + }).execute(); + (new PurpleRobot()).emitReading('livewell_clinicalstatus', { + sessionGUID: sessionID, + status: $scope.updatedClinicalStatus + }).execute(); + + return object + + } + + $scope.code = runAlgorithm().code; + + //TO REMOVE + $scope.recodedResponses = DailyReviewAlgorithm.recodedResponses(); + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn') + $scope.dailyCheckInResponses = ' |today| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]) + ' |t-1| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]) + ' |t-2| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]) + ' |t-3| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]) + ' |t-4| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]) + ' |t-5| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]) + ' |t-6| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]); + + //STOP REMOVE + + $scope.percentages = DailyReviewAlgorithm.percentages(); + + $(".modal-backdrop").remove(); + + var latestWarning = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1]; + + if (latestWarning != undefined) { + if (latestWarning.shownToUser == undefined) { + $scope.warningMessage = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1].message + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: $scope.warningMessage + }).execute(); + + latestWarning.shownToUser = true; + Pound.update('clinical_reachout', latestWarning); + $scope.showWarning = true; + $("#warning").modal(); + } + } + + $scope.dailyReviewCategory = _.where($scope.interventionGroups, { + code: $scope.code + })[0].questionSet; + + $scope.interventionResponse = function() { + + if ($scope.code == 1 || $scope.code == 2) { + return 'Please contact your care provider or hospital'; + } else { + if (_.where($scope.interventionGroups, { + code: $scope.code + })[0] != undefined) { + if (typeof(_.where($scope.interventionGroups, { + code: $scope.code + })[0].response) == 'object') { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response[Math.floor((Math.random() * _.where($scope.interventionGroups, { + code: $scope.code + })[0].response.length))] + } else { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response + } + } + } + } + + + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/daily_review_conclusion.js b/platforms/browser/www/scripts/controllers/daily_review_conclusion.js new file mode 100644 index 00000000..d0c7af3f --- /dev/null +++ b/platforms/browser/www/scripts/controllers/daily_review_conclusion.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewConclusionCtrl + * @description + * # DailyReviewConclusionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewConclusionCtrl', function ($scope, $sanitize) { + $scope.pageTitle = "Daily Review"; + $scope.lastNotification = "Keep up the good work!
Check out your medication plan in Reduce Risk."; + }); diff --git a/platforms/browser/www/scripts/controllers/daily_review_summary.js b/platforms/browser/www/scripts/controllers/daily_review_summary.js new file mode 100644 index 00000000..9d9eb9db --- /dev/null +++ b/platforms/browser/www/scripts/controllers/daily_review_summary.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewSummaryCtrl + * @description + * # DailyReviewSummaryCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewSummaryCtrl', function ($scope) { + $scope.pageTitle = "Daily Review"; + }); diff --git a/platforms/browser/www/scripts/controllers/dailyreviewtester.js b/platforms/browser/www/scripts/controllers/dailyreviewtester.js new file mode 100644 index 00000000..33415dc5 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/dailyreviewtester.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyreviewtesterCtrl + * @description + * # DailyreviewtesterCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyreviewtesterCtrl', function ($scope,Pound,dailyReview) { + + $scope.collection = Pound.find('dailyCheckIn'); + + $scope.proposedIntervention = dailyReview.getCode(); + + }); diff --git a/platforms/browser/www/scripts/controllers/ews.js b/platforms/browser/www/scripts/controllers/ews.js new file mode 100644 index 00000000..15f57db5 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/ews.js @@ -0,0 +1,38 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('EwsCtrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews = UserData.query('ews'); + + $scope.onClick=function(){ + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews', + questionDataLabel: 'ews', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + + $location.path('/ews2'); + + + } + + }); diff --git a/platforms/browser/www/scripts/controllers/ews2.js b/platforms/browser/www/scripts/controllers/ews2.js new file mode 100644 index 00000000..f57c3cf7 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/ews2.js @@ -0,0 +1,41 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('Ews2Ctrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews2 = UserData.query('ews2'); + + $scope.onClick=function(){ + + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews2', + questionDataLabel: 'ews2', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + console.log(payload); + + $location.path('/'); + + } + + + + }); diff --git a/platforms/browser/www/scripts/controllers/exit.js b/platforms/browser/www/scripts/controllers/exit.js new file mode 100644 index 00000000..064b8b5c --- /dev/null +++ b/platforms/browser/www/scripts/controllers/exit.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ExitCtrl + * @description + * # ExitCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ExitCtrl', function ($scope) { + + navigator.app.exitApp(); + + }); diff --git a/platforms/browser/www/scripts/controllers/fetch_content.js b/platforms/browser/www/scripts/controllers/fetch_content.js new file mode 100644 index 00000000..6039c3de --- /dev/null +++ b/platforms/browser/www/scripts/controllers/fetch_content.js @@ -0,0 +1,72 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FetchContentCtrl + * @description + * # FetchContentCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('FetchContentCtrl', function ($scope,$http) { + + var SERVER_LOCATION = 'https://livewell2.firebaseio.com/'; + var SECURE_CONTENT = 'https://mohrlab.northwestern.edu/livewell-dash/content/'; + var APP_COLLECTIONS_ROUTE = 'appcollections'; + var USER_ID = $scope.userID; + var ROUTE_SUFFIX = '.json'; + + $scope.error = ''; + $scope.errorColor = 'white'; + $scope.errorClass = ''; + + var downloadContent = function(app_collections){ + + if($scope.userID != undefined){localStorage['userID'] = $scope.userID; } + + _.each(app_collections,function(el){ + $http.get(SERVER_LOCATION + "users/" + localStorage['userID'] + "/" + el.route + ROUTE_SUFFIX ) + .success(function(response) { + + if(el.route == 'team' && response == null){ + alert('THE USER HAS NOT BEEN CONFIGURED!'); + } + + if (response.length != undefined){ + localStorage[el.route] = JSON.stringify(_.compact(response)); + } + else { + localStorage[el.route] = JSON.stringify(response); + } + }).error(function(err) { + $scope.error = 'Error on: ' + el.label; + $scope.errorColor = 'red'; + }); + }) + } + + $scope.fetchSecureContent = function(){ + + $http.get(SECURE_CONTENT +'?user='+ localStorage['userID'] +'&token=' + localStorage['registrationid']) + .success(function(content) { + localStorage['secureContent'] = JSON.stringify(content); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + $scope.fetchContent = function(){ + $scope.errorColor = 'green'; + $scope.fetchSecureContent(); + $http.get(SERVER_LOCATION + APP_COLLECTIONS_ROUTE + ROUTE_SUFFIX) + .success(function(app_collections) { + downloadContent(_.compact(app_collections)); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + + }); diff --git a/platforms/browser/www/scripts/controllers/foundations.js b/platforms/browser/www/scripts/controllers/foundations.js new file mode 100644 index 00000000..3eb01464 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/foundations.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FoundationsCtrl + * @description + * # FoundationsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('FoundationsCtrl', function ($scope) { + + $scope.pageTitle = "Foundations"; + + $scope.mainLinks = [ + {name:"Overview", id:162, post:'foundations', type:'lesson_player'}, + {name:"Basic Facts ", id:183, post:'foundations', type:'lesson_player'}, + {name:"Medications", id:184, post:'foundations', type:'lesson_player'}, + {name:"Lifestyle Skills", id:185, post:'foundations', type:'lesson_player'}, + {name:"Coping Skills", id:186, post:'foundations', type:'lesson_player'}, + {name:"Team", id:187, post:'foundations', type:'lesson_player'}, + {name:"Awareness", id:188, post:'foundations', type:'lesson_player'}, + {name:"Action", id:189, post:'foundations', type:'lesson_player'}, + {name:"Conclusion", id:250, post:'foundations', type:'lesson_player'}] + + }); diff --git a/platforms/browser/www/scripts/controllers/home.js b/platforms/browser/www/scripts/controllers/home.js new file mode 100644 index 00000000..f4daefec --- /dev/null +++ b/platforms/browser/www/scripts/controllers/home.js @@ -0,0 +1,121 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:HomeCtrl + * @description + * # HomeCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('HomeCtrl', function ($scope, Pound) { + + + var possibleGreetings = ['Welcome back!','Hello!','Greetings!','Good to see you!']; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + var requiredUserCollections = []; + + $scope.appConfigured = localStorage['appConfigured']; + + $scope.verifyUserContent = function(){ + + $scope.errorVerifyUserColor = 'green'; + } + + $scope.startTrial = function(){ + $scope.startDate = new Date().getDay() + localStorage['appConfigured'] = true; + window.location.href = ""; + } + + $scope.dailyCheckInCompleteToday = function(){ + + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + + function dropTime(dt){ + + var datetime = dt; + + datetime.setHours(0) + datetime.setMinutes(0); + datetime.setSeconds(0); + datetime.setMilliseconds(0); + + return datetime.toString() + + } + + if (dropTime(mostRecentResponseDateTime) == dropTime(new Date()) ){ + return true + } else { + return false + } + + }; + + $scope.weeklyCheckInCompleteThisWeek = function(){ + + var collection = Pound.find('weeklyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + var now = moment(new Date()); + var lastSundayMorning = moment(new Date()).subtract(new Date().getDay(),'d').set({hour:0,minute:0,second:0,millisecond:0}); + + var validResponse = moment(mostRecentResponseDateTime).isAfter(lastSundayMorning) && moment(mostRecentResponseDateTime).isBefore(now); + + if (collection.length == 0){ + return false + } + else if (validResponse){ + return true + } else { + return false + } + + }; + + $scope.dailyReviewCompleteToday = function(){ + var dailyReviewComplete = false; + var thisMorning = moment(new Date()).set({hour:0,minute:0,second:0,millisecond:0}); + + var collection = Pound.find('dailyReviewStarted'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + if(moment(mostRecentResponseDateTime).isAfter(thisMorning)){ + + dailyReviewComplete = true; + } + + return dailyReviewComplete + + + } + + $scope.lastDailyCheckInWasEmergency = function(){ + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + + if(mostRecentResponse.wellness != '-4' && mostRecentResponse.wellness != '4'){ + return false + } + else{ + return true + } + } + + $scope.greeting = possibleGreetings[Math.floor(Math.random()*possibleGreetings.length)]; + + $(".modal-backdrop").remove(); + + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/instructions.js b/platforms/browser/www/scripts/controllers/instructions.js new file mode 100644 index 00000000..aa98396a --- /dev/null +++ b/platforms/browser/www/scripts/controllers/instructions.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InstructionsCtrl + * @description + * # InstructionsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('InstructionsCtrl', function ($scope, StaticContent) { + $scope.pageTitle = "Instructions"; + + $scope.mainLinks = [ + {id:198,name:"Introduction", post:"instructions"}, + {id:201,name:"Settings", post:"instructions"}, + {id:199,name:"Toolbox", post:"instructions"}, + {id:202,name:"Coach", post:"instructions"}, + {id:203,name:"Psychiatrist", post:"instructions"}, + {id:204,name:"Foundations", post:"instructions"}, + {id:205,name:"Daily Check In", post:"instructions"}, + {id:372,name:"Weekly Check In", post:"instructions"}, + {id:369,name:"Daily Review", post:"instructions"}, + {id:371,name:"Wellness Plan", post:"instructions"}, + {id:370,name:"Charts", post:"instructions"} + ] + + + }); diff --git a/platforms/browser/www/scripts/controllers/intervention.js b/platforms/browser/www/scripts/controllers/intervention.js new file mode 100644 index 00000000..466ab0cd --- /dev/null +++ b/platforms/browser/www/scripts/controllers/intervention.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InterventionCtrl + * @description + * # InterventionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('InterventionCtrl', function ($scope, $routeParams,Questions) { + $scope.pageTitle = "Daily Review"; + + console.log($routeParams); + $scope.questionGroups = Questions.query($routeParams.code); + + $scope.hideProgressBar = true; + + var pr = new PurpleRobot(); + pr.disableTrigger('dailyCheckIn1').disableTrigger('dailyCheckIn2').disableTrigger('dailyCheckIn3').disableTrigger('dailyCheckIn4').disableTrigger('dailyCheckIn5').disableTrigger('dailyCheckIn6').execute(); + + }); diff --git a/platforms/browser/www/scripts/controllers/lesson_player.js b/platforms/browser/www/scripts/controllers/lesson_player.js new file mode 100644 index 00000000..ca0d839f --- /dev/null +++ b/platforms/browser/www/scripts/controllers/lesson_player.js @@ -0,0 +1,79 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LessonPlayerCtrl + * @description + * # LessonPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LessonPlayerCtrl', function ($scope, $routeParams, $sce, $location) { + + +$scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter_contents_list = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + var chapter_contents = []; + + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter_contents_list, function (element) { + // console.log(parseInt(element)); + chapter_contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + return chapter_contents; +}; + +$scope.lessons = JSON.parse(localStorage['lessons']); + +$scope.backButton = '<'; +$scope.backButtonClass = 'btn btn-info'; +$scope.nextButton = '>'; +$scope.nextButtonClass = 'btn btn-primary'; +$scope.currentSlideIndex = 0; + +$scope.pageTitle = _.where($scope.lessons, {id:parseInt($routeParams.id)})[0].pretty_name; + +$scope.currentChapterContents = $scope.getChapterContents($routeParams.id,$scope.lessons); + +$scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + + +$scope.next = function(){ + if ($scope.currentSlideIndex+1 < $scope.currentChapterContents.length){ + $scope.currentSlideIndex++; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + else { + if ($routeParams.post == undefined) + { window.location.href = '#/';} + else { + window.location.href = '#/' + $routeParams.post; + } + } + + if ($scope.currentSlideIndex+1 == $scope.currentChapterContents.length){ + $scope.nextButton = '>'; + } + else{ + $scope.nextButton = '>'; + + } +} + +$scope.back = function(){ + if ($scope.currentSlideIndex > 0){ + $scope.currentSlideIndex--; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + +} + +}); diff --git a/platforms/browser/www/scripts/controllers/load_interventions.js b/platforms/browser/www/scripts/controllers/load_interventions.js new file mode 100644 index 00000000..8bde5f7e --- /dev/null +++ b/platforms/browser/www/scripts/controllers/load_interventions.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoadInterventionsReviewCtrl + * @description + * # LoadInterventionsReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoadInterventionsCtrl', function ($scope, UserData, $location, $filter) { + + $scope.pageTitle = 'Topics'; + + $scope.hierarchy = UserData.query('interventionLabels'); + $scope.interventionGroups = UserData.query('dailyReview') + + debugger; + + $scope.goToIntervention = function(code){ + + $location.path('intervention/' + $filter('filter')($scope.interventionGroups,{code:code},true)[0].questionSet); + + } + + }); diff --git a/platforms/browser/www/scripts/controllers/localstoragebackuprestore.js b/platforms/browser/www/scripts/controllers/localstoragebackuprestore.js new file mode 100644 index 00000000..a9764368 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/localstoragebackuprestore.js @@ -0,0 +1,43 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LocalstoragebackuprestoreCtrl + * @description + * # LocalstoragebackuprestoreCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LocalstoragebackuprestoreCtrl', function ($scope, $sanitize) { + + + + $scope.initiateLocalBackup = function(){ + $scope.localStorageContents = JSON.stringify(JSON.stringify(localStorage)); + } + + $scope.restoreLocalBackup = function(){ + var restoreContent = JSON.parse(JSON.parse($scope.localStorageContents)); + + _.each(_.keys(restoreContent), function(el){ + + debugger; + localStorage[el] = eval("restoreContent." + el); + + }); + localStorage = JSON.parse($scope.localStorageContents); + //open file or copy and paste string and replace localStorage + + } + + $scope.updateRemoteService = function(serverURL){ + + //use the local app-collections store to iterate over all local collections and post to valid routes + + } + + $scope.wipeLocalStorage = function(){ + localStorage.clear(); + } + + }); diff --git a/platforms/browser/www/scripts/controllers/login.js b/platforms/browser/www/scripts/controllers/login.js new file mode 100644 index 00000000..2317e239 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/login.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoginCtrl + * @description + * # LoginCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoginCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/main.js b/platforms/browser/www/scripts/controllers/main.js new file mode 100644 index 00000000..7e11947d --- /dev/null +++ b/platforms/browser/www/scripts/controllers/main.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MainCtrl + * @description + * # MainCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MainCtrl', function ($scope, UserDetails) { + + $scope.pageTitle = 'Main Menu'; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + // $scope.showLogin = function(){ + + // if (UserDetails.find.id == null){ + // return true + // } + // else { + // return false + // } + + // } + + }); diff --git a/platforms/browser/www/scripts/controllers/medications.js b/platforms/browser/www/scripts/controllers/medications.js new file mode 100644 index 00000000..c67c03e5 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/medications.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MedicationsCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Medications"; + $scope.medications = UserData.query('medications'); + + + }); diff --git a/platforms/browser/www/scripts/controllers/myskills.js b/platforms/browser/www/scripts/controllers/myskills.js new file mode 100644 index 00000000..a0c0e3b2 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/myskills.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MyskillsCtrl + * @description + * # MyskillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MyskillsCtrl', function ($scope,$location,$filter,$route) { + + $scope.currentSkillId = null; + + $scope.currentSkillContent = null; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + if (JSON.parse(localStorage['mySkills'] != undefined)){ + $scope.mySkills = _.uniq(JSON.parse(localStorage['mySkills'])); + } else { + $scope.mySkills = []; + } + + $scope.skill = function(id){ + return $filter('filter')($scope.lessons,{id:id},true) + }; + + $scope.showSkill = function(id){ + $scope.currentSkillId = id; + $scope.currentSkillContent = $scope.skill(id)[0].main_content; + } + + $scope.removeSkill = function () { + + var id = $scope.currentSkillId; + var array = $scope.mySkills; + var index = array.indexOf(id); + + if (index > -1) { + array.splice(index, 1); + } + + $scope.mySkills = array; + + localStorage['mySkills'] = JSON.stringify($scope.mySkills); + + $route.reload() + + } + + + + + }); diff --git a/platforms/browser/www/scripts/controllers/personalsnapshot.js b/platforms/browser/www/scripts/controllers/personalsnapshot.js new file mode 100644 index 00000000..c18ce6d2 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/personalsnapshot.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:PersonalsnapshotCtrl + * @description + * # PersonalsnapshotCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('PersonalsnapshotCtrl', function ($scope, UserData) { + + // var sleepRoutineRanges = {}; + + // sleepRoutineRanges.MoreSevere = 12; + // sleepRoutineRanges.More = 9; + // sleepRoutineRanges.Less = 7; + // sleepRoutineRanges.LessSevere = 4; + + // sleepRoutineRanges.BedTimeStrt_MT = '2300'; + // sleepRoutineRanges.BedtimeStop_MT = '0100'; + + // sleepRoutineRanges.RiseTimeStrt_MT = '0630'; + // sleepRoutineRanges.RiseTimeStop_MT = '0830'; + + $scope.sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + $scope.currentClinicalStatusCode = UserData.query('clinicalStatus').currentCode; + + }); diff --git a/platforms/browser/www/scripts/controllers/resources.js b/platforms/browser/www/scripts/controllers/resources.js new file mode 100644 index 00000000..2de3bf3a --- /dev/null +++ b/platforms/browser/www/scripts/controllers/resources.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ResourcesCtrl + * @description + * # ResourcesCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ResourcesCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/risks.js b/platforms/browser/www/scripts/controllers/risks.js new file mode 100644 index 00000000..ed681bcc --- /dev/null +++ b/platforms/browser/www/scripts/controllers/risks.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:RisksCtrl + * @description + * # RisksCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('RisksCtrl', function ($scope,UserData) { + //risk variables + $scope.smarts = UserData.query('smarts'); + + + + }); diff --git a/platforms/browser/www/scripts/controllers/schedule.js b/platforms/browser/www/scripts/controllers/schedule.js new file mode 100644 index 00000000..b079ad15 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/schedule.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ScheduleCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Schedule"; + $scope.schedules = UserData.query('schedule'); + + + }); diff --git a/platforms/browser/www/scripts/controllers/settings.js b/platforms/browser/www/scripts/controllers/settings.js new file mode 100644 index 00000000..903c8e4c --- /dev/null +++ b/platforms/browser/www/scripts/controllers/settings.js @@ -0,0 +1,269 @@ +'use strict'; +/** + * @ngdoc function + * @name livewellApp.controller:SettingsCtrl + * @description + * # SettingsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SettingsCtrl', function($scope) { + $scope.pageTitle = 'Settings'; + $scope.times = [{ + value: "00:00", + label: "12:00AM" + }, { + value: "00:30", + label: "12:30AM" + }, { + value: "01:00", + label: "1:00AM" + }, { + value: "01:30", + label: "1:30AM" + }, { + value: "02:00", + label: "2:00AM" + }, { + value: "02:30", + label: "2:30AM" + }, { + value: "03:00", + label: "3:00AM" + }, { + value: "03:30", + label: "3:30AM" + }, { + value: "04:00", + label: "4:00AM" + }, { + value: "04:30", + label: "4:30AM" + }, { + value: "05:00", + label: "5:00AM" + }, { + value: "05:30", + label: "5:30AM" + }, { + value: "06:00", + label: "6:00AM" + }, { + value: "06:30", + label: "6:30AM" + }, { + value: "07:00", + label: "7:00AM" + }, { + value: "07:30", + label: "7:30AM" + }, { + value: "08:00", + label: "8:00AM" + }, { + value: "08:30", + label: "8:30AM" + }, { + value: "09:00", + label: "9:00AM" + }, { + value: "09:30", + label: "9:30AM" + }, { + value: "10:00", + label: "10:00AM" + }, { + value: "10:30", + label: "10:30AM" + }, { + value: "11:00", + label: "11:00AM" + }, { + value: "11:30", + label: "11:30AM" + }, { + value: "12:00", + label: "12:00PM" + }, { + value: "12:30", + label: "12:30PM" + }, { + value: "13:00", + label: "1:00PM" + }, { + value: "13:30", + label: "1:30PM" + }, { + value: "14:00", + label: "2:00PM" + }, { + value: "14:30", + label: "2:30PM" + }, { + value: "15:00", + label: "3:00PM" + }, { + value: "15:30", + label: "3:30PM" + }, { + value: "16:00", + label: "4:00PM" + }, { + value: "16:30", + label: "4:30PM" + }, { + value: "17:00", + label: "5:00PM" + }, { + value: "17:30", + label: "5:30PM" + }, { + value: "18:00", + label: "6:00PM" + }, { + value: "18:30", + label: "6:30PM" + }, { + value: "19:00", + label: "7:00PM" + }, { + value: "19:30", + label: "7:30PM" + }, { + value: "20:00", + label: "8:00PM" + }, { + value: "20:30", + label: "8:30PM" + }, { + value: "21:00", + label: "9:00PM" + }, { + value: "21:30", + label: "9:30PM" + }, { + value: "22:00", + label: "10:00PM" + }, { + value: "22:30", + label: "10:30PM" + }, { + value: "23:00", + label: "11:00PM" + }, { + value: "23:30", + label: "11:30PM" + }]; + + if (localStorage['checkinPrompt'] == undefined) { + $scope.checkinPrompt = { + value: "00:00", + label: "12:00AM" + }; + + } else { + $scope.checkinPrompt = JSON.parse(localStorage['checkinPrompt']); + } + + $scope.savePromptSchedule = function() { + + + (new PurpleRobot()).emitReading('livewell_prompt_registration', { + startTime: $scope.checkinPrompt.value, + registrationId: localStorage.registrationId + }).execute(); + + + var checkInValues = $scope.checkinPrompt.value.split(":"); + localStorage['checkinPrompt'] = JSON.stringify($scope.checkinPrompt); + //new Date(year, month, day, hours, minutes, seconds, milliseconds) + var dailyCheckInDateTime1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]) + 1, 0); + var dailyReviewRenewalDateTime = new Date(2016, 0, 1, 2, 0, 0); + var dailyReviewRenewalDateTimeEnd = new Date(2016, 0, 1, 2, 1, 0); + var pr = new PurpleRobot(); + + + + // var dailyCheckInDialog = + // pr.showScriptNotification({ + // title: "LiveWell", + // message: "Can you complete your LiveWell activities now?", + // isPersistent: true, + // isSticky: false, + // script: pr.launchApplication('edu.northwestern.cbits.livewell') + // }); + + // var dailyReviewRenew = + // pr.enableTrigger('dailyCheckIn1').enableTrigger('dailyCheckIn2').enableTrigger('dailyCheckIn3').enableTrigger('dailyCheckIn4').enableTrigger('dailyCheckIn5').enableTrigger('dailyCheckIn6'); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn1', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime1, + // endAt: dailyCheckinDateTimeEnd1 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn2', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime2, + // endAt: dailyCheckinDateTimeEnd2 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn3', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime3, + // endAt: dailyCheckinDateTimeEnd3 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn4', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime4, + // endAt: dailyCheckinDateTimeEnd4 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn5', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime5, + // endAt: dailyCheckinDateTimeEnd5 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn6', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime6, + // endAt: dailyCheckinDateTimeEnd6 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyReviewReset', + // random: false, + // script: dailyReviewRenew, + // startAt: dailyReviewRenewalDateTime, + // endAt: dailyReviewRenewalDateTimeEnd + // }).execute(); + + $("form").append('
Your prompt times have been updated.
'); + + }; + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/setup.js b/platforms/browser/www/scripts/controllers/setup.js new file mode 100644 index 00000000..2e0ba11b --- /dev/null +++ b/platforms/browser/www/scripts/controllers/setup.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SetupCtrl + * @description + * # SetupCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SetupCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/skills.js b/platforms/browser/www/scripts/controllers/skills.js new file mode 100644 index 00000000..2836c901 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/skills.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCtrl', function ($scope) { + $scope.pageTitle = "Toolbox"; + + $scope.mainLinks = [ + {id:'fundamentals',name:"Making Changes"}, + {id:'awareness',name:"Self-Assessment"}, + {id:'lifestyle',name:"Lifestyle"}, + {id:'coping',name:"Coping"}, + {id:'team',name:"Team"}, + + ] + + + }); diff --git a/platforms/browser/www/scripts/controllers/skills_awareness.js b/platforms/browser/www/scripts/controllers/skills_awareness.js new file mode 100644 index 00000000..1ed61db5 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/skills_awareness.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsAwarenessCtrl + * @description + * # SkillsAwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsAwarenessCtrl', function ($scope) { + + $scope.pageTitle = "Self-Assessment"; + + $scope.mainLinks = [ + {name:"Symptoms and Triggers", id:194, post:'skills_awareness'}, + {name:"Skills and Strengths", id:196, post:'skills_awareness'}, + {name:"Supports and Environment", id:197, post:'skills_awareness'} + ] + }); + + + + diff --git a/platforms/browser/www/scripts/controllers/skills_coping.js b/platforms/browser/www/scripts/controllers/skills_coping.js new file mode 100644 index 00000000..0fd71d97 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/skills_coping.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCopingCtrl + * @description + * # SkillsCopingCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCopingCtrl', function ($scope) { + + $scope.pageTitle = "Coping"; + + $scope.mainLinks = [ + {name:"Depression - Dial Up", id:550, post:'skills_coping',type:'summary_player'}, + {name:"Mania - Dial Down", id:551, post:'skills_coping',type:'summary_player'} + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/skills_fundamentals.js b/platforms/browser/www/scripts/controllers/skills_fundamentals.js new file mode 100644 index 00000000..f835b891 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/skills_fundamentals.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsFundamentalsCtrl', function ($scope) { + + $scope.pageTitle = "Making Changes"; + + $scope.mainLinks = [ + {name:"Get Prepared", id:190, post:'skills_fundamentals'}, + {name:"Set Goal", id:193, post:'skills_fundamentals'}, + {name:"Develop Plan",id:191,post:'skills_fundamentals'}, + {name:"Monitor Behavior", id:192, post:'skills_fundamentals'}, + {name:"Evaluate Performance",id:195,post:'skills_fundamentals'} + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/skills_lifestyle.js b/platforms/browser/www/scripts/controllers/skills_lifestyle.js new file mode 100644 index 00000000..9785c8f3 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/skills_lifestyle.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsLifestyleCtrl + * @description + * # SkillsLifestyleCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsLifestyleCtrl', function ($scope) { + $scope.pageTitle = "Lifestyle"; + + $scope.mainLinks = [ + {name:"Sleep", id:543, post:'skills_lifestyle'}, + {name:"Medications", id:544, post:'skills_lifestyle'}, + {name:"Attend", id:545, post:'skills_lifestyle'}, + {name:"Routine", id:546, post:'skills_lifestyle'}, + {name:"Tranquility", id:547, post:'skills_lifestyle'}, + {name:"Socialization", id:562, post:'skills_lifestyle'} + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/skills_team.js b/platforms/browser/www/scripts/controllers/skills_team.js new file mode 100644 index 00000000..60a6c139 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/skills_team.js @@ -0,0 +1,34 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsTeamCtrl + * @description + * # SkillsTeamCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsTeamCtrl', function ($scope) { + $scope.pageTitle = "Team"; + + // $scope.mainLinks = [ + // {name:"Duality", id:553, post:'skills_team'}, + // {name:"Humilty", id:554, post:'skills_team'}, + // {name:"Obligation", id:555, post:'skills_team'}, + // {name:"Sacrifice", id:556, post:'skills_team'}, + // {name:"Asking for Help", id:557, post:'skills_team'}, + // {name:"Giving Back", id:558, post:'skills_team'}, + // {name:"Doctor Checklist", id:559, post:'skills_team'}, + // {name:"Support Checklist", id:560, post:'skills_team'}, + // {name:"Hospital Checklist", id:561, post:'skills_team'} + // ]; + + $scope.mainLinks = [ + {name:"Psychiatrist", id:580, post:'skills_team'}, + {name:"Supports", id:581, post:'skills_team'}, + {name:"Hospital", id:582, post:'skills_team'} + ]; + + + + }); diff --git a/platforms/browser/www/scripts/controllers/summary_player.js b/platforms/browser/www/scripts/controllers/summary_player.js new file mode 100644 index 00000000..1bb3471f --- /dev/null +++ b/platforms/browser/www/scripts/controllers/summary_player.js @@ -0,0 +1,66 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SummaryPlayerCtrl + * @description + * # SummaryPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SummaryPlayerCtrl', function ($scope, $routeParams, $location) { + + $scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter = _.where(appContent, search_criteria)[0]; + + chapter.element_array = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + + chapter.contents = []; + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter.element_array, function (element) { + // console.log(parseInt(element)); + chapter.contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + + return chapter; + }; + + $scope.showAddSkills = false; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + $scope.chapter = $scope.getChapterContents($routeParams.id,$scope.lessons); + + $scope.pageTitle = $scope.chapter.pretty_name; + + $scope.page = $scope.chapter.contents; + + $scope.addToMySkills = function(){ + + var id = $scope.page.id; + + if (localStorage['mySkills'] == undefined){ + + localStorage['mySkills'] = JSON.stringify([id]); + } + else { + var mySkills = JSON.parse(localStorage['mySkills']); + + mySkills.push(parseInt(id)); + localStorage['mySkills'] = JSON.stringify(mySkills); + } + + $location.path('/mySkills'); + + } + debugger; + + }); diff --git a/platforms/browser/www/scripts/controllers/team.js b/platforms/browser/www/scripts/controllers/team.js new file mode 100644 index 00000000..bf249f3a --- /dev/null +++ b/platforms/browser/www/scripts/controllers/team.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('TeamCtrl', function ($scope, UserData) { + $scope.pageTitle = "My Team"; + + $scope.team = UserData.query('team'); + $scope.secureTeam = UserData.query('secureContent').team; + }); diff --git a/platforms/browser/www/scripts/controllers/usereditor.js b/platforms/browser/www/scripts/controllers/usereditor.js new file mode 100644 index 00000000..c2f0825d --- /dev/null +++ b/platforms/browser/www/scripts/controllers/usereditor.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:UsereditorCtrl + * @description + * # UsereditorCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('UsereditorCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/platforms/browser/www/scripts/controllers/weekly_check_in.js b/platforms/browser/www/scripts/controllers/weekly_check_in.js new file mode 100644 index 00000000..77259df0 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/weekly_check_in.js @@ -0,0 +1,136 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WeeklyCheckInCtrl + * @description + * # WeeklyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WeeklyCheckInCtrl', function($scope, $location, $routeParams, Questions, Guid, UserDetails, Pound) { + + + $scope.pageTitle = 'Weekly Check In'; + + var phq_questions = Questions.query('phq9'); + var amrs_questions = Questions.query('amrs'); + + //combine questions into one group for the page + $scope.questionGroups = [phq_questions, amrs_questions]; + + //allows you to pass a question index url param into the question group directive + $scope.questionIndex = parseInt($routeParams.questionIndex) - 1 || 0; + + $scope.skippable = false; + + //overrides questiongroup default submit action to send data to PR + $scope.submit = function() { + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + + + _.each(responses, function(el) { + + var payload = { + userId: UserDetails.find, + survey: $scope.pageTitle, + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION, payload).execute(); + console.log(payload); + + }); + + var responsePayload = { + sessionID: sessionID, + responses: responses + }; + + Pound.add('weeklyCheckIn', responsePayload); + + var lWR = responses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + + if (_.where(JSON.parse(localStorage.team, { + role: 'Psychiatrist' + })[0] != undefined)) { + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + } else { + $scope.psychiatristEmail = ''; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + + if (amrsSum >= 10) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + } + if (amrsSum >= 16) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + } + if (phq8Sum >= 15) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'PHQ8 >= 15' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'PHQ8 >= 15' + }).execute(); + } + if (phq8Sum >= 20) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'PHQ8 >= 20' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'PHQ8 >= 20' + }).execute(); + } + + $location.path("/ews"); + + } + + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/controllers/wellness.js b/platforms/browser/www/scripts/controllers/wellness.js new file mode 100644 index 00000000..58e18178 --- /dev/null +++ b/platforms/browser/www/scripts/controllers/wellness.js @@ -0,0 +1,64 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WellnessCtrl + * @description + * # WellnessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WellnessCtrl', function ($scope,$routeParams) { + $scope.pageTitle = 'Wellness Plan'; + + $scope.section = $routeParams.section || ""; + + $scope.showResources = function(){ + $scope.riskVisible = false; + $scope.awarenessVisible = false; + $scope.resourcesVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#resources').addClass('btn-active'); + } + + $scope.showRisk = function(){ + $scope.awarenessVisible = false; + $scope.resourcesVisible = false; + $scope.riskVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').addClass('btn-active'); + $('button#resources').removeClass('btn-active'); + } + + $scope.showAwareness = function(){ + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = true; + $('button#resources').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#awareness').addClass('btn-active'); + + } + + + switch($scope.section) { + case "resources": + $scope.showResources(); + break; + case "awareness": + $scope.showAwareness(); + break; + case "risk": + $scope.showRisk(); + break; + default: + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = false; + } + + + + + }); diff --git a/platforms/browser/www/scripts/questionGroups/questiongroup.js b/platforms/browser/www/scripts/questionGroups/questiongroup.js new file mode 100644 index 00000000..c37469b7 --- /dev/null +++ b/platforms/browser/www/scripts/questionGroups/questiongroup.js @@ -0,0 +1,204 @@ +'use strict'; + +/** + * @ngdoc directive + * @name livewellApp.directive:questionGroup + * @description + * # questionGroup + */ +angular.module('livewellApp') + .directive('questionGroup', function ($location) { + return { + templateUrl: 'views/questionGroups/question_group.html', + restrict: 'E', + link: function postLink(scope, element, attrs) { + + scope._LABELS = scope.labels || [ + {name:'back',label:'<'}, + {name:'next',label:'>'}, + {name:'submit', label:'Save'} + ]; + + scope._SURVEY_FAILURE_LABEL = scope.surveyFailureLabel || 'Unfortunately, this survey failed to load:'; + + scope.questionGroups = _.flatten(scope.questionGroups); + scope.questionAnswered = []; + + scope.responseArray = []; + + scope.surveyFailure = function(){ + + var error = {}; + //there are no questions + if (scope.questionGroups.length == 0 && _.isArray(scope.questionGroups)) { + error = { error:true, message:"There are no questions available." } + } + //questions are not in an array + else if (_.isArray(scope.questionGroups) == false){ + error = { error:true, message:"Questions are not properly formatted." } + } + else { + error = { error:false } + } + + if (error.error == true){ + console.error(error); + } + + return error + + } + + scope.label = function(labelName){ + return _.where(scope._LABELS, {name:labelName})[0].label + } + + scope.numberOfQuestions = scope.questionGroups.length; + + scope.randomizationScheme = {}; + + scope.currentIndex = scope.questionIndex || 0; + + scope.showQuestion = function(questionPosition){ + + var dataLabelToRandomize = scope.questionGroups[scope.currentIndex].questionDataLabel; + + var numResponsesToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}).length; + + if (numResponsesToRandomize > 1){ + + var questionsToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}); + + if(scope.randomizationScheme[dataLabelToRandomize] == undefined){ + scope.randomizationScheme[dataLabelToRandomize] = Math.floor(Math.random() * (numResponsesToRandomize)); + } + + + var randomQuestionToPick = questionsToRandomize[scope.randomizationScheme[dataLabelToRandomize]]; + + scope.currentIndex = _.findIndex(scope.questionGroups,{id:randomQuestionToPick.id}); + + // console.log(questionPosition, scope.currentIndex,questionPosition == scope.currentIndex,scope.questionGroups,{id:randomQuestionToPick.id}); + + } + + + return questionPosition == scope.currentIndex; + } + + scope.goesToIndex = ""; + + scope.goesTo = function(goesToId,index){ + + scope.skipArray[index] = true; + + for (var index = 0; index < scope.questionGroups.length; index++) { + if (scope.questionGroups[index].questionDataLabel == goesToId){ + scope.goesToIndex = index; + } + } + + // alert(scope.goesToIndex,goesToId ); + + } + + scope.next = function(question,index){ + // console.log(question); + + scope.responseArray[scope.currentIndex] = $('form').serializeArray()[0]; + + if (question.responses.length == 1 && question.responses[0].goesTo != "") + { + scope.goesTo(question.responses[0].goesTo); + } + + if (scope.goesToIndex != "") + { + + scope.currentIndex = scope.goesToIndex; + + } + else { + + if( scope.skipArray[index] == true){ + scope.currentIndex++;} + else{ + alert('You must enter an answer to continue!');//modal + } + + } + scope.goesToIndex = ""; + }; + + scope.back = function(){ + + scope.currentIndex--; + + + }; + + + //is overridden by scope.complete function if different action is desired at the end of survey + scope.submit = scope.submit || function(){ + console.log('OVERRIDE THIS IN YOUR CONTROLLER SCOPE: ',$('form').serializeArray()); + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + _.each(responses, function(el){ + + var payload = { + userId: UserDetails.find, + survey: 'survey', + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION,payload).execute(); + console.log(payload); + + }); + + + + $location.path('#/'); + } + + scope.skippable = scope.skippable || true; + scope.skipArray = []; + + + scope.questionViewType = function(questionType){ + + switch (questionType){ + + case "radio" || "checkbox": + return "multiple" + break; + case "text" || "phone" || "email" || "textarea": + return "single" + break; + default: + return "html" + break; + + } + + } + +// scope.showEndNav = function(length,pageTitle) { +// if (length == 0 && pageTitle = 'Daily Review'){ +// return true} +// } +// } + + } + }; + }); diff --git a/platforms/browser/www/scripts/services/clinicalstatusupdate.js b/platforms/browser/www/scripts/services/clinicalstatusupdate.js new file mode 100644 index 00000000..f6c40c09 --- /dev/null +++ b/platforms/browser/www/scripts/services/clinicalstatusupdate.js @@ -0,0 +1,147 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.clinicalStatusUpdate + * @description + * # clinicalStatusUpdate + * Service in the livewellApp. + */ +angular.module('livewellApp').service('ClinicalStatusUpdate', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}; + contents.execute = function() { + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + var dailyReviewResponses = Pound.find('dailyCheckIn'); + var weeklyReviewResponses = Pound.find('weeklyCheckIn'); + var newClinicalStatus = currentClinicalStatusCode(); + var sendEmail = false; + var intensityCount = { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0 + }; + + for (var i = dailyReviewResponses.length - 1; i > dailyReviewResponses.length - 8; i--) { + var aWV = 0; + if (dailyReviewResponses[i] != undefined) { + var aWV = Math.abs(parseInt(dailyReviewResponses[i].wellness)); + } + console.log(aWV); + if (aWV == 0) { + intensityCount[0] = intensityCount[0] + 1 + } + if (aWV == 1) { + intensityCount[1] = intensityCount[1] + 1 + } + if (aWV == 2) { + intensityCount[2] = intensityCount[2] + 1 + } + if (aWV == 3) { + intensityCount[3] = intensityCount[3] + 1 + } + if (aWV == 4) { + intensityCount[4] = intensityCount[4] + 1 + } + } + + var lastWeeklyResponses = []; + + if (weeklyReviewResponses[weeklyReviewResponses.length - 1] != undefined){ + lastWeeklyResponses = weeklyReviewResponses[weeklyReviewResponses.length - 1].responses; + } + else{ + lastWeeklyResponses = [ + {name:'phq1', value:'0'}, + {name:'phq2', value:'0'}, + {name:'phq3', value:'0'}, + {name:'phq4', value:'0'}, + {name:'phq5', value:'0'}, + {name:'phq6', value:'0'}, + {name:'phq7', value:'0'}, + {name:'phq8', value:'0'}, + {name:'amrs1', value:'0'}, + {name:'amrs2', value:'0'}, + {name:'amrs3', value:'0'}, + {name:'amrs4', value:'0'}, + {name:'amrs5', value:'0'} + ]; + } + var lWR = lastWeeklyResponses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + switch (parseInt(currentClinicalStatusCode())) { + case 1://well + //Well if abs(wr) ≥ 2 for 4 of last 7 days Prodromal + if ((intensityCount[2] + intensityCount[3] + intensityCount[4]) >= 4) { + newClinicalStatus = 2; + } + // //Well if last ASRM ≥ 6 Well, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + // //Well if last PHQ8 ≥ 10 Well, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 2://prodromal + //Prodromal if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Prodromal if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Prodromal if last ASRM ≥ 6 Prodromal, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Prodromal if last PHQ8 ≥ 10 Prodromal, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 3://recovering + //Recovering if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Recovering if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Recovering if last ASRM ≥ 6 Recovering, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Recovering if last PHQ8 ≥ 10 Recovering, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 4://unwell + //Unwell if abs(wr) ≤ 2 for 5 of last 7 days Recovering + if ((intensityCount[0] + intensityCount[1] + intensityCount[2]) >= 5) { + newClinicalStatus = 3; + } + break; + } + + var returnStatus = {}; + returnStatus.amrsSum = amrsSum; + returnStatus.phq8Sum = phq8Sum; + returnStatus.intensityCount = intensityCount; + returnStatus.oldStatus = currentClinicalStatusCode(); + returnStatus.newStatus = newClinicalStatus; + localStorage['clinicalStatus'] = JSON.stringify({ + currentCode: newClinicalStatus + }); + return returnStatus + } + return contents; +}); \ No newline at end of file diff --git a/platforms/browser/www/scripts/services/dailyreview.js b/platforms/browser/www/scripts/services/dailyreview.js new file mode 100644 index 00000000..18564eb2 --- /dev/null +++ b/platforms/browser/www/scripts/services/dailyreview.js @@ -0,0 +1,548 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.dailyReview + * @description + * # dailyReview + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('DailyReviewAlgorithm', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}, + recoder = {}, + history = {}, + dailyCheckInData = {}, + conditions = []; + var sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + var dailyReviewResponses = Pound.find('dailyCheckIn'); + recoder.execute = function(sleepRoutineRanges, dailyReviewResponses) { + var historySeed = {}; + historySeed.wellness = [0, 0, 0, 0, 0, 0, 0]; // wellness balanced 7 days + historySeed.medications = [1, 1, 1, 1, 1, 1, 1]; // took all meds 7 days + historySeed.sleep = [0, 0, 0, 0, 0, 0, 0]; // in baseline range 7 days + historySeed.routine = [2, 2, 2, 2, 2, 2, 2]; // in both windows 7 days + for (var i = 0; i < 7; i++) { + var responsePosition = dailyReviewResponses.length + i - 7; + if (dailyReviewResponses[responsePosition] != undefined) { + historySeed.wellness[i] = parseInt(dailyReviewResponses[responsePosition].wellness); + historySeed.medications[i] = recoder.medications(dailyReviewResponses[responsePosition].medications); + historySeed.sleep[i] = recoder.sleep(dailyReviewResponses[responsePosition].sleepDuration,sleepRoutineRanges); + historySeed.routine[i] = recoder.routine(dailyReviewResponses[responsePosition].toBed, dailyReviewResponses[responsePosition].gotUp, sleepRoutineRanges); + } + } + localStorage['recodedResponses'] = JSON.stringify(historySeed); + return historySeed + } + + recoder.medications = function(medications) { + switch (medications) { + case '0': + return 0 + break; + case '1': + return 0.5 + break; + case '2': + return 1 + break; + } + } + + recoder.sleep = function(sleepDuration, sleepRoutineRanges) { + var score = 0; + // duration = gotUp - toBed + // look at ranges defined in sleepRoutineRanges, which range is it in? + + var duration = parseInt(sleepDuration); + + if (duration <= sleepRoutineRanges.LessSevere) { + score = -1; + } + if (duration >= sleepRoutineRanges.MoreSevere) { + score = 1; + } + if (duration >= sleepRoutineRanges.Less && duration <= sleepRoutineRanges.More) { + score = 0; + } + if (duration < sleepRoutineRanges.Less && duration >= sleepRoutineRanges.LessSevere) { + score = -0.5; + } + if (duration > sleepRoutineRanges.More && duration <= sleepRoutineRanges.MoreSevere) { + score = 0.5; + } + return score + } + + recoder.routine = function(toBed, gotUp, sleepRoutineRanges) { + var sum = 0; + var range = sleepRoutineRanges; + var numGotUp = parseInt(gotUp); + var numToBed = parseInt(toBed); + var bedTimeStart = parseInt(sleepRoutineRanges.BedTimeStrt_MT); + var bedTimeStop = parseInt(sleepRoutineRanges.BedTimeStop_MT); + var riseTimeStart = parseInt(sleepRoutineRanges.RiseTimeStrt_MT); + var riseTimeStop = parseInt(sleepRoutineRanges.RiseTimeStop_MT); + if (bedTimeStart > bedTimeStop) { + bedTimeStop = bedTimeStop + 2400; + } + if (riseTimeStart > riseTimeStop) { + riseTimeStop = riseTimeStop + 2400; + } + if (numGotUp < riseTimeStart && numGotUp < riseTimeStop) { + numGotUp = numGotUp + 2400; + } + if (numToBed < bedTimeStart && numToBed < bedTimeStop) { + numToBed = numToBed + 2400; + } + if (numGotUp >= riseTimeStart && numGotUp <= riseTimeStop) { + sum++ + } + if (numToBed >= bedTimeStart && numToBed <= bedTimeStop) { + sum++ + } + return parseInt(sum) + }; + + conditions[26] = function(data, code) { + //well + return true + }; + conditions[25] = function(data, code) { + //at risk routine + //Baseline ≥ 3 of last 4 days mrd ≠ Bedtime Window and/or mrd ≠ Risetime Window, + //Bedtime and Risetime Windows ≤ 5 of last 4 days + var sum1 = data.routine[3] + data.routine[4] + data.routine[5] + data.routine[6]; + + return code == 1 && Math.abs(data.wellness[6]) < 2 && ((data.routine[6] < 2 && sum1 <= 5)) + }; + conditions[24] = function(data, code) { + //at risk sleep erratic + //mrd ≠ Baseline, Baseline ≤ 2 of last 4 days + var sum1 = 0; + if (data.sleep[3] == 0) { + sum1++ + } + if (data.sleep[4] == 0) { + sum1++ + } + if (data.sleep[5] == 0) { + sum1++ + } + if (data.sleep[6] == 0) { + sum1++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] != 0) && sum1 <= 2 + }; + conditions[23] = function(data, code) { + //at risk sleep more + //mrd = More or More-Severe, More or More-Severe ≥ 2 last 4 days, Less or Less-Severe ≤ 1 last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == 1 || data.sleep[6] == 0.5) && sum1 <= 1 && sum2 >= 2 + }; + conditions[22] = function(data, code) { + //at risk sleep less + //mrd = Less or Less-Severe, Less or Less-Severe ≥ 2 of last 4 days, More or More-Severe ≤ 1 of last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == -1 || data.sleep[6] == -0.5) && sum1 >= 2 && sum2 <= 1 + }; + conditions[21] = function(data, code) { + //at risk medications + return code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 + }; + conditions[20] = function(data, code) { + //at risk sleep more severe + //mrd = More-Severe, More-Severe ≥ 3 of last 4 days + var sum = 0; + if (data.sleep[3] == 1) { + sum++ + } + if (data.sleep[4] == 1) { + sum++ + } + if (data.sleep[5] == 1) { + sum++ + } + if (data.sleep[6] == 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:20}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', email:'psychiatrist', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:20}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[19] = function(data, code) { + //at risk sleep less severe + //mrd = Less-Severe, Less-Severe ≥ 2 of last 4 days + var sum = 0; + if (data.sleep[3] == -1) { + sum++ + } + if (data.sleep[4] == -1) { + sum++ + } + if (data.sleep[5] == -1) { + sum++ + } + if (data.sleep[6] == -1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == -1 && sum >= 2; + + if (dailyReviewIsTrueWhen){ + if (sum == 2){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:19}).execute(); + } + if (sum == 3){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', email:'psychiatrist', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:19}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[18] = function(data, code) { + //at risk medications severe + var sum = 0; + if (data.medications[3] != 1) { + sum++ + } + if (data.medications[4] != 1) { + sum++ + } + if (data.medications[5] != 1) { + sum++ + } + if (data.medications[6] != 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about taking your medications', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'psychiatrist', code:18}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{message:'Call your psychiatrist about taking your medications', call:'psychiatrist', email:'coach', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:18}).execute(); + } + } + return dailyReviewIsTrueWhen + }; + conditions[17] = function(data, code) { + //mild down well + var dailyReviewIsTrueWhen = data.wellness[6] == -2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:17}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:17}).execute(); + } + } + + + + return dailyReviewIsTrueWhen; + }; + conditions[16] = function(data, code) { + //mild up well + var dailyReviewIsTrueWhen = data.wellness[6] == 2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:16}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:16}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[15] = function(data, code) { + //balanced prodromal + return code == 2 + }; + conditions[14] = function(data, code) { + //balanced recovering + return code == 3 + }; + conditions[13] = function(data, code) { + //mild down prodromal + return data.wellness[6] == -2 && code == 2; + }; + conditions[12] = function(data, code) { + //mild up prodromal + return data.wellness[6] == 2 && code == 2; + }; + conditions[11] = function(data, code) { + //mild down recovering + return data.wellness[6] == -2 && code == 3; + }; + conditions[10] = function(data, code) { + //mild up recovering + return data.wellness[6] == 2 && code == 3; + }; + conditions[9] = function(data, code) { + //moderate down + var dailyReviewIsTrueWhen = data.wellness[6] == -3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:9}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:9}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[8] = function(data, code) { + //moderate up + var dailyReviewIsTrueWhen = data.wellness[6] == 3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:8}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:8}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[7] = function(data, code) { + //balanced unwell + return code == 4; + }; + conditions[6] = function(data, code) { + //mild down unwell + return data.wellness[6] == -2 && code == 4; + }; + conditions[5] = function(data, code) { + //mild up unwell + return data.wellness[6] == 2 && code == 4; + }; + conditions[4] = function(data, code) { + //moderate down unwell + return data.wellness[6] == -3 && code == 4; + }; + conditions[3] = function(data, code) { + //moderate up unwell + return data.wellness[6] == 3 && code == 4; + }; + conditions[2] = function(data, code) { + //logic for severe down + return data.wellness[6] == -4; + }; + conditions[1] = function(data, code) { + //logic for severe up + return data.wellness[6] == 4; + }; + conditions[0] = function() { + return false + } + // "[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + recoder.wellnessFormatter = function(wellnessRating) { + switch (wellnessRating) { + case -4: + return 0; + break; + case -3: + return .25; + break; + case -2: + return .5; + break + case -1: + return 1; + break; + case 0: + return 1; + break; + case 1: + return 1; + break; + case 2: + return 0.5; + break; + case 3: + return 0.25; + break; + case 4: + return 0; + break; + } + } + contents.getPercentages = function() { + var contents = {}; + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + var sleepValues = {}; + sleepValues[-1] = 0; + sleepValues[-0.5] = 0.25; + sleepValues[0] = 1; + sleepValues[0.5] = 0.5; + sleepValues[1] = 0.25; + contents.sleep = (sleepValues[recodedSevenDays.sleep[0]] + sleepValues[recodedSevenDays.sleep[1]] + sleepValues[recodedSevenDays.sleep[2]] + sleepValues[recodedSevenDays.sleep[3]] + sleepValues[recodedSevenDays.sleep[4]] + sleepValues[recodedSevenDays.sleep[5]] + sleepValues[recodedSevenDays.sleep[6]]) / 7; + contents.wellness = (recoder.wellnessFormatter(recodedSevenDays.wellness[0]) + recoder.wellnessFormatter(recodedSevenDays.wellness[1]) + recoder.wellnessFormatter(recodedSevenDays.wellness[2]) + recoder.wellnessFormatter(recodedSevenDays.wellness[3]) + recoder.wellnessFormatter(recodedSevenDays.wellness[4]) + recoder.wellnessFormatter(recodedSevenDays.wellness[5]) + recoder.wellnessFormatter(recodedSevenDays.wellness[6])) / 7; + contents.medications = (recodedSevenDays.medications[0] + recodedSevenDays.medications[1] + recodedSevenDays.medications[2] + recodedSevenDays.medications[3] + recodedSevenDays.medications[4] + recodedSevenDays.medications[5] + recodedSevenDays.medications[6]) / 7; + contents.routine = (recodedSevenDays.routine[0] + recodedSevenDays.routine[1] + recodedSevenDays.routine[2] + recodedSevenDays.routine[3] + recodedSevenDays.routine[4] + recodedSevenDays.routine[5] + recodedSevenDays.routine[6]) / 14; + return contents + } + contents.getCode = function() { + //look for the highest TRUE value in the condition set + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + console.log(recodedSevenDays); + for (var i = 0; i < conditions.length; i++) { + var selection = conditions[i](recodedSevenDays, currentClinicalStatusCode()); + if (selection == true) { + return i + break; + } + } + } + contents.code = function(){return contents.getCode()}; + contents.percentages = function(){return contents.getPercentages()}; + contents.recodedResponses = function() { + return recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')) + }; + return contents + }); \ No newline at end of file diff --git a/platforms/browser/www/scripts/services/guid.js b/platforms/browser/www/scripts/services/guid.js new file mode 100644 index 00000000..5da4a5f2 --- /dev/null +++ b/platforms/browser/www/scripts/services/guid.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Guid + * @description + * # Guid + * provides the capacity to generate a guid as needed, + */ +angular.module('livewellApp') + .service('Guid', function Guid() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var guid = {}; + + // make a string 4 of length 4 with random alphanumerics + guid.S4 = function () { + return (((1+Math.random())*0x10000)|0).toString(16).substring(1); + } + + // concat a bunch together plus stitch in '4' in the third group + guid.create = function() { + return (guid.S4() + guid.S4() + "-" + guid.S4() + "-4" + guid.S4().substr(0,3) + "-" + guid.S4() + "-" + guid.S4() + guid.S4() + guid.S4()).toLowerCase(); + } + + return guid + + }); diff --git a/platforms/browser/www/scripts/services/pound.js b/platforms/browser/www/scripts/services/pound.js new file mode 100644 index 00000000..d6ef03af --- /dev/null +++ b/platforms/browser/www/scripts/services/pound.js @@ -0,0 +1,189 @@ + +/** + * @ngdoc service + * @name livewellApp.Pound + * @description + * # Pound + * acts as an interface to localStorage + * TODO, use localForage, but gracefully degrade to localStorage if it doesn't exist + */ +angular.module('livewellApp') + .service('Pound', function Pound() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var pound = {}; + + console.warn('CAUTION: localForage does not exist'); + + //pound.insert(key, object) + //adds to or CREATES a store + //key: name of thing to store + //object: value of thing to store in json form + //pound.add("foo",{"thing":"thing value"}); + //adds {"thing":"thing value"} to a key called "foo" in localStorage + pound.add = function(key,object){ + var collection = []; + + if (localStorage[key]){ + collection = JSON.parse(localStorage[key]); + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + localStorage[key] = JSON.stringify(collection); + } + else + { + object.id = 1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection = [object]; + localStorage[key] = JSON.stringify(collection); + pound.add("pound",key); + } + + return {added:object}; + }; + + + //pound.save(key, object, id) + //equivalent of upsert + //key: name of thing to store + //object: value of thing to store in json form + // + //pound.save("foo",{thing:"thing value", id:id_value}); + //looks to find a thing called foo that has an array of objects inside + //then looks to find an object in that array that has an id of a particular value, + // if it exists, the object is updated with the keys in the object to replace + ///if it does not exist, it is added + pound.save = function(key,object){ + var collection = []; + + if (localStorage[key]){ + + var exists = false; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == object.id){ + exists = true; + object.timestamp = new Date(); + collection[idx] = object; + } + + }); + + if (exists == false){ + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + } + } + + else + { + object.id = 1; + object.created_at = new Date(); + collection = [object]; + pound.add("pound",key); + } + + localStorage[key] = JSON.stringify(collection); + + return {saved:object}; + }; + + //pound.update(key, object) + //get collection of JSON objects + //iterate through collection and check if passed object matches an element + //merge attributes of objects + //set the collection at the current index to the value of the object + //stringify the collection and set the localStorage key to that value + + pound.update = function(key, object) { + var collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx) { + + if (el.id == object.id) { + + for( var attribute in el) { + el[attribute] = object[attribute] + object.updated_at = new Date(); + } + + collection[idx] = object + } + }); + localStorage[key] = JSON.stringify(collection); + + return {updated:object}; + } + + //pound.find(key,criteria_object) + //key: name of localstorage location + //criteria_object: object that matches the criteria you're looking for + //pound.find("foo") + //returns the ENTIRE contents of the localStorage array + //pound.find("foo",{thing:"thing value"}) + //returns the elements in the array that match that criteria + + pound.find = function(key,criteria_object){ + var collection = []; + if(localStorage[key]){ + collection = JSON.parse(localStorage[key]); + + if (criteria_object){ + return _.where(collection,criteria_object) || [] } + else { return collection || [];} + } + else{ return [];} + }; + + pound.list = function(){ + return pound.find("pound"); + }; + + //pound.delete(key,id) + //removes an item from a collection that matches a specific id criteria + pound.delete = function(key,id){ + + var collection = []; + var object_to_delete; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == id){ + object_to_delete = collection[idx]; + collection[idx] = false; + }; + }); + + localStorage[key] = JSON.stringify(_.compact(collection)); + + return {deleted:object_to_delete}; + } + + + //pound.nuke(key) + //completely removes the key from local storage and pound list + pound.nuke = function(key){ + var collection = pound.list; + + localStorage.removeItem(key); + _.each(collection, function(el, idx){ + if (el == key){ + collection[idx] = false; + }; + }); + localStorage["pound"] = JSON.stringify(_.compact(collection)); + + return {cleared:key}; + }; + + + return pound + + +}); diff --git a/platforms/browser/www/scripts/services/questions.js b/platforms/browser/www/scripts/services/questions.js new file mode 100644 index 00000000..fb116703 --- /dev/null +++ b/platforms/browser/www/scripts/services/questions.js @@ -0,0 +1,83 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Questions + * @description + * # Questions + * accesses locally stored questions that were provided over the questions / question-responses routes + */ +angular.module('livewellApp') + .service('Questions', function Questions($http) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _CONTENT_SERVER_URL = 'https://livewellnew.firebaseio.com'; + + var content = {}; + var _QUESTIONS_COLLECTION_KEY = 'questions'; + var _RESPONSES_COLLECTION_KEY = 'questionresponses'; + var _QUESTION_CRITERIA_COLLECTION_KEY = 'questioncriteria'; + var _RESPONSE_CRITERIA_COLLECTION_KEY = 'responsecriteria'; + + content.query = function(questionGroup){ + + if (localStorage[_QUESTIONS_COLLECTION_KEY] != undefined){ + //grab from synched local storage + content.items = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + //filter to show only one question group + if (questionGroup != undefined){ + content.items = _.where(content.items, {questionGroup:questionGroup}); + } + + //attach response groups to questions + var responses_collection = JSON.parse(localStorage[_RESPONSES_COLLECTION_KEY]); + var question_criteria_collection = JSON.parse(localStorage[_QUESTION_CRITERIA_COLLECTION_KEY]); + var response_criteria_collection = JSON.parse(localStorage[_RESPONSE_CRITERIA_COLLECTION_KEY]); + + _.each(content.items, function(el,idx){ + content.items[idx].responses = _.where(responses_collection, {responseGroupId: el.responseGroupId}); + content.items[idx].criteria = _.where(question_criteria_collection, {questionCriteriaId: el.questionCriteriaId}); + _.each(content.items[idx].responses, function(el2,idx2){ + content.items[idx].responses[idx2].criteria = _.where(response_criteria_collection,{responseId:el2.id}); + }); + + }); + + + + content.responses = responses_collection; + + content.questions = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + content.questionCriteria = question_criteria_collection; + content.responseCriteria = response_criteria_collection; + + content.items = _.sortBy(content.items,"order"); + + } + else{ + content.items = []; + } + + return content.items + + } + + content.save = function(collectionToSave,collection){ + debugger; + localStorage[collectionToSave] = JSON.stringify(collection); + $http.put(_CONTENT_SERVER_URL + "/" + collectionToSave).success(alert("Data saved to server")); + } + + content.uniqueQuestionGroups = function(){ + + var uniqueQuestionGroups = []; + _.each(_.uniq(content.query(),"questionGroup"), function(el){ + uniqueQuestionGroups.push({name: el.questionGroup, id: el.questionGroup}); + }); + + return _.uniq(uniqueQuestionGroups,"name") + + } + + return content + }); diff --git a/platforms/browser/www/scripts/services/static_content.js b/platforms/browser/www/scripts/services/static_content.js new file mode 100644 index 00000000..d32c3dce --- /dev/null +++ b/platforms/browser/www/scripts/services/static_content.js @@ -0,0 +1,40 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.StaticContent + * @description + * # StaticContent + * accesses general purpose locally stored static content + */ +angular.module('livewellApp') + .service('StaticContent', function StaticContent() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + var _COLLECTION_KEY = 'staticContent'; + var _NULL_COLLECTION_MESSAGE = '
No content has been provided for this section.
'; + + if (localStorage[_COLLECTION_KEY] != undefined){ + content.items = JSON.parse(localStorage[_COLLECTION_KEY]); + } + else{ + content.items = []; + } + + content.query = function(key){ + + var queryResponse = _.where(content.items, {sectionKey:key}); + + if (queryResponse.length > 0){ + return queryResponse[0].content + } + else{ + return _NULL_COLLECTION_MESSAGE; + + }} + + +return content + +}); diff --git a/platforms/browser/www/scripts/services/user_data.js b/platforms/browser/www/scripts/services/user_data.js new file mode 100644 index 00000000..c53728de --- /dev/null +++ b/platforms/browser/www/scripts/services/user_data.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserData + * @description + * # UserData + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserData', function UserData() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + + content.query = function(collectionKey){ + + console.log(collectionKey); + if (localStorage[collectionKey] != undefined){ + content.items = JSON.parse(localStorage[collectionKey]); + } + else{ + content.items = []; + } + console.log(content.items); + return content.items + + } + + return content + + }); diff --git a/platforms/browser/www/scripts/services/user_details.js b/platforms/browser/www/scripts/services/user_details.js new file mode 100644 index 00000000..aaf3d55f --- /dev/null +++ b/platforms/browser/www/scripts/services/user_details.js @@ -0,0 +1,49 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserDetails + * @description + * # UserDetails + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserDetails', function UserDetails(Pound) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _USER_LOCAL_COLLECTION_KEY = 'user'; + + var userDetails = {}; + + var userDetailsModel = { + uid: 1, + userID: null, + groupID: null, + loginKey: null + } + + //if there is no user, create a dummy user object based on the above model + if (localStorage[_USER_LOCAL_COLLECTION_KEY] == undefined){ + // Pound.save(_USER_LOCAL_COLLECTION_KEY,userDetailsModel); + } + + //return the current user object + userDetails.find = Pound.find(_USER_LOCAL_COLLECTION_KEY,{uid:'1'})[0]; + + //updates the whole user object + userDetails.update = function(userObject){ + Pound.update(_USER_LOCAL_COLLECTION_KEY,userObject); + return userDetails.find + }; + + // updates one key in the whole user object + userDetails.updateKey = function(key, value){ + var userObject = userDetails.find; + userObject[key] = value; + return userDetails.update(userObject); + } + + return userDetails; + + + }); diff --git a/platforms/browser/www/scripts/vendor/cordova.android.js b/platforms/browser/www/scripts/vendor/cordova.android.js new file mode 100644 index 00000000..1a9f5d97 --- /dev/null +++ b/platforms/browser/www/scripts/vendor/cordova.android.js @@ -0,0 +1,1749 @@ +// Platform: android +// 3.4.0 +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +;(function() { +var CORDOVA_JS_BUILD_LABEL = '3.4.0'; +// file: src/scripts/require.js + +/*jshint -W079 */ +/*jshint -W020 */ + +var require, + define; + +(function () { + var modules = {}, + // Stack of moduleIds currently being built. + requireStack = [], + // Map of module ID -> index into requireStack of modules currently being built. + inProgressModules = {}, + SEPARATOR = "."; + + + + function build(module) { + var factory = module.factory, + localRequire = function (id) { + var resultantId = id; + //Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === ".") { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; + module.exports = {}; + delete module.factory; + factory(localRequire, module.exports, module); + return module.exports; + } + + require = function (id) { + if (!modules[id]) { + throw "module " + id + " not found"; + } else if (id in inProgressModules) { + var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; + throw "Cycle in require graph: " + cycle; + } + if (modules[id].factory) { + try { + inProgressModules[id] = requireStack.length; + requireStack.push(id); + return build(modules[id]); + } finally { + delete inProgressModules[id]; + requireStack.pop(); + } + } + return modules[id].exports; + }; + + define = function (id, factory) { + if (modules[id]) { + throw "module " + id + " already defined"; + } + + modules[id] = { + id: id, + factory: factory + }; + }; + + define.remove = function (id) { + delete modules[id]; + }; + + define.moduleMap = modules; +})(); + +//Export for use in node +if (typeof module === "object" && typeof require === "function") { + module.exports.require = require; + module.exports.define = define; +} + +// file: src/cordova.js +define("cordova", function(require, exports, module) { + + +var channel = require('cordova/channel'); +var platform = require('cordova/platform'); + +/** + * Intercept calls to addEventListener + removeEventListener and handle deviceready, + * resume, and pause events. + */ +var m_document_addEventListener = document.addEventListener; +var m_document_removeEventListener = document.removeEventListener; +var m_window_addEventListener = window.addEventListener; +var m_window_removeEventListener = window.removeEventListener; + +/** + * Houses custom event handlers to intercept on document + window event listeners. + */ +var documentEventHandlers = {}, + windowEventHandlers = {}; + +document.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof documentEventHandlers[e] != 'undefined') { + documentEventHandlers[e].subscribe(handler); + } else { + m_document_addEventListener.call(document, evt, handler, capture); + } +}; + +window.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof windowEventHandlers[e] != 'undefined') { + windowEventHandlers[e].subscribe(handler); + } else { + m_window_addEventListener.call(window, evt, handler, capture); + } +}; + +document.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof documentEventHandlers[e] != "undefined") { + documentEventHandlers[e].unsubscribe(handler); + } else { + m_document_removeEventListener.call(document, evt, handler, capture); + } +}; + +window.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof windowEventHandlers[e] != "undefined") { + windowEventHandlers[e].unsubscribe(handler); + } else { + m_window_removeEventListener.call(window, evt, handler, capture); + } +}; + +function createEvent(type, data) { + var event = document.createEvent('Events'); + event.initEvent(type, false, false); + if (data) { + for (var i in data) { + if (data.hasOwnProperty(i)) { + event[i] = data[i]; + } + } + } + return event; +} + + +var cordova = { + define:define, + require:require, + version:CORDOVA_JS_BUILD_LABEL, + platformId:platform.id, + /** + * Methods to add/remove your own addEventListener hijacking on document + window. + */ + addWindowEventHandler:function(event) { + return (windowEventHandlers[event] = channel.create(event)); + }, + addStickyDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.createSticky(event)); + }, + addDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.create(event)); + }, + removeWindowEventHandler:function(event) { + delete windowEventHandlers[event]; + }, + removeDocumentEventHandler:function(event) { + delete documentEventHandlers[event]; + }, + /** + * Retrieve original event handlers that were replaced by Cordova + * + * @return object + */ + getOriginalHandlers: function() { + return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + }, + /** + * Method to fire event from native code + * bNoDetach is required for events which cause an exception which needs to be caught in native code + */ + fireDocumentEvent: function(type, data, bNoDetach) { + var evt = createEvent(type, data); + if (typeof documentEventHandlers[type] != 'undefined') { + if( bNoDetach ) { + documentEventHandlers[type].fire(evt); + } + else { + setTimeout(function() { + // Fire deviceready on listeners that were registered before cordova.js was loaded. + if (type == 'deviceready') { + document.dispatchEvent(evt); + } + documentEventHandlers[type].fire(evt); + }, 0); + } + } else { + document.dispatchEvent(evt); + } + }, + fireWindowEvent: function(type, data) { + var evt = createEvent(type,data); + if (typeof windowEventHandlers[type] != 'undefined') { + setTimeout(function() { + windowEventHandlers[type].fire(evt); + }, 0); + } else { + window.dispatchEvent(evt); + } + }, + + /** + * Plugin callback mechanism. + */ + // Randomize the starting callbackId to avoid collisions after refreshing or navigating. + // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. + callbackId: Math.floor(Math.random() * 2000000000), + callbacks: {}, + callbackStatus: { + NO_RESULT: 0, + OK: 1, + CLASS_NOT_FOUND_EXCEPTION: 2, + ILLEGAL_ACCESS_EXCEPTION: 3, + INSTANTIATION_EXCEPTION: 4, + MALFORMED_URL_EXCEPTION: 5, + IO_EXCEPTION: 6, + INVALID_ACTION: 7, + JSON_EXCEPTION: 8, + ERROR: 9 + }, + + /** + * Called by native code when returning successful result from an action. + */ + callbackSuccess: function(callbackId, args) { + try { + cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning error result from an action. + */ + callbackError: function(callbackId, args) { + // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. + // Derive success from status. + try { + cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning the result from an action. + */ + callbackFromNative: function(callbackId, success, status, args, keepCallback) { + var callback = cordova.callbacks[callbackId]; + if (callback) { + if (success && status == cordova.callbackStatus.OK) { + callback.success && callback.success.apply(null, args); + } else if (!success) { + callback.fail && callback.fail.apply(null, args); + } + + // Clear callback if not expecting any more results + if (!keepCallback) { + delete cordova.callbacks[callbackId]; + } + } + }, + addConstructor: function(func) { + channel.onCordovaReady.subscribe(function() { + try { + func(); + } catch(e) { + console.log("Failed to run constructor: " + e); + } + }); + } +}; + + +module.exports = cordova; + +}); + +// file: src/android/android/nativeapiprovider.js +define("cordova/android/nativeapiprovider", function(require, exports, module) { + +/** + * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. + */ + +var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); +var currentApi = nativeApi; + +module.exports = { + get: function() { return currentApi; }, + setPreferPrompt: function(value) { + currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; + }, + // Used only by tests. + set: function(value) { + currentApi = value; + } +}; + +}); + +// file: src/android/android/promptbasednativeapi.js +define("cordova/android/promptbasednativeapi", function(require, exports, module) { + +/** + * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. + * This is used only on the 2.3 simulator, where addJavascriptInterface() is broken. + */ + +module.exports = { + exec: function(service, action, callbackId, argsJson) { + return prompt(argsJson, 'gap:'+JSON.stringify([service, action, callbackId])); + }, + setNativeToJsBridgeMode: function(value) { + prompt(value, 'gap_bridge_mode:'); + }, + retrieveJsMessages: function(fromOnlineEvent) { + return prompt(+fromOnlineEvent, 'gap_poll:'); + } +}; + +}); + +// file: src/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var exec = require('cordova/exec'); +var utils = require('cordova/utils'); + +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var typeName; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + typeName = utils.typeName(arg); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (typeName != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + typeName + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running unit tests. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +function getValue(value, defaultValue) { + return value === undefined ? defaultValue : value; +} + +moduleExports.checkArgs = checkArgs; +moduleExports.getValue = getValue; +moduleExports.enableChecks = true; + + +}); + +// file: src/common/base64.js +define("cordova/base64", function(require, exports, module) { + +var base64 = exports; + +base64.fromArrayBuffer = function(arrayBuffer) { + var array = new Uint8Array(arrayBuffer); + return uint8ToBase64(array); +}; + +//------------------------------------------------------------------------------ + +/* This code is based on the performance tests at http://jsperf.com/b64tests + * This 12-bit-at-a-time algorithm was the best performing version on all + * platforms tested. + */ + +var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_12bit; + +var b64_12bitTable = function() { + b64_12bit = []; + for (var i=0; i<64; i++) { + for (var j=0; j<64; j++) { + b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + } + } + b64_12bitTable = function() { return b64_12bit; }; + return b64_12bit; +}; + +function uint8ToBase64(rawData) { + var numBytes = rawData.byteLength; + var output=""; + var segment; + var table = b64_12bitTable(); + for (var i=0;i> 12]; + output += table[segment & 0xfff]; + } + if (numBytes - i == 2) { + segment = (rawData[i] << 16) + (rawData[i+1] << 8); + output += table[segment >> 12]; + output += b64_6bit[(segment & 0xfff) >> 6]; + output += '='; + } else if (numBytes - i == 1) { + segment = (rawData[i] << 16); + output += table[segment >> 12]; + output += '=='; + } + return output; +} + +}); + +// file: src/common/builder.js +define("cordova/builder", function(require, exports, module) { + +var utils = require('cordova/utils'); + +function each(objects, func, context) { + for (var prop in objects) { + if (objects.hasOwnProperty(prop)) { + func.apply(context, [objects[prop], prop]); + } + } +} + +function clobber(obj, key, value) { + exports.replaceHookForTesting(obj, key); + obj[key] = value; + // Getters can only be overridden by getters. + if (obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + +function assignOrWrapInDeprecateGetter(obj, key, value, message) { + if (message) { + utils.defineGetter(obj, key, function() { + console.log(message); + delete obj[key]; + clobber(obj, key, value); + return value; + }); + } else { + clobber(obj, key, value); + } +} + +function include(parent, objects, clobber, merge) { + each(objects, function (obj, key) { + try { + var result = obj.path ? require(obj.path) : {}; + + if (clobber) { + // Clobber if it doesn't exist. + if (typeof parent[key] === 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else if (typeof obj.path !== 'undefined') { + // If merging, merge properties onto parent, otherwise, clobber. + if (merge) { + recursiveMerge(parent[key], result); + } else { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } + } + result = parent[key]; + } else { + // Overwrite if not currently defined. + if (typeof parent[key] == 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else { + // Set result to what already exists, so we can build children into it if they exist. + result = parent[key]; + } + } + + if (obj.children) { + include(result, obj.children, clobber, merge); + } + } catch(e) { + utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); + } + }); +} + +/** + * Merge properties from one object onto another recursively. Properties from + * the src object will overwrite existing target property. + * + * @param target Object to merge properties into. + * @param src Object to merge properties from. + */ +function recursiveMerge(target, src) { + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + if (target.prototype && target.prototype.constructor === target) { + // If the target object is a constructor override off prototype. + clobber(target.prototype, prop, src[prop]); + } else { + if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { + recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } + } + } + } +} + +exports.buildIntoButDoNotClobber = function(objects, target) { + include(target, objects, false, false); +}; +exports.buildIntoAndClobber = function(objects, target) { + include(target, objects, true, false); +}; +exports.buildIntoAndMerge = function(objects, target) { + include(target, objects, true, true); +}; +exports.recursiveMerge = recursiveMerge; +exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; +exports.replaceHookForTesting = function() {}; + +}); + +// file: src/common/channel.js +define("cordova/channel", function(require, exports, module) { + +var utils = require('cordova/utils'), + nextGuid = 1; + +/** + * Custom pub-sub "channel" that can have functions subscribed to it + * This object is used to define and control firing of events for + * cordova initialization, as well as for custom events thereafter. + * + * The order of events during page load and Cordova startup is as follows: + * + * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. + * onNativeReady* Internal event that indicates the Cordova native side is ready. + * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. + * onDeviceReady* User event fired to indicate that Cordova is ready + * onResume User event fired to indicate a start/resume lifecycle event + * onPause User event fired to indicate a pause lifecycle event + * onDestroy* Internal event fired when app is being destroyed (User should use window.onunload event, not this one). + * + * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. + * All listeners that subscribe after the event is fired will be executed right away. + * + * The only Cordova events that user code should register for are: + * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript + * pause App has moved to background + * resume App has returned to foreground + * + * Listeners can be registered as: + * document.addEventListener("deviceready", myDeviceReadyListener, false); + * document.addEventListener("resume", myResumeListener, false); + * document.addEventListener("pause", myPauseListener, false); + * + * The DOM lifecycle events should be used for saving and restoring state + * window.onload + * window.onunload + * + */ + +/** + * Channel + * @constructor + * @param type String the channel name + */ +var Channel = function(type, sticky) { + this.type = type; + // Map of guid -> function. + this.handlers = {}; + // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. + this.state = sticky ? 1 : 0; + // Used in sticky mode to remember args passed to fire(). + this.fireArgs = null; + // Used by onHasSubscribersChange to know if there are any listeners. + this.numHandlers = 0; + // Function that is called when the first listener is subscribed, or when + // the last listener is unsubscribed. + this.onHasSubscribersChange = null; +}, + channel = { + /** + * Calls the provided function only after all of the channels specified + * have been fired. All channels must be sticky channels. + */ + join: function(h, c) { + var len = c.length, + i = len, + f = function() { + if (!(--i)) h(); + }; + for (var j=0; jNative bridge. + POLLING: 0, + // For LOAD_URL to be viable, it would need to have a work-around for + // the bug where the soft-keyboard gets dismissed when a message is sent. + LOAD_URL: 1, + // For the ONLINE_EVENT to be viable, it would need to intercept all event + // listeners (both through addEventListener and window.ononline) as well + // as set the navigator property itself. + ONLINE_EVENT: 2, + // Uses reflection to access private APIs of the WebView that can send JS + // to be executed. + // Requires Android 3.2.4 or above. + PRIVATE_API: 3 + }, + jsToNativeBridgeMode, // Set lazily. + nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT, + pollEnabled = false, + messagesFromNative = []; + +function androidExec(success, fail, service, action, args) { + // Set default bridge modes if they have not already been set. + // By default, we use the failsafe, since addJavascriptInterface breaks too often + if (jsToNativeBridgeMode === undefined) { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } + + // Process any ArrayBuffers in the args into a string. + for (var i = 0; i < args.length; i++) { + if (utils.typeName(args[i]) == 'ArrayBuffer') { + args[i] = base64.fromArrayBuffer(args[i]); + } + } + + var callbackId = service + cordova.callbackId++, + argsJson = JSON.stringify(args); + + if (success || fail) { + cordova.callbacks[callbackId] = {success:success, fail:fail}; + } + + if (jsToNativeBridgeMode == jsToNativeModes.LOCATION_CHANGE) { + window.location = 'http://cdv_exec/' + service + '#' + action + '#' + callbackId + '#' + argsJson; + } else { + var messages = nativeApiProvider.get().exec(service, action, callbackId, argsJson); + // If argsJson was received by Java as null, try again with the PROMPT bridge mode. + // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. + if (jsToNativeBridgeMode == jsToNativeModes.JS_OBJECT && messages === "@Null arguments.") { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); + androidExec(success, fail, service, action, args); + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + return; + } else { + androidExec.processMessages(messages); + } + } +} + +function pollOnceFromOnlineEvent() { + pollOnce(true); +} + +function pollOnce(opt_fromOnlineEvent) { + var msg = nativeApiProvider.get().retrieveJsMessages(!!opt_fromOnlineEvent); + androidExec.processMessages(msg); +} + +function pollingTimerFunc() { + if (pollEnabled) { + pollOnce(); + setTimeout(pollingTimerFunc, 50); + } +} + +function hookOnlineApis() { + function proxyEvent(e) { + cordova.fireWindowEvent(e.type); + } + // The network module takes care of firing online and offline events. + // It currently fires them only on document though, so we bridge them + // to window here (while first listening for exec()-releated online/offline + // events). + window.addEventListener('online', pollOnceFromOnlineEvent, false); + window.addEventListener('offline', pollOnceFromOnlineEvent, false); + cordova.addWindowEventHandler('online'); + cordova.addWindowEventHandler('offline'); + document.addEventListener('online', proxyEvent, false); + document.addEventListener('offline', proxyEvent, false); +} + +hookOnlineApis(); + +androidExec.jsToNativeModes = jsToNativeModes; +androidExec.nativeToJsModes = nativeToJsModes; + +androidExec.setJsToNativeBridgeMode = function(mode) { + if (mode == jsToNativeModes.JS_OBJECT && !window._cordovaNative) { + console.log('Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only.'); + mode = jsToNativeModes.PROMPT; + } + nativeApiProvider.setPreferPrompt(mode == jsToNativeModes.PROMPT); + jsToNativeBridgeMode = mode; +}; + +androidExec.setNativeToJsBridgeMode = function(mode) { + if (mode == nativeToJsBridgeMode) { + return; + } + if (nativeToJsBridgeMode == nativeToJsModes.POLLING) { + pollEnabled = false; + } + + nativeToJsBridgeMode = mode; + // Tell the native side to switch modes. + nativeApiProvider.get().setNativeToJsBridgeMode(mode); + + if (mode == nativeToJsModes.POLLING) { + pollEnabled = true; + setTimeout(pollingTimerFunc, 1); + } +}; + +// Processes a single message, as encoded by NativeToJsMessageQueue.java. +function processMessage(message) { + try { + var firstChar = message.charAt(0); + if (firstChar == 'J') { + eval(message.slice(1)); + } else if (firstChar == 'S' || firstChar == 'F') { + var success = firstChar == 'S'; + var keepCallback = message.charAt(1) == '1'; + var spaceIdx = message.indexOf(' ', 2); + var status = +message.slice(2, spaceIdx); + var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); + var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); + var payloadKind = message.charAt(nextSpaceIdx + 1); + var payload; + if (payloadKind == 's') { + payload = message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 't') { + payload = true; + } else if (payloadKind == 'f') { + payload = false; + } else if (payloadKind == 'N') { + payload = null; + } else if (payloadKind == 'n') { + payload = +message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 'A') { + var data = message.slice(nextSpaceIdx + 2); + var bytes = window.atob(data); + var arraybuffer = new Uint8Array(bytes.length); + for (var i = 0; i < bytes.length; i++) { + arraybuffer[i] = bytes.charCodeAt(i); + } + payload = arraybuffer.buffer; + } else if (payloadKind == 'S') { + payload = window.atob(message.slice(nextSpaceIdx + 2)); + } else { + payload = JSON.parse(message.slice(nextSpaceIdx + 1)); + } + cordova.callbackFromNative(callbackId, success, status, [payload], keepCallback); + } else { + console.log("processMessage failed: invalid message:" + message); + } + } catch (e) { + console.log("processMessage failed: Message: " + message); + console.log("processMessage failed: Error: " + e); + console.log("processMessage failed: Stack: " + e.stack); + } +} + +// This is called from the NativeToJsMessageQueue.java. +androidExec.processMessages = function(messages) { + if (messages) { + messagesFromNative.push(messages); + // Check for the reentrant case, and enqueue the message if that's the case. + if (messagesFromNative.length > 1) { + return; + } + while (messagesFromNative.length) { + // Don't unshift until the end so that reentrancy can be detected. + messages = messagesFromNative[0]; + // The Java side can send a * message to indicate that it + // still has messages waiting to be retrieved. + if (messages == '*') { + messagesFromNative.shift(); + window.setTimeout(pollOnce, 0); + return; + } + + var spaceIdx = messages.indexOf(' '); + var msgLen = +messages.slice(0, spaceIdx); + var message = messages.substr(spaceIdx + 1, msgLen); + messages = messages.slice(spaceIdx + msgLen + 1); + processMessage(message); + if (messages) { + messagesFromNative[0] = messages; + } else { + messagesFromNative.shift(); + } + } + } +}; + +module.exports = androidExec; + +}); + +// file: src/common/exec/proxy.js +define("cordova/exec/proxy", function(require, exports, module) { + + +// internal map of proxy function +var CommandProxyMap = {}; + +module.exports = { + + // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); + add:function(id,proxyObj) { + console.log("adding proxy for " + id); + CommandProxyMap[id] = proxyObj; + return proxyObj; + }, + + // cordova.commandProxy.remove("Accelerometer"); + remove:function(id) { + var proxy = CommandProxyMap[id]; + delete CommandProxyMap[id]; + CommandProxyMap[id] = null; + return proxy; + }, + + get:function(service,action) { + return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null ); + } +}; +}); + +// file: src/common/init.js +define("cordova/init", function(require, exports, module) { + +var channel = require('cordova/channel'); +var cordova = require('cordova'); +var modulemapper = require('cordova/modulemapper'); +var platform = require('cordova/platform'); +var pluginloader = require('cordova/pluginloader'); + +var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; + +function logUnfiredChannels(arr) { + for (var i = 0; i < arr.length; ++i) { + if (arr[i].state != 2) { + console.log('Channel not fired: ' + arr[i].type); + } + } +} + +window.setTimeout(function() { + if (channel.onDeviceReady.state != 2) { + console.log('deviceready has not fired after 5 seconds.'); + logUnfiredChannels(platformInitChannelsArray); + logUnfiredChannels(channel.deviceReadyChannelsArray); + } +}, 5000); + +// Replace navigator before any modules are required(), to ensure it happens as soon as possible. +// We replace it so that properties that can't be clobbered can instead be overridden. +function replaceNavigator(origNavigator) { + var CordovaNavigator = function() {}; + CordovaNavigator.prototype = origNavigator; + var newNavigator = new CordovaNavigator(); + // This work-around really only applies to new APIs that are newer than Function.bind. + // Without it, APIs such as getGamepads() break. + if (CordovaNavigator.bind) { + for (var key in origNavigator) { + if (typeof origNavigator[key] == 'function') { + newNavigator[key] = origNavigator[key].bind(origNavigator); + } + } + } + return newNavigator; +} +if (window.navigator) { + window.navigator = replaceNavigator(window.navigator); +} + +if (!window.console) { + window.console = { + log: function(){} + }; +} +if (!window.console.warn) { + window.console.warn = function(msg) { + this.log("warn: " + msg); + }; +} + +// Register pause, resume and deviceready channels as events on document. +channel.onPause = cordova.addDocumentEventHandler('pause'); +channel.onResume = cordova.addDocumentEventHandler('resume'); +channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); + +// Listen for DOMContentLoaded and notify our channel subscribers. +if (document.readyState == 'complete' || document.readyState == 'interactive') { + channel.onDOMContentLoaded.fire(); +} else { + document.addEventListener('DOMContentLoaded', function() { + channel.onDOMContentLoaded.fire(); + }, false); +} + +// _nativeReady is global variable that the native side can set +// to signify that the native code is ready. It is a global since +// it may be called before any cordova JS is ready. +if (window._nativeReady) { + channel.onNativeReady.fire(); +} + +modulemapper.clobbers('cordova', 'cordova'); +modulemapper.clobbers('cordova/exec', 'cordova.exec'); +modulemapper.clobbers('cordova/exec', 'Cordova.exec'); + +// Call the platform-specific initialization. +platform.bootstrap && platform.bootstrap(); + +pluginloader.load(function() { + channel.onPluginsReady.fire(); +}); + +/** + * Create all cordova objects once native side is ready. + */ +channel.join(function() { + modulemapper.mapModules(window); + + platform.initialize && platform.initialize(); + + // Fire event to notify that all objects are created + channel.onCordovaReady.fire(); + + // Fire onDeviceReady event once page has fully loaded, all + // constructors have run and cordova info has been received from native + // side. + channel.join(function() { + require('cordova').fireDocumentEvent('deviceready'); + }, channel.deviceReadyChannelsArray); + +}, platformInitChannelsArray); + + +}); + +// file: src/common/modulemapper.js +define("cordova/modulemapper", function(require, exports, module) { + +var builder = require('cordova/builder'), + moduleMap = define.moduleMap, + symbolList, + deprecationMap; + +exports.reset = function() { + symbolList = []; + deprecationMap = {}; +}; + +function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { + if (!(moduleName in moduleMap)) { + throw new Error('Module ' + moduleName + ' does not exist.'); + } + symbolList.push(strategy, moduleName, symbolPath); + if (opt_deprecationMessage) { + deprecationMap[symbolPath] = opt_deprecationMessage; + } +} + +// Note: Android 2.3 does have Function.bind(). +exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('c', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('m', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('d', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.runs = function(moduleName) { + addEntry('r', moduleName, null); +}; + +function prepareNamespace(symbolPath, context) { + if (!symbolPath) { + return context; + } + var parts = symbolPath.split('.'); + var cur = context; + for (var i = 0, part; part = parts[i]; ++i) { + cur = cur[part] = cur[part] || {}; + } + return cur; +} + +exports.mapModules = function(context) { + var origSymbols = {}; + context.CDV_origSymbols = origSymbols; + for (var i = 0, len = symbolList.length; i < len; i += 3) { + var strategy = symbolList[i]; + var moduleName = symbolList[i + 1]; + var module = require(moduleName); + // + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: src/android/platform.js +define("cordova/platform", function(require, exports, module) { + +module.exports = { + id: 'android', + bootstrap: function() { + var channel = require('cordova/channel'), + cordova = require('cordova'), + exec = require('cordova/exec'), + modulemapper = require('cordova/modulemapper'); + + // Tell the native code that a page change has occurred. + exec(null, null, 'PluginManager', 'startup', []); + // Tell the JS that the native side is ready. + channel.onNativeReady.fire(); + + // TODO: Extract this as a proper plugin. + modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); + + // Inject a listener for the backbutton on the document. + var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); + backButtonChannel.onHasSubscribersChange = function() { + // If we just attached the first handler or detached the last handler, + // let native know we need to override the back button. + exec(null, null, "App", "overrideBackbutton", [this.numHandlers == 1]); + }; + + // Add hardware MENU and SEARCH button handlers + cordova.addDocumentEventHandler('menubutton'); + cordova.addDocumentEventHandler('searchbutton'); + + // Let native code know we are all done on the JS side. + // Native code will then un-hide the WebView. + channel.onCordovaReady.subscribe(function() { + exec(null, null, "App", "show", []); + }); + } +}; + +}); + +// file: src/android/plugin/android/app.js +define("cordova/plugin/android/app", function(require, exports, module) { + +var exec = require('cordova/exec'); + +module.exports = { + /** + * Clear the resource cache. + */ + clearCache:function() { + exec(null, null, "App", "clearCache", []); + }, + + /** + * Load the url into the webview or into new browser instance. + * + * @param url The URL to load + * @param props Properties that can be passed in to the activity: + * wait: int => wait msec before loading URL + * loadingDialog: "Title,Message" => display a native loading dialog + * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error + * clearHistory: boolean => clear webview history (default=false) + * openExternal: boolean => open in a new browser (default=false) + * + * Example: + * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); + */ + loadUrl:function(url, props) { + exec(null, null, "App", "loadUrl", [url, props]); + }, + + /** + * Cancel loadUrl that is waiting to be loaded. + */ + cancelLoadUrl:function() { + exec(null, null, "App", "cancelLoadUrl", []); + }, + + /** + * Clear web history in this web view. + * Instead of BACK button loading the previous web page, it will exit the app. + */ + clearHistory:function() { + exec(null, null, "App", "clearHistory", []); + }, + + /** + * Go to previous page displayed. + * This is the same as pressing the backbutton on Android device. + */ + backHistory:function() { + exec(null, null, "App", "backHistory", []); + }, + + /** + * Override the default behavior of the Android back button. + * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "backbutton" event, this is automatically done. + * + * @param override T=override, F=cancel override + */ + overrideBackbutton:function(override) { + exec(null, null, "App", "overrideBackbutton", [override]); + }, + + /** + * Exit and terminate the application. + */ + exitApp:function() { + return exec(null, null, "App", "exitApp", []); + } +}; + +}); + +// file: src/common/pluginloader.js +define("cordova/pluginloader", function(require, exports, module) { + +var modulemapper = require('cordova/modulemapper'); +var urlutil = require('cordova/urlutil'); + +// Helper function to inject a + + + + + diff --git a/plugins/phonegap-plugin-push/example/www/js/index.js b/plugins/phonegap-plugin-push/example/www/js/index.js new file mode 100644 index 00000000..86059f91 --- /dev/null +++ b/plugins/phonegap-plugin-push/example/www/js/index.js @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +var app = { + // Application Constructor + initialize: function() { + this.bindEvents(); + }, + // Bind Event Listeners + // + // Bind any events that are required on startup. Common events are: + // 'load', 'deviceready', 'offline', and 'online'. + bindEvents: function() { + document.addEventListener('deviceready', this.onDeviceReady, false); + }, + // deviceready Event Handler + // + // The scope of 'this' is the event. In order to call the 'receivedEvent' + // function, we must explicitly call 'app.receivedEvent(...);' + onDeviceReady: function() { + var push = PushNotification.init({ + "android": { + "senderID": "1234567890" + }, + "ios": {"alert": "true", "badge": "true", "sound": "true"}, + "windows": {} + }); + + push.on('registration', function(data) { + console.log("registration event"); + document.getElementById("regId").innerHTML = data.registrationId; + console.log(JSON.stringify(data)); + }); + + push.on('notification', function(data) { + console.log("notification event"); + console.log(JSON.stringify(data)); + var cards = document.getElementById("cards"); + var card = '
' + + '
' + + '
' + + '
' + + ' ' + data.title + '' + + '

' + data.message + '

' + + '
' + + '
' + + '
' + + '
'; + cards.innerHTML += card; + + push.finish(function () { + console.log('finish successfully called'); + }); + }); + + push.on('error', function(e) { + console.log("push error"); + }); + } +}; + +app.initialize(); \ No newline at end of file diff --git a/plugins/phonegap-plugin-push/example/www/js/jquery-2.1.1.min.js b/plugins/phonegap-plugin-push/example/www/js/jquery-2.1.1.min.js new file mode 100644 index 00000000..e5ace116 --- /dev/null +++ b/plugins/phonegap-plugin-push/example/www/js/jquery-2.1.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) +},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("');return a.join("")})}},fileButton:function(b,c,d){if(!(arguments.length<3)){a.call(this,c);var e=this;if(c.validate)this.validate=c.validate;var g=CKEDITOR.tools.extend({}, +c),i=g.onClick;g.className=(g.className?g.className+" ":"")+"cke_dialog_ui_button";g.onClick=function(a){var d=c["for"];if(!i||i.call(this,a)!==false){b.getContentElement(d[0],d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(c["for"][0],c["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,g,d)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(d,e,g){if(!(arguments.length<3)){var i=[], +n=e.html;n.charAt(0)!="<"&&(n=""+n+"");var l=e.focus;if(l){var o=this.focus;this.focus=function(){(typeof l=="function"?l:o).call(this);this.fire("focus")};if(e.isFocusable)this.isFocusable=this.isFocusable;this.keyboardFocusable=true}CKEDITOR.ui.dialog.uiElement.call(this,d,e,i,"span",null,null,"");i=i.join("").match(a);n=n.match(b)||["","",""];if(c.test(n[1])){n[1]=n[1].slice(0,-1);n[2]="/"+n[2]}g.push([n[1]," ",i[1]||"",n[2]].join(""))}}}(),fieldset:function(a,b,c,d,e){var g=e.label; +this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,e,d,"fieldset",null,null,function(){var a=[];g&&a.push(""+g+"");for(var b=0;b0;)a.remove(0);return this},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(a,b){this.getInputElement().$.checked=a;!b&&this.fire("change",{value:a})},getValue:function(){return this.getInputElement().$.checked}, +accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(a,b){if(!CKEDITOR.env.ie||CKEDITOR.env.version>8)return c.onChange.apply(this,arguments);a.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;b.propertyName=="checked"&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",b);return null}},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, +{setValue:function(a,b){for(var c=this._.children,d,e=0;e0?new CKEDITOR.dom.element(a.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,d=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog, +c[1].toLowerCase(),a[e]);return this},reset:function(){function a(){c.$.open();var f="";d.size&&(f=d.size-(CKEDITOR.env.ie?7:0));var r=b.frameId+"_input";c.$.write(['','
+ ``` + +- `tabReplace` and `useBR` that were used in different places are also unified + into the global options object and are to be set using `configure(options)`. + This function is documented in our [API docs][]. Also note that these + parameters are gone from `highlightBlock` and `fixMarkup` which are now also + rely on `configure`. + +- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which + was used to register languages with the library in favor of two new methods: + `registerLanguage` and `getLanguage`. Both are documented in our [API docs][]. + +- Result returned from `highlight` and `highlightAuto` no longer contains two + separate attributes contributing to relevance score, `relevance` and + `keyword_count`. They are now unified in `relevance`. + +Another technically compatible change that nonetheless might need attention: + +- The structure of the NPM package was refactored, so if you had installed it + locally, you'll have to update your paths. The usual `require('highlight.js')` + works as before. This is contributed by [Dmitry Smolin][]. + +New features: + +- Languages now can be recognized by multiple names like "js" for JavaScript or + "html" for, well, HTML (which earlier insisted on calling it "xml"). These + aliases can be specified in the class attribute of the code container in your + HTML as well as in various API calls. For now there are only a few very common + aliases but we'll expand it in the future. All of them are listed in the + [class reference][]. + +- Language detection can now be restricted to a subset of languages relevant in + a given context — a web page or even a single highlighting call. This is + especially useful for node.js build that includes all the known languages. + Another example is a StackOverflow-style site where users specify languages + as tags rather than in the markdown-formatted code snippets. This is + documented in the [API reference][] (see methods `highlightAuto` and + `configure`). + +- Language definition syntax streamlined with [variants][] and + [beginKeywords][]. + +New languages and styles: + +- *Oxygene* by [Carlo Kok][] +- *Mathematica* by [Daniel Kvasnička][] +- *Autohotkey* by [Seongwon Lee][] +- *Atelier* family of styles in 10 variants by [Bram de Haan][] +- *Paraíso* styles by [Jan T. Sott][] + +Miscelleanous improvements: + +- Highlighting `=>` prompts in Clojure. +- [Jeremy Hull][] fixed a lot of styles for consistency. +- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html]. +- Objective C and C# now properly highlight titles in method definition. +- Big overhaul of relevance counting for a number of languages. Please do report + bugs about mis-detection of non-trivial code snippets! + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html +[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html +[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion +[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d +[php-html]: https://twitter.com/highlightjs/status/408890903017689088 + +[Carlo Kok]: https://github.com/carlokok +[Bram de Haan]: https://github.com/atelierbram +[Daniel Kvasnička]: https://github.com/dkvasnicka +[Dmitry Smolin]: https://github.com/dimsmol +[Jeremy Hull]: https://github.com/sourrust +[Seongwon Lee]: https://github.com/dlimpid +[Jan T. Sott]: https://github.com/idleberg + + +## Version 7.5 + +A catch-up release dealing with some of the accumulated contributions. This one +is probably will be the last before the 8.0 which will be slightly backwards +incompatible regarding some advanced use-cases. + +One outstanding change in this version is the addition of 6 languages to the +[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and +Makefile. It now weighs about 6K more but we're going to keep it under 30K. + +New languages: + +- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud] +- [LiveCode Server][lcs] by [Ralf Bitter][revig] +- Scilab by [Sylvestre Ledru][sylvestre] +- basic support for Makefile by [Ivan Sagalaev][isagalaev] + +Improvements: + +- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}` + regexps. +- Clojure now allows a function call in the beginning of s-expressions + `(($filter "myCount") (arr 1 2 3 4 5))`. +- Haskell's got new keywords and now recognizes more things like pragmas, + preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep] + for the implementation and to [Jeremy Hull][sourrust] for guiding it. +- Miscelleanous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#. + +[mehdid]: https://github.com/mehdid +[nbraud]: https://github.com/nbraud +[revig]: https://github.com/revig +[lcs]: http://livecode.com/developers/guides/server/ +[sylvestre]: https://github.com/sylvestre +[isagalaev]: https://github.com/isagalaev +[treep]: https://github.com/treep +[sourrust]: https://github.com/sourrust +[d]: http://highlightjs.org/download/ + + +## New core developers + +The latest long period of almost complete inactivity in the project coincided +with growing interest to it led to a decision that now seems completely obvious: +we need more core developers. + +So without further ado let me welcome to the core team two long-time +contributors: [Jeremy Hull][] and [Oleg +Efimov][]. + +Hope now we'll be able to work through stuff faster! + +P.S. The historical commit is [here][1] for the record. + +[Jeremy Hull]: https://github.com/sourrust +[Oleg Efimov]: https://github.com/sannis +[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f + + +## Version 7.4 + +This long overdue version is a snapshot of the current source tree with all the +changes that happened during the past year. Sorry for taking so long! + +Along with the changes in code highlight.js has finally got its new home at +, moving from its craddle on Software Maniacs which it +outgrew a long time ago. Be sure to report any bugs about the site to +. + +On to what's new… + +New languages: + +- Handlebars templates by [Robin Ward][] +- Oracle Rules Language by [Jason Jacobson][] +- F# by [Joans Follesø][] +- AsciiDoc and Haml by [Dan Allen][] +- Lasso by [Eric Knibbe][] +- SCSS by [Kurt Emch][] +- VB.NET by [Poren Chiang][] +- Mizar by [Kelley van Evert][] + +[Robin Ward]: https://github.com/eviltrout +[Jason Jacobson]: https://github.com/jayce7 +[Joans Follesø]: https://github.com/follesoe +[Dan Allen]: https://github.com/mojavelinux +[Eric Knibbe]: https://github.com/EricFromCanada +[Kurt Emch]: https://github.com/kemch +[Poren Chiang]: https://github.com/rschiang +[Kelley van Evert]: https://github.com/kelleyvanevert + +New style themes: + +- Monokai Sublime by [noformnocontent][] +- Railscasts by [Damien White][] +- Obsidian by [Alexander Marenin][] +- Docco by [Simon Madine][] +- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything) +- Foundation by [Dan Allen][] + +[noformnocontent]: http://nn.mit-license.org/ +[Damien White]: https://github.com/visoft +[Alexander Marenin]: https://github.com/ioncreature +[Simon Madine]: https://github.com/thingsinjars +[Ivan Sagalaev]: https://github.com/isagalaev + +Other notable changes: + +- Corrected many corner cases in CSS. +- Dropped Python 2 version of the build tool. +- Implemented building for the AMD format. +- Updated Rust keywords (thanks to [Dmitry Medvinsky][]). +- Literal regexes can now be used in language definitions. +- CoffeeScript highlighting is now significantly more robust and rich due to + input from [Cédric Néhémie][]. + +[Dmitry Medvinsky]: https://github.com/dmedvinsky +[Cédric Néhémie]: https://github.com/abe33 + + +## Version 7.3 + +- Since this version highlight.js no longer works in IE version 8 and older. + It's made it possible to reduce the library size and dramatically improve code + readability and made it easier to maintain. Time to go forward! + +- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and + Brainfuck (by [Evgeny Stepanischev][bolk]). + +- Improvements to existing languages: + + - interpreter prompt in Python (`>>>` and `...`) + - @-properties and classes in CoffeeScript + - E4X in JavaScript (by [Oleg Efimov][oe]) + - new keywords in Perl (by [Kirk Kimmel][kk]) + - big Ruby syntax update (by [Vasily Polovnyov][vast]) + - small fixes in Bash + +- Also Oleg Efimov did a great job of moving all the docs for language and style + developers and contributors from the old wiki under the source code in the + "docs" directory. Now these docs are nicely presented at + . + +[ng]: https://github.com/nathan11g +[dd]: https://github.com/drdrang +[bolk]: https://github.com/bolknote +[oe]: https://github.com/Sannis +[kk]: https://github.com/kimmel +[vast]: https://github.com/vast + + +## Version 7.2 + +A regular bug-fix release without any significant new features. Enjoy! + + +## Version 7.1 + +A Summer crop: + +- [Marc Fornos][mf] made the definition for Clojure along with the matching + style Rainbow (which, of course, works for other languages too). +- CoffeeScript support continues to improve getting support for regular + expressions. +- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the + [project by Chris Kempson][tm0]. +- Thanks to [Casey Duncun][cd] the library can now be built in the popular + [AMD format][amd]. +- And last but not least, we've got a fair number of correctness and consistency + fixes, including a pretty significant refactoring of Ruby. + +[mf]: https://github.com/mfornos +[tm]: http://jmblog.github.com/color-themes-for-highlightjs/ +[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme +[cd]: https://github.com/caseman +[amd]: http://requirejs.org/docs/whyamd.html + + +## Version 7.0 + +The reason for the new major version update is a global change of keyword syntax +which resulted in the library getting smaller once again. For example, the +hosted build is 2K less than at the previous version while supporting two new +languages. + +Notable changes: + +- The library now works not only in a browser but also with [node.js][]. It is + installable with `npm install highlight.js`. [API][] docs are available on our + wiki. + +- The new unique feature (apparently) among syntax highlighters is highlighting + *HTTP* headers and an arbitrary language in the request body. The most useful + languages here are *XML* and *JSON* both of which highlight.js does support. + Here's [the detailed post][p] about the feature. + +- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an + emulation of*XCode* IDE by [Angel Olloqui][ao]. + +- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc] + and *GLSL* by [Sergey Tikhomirov][st]. + +- *Nginx* syntax has become a million times smaller and more universal thanks to + remaking it in a more generic manner that doesn't require listing all the + directives in the known universe. + +- Function titles are now highlighted in *PHP*. + +- *Haskell* and *VHDL* were significantly reworked to be more rich and correct + by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik]. + +And last but not least, many bugs have been fixed around correctness and +language detection. + +Overall highlight.js currently supports 51 languages and 20 style themes. + +[node.js]: http://nodejs.org/ +[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api +[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/ +[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +[ao]: https://github.com/angelolloqui +[ar]: https://github.com/raleksandar +[jc]: https://github.com/jcheng5 +[st]: https://github.com/tikhomirov +[sr]: https://github.com/sourrust +[ik]: https://github.com/ikalnitsky + + +## Version 6.2 + +A lot of things happened in highlight.js since the last version! We've got nine +new contributors, the discussion group came alive, and the main branch on GitHub +now counts more than 350 followers. Here are most significant results coming +from all this activity: + +- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and + experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av], + [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis + Bardadym][db] and [John Crepezzi][jc]. + +- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of + another well-known highlighter Google Code Prettify by [Aahan Krish][ak]. + +- A vast number of [correctness fixes and code refactorings][log], mostly made + by [Oleg Efimov][oe] and [Evgeny Stepanischev][es]. + +[av]: https://github.com/vlasovskikh +[am]: https://github.com/myadzel +[dn]: https://github.com/dnagir +[oe]: https://github.com/Sannis +[db]: https://github.com/btd +[jc]: https://github.com/seejohnrun +[lm]: http://grigio.org/ +[ak]: https://github.com/geekpanth3r +[es]: https://github.com/bolknote +[log]: https://github.com/isagalaev/highlight.js/commits/ + + +## Version 6.1 — Solarized + +[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][] +style theme famous for being based on the intricate color theory to achieve +correct contrast and color perception. It is now available for highlight.js in +both variants — light and dark. + +This version also adds a new original style Arta. Its author pumbur maintains a +[heavily modified fork of highlight.js][pb] on GitHub. + +[jh]: https://github.com/sourrust +[solarized]: http://ethanschoonover.com/solarized +[pb]: https://github.com/pumbur/highlight.js + + +## Version 6.0 + +New major version of the highlighter has been built on a significantly +refactored syntax. Due to this it's even smaller than the previous one while +supporting more languages! + +New languages are: + +- Haskell by [Jeremy Hull][sourrust] +- Erlang in two varieties — module and REPL — made collectively by [Nikolay + Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov] +- Objective C by [Valerii Hiora][vhbit] +- Vala by [Antono Vasiljev][antono] +- Go by [Stephan Kountso][steplg] + +[sourrust]: https://github.com/sourrust +[desh]: http://desh.su/ +[arhibot]: https://github.com/arhibot +[ignatov]: https://github.com/ignatov +[vhbit]: https://github.com/vhbit +[antono]: https://github.com/antono +[steplg]: https://github.com/steplg + +Also this version is marginally faster and fixes a number of small long-standing +bugs. + +Developer overview of the new language syntax is available in a [blog post about +recent beta release][beta]. + +[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/ + +P.S. New version is not yet available on a Yandex' CDN, so for now you have to +download [your own copy][d]. + +[d]: /soft/highlight/en/download/ + + +## Version 5.14 + +Fixed bugs in HTML/XML detection and relevance introduced in previous +refactoring. + +Also test.html now shows the second best result of language detection by +relevance. + + +## Version 5.13 + +Past weekend began with a couple of simple additions for existing languages but +ended up in a big code refactoring bringing along nice improvements for language +developers. + +### For users + +- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard. +- Description of HTML has got new tags from [HTML 5][]. +- CSS-styles have been unified to use consistent padding and also have lost + pop-outs with names of detected languages. +- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake и VHDL. + +This makes total number of languages supported by highlight.js to reach 35. + +Bug fixes: + +- Custom classes on `
` tags are not being overridden anymore
+- More correct highlighting of code blocks inside non-`
` containers:
+  highlighter now doesn't insist on replacing them with its own container and
+  just replaces the contents.
+- Small fixes in browser compatibility and heuristics.
+
+[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
+[html 5]: http://en.wikipedia.org/wiki/HTML5
+[ik]: http://kalnitsky.org.ua/
+
+### For developers
+
+The most significant change is the ability to include language submodes right
+under `contains` instead of defining explicit named submodes in the main array:
+
+    contains: [
+      'string',
+      'number',
+      {begin: '\\n', end: hljs.IMMEDIATE_RE}
+    ]
+
+This is useful for auxiliary modes needed only in one place to define parsing.
+Note that such modes often don't have `className` and hence won't generate a
+separate `` in the resulting markup. This is similar in effect to
+`noMarkup: true`. All existing languages have been refactored accordingly.
+
+Test file test.html has at last become a real test. Now it not only puts the
+detected language name under the code snippet but also tests if it matches the
+expected one. Test summary is displayed right above all language snippets.
+
+
+## CDN
+
+Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
+[Link up][l]!
+
+[yandex]: http://yandex.com/
+[l]: http://softwaremaniacs.org/soft/highlight/en/download/
+
+
+## Version 5.10 — "Paris".
+
+Though I'm on a vacation in Paris, I decided to release a new version with a
+couple of small fixes:
+
+- Tomas Vitvar discovered that TAB replacement doesn't always work when used
+  with custom markup in code
+- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
+
+
+## Version 5.9
+
+A long-awaited version is finally released.
+
+New languages:
+
+- Andrew Fedorov made a definition for Lua
+- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
+  Nginx config
+- [Vladimir Moskva][vm] made a definition for TeX
+
+[pl]: http://kung-fu-tzu.ru/
+[vm]: http://fulc.ru/
+
+Fixes for existing languages:
+
+- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
+  [YARD][] inline documentation
+- the definition of SQL has become more solid and now it shouldn't be overly
+  greedy when it comes to language detection
+
+[ls]: http://gnuu.org/
+[yard]: http://yardoc.org/
+
+The highlighter has become more usable as a library allowing to do highlighting
+from initialization code of JS frameworks and in ajax methods (see.
+readme.eng.txt).
+
+Also this version drops support for the [WordPress][wp] plugin. Everyone is
+welcome to [pick up its maintenance][p] if needed.
+
+[wp]: http://wordpress.org/
+[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
+
+
+## Version 5.8
+
+- Jan Berkel has contributed a definition for Scala. +1 to hotness!
+- All CSS-styles are rewritten to work only inside `
` tags to avoid
+  conflicts with host site styles.
+
+
+## Version 5.7.
+
+Fixed escaping of quotes in VBScript strings.
+
+
+## Version 5.5
+
+This version brings a small change: now .ini-files allow digits, underscores and
+square brackets in key names.
+
+
+## Version 5.4
+
+Fixed small but upsetting bug in the packer which caused incorrect highlighting
+of explicitly specified languages. Thanks to Andrew Fedorov for precise
+diagnostics!
+
+
+## Version 5.3
+
+The version to fulfil old promises.
+
+The most significant change is that highlight.js now preserves custom user
+markup in code along with its own highlighting markup. This means that now it's
+possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
+[initial proposal][1] and for making a proof-of-concept patch.
+
+Also in this version:
+
+- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
+  support for CSS @-rules and Ruby symbols.
+- Yura Zaripov has sent two styles: Brown Paper and School Book.
+- Oleg Volchkov has sent a definition for [Parser 3][p3].
+
+[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
+[p3]: http://www.parser.ru/
+[vp]: http://vasily.polovnyov.ru/
+[vd]: http://dolzhenko.blogspot.com/
+
+
+## Version 5.2
+
+- at last it's possible to replace indentation TABs with something sensible (e.g. 2 or 4 spaces)
+- new keywords and built-ins for 1C by Sergey Baranov
+- a couple of small fixes to Apache highlighting
+
+
+## Version 5.1
+
+This is one of those nice version consisting entirely of new and shiny
+contributions!
+
+- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
+- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
+  original visual style for it is now available for all highlight.js languages
+  under the name "Magula".
+- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
+  languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
+  the matter.
+
+[vooon]: http://vehq.ru/about/
+[rukeba]: http://rukeba.com/
+[drake]: http://drakeguan.org/
+[ke]: http://k-evdokimenko.moikrug.ru/
+
+
+## Version 5.0
+
+The main change in the new major version of highlight.js is a mechanism for
+packing several languages along with the library itself into a single compressed
+file. Now sites using several languages will load considerably faster because
+the library won't dynamically include additional files while loading.
+
+Also this version fixes a long-standing bug with Javascript highlighting that
+couldn't distinguish between regular expressions and division operations.
+
+And as usually there were a couple of minor correctness fixes.
+
+Great thanks to all contributors! Keep using highlight.js.
+
+
+## Version 4.3
+
+This version comes with two contributions from [Jason Diamond][jd]:
+
+- language definition for C# (yes! it was a long-missed thing!)
+- Visual Studio-like highlighting style
+
+Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
+
+[jd]: http://jason.diamond.name/weblog/
+
+
+## Version 4.2
+
+The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
+somewhat experimental meaning that for highlighting "keywords" it doesn't use
+any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
+in parentheses wherever it makes sense. I'd like to ask people programming in
+Lisp to confirm if it's a good idea and send feedback to [the forum][f].
+
+Other changes:
+
+- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
+- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
+  test.html
+- comments now allowed inside Ruby function definition
+- [MEL][] language from [Shuen-Huei Guan][drake]
+- whitespace now allowed between `
` and ``
+- better auto-detection of C++ and PHP
+- HTML allows embedded VBScript (`<% .. %>`)
+
+[f]: http://softwaremaniacs.org/forum/highlightjs/
+[voldmar]: http://voldmar.ya.ru/
+[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
+[drake]: http://drakeguan.org/
+
+
+## Version 4.1
+
+Languages:
+
+- Bash from Vah
+- DOS bat-files from Alexander Makarov (Sam)
+- Diff files from Vasily Polovnyov
+- Ini files from myself though initial idea was from Sam
+
+Styles:
+
+- Zenburn from Vladimir Epifanov, this is an imitation of a
+  [well-known theme for Vim][zenburn].
+- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
+  just one color in only three gradations :-)
+
+In other news. [One small bug][bug] was fixed, built-in keywords were added for
+Python and C++ which improved auto-detection for the latter (it was shame that
+[my wife's blog][alenacpp] had issues with it from time to time). And lastly
+thanks go to Sam for getting rid of my stylistic comments in code that were
+getting in the way of [JSMin][].
+
+[zenburn]: http://en.wikipedia.org/wiki/Zenburn
+[alenacpp]: http://alenacpp.blogspot.com/
+[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
+[jsmin]: http://code.google.com/p/jsmin-php/
+
+
+## Version 4.0
+
+New major version is a result of vast refactoring and of many contributions.
+
+Visible new features:
+
+- Highlighting of embedded languages. Currently is implemented highlighting of
+  Javascript and CSS inside HTML.
+- Bundled 5 ready-made style themes!
+
+Invisible new features:
+
+- Highlight.js no longer pollutes global namespace. Only one object and one
+  function for backward compatibility.
+- Performance is further increased by about 15%.
+
+Changing of a major version number caused by a new format of language definition
+files. If you use some third-party language files they should be updated.
+
+
+## Version 3.5
+
+A very nice version in my opinion fixing a number of small bugs and slightly
+increased speed in a couple of corner cases. Thanks to everybody who reports
+bugs in he [forum][f] and by email!
+
+There is also a new language — XML. A custom XML formerly was detected as HTML
+and didn't highlight custom tags. In this version I tried to make custom XML to
+be detected and highlighted by its own rules. Which by the way include such
+things as CDATA sections and processing instructions (``).
+
+[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
+
+
+## Version 3.3
+
+[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
+File export.html contains a little program that shows and allows to copy and
+paste an HTML code generated by the highlighter for any code snippet. This can
+be useful in situations when one can't use the script itself on a site.
+
+
+[xonix]: http://xonixx.blogspot.com/
+
+
+## Version 3.2 consists completely of contributions:
+
+- Vladimir Gubarkov has described SmallTalk
+- Yuri Ivanov has described 1C
+- Peter Leonov has packaged the highlighter as a Firefox extension
+- Vladimir Ermakov has compiled a mod for phpBB
+
+Many thanks to you all!
+
+
+## Version 3.1
+
+Three new languages are available: Django templates, SQL and Axapta. The latter
+two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
+SQL definition but I'd never started it be it from the ground up :-)
+
+The engine itself has got a long awaited feature of grouping keywords
+("keyword", "built-in function", "literal"). No more hacks!
+
+[1]: http://roudakov.ru/
+
+
+## Version 3.0
+
+It is major mainly because now highlight.js has grown large and has become
+modular. Now when you pass it a list of languages to highlight it will
+dynamically load into a browser only those languages.
+
+Also:
+
+- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
+  RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
+  languages!
+- Heuristics for C++ and HTML got better.
+- I've implemented (at last) a correct handling of backslash escapes in C-like
+  languages.
+
+There is also a small backwards incompatible change in the new version. The
+function initHighlighting that was used to initialize highlighting instead of
+initHighlightingOnLoad a long time ago no longer works. If you by chance still
+use it — replace it with the new one.
+
+[RibKit]: http://ribkit.sourceforge.net/
+
+
+## Version 2.9
+
+Highlight.js is a parser, not just a couple of regular expressions. That said
+I'm glad to announce that in the new version 2.9 has support for:
+
+- in-string substitutions for Ruby -- `#{...}`
+- strings from from numeric symbol codes (like #XX) for Delphi
+
+
+## Version 2.8
+
+A maintenance release with more tuned heuristics. Fully backwards compatible.
+
+
+## Version 2.7
+
+- Nikita Ledyaev presents highlighting for VBScript, yay!
+- A couple of bugs with escaping in strings were fixed thanks to Mickle
+- Ongoing tuning of heuristics
+
+Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
+
+
+## Version 2.4
+
+- Peter Leonov provides another improved highlighting for Perl
+- Javascript gets a new kind of keywords — "literals". These are the words
+  "true", "false" and "null"
+
+Also highlight.js homepage now lists sites that use the library. Feel free to
+add your site by [dropping me a message][mail] until I find the time to build a
+submit form.
+
+[mail]: mailto:Maniac@SoftwareManiacs.Org
+
+
+## Version 2.3
+
+This version fixes IE breakage in previous version. My apologies to all who have
+already downloaded that one!
+
+
+## Version 2.2
+
+- added highlighting for Javascript
+- at last fixed parsing of Delphi's escaped apostrophes in strings
+- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
+  Perl
+
+
+## Version 2.0
+
+- Ruby support by [Anton Kovalyov][ak]
+- speed increased by orders of magnitude due to new way of parsing
+- this same way allows now correct highlighting of keywords in some tricky
+  places (like keyword "End" at the end of Delphi classes)
+
+[ak]: http://anton.kovalyov.net/
+
+
+## Version 1.0
+
+Version 1.0 of javascript syntax highlighter is released!
+
+It's the first version available with English description. Feel free to post
+your comments and question to [highlight.js forum][forum]. And don't be afraid
+if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
+
+[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
new file mode 100644
index 00000000..422deb73
--- /dev/null
+++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of highlight.js nor the names of its contributors 
+      may be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
new file mode 100644
index 00000000..be85f6ad
--- /dev/null
+++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
@@ -0,0 +1,171 @@
+# Highlight.js
+
+Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах,
+форумах и вообще на любых веб-страницах. Пользоваться им очень просто,
+потому что работает он автоматически: сам находит блоки кода, сам
+определяет язык, сам подсвечивает.
+
+Автоопределением языка можно управлять, когда оно не справляется само (см.
+дальше "Эвристика").
+
+
+## Простое использование
+
+Подключите библиотеку и стиль на страницу и повесть вызов подсветки на
+загрузку страницы:
+
+```html
+
+
+
+```
+
+Весь код на странице, обрамлённый в теги `
 .. 
` +будет автоматически подсвечен. Если вы используете другие теги или хотите +подсвечивать блоки кода динамически, читайте "Инициализацию вручную" ниже. + +- Вы можете скачать собственную версию "highlight.pack.js" или сослаться + на захостенный файл, как описано на странице загрузки: + + +- Стилевые темы можно найти в загруженном архиве или также использовать + захостенные. Чтобы сделать собственный стиль для своего сайта, вам + будет полезен [CSS classes reference][cr], который тоже есть в архиве. + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html + + +## node.js + +Highlight.js можно использовать в node.js. Библиотеку со всеми возможными языками можно +установить с NPM: + + npm install highlight.js + +Также её можно собрать из исходников с только теми языками, которые нужны: + + python3 tools/build.py -tnode lang1 lang2 .. + +Использование библиотеки: + +```javascript +var hljs = require('highlight.js'); + +// Если вы знаете язык +hljs.highlight(lang, code).value; + +// Автоопределение языка +hljs.highlightAuto(code).value; +``` + + +## AMD + +Highlight.js можно использовать с загрузчиком AMD-модулей. Для этого его +нужно собрать из исходников следующей командой: + +```bash +$ python3 tools/build.py -tamd lang1 lang2 .. +``` + +Она создаст файл `build/highlight.pack.js`, который является загружаемым +AMD-модулем и содержит все выбранные при сборке языки. Используется он так: + +```javascript +require(["highlight.js/build/highlight.pack"], function(hljs){ + + // Если вы знаете язык + hljs.highlight(lang, code).value; + + // Автоопределение языка + hljs.highlightAuto(code).value; +}); +``` + + +## Замена TABов + +Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на +фиксированное количество пробелов или на отдельный ``, чтобы задать ему +какой-нибудь специальный стиль: + +```html + +``` + + +## Инициализация вручную + +Если вы используете другие теги для блоков кода, вы можете инициализировать их +явно с помощью функции `highlightBlock(code)`. Она принимает DOM-элемент с +текстом расцвечиваемого кода и опционально - строчку для замены символов TAB. + +Например с использованием jQuery код инициализации может выглядеть так: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); +}); +``` + +`highlightBlock` можно также использовать, чтобы подсветить блоки кода, +добавленные на страницу динамически. Только убедитесь, что вы не делаете этого +повторно для уже раскрашенных блоков. + +Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не +`
`), включите опцию `useBR`:
+
+```javascript
+hljs.configure({useBR: true});
+$('div.code').each(function(i, e) {hljs.highlightBlock(e)});
+```
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу ``:
+
+```html
+
...
+``` + +Можно использовать рекомендованные в HTML5 названия классов: +"language-html", "language-php". Также можно назначать классы на элемент +`
`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+```html
+
...
+``` + + +## Экспорт + +В файле export.html находится небольшая программка, которая показывает и дает +скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода. +Это может понадобится например на сайте, на котором нельзя подключить сам скрипт +highlight.js. + + +## Координаты + +- Версия: 8.0 +- URL: http://highlightjs.org/ + +Лицензионное соглашение читайте в файле LICENSE. +Список авторов и соавторов читайте в файле AUTHORS.ru.txt diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js new file mode 100644 index 00000000..627f79e2 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js @@ -0,0 +1 @@ +var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBLCLM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,i:/[:"<>]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{k:d,l:c,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css new file mode 100644 index 00000000..c2a55bbe --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css @@ -0,0 +1,160 @@ +/* +Date: 17.V.2011 +Author: pumbur +*/ + +.hljs +{ + display: block; padding: 0.5em; + background: #222; +} + +.profile .hljs-header *, +.ini .hljs-title, +.nginx .hljs-title +{ + color: #fff; +} + +.hljs-comment, +.hljs-javadoc, +.hljs-preprocessor, +.hljs-preprocessor .hljs-title, +.hljs-pragma, +.hljs-shebang, +.profile .hljs-summary, +.diff, +.hljs-pi, +.hljs-doctype, +.hljs-tag, +.hljs-template_comment, +.css .hljs-rules, +.tex .hljs-special +{ + color: #444; +} + +.hljs-string, +.hljs-symbol, +.diff .hljs-change, +.hljs-regexp, +.xml .hljs-attribute, +.smalltalk .hljs-char, +.xml .hljs-value, +.ini .hljs-value, +.clojure .hljs-attribute, +.coffeescript .hljs-attribute +{ + color: #ffcc33; +} + +.hljs-number, +.hljs-addition +{ + color: #00cc66; +} + +.hljs-built_in, +.hljs-literal, +.vhdl .hljs-typename, +.go .hljs-constant, +.go .hljs-typename, +.ini .hljs-keyword, +.lua .hljs-title, +.perl .hljs-variable, +.php .hljs-variable, +.mel .hljs-variable, +.django .hljs-variable, +.css .funtion, +.smalltalk .method, +.hljs-hexcolor, +.hljs-important, +.hljs-flow, +.hljs-inheritance, +.parser3 .hljs-variable +{ + color: #32AAEE; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.css .hljs-tag, +.css .hljs-class, +.css .hljs-id, +.css .hljs-pseudo, +.css .hljs-attr_selector, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-winutils, +.tex .hljs-command, +.hljs-request, +.hljs-status +{ + color: #6644aa; +} + +.hljs-title, +.ruby .hljs-constant, +.vala .hljs-constant, +.hljs-parent, +.hljs-deletion, +.hljs-template_tag, +.css .hljs-keyword, +.objectivec .hljs-class .hljs-id, +.smalltalk .hljs-class, +.lisp .hljs-keyword, +.apache .hljs-tag, +.nginx .hljs-variable, +.hljs-envvar, +.bash .hljs-variable, +.go .hljs-built_in, +.vbscript .hljs-built_in, +.lua .hljs-built_in, +.rsl .hljs-built_in, +.tail, +.avrasm .hljs-label, +.tex .hljs-formula, +.tex .hljs-formula * +{ + color: #bb1166; +} + +.hljs-yardoctag, +.hljs-phpdoc, +.profile .hljs-header, +.ini .hljs-title, +.apache .hljs-tag, +.parser3 .hljs-title +{ + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata +{ + opacity: 0.6; +} + +.hljs, +.javascript, +.css, +.xml, +.hljs-subst, +.diff .hljs-chunk, +.css .hljs-value, +.css .hljs-attribute, +.lisp .hljs-string, +.lisp .hljs-number, +.tail .hljs-params, +.hljs-container, +.haskell *, +.erlang *, +.erlang_repl * +{ + color: #aaa; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css new file mode 100644 index 00000000..89c5fe2f --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css @@ -0,0 +1,50 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-filter .hljs-argument, +.hljs-addition, +.hljs-change, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #888; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-shebang, +.hljs-doctype, +.hljs-pi, +.hljs-javadoc, +.hljs-deletion, +.apache .hljs-sqbracket { + color: #CCC; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.ini .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.http .hljs-title, +.nginx .hljs-title, +.css .hljs-tag, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css new file mode 100644 index 00000000..4cfc77ca --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Dark Comment */ +.hljs-comment, +.hljs-title { + color: #999580; +} + +/* Atelier Dune Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Dark Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Dark Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #292824; + color: #a6a28c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css new file mode 100644 index 00000000..3501bf82 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Light Comment */ +.hljs-comment, +.hljs-title { + color: #7d7a68; +} + +/* Atelier Dune Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Light Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #fefbec; + color: #6e6b5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css new file mode 100644 index 00000000..9c26b7be --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9c9491; +} + +/* Atelier Forest Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Dark Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #2c2421; + color: #a8a19f; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css new file mode 100644 index 00000000..3de3dadb --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Light Comment */ +.hljs-comment, +.hljs-title { + color: #766e6b; +} + +/* Atelier Forest Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Light Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #f1efee; + color: #68615e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css new file mode 100644 index 00000000..df1446c1 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9e8f9e; +} + +/* Atelier Heath Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Dark Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #292329; + color: #ab9bab; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css new file mode 100644 index 00000000..a737a082 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Light Comment */ +.hljs-comment, +.hljs-title { + color: #776977; +} + +/* Atelier Heath Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Light Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #f7f3f7; + color: #695d69; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css new file mode 100644 index 00000000..43c5b4ea --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #7195a8; +} + +/* Atelier Lakeside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Dark Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #1f292e; + color: #7ea2b4; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css new file mode 100644 index 00000000..5a782694 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Light Comment */ +.hljs-comment, +.hljs-title { + color: #5a7b8c; +} + +/* Atelier Lakeside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Light Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #ebf8ff; + color: #516d7b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css new file mode 100644 index 00000000..3bea9b36 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #809980; +} + +/* Atelier Seaside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Dark Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #242924; + color: #8ca68c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css new file mode 100644 index 00000000..e86c44d6 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Light Comment */ +.hljs-comment, +.hljs-title { + color: #687d68; +} + +/* Atelier Seaside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Light Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #f0fff0; + color: #5e6e5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css new file mode 100644 index 00000000..0838fb8f --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css @@ -0,0 +1,105 @@ +/* + +Brown Paper style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 0.5em; + background:#b7a68e url(./brown_papersq.png); +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-request, +.hljs-status { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #363C69; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-number { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #802022; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.8; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png new file mode 100644 index 00000000..3813903d Binary files /dev/null and b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png differ diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css new file mode 100644 index 00000000..b9426c37 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css @@ -0,0 +1,105 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #444; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: white; +} + +.hljs, +.hljs-subst { + color: #DDD; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.ini .hljs-title, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.coffeescript .hljs-attribute { + color: #D88; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #777; +} + +.hljs-keyword, +.hljs-literal, +.hljs-title, +.css .hljs-id, +.hljs-phpdoc, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css new file mode 100644 index 00000000..ae9af353 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css @@ -0,0 +1,153 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #F0F0F0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88F +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css new file mode 100644 index 00000000..5026d6cf --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css @@ -0,0 +1,132 @@ +/* +Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #f8f8ff +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #408080; + font-style: italic +} + +.hljs-keyword, +.assignment, +.hljs-literal, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + color: #954121; +} + +.hljs-number, +.hljs-hexcolor { + color: #40a070 +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #219161; +} + +.hljs-title, +.hljs-id { + color: #19469D; +} +.hljs-params { + color: #00F; +} + +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-label, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.instancevar, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #B68 +} + +.hljs-class { + color: #458; + font-weight: bold +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-keyword, +.ruby .hljs-symbol .keymethods, +.lisp .hljs-keyword, +.tex .hljs-special, +.input_number { + color: #990073 +} + +.builtin, +.constructor, +.hljs-built_in, +.lisp .hljs-title { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} + +.tex .hljs-formula { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css new file mode 100644 index 00000000..be505362 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css @@ -0,0 +1,113 @@ +/* + +FAR Style (c) MajestiC + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000080; +} + +.hljs, +.hljs-subst { + color: #0FF; +} + +.hljs-string, +.ruby .hljs-string, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.css .hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.clojure .hljs-title, +.coffeescript .hljs-attribute { + color: #FF0; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.hljs-winutils, +.hljs-flow, +.hljs-change, +.hljs-envvar, +.bash .hljs-variable, +.tex .hljs-special, +.clojure .hljs-built_in { + color: #FFF; +} + +.hljs-comment, +.hljs-phpdoc, +.hljs-javadoc, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-deletion, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.clojure .hljs-attribute { + color: #0F0; +} + +.python .hljs-decorator, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.xml .hljs-pi, +.diff .hljs-header, +.hljs-chunk, +.hljs-shebang, +.nginx .hljs-built_in, +.hljs-prompt { + color: #008080; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css new file mode 100644 index 00000000..0710a10f --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css @@ -0,0 +1,133 @@ +/* +Description: Foundation 4 docs style for highlight.js +Author: Dan Allen +Website: http://foundation.zurb.com/docs/ +Version: 1.0 +Date: 2013-04-02 +*/ + +.hljs { + display: block; padding: 0.5em; + background: #eee; +} + +.hljs-header, +.hljs-decorator, +.hljs-annotation { + color: #000077; +} + +.hljs-horizontal_rule, +.hljs-link_url, +.hljs-emphasis, +.hljs-attribute { + color: #070; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-link_label, +.hljs-strong, +.hljs-value, +.hljs-string, +.scss .hljs-value .hljs-string { + color: #d14; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-blockquote, +.hljs-comment { + color: #998; + font-style: italic; +} + +.asciidoc .hljs-title, +.hljs-function .hljs-title { + color: #900; +} + +.hljs-class { + color: #458; +} + +.hljs-id, +.hljs-pseudo, +.hljs-constant, +.hljs-hexcolor { + color: teal; +} + +.hljs-variable { + color: #336699; +} + +.hljs-bullet, +.hljs-javadoc { + color: #997700; +} + +.hljs-pi, +.hljs-doctype { + color: #3344bb; +} + +.hljs-code, +.hljs-number { + color: #099; +} + +.hljs-important { + color: #f00; +} + +.smartquote, +.hljs-label { + color: #970; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #579; +} + +.hljs-reserved, +.hljs-keyword, +.scss .hljs-value { + color: #000; +} + +.hljs-regexp { + background-color: #fff0ff; + color: #880088; +} + +.hljs-symbol { + color: #990073; +} + +.hljs-symbol .hljs-string { + color: #a60; +} + +.hljs-tag { + color: #007700; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #088; +} + +.hljs-at_rule .hljs-preprocessor { + color: #808; +} + +.scss .hljs-tag, +.scss .hljs-attribute { + color: #339; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css new file mode 100644 index 00000000..5517086b --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css @@ -0,0 +1,125 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #333; + background: #f8f8f8 +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14 +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #009926 +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073 +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css new file mode 100644 index 00000000..5cc49b68 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css @@ -0,0 +1,147 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #800; +} + +.hljs-keyword, +.method, +.hljs-list .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp, +.coffeescript .hljs-attribute { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-literal, +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-attribute { + color: #066; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.hljs-variable, +.clojure .hljs-title { + color: #606; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #444; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css new file mode 100644 index 00000000..3e810c5f --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css @@ -0,0 +1,122 @@ +/* + +Intellij Idea-like styling (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.diff .hljs-header { + color: #808080; + font-style: italic; +} + +.hljs-annotation, +.hljs-decorator, +.hljs-preprocessor, +.hljs-pragma, +.hljs-doctype, +.hljs-pi, +.hljs-chunk, +.hljs-shebang, +.apache .hljs-cbracket, +.hljs-prompt, +.http .hljs-title { + color: #808000; +} + +.hljs-tag, +.hljs-pi { + background: #efefef; +} + +.hljs-tag .hljs-title, +.hljs-id, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-literal, +.hljs-keyword, +.hljs-hexcolor, +.css .hljs-function, +.ini .hljs-title, +.css .hljs-class, +.hljs-list .hljs-title, +.clojure .hljs-title, +.nginx .hljs-title, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-rules .hljs-keyword, +.hljs-number, +.hljs-date, +.hljs-regexp, +.tex .hljs-special { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp { + font-weight: normal; +} + +.hljs-string, +.hljs-value, +.hljs-filter .hljs-argument, +.css .hljs-function .hljs-params, +.apache .hljs-tag { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-char, +.tex .hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-phpdoc, +.hljs-yardoctag, +.hljs-javadoctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-envvar, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.diff .hljs-change { + background: #bccff9; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css new file mode 100644 index 00000000..66f7c193 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css @@ -0,0 +1,105 @@ +/* + IR_Black style (c) Vasily Mikhailitchenko +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-shebang, +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #7c7c7c; +} + +.hljs-keyword, +.hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #96CBFE; +} + +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title, +.nginx .hljs-title { + color: #FFFFB6; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.coffeescript .hljs-attribute { + color: #A8FF60; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-decorator, +.tex .hljs-special, +.haskell .hljs-type, +.hljs-constant, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.nginx .hljs-built_in { + color: #FFFFB6; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.hljs-variable, +.vbscript, +.hljs-literal { + color: #C6C5FE; +} + +.css .hljs-tag { + color: #96CBFE; +} + +.css .hljs-rules .hljs-property, +.css .hljs-id { + color: #FFFFB6; +} + +.css .hljs-class { + color: #FFF; +} + +.hljs-hexcolor { + color: #C6C5FE; +} + +.hljs-number { + color:#FF73FD; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css new file mode 100644 index 00000000..bc69a377 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css @@ -0,0 +1,122 @@ +/* +Description: Magula style for highligh.js +Author: Ruslan Keba +Website: http://rukeba.com/ +Version: 1.0 +Date: 2009-01-03 +Music: Aphex Twin / Xtal +*/ + +.hljs { + display: block; padding: 0.5em; + background-color: #f4f4f4; +} + +.hljs, +.hljs-subst, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-cbracket, +.coffeescript .hljs-attribute { + color: #050; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk { + color: #777; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.hljs-change, +.tex .hljs-special { + color: #800; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.hljs-prompt, +.clojure .hljs-attribute { + color: #00e; +} + +.hljs-keyword, +.hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.xml .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: navy; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +/* --- */ +.apache .hljs-tag { + font-weight: bold; + color: blue; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css new file mode 100644 index 00000000..bfe2495b --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css @@ -0,0 +1,62 @@ +/* + Five-color theme from a single blue hue. +*/ +.hljs { + display: block; padding: 0.5em; + background: #EAEEF3; color: #00193A; +} + +.hljs-keyword, +.hljs-title, +.hljs-important, +.hljs-request, +.hljs-header, +.hljs-javadoctag { + font-weight: bold; +} + +.hljs-comment, +.hljs-chunk, +.hljs-template_comment { + color: #738191; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-built_in, +.hljs-literal, +.hljs-filename, +.hljs-value, +.hljs-addition, +.hljs-tag, +.hljs-argument, +.hljs-link_label, +.hljs-blockquote, +.hljs-header { + color: #0048AB; +} + +.hljs-decorator, +.hljs-prompt, +.hljs-yardoctag, +.hljs-subst, +.hljs-symbol, +.hljs-doctype, +.hljs-regexp, +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-attribute, +.hljs-attr_selector, +.hljs-javadoc, +.hljs-xmlDocTag, +.hljs-deletion, +.hljs-shebang, +.hljs-string .hljs-variable, +.hljs-link_url, +.hljs-bullet, +.hljs-sqbracket, +.hljs-phony { + color: #4C81C9; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css new file mode 100644 index 00000000..34cd4f9e --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css @@ -0,0 +1,127 @@ +/* +Monokai style - ported by Luigi Maselli - http://grigio.org +*/ + +.hljs { + display: block; padding: 0.5em; + background: #272822; +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-keyword, +.hljs-literal, +.hljs-strong, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: #F92672; +} + +.hljs { + color: #DDD; +} + +.hljs .hljs-constant, +.asciidoc .hljs-code { + color: #66D9EF; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-link_label, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-value, +.hljs-regexp { + color: #BF79DB; +} + +.hljs-link_url, +.hljs-tag .hljs-value, +.hljs-string, +.hljs-bullet, +.hljs-subst, +.hljs-title, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #A6E22E; +} + +.hljs-comment, +.java .hljs-annotation, +.smartquote, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715E; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css new file mode 100644 index 00000000..2d216333 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css @@ -0,0 +1,149 @@ +/* + +Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #23241f; +} + +.hljs, +.hljs-tag, +.css .hljs-rules, +.css .hljs-value, +.css .hljs-function +.hljs-preprocessor, +.hljs-pragma { + color: #f8f8f2; +} + +.hljs-strongemphasis, +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-blockquote, +.hljs-horizontal_rule, +.hljs-number, +.hljs-regexp, +.alias .hljs-keyword, +.hljs-literal, +.hljs-hexcolor { + color: #ae81ff; +} + +.hljs-tag .hljs-value, +.hljs-code, +.hljs-title, +.css .hljs-class, +.hljs-class .hljs-title:last-child { + color: #a6e22e; +} + +.hljs-link_url { + font-size: 80%; +} + +.hljs-strong, +.hljs-strongemphasis { + font-weight: bold; +} + +.hljs-emphasis, +.hljs-strongemphasis, +.hljs-class .hljs-title:last-child { + font-style: italic; +} + +.hljs-keyword, +.hljs-function, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-header, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-tag .hljs-title, +.hljs-value, +.alias .hljs-keyword:first-child, +.css .hljs-tag, +.css .unit, +.css .hljs-important { + color: #F92672; +} + +.hljs-function .hljs-keyword, +.hljs-class .hljs-keyword:first-child, +.hljs-constant, +.css .hljs-attribute { + color: #66d9ef; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #f8f8f2; +} + +.hljs-string, +.css .hljs-id, +.hljs-subst, +.haskell .hljs-type, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.hljs-link_label, +.hljs-link_url { + color: #e6db74; +} + +.hljs-comment, +.hljs-javadoc, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715e; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata, +.xml .php, +.php .xml { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css new file mode 100644 index 00000000..68259fc8 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css @@ -0,0 +1,154 @@ +/** + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +.hljs { + display: block; padding: 0.5em; + background: #282B2E; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.css .hljs-id, +.tex .hljs-special { + color: #93C763; +} + +.hljs-number { + color: #FFCD22; +} + +.hljs { + color: #E0E2E4; +} + +.css .hljs-tag, +.css .hljs-pseudo { + color: #D0D2B5; +} + +.hljs-attribute, +.hljs .hljs-constant { + color: #668BB0; +} + +.xml .hljs-attribute { + color: #B3B689; +} + +.xml .hljs-tag .hljs-value { + color: #E8E2B7; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-class, +.hljs-hexcolor { + color: #93C763; +} + +.hljs-regexp { + color: #D39745; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #A082BD; +} + +.hljs-doctype { + color: #557182; +} + +.hljs-link_url, +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #8CBBAD; +} + +.hljs-string { + color: #EC7600; +} + +.hljs-comment, +.java .hljs-annotation, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #818E96; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-at_rule .hljs-keyword, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css new file mode 100644 index 00000000..55d02f1d --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css @@ -0,0 +1,93 @@ +/* + Paraíso (dark) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #8d8687; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #2f1e2e; + color: #a39e9b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css new file mode 100644 index 00000000..d29ee1b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css @@ -0,0 +1,93 @@ +/* + Paraíso (light) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #776e71; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #e7e9db; + color: #4f424c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css new file mode 100644 index 00000000..86307929 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css @@ -0,0 +1,106 @@ +/* + +Pojoaque Style by Jason Tate +http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +Based on Solarized Style from http://ethanschoonover.com/solarized + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #DCCF8F; + background: url(./pojoaque.jpg) repeat scroll left top #181914; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; + font-style: italic; +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.method, +.hljs-addition, +.css .hljs-tag, +.clojure .hljs-title, +.nginx .hljs-title { + color: #B64926; +} + +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #468966; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-identifier, +.hljs-id { + color: #FFB03B; +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type { + color: #b58900; +} + +.css .hljs-attribute { + color: #b89859; +} + +.css .hljs-number, +.css .hljs-hexcolor { + color: #DCCF8F; +} + +.css .hljs-class { + color: #d3a60c; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #cb4b16; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg new file mode 100644 index 00000000..9c07d4ab Binary files /dev/null and b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg differ diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css new file mode 100644 index 00000000..83d0cde5 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css @@ -0,0 +1,182 @@ +/* + +Railscasts-like style (c) Visoft, Inc. (Damien White) + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #232323; + color: #E6E1DC; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-shebang { + color: #BC9458; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.method, +.hljs-list .hljs-title { + color: #C26230; +} + +.hljs-string, +.hljs-number, +.hljs-regexp, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.markdown .hljs-link_label { + color: #A5C261; +} + +.hljs-subst { + color: #519F50; +} + +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-tag .hljs-title, +.hljs-doctype, +.hljs-sub .hljs-identifier, +.hljs-pi, +.input_number { + color: #E8BF6A; +} + +.hljs-identifier { + color: #D0D0FF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: none; +} + +.hljs-constant { + color: #DA4939; +} + + +.hljs-symbol, +.hljs-built_in, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-identifier, +.markdown .hljs-link_url, +.hljs-attribute { + color: #6D9CBE; +} + +.markdown .hljs-link_url { + text-decoration: underline; +} + + + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #D0D0FF; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #8996A8 !important; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #A5C261; +} + +.hljs-title, +.hljs-decorator, +.css .hljs-function { + color: #FFC66D; +} + +.diff .hljs-header, +.hljs-chunk { + background-color: #2F33AB; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; + display: inline-block; + width: 100%; +} + +.hljs-addition { + background-color: #144212; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css new file mode 100644 index 00000000..08142466 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css @@ -0,0 +1,112 @@ +/* + +Style with support for rainbow parens + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #474949; color: #D1D9E1; +} + + +.hljs-body, +.hljs-collection { + color: #D1D9E1; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #969896; + font-style: italic; +} + +.hljs-keyword, +.clojure .hljs-attribute, +.hljs-winutils, +.javascript .hljs-title, +.hljs-addition, +.css .hljs-tag { + color: #cc99cc; +} + +.hljs-number { color: #f99157; } + +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #8abeb7; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.hljs-identifier +{ + color: #b5bd68; +} + +.hljs-class .hljs-keyword +{ + color: #f2777a; +} + +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-label, +.hljs-id, +.lisp .hljs-title, +.clojure .hljs-title .hljs-built_in { + color: #ffcc66; +} + +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword, +.clojure .hljs-title .hljs-built_in { + font-weight: bold; +} + +.hljs-attribute, +.clojure .hljs-title { + color: #81a2be; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #f99157; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css new file mode 100644 index 00000000..a36e8362 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css @@ -0,0 +1,113 @@ +/* + +School Book style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 15px 0.5em 0.5em 30px; + font-size: 11px !important; + line-height:16px !important; +} + +pre{ + background:#f6f6ae url(./school_book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #3E5915; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket { + color: #E60415; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png new file mode 100644 index 00000000..956e9790 Binary files /dev/null and b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png differ diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css new file mode 100644 index 00000000..970d5f81 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #002b36; + color: #839496; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css new file mode 100644 index 00000000..8e1f4365 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #93a1a1; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css new file mode 100644 index 00000000..8816520c --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css @@ -0,0 +1,160 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #E28964; +} + +.hljs-function .hljs-keyword, +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title { + color: #99CF50; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #65B042; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.hljs-shebang, +.hljs-prompt { + color: #89BDFF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: underline; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number { + color: #3387CC; +} + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #3E87E3; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #8996A8; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #DD7B3B; +} + +.css .hljs-function { + color: #DAD085; +} + +.diff .hljs-header, +.hljs-chunk, +.tex .hljs-formula { + background-color: #0E2231; + color: #F8F8F8; + font-style: italic; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; +} + +.hljs-addition { + background-color: #253B22; + color: #F8F8F8; +} + +.hljs-deletion { + background-color: #420E09; + color: #F8F8F8; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css new file mode 100644 index 00000000..e63ab3de --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Blue Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #7285b7; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ff9da4; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #ffc58f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffeead; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #d1f1a9; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #99ffff; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #bbdaff; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ebbbff; +} + +.hljs { + display: block; + background: #002451; + color: white; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css new file mode 100644 index 00000000..3bbf367d --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Bright Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d54e53; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #e78c45; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #e7c547; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b9ca4a; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #70c0b1; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #7aa6da; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #c397d8; +} + +.hljs { + display: block; + background: black; + color: #eaeaea; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css new file mode 100644 index 00000000..b8de0dbf --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Eighties Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #999999; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f2777a; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99157; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffcc66; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #99cc99; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #66cccc; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6699cc; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #cc99cc; +} + +.hljs { + display: block; + background: #2d2d2d; + color: #cccccc; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css new file mode 100644 index 00000000..54ceb585 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css new file mode 100644 index 00000000..a81a2e85 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css @@ -0,0 +1,90 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #8e908c; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #c82829; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f5871f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #eab700; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #718c00; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #3e999f; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #4271ae; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #8959a8; +} + +.hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css new file mode 100644 index 00000000..5ebf4541 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css @@ -0,0 +1,89 @@ +/* + +Visual Studio-like style based on original C# coloring by Jason Diamond + +*/ +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.apache .hljs-cbracket { + color: #008000; +} + +.hljs-keyword, +.hljs-id, +.hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.xml .hljs-tag, +.xml .hljs-tag .hljs-value { + color: #00f; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.apache .hljs-tag, +.hljs-date, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #a31515; +} + +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.hljs-preprocessor, +.hljs-pragma, +.userType, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-special, +.hljs-prompt { + color: #2b91af; +} + +.hljs-phpdoc, +.hljs-javadoc, +.hljs-xmlDocTag { + color: #808080; +} + +.vhdl .hljs-typename { font-weight: bold; } +.vhdl .hljs-string { color: #666666; } +.vhdl .hljs-literal { color: #a31515; } +.vhdl .hljs-attribute { color: #00B0E8; } + +.xml .hljs-attribute { color: #f00; } diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css new file mode 100644 index 00000000..8d54da72 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css @@ -0,0 +1,158 @@ +/* + +XCode style (c) Angel Garcia + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #fff; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #006a00; +} + +.hljs-keyword, +.hljs-literal, +.nginx .hljs-title { + color: #aa0d91; +} +.method, +.hljs-list .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string { + color: #c41a16; +} +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-title, +.clojure .hljs-built_in, +.hljs-function .hljs-title, +.coffeescript .hljs-attribute { + color: #1c00cf; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.clojure .hljs-attribute { + color: #5c2699; +} + +.hljs-variable { + color: #3f6e74; +} +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #643820; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} + +.method .hljs-id { + color: #000; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css new file mode 100644 index 00000000..3e6a6871 --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css @@ -0,0 +1,116 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #3F3F3F; + color: #DCDCDC; +} + +.hljs-keyword, +.hljs-tag, +.css .hljs-class, +.css .hljs-id, +.lisp .hljs-title, +.nginx .hljs-title, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #E3CEAB; +} + +.django .hljs-template_tag, +.django .hljs-variable, +.django .hljs-filter .hljs-argument { + color: #DCDCDC; +} + +.hljs-number, +.hljs-date { + color: #8CD0D3; +} + +.dos .hljs-envvar, +.dos .hljs-stream, +.hljs-variable, +.apache .hljs-sqbracket { + color: #EFDCBC; +} + +.dos .hljs-flow, +.diff .hljs-change, +.python .exception, +.python .hljs-built_in, +.hljs-literal, +.tex .hljs-special { + color: #EFEFAF; +} + +.diff .hljs-chunk, +.hljs-subst { + color: #8F8F8F; +} + +.dos .hljs-keyword, +.python .hljs-decorator, +.hljs-title, +.haskell .hljs-type, +.diff .hljs-header, +.ruby .hljs-class .hljs-parent, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.hljs-prompt { + color: #efef8f; +} + +.dos .hljs-winutils, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-string { + color: #DCA3A3; +} + +.diff .hljs-deletion, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.sql .hljs-aggregate, +.hljs-javadoc, +.smalltalk .hljs-class, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.css .hljs-rules .hljs-value, +.hljs-attr_selector, +.hljs-pseudo, +.apache .hljs-cbracket, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #CC9393; +} + +.hljs-shebang, +.diff .hljs-addition, +.hljs-comment, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype { + color: #7F9F7F; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/src/lib/ckeditor/plugins/codesnippet/plugin.js b/src/lib/ckeditor/plugins/codesnippet/plugin.js new file mode 100644 index 00000000..7301255b --- /dev/null +++ b/src/lib/ckeditor/plugins/codesnippet/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){CKEDITOR.tools.extend(this,a);this.queue=[];this.init?this.init(CKEDITOR.tools.bind(function(){for(var a;a=this.queue.pop();)a.call(this);this.ready=!0},this)):this.ready=!0}function l(a){var b=a.config.codeSnippet_codeClass,c=/\r?\n/g,h=new CKEDITOR.dom.element("textarea");a.widgets.add("codeSnippet",{allowedContent:"pre; code(language-*)",requiredContent:"pre",styleableElements:"pre",template:'
',dialog:"codeSnippet",pathName:a.lang.codesnippet.pathName, +mask:!0,parts:{pre:"pre",code:"code"},highlight:function(){var e=this,f=this.data,b=function(a){e.parts.code.setHtml(k?a:a.replace(c,"
"))};b(CKEDITOR.tools.htmlEncode(f.code));a._.codesnippet.highlighter.highlight(f.code,f.lang,function(e){a.fire("lockSnapshot");b(e);a.fire("unlockSnapshot")})},data:function(){var a=this.data,b=this.oldData;a.code&&this.parts.code.setHtml(CKEDITOR.tools.htmlEncode(a.code));b&&a.lang!=b.lang&&this.parts.code.removeClass("language-"+b.lang);a.lang&&(this.parts.code.addClass("language-"+ +a.lang),this.highlight());this.oldData=CKEDITOR.tools.copy(a)},upcast:function(e,f){if("pre"==e.name){for(var c=[],d=e.children,i,j=d.length-1;0<=j;j--)i=d[j],(i.type!=CKEDITOR.NODE_TEXT||!i.value.match(m))&&c.push(i);var g;if(!(1!=c.length||"code"!=(g=c[0]).name))if(!(1!=g.children.length||g.children[0].type!=CKEDITOR.NODE_TEXT)){if(c=a._.codesnippet.langsRegex.exec(g.attributes["class"]))f.lang=c[1];h.setHtml(g.getHtml());f.code=h.getValue();g.addClass(b);return e}}},downcast:function(a){var c= +a.getFirst("code");c.children.length=0;c.removeClass(b);c.add(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.code)));return a}});var m=/^[\s\n\r]*$/}var k=!CKEDITOR.env.ie||8
',f.auto,'
');for(d=0;d");var e=i[d].split("/"),l=e[0],n=e[1]||l;e[1]||(l="#"+l.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));e=c.lang.colorbutton.colors[n]||n;h.push('')}k&&h.push('");h.push("
',f.more,"
");return h.join("")}function p(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var j=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(o("TextColor","fore",f.textColorTitle,10),o("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF"; +CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}}; \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js b/src/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js new file mode 100644 index 00000000..d91dcc65 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("colordialog",function(t){function n(){f.getById(o).removeStyle("background-color");p.getContentElement("picker","selectedColor").setValue("");j&&j.removeAttribute("aria-selected");j=null}function u(a){var a=a.data.getTarget(),b;if("td"==a.getName()&&(b=a.getChild(0).getHtml()))j=a,j.setAttribute("aria-selected",!0),p.getContentElement("picker","selectedColor").setValue(b)}function y(a){for(var a=a.replace(/^#/,""),b=0,c=[];2>=b;b++)c[b]=parseInt(a.substr(2*b,2),16);return"#"+ +(165<=0.2126*c[0]+0.7152*c[1]+0.0722*c[2]?"000":"fff")}function v(a){!a.name&&(a=new CKEDITOR.event(a));var b=!/mouse/.test(a.name),c=a.data.getTarget(),e;if("td"==c.getName()&&(e=c.getChild(0).getHtml()))q(a),b?g=c:w=c,b&&(c.setStyle("border-color",y(e)),c.setStyle("border-style","dotted")),f.getById(k).setStyle("background-color",e),f.getById(l).setHtml(e)}function q(a){if(a=!/mouse/.test(a.name)&&g){var b=a.getChild(0).getHtml();a.setStyle("border-color",b);a.setStyle("border-style","solid")}!g&& +!w&&(f.getById(k).removeStyle("background-color"),f.getById(l).setHtml(" "))}function z(a){var b=a.data,c=b.getTarget(),e=b.getKeystroke(),d="rtl"==t.lang.dir;switch(e){case 38:if(a=c.getParent().getPrevious())a=a.getChild([c.getIndex()]),a.focus();b.preventDefault();break;case 40:if(a=c.getParent().getNext())(a=a.getChild([c.getIndex()]))&&1==a.type&&a.focus();b.preventDefault();break;case 32:case 13:u(a);b.preventDefault();break;case d?37:39:if(a=c.getNext())1==a.type&&(a.focus(),b.preventDefault(!0)); +else if(a=c.getParent().getNext())if((a=a.getChild([0]))&&1==a.type)a.focus(),b.preventDefault(!0);break;case d?39:37:if(a=c.getPrevious())a.focus(),b.preventDefault(!0);else if(a=c.getParent().getPrevious())a=a.getLast(),a.focus(),b.preventDefault(!0)}}var r=CKEDITOR.dom.element,f=CKEDITOR.document,h=t.lang.colordialog,p,x={type:"html",html:" "},j,g,w,m=function(a){return CKEDITOR.tools.getNextId()+"_"+a},k=m("hicolor"),l=m("hicolortext"),o=m("selhicolor"),i;(function(){function a(a,d){for(var s= +a;sg;g++)b(e.$,"#"+c[f]+c[g]+c[s])}}function b(a,c){var b=new r(a.insertCell(-1));b.setAttribute("class","ColorCell");b.setAttribute("tabIndex",-1);b.setAttribute("role","gridcell");b.on("keydown",z);b.on("click",u);b.on("focus",v);b.on("blur",q);b.setStyle("background-color",c);b.setStyle("border","1px solid "+c);b.setStyle("width","14px");b.setStyle("height","14px");var d=m("color_table_cell"); +b.setAttribute("aria-labelledby",d);b.append(CKEDITOR.dom.element.createFromHtml(''+c+"",CKEDITOR.document))}i=CKEDITOR.dom.element.createFromHtml('
'+h.options+'
');i.on("mouseover",v);i.on("mouseout",q);var c="00 33 66 99 cc ff".split(" ");a(0,0);a(3,0);a(0, +3);a(3,3);var e=new r(i.$.insertRow(-1));e.setAttribute("role","row");for(var d=0;6>d;d++)b(e.$,"#"+c[d]+c[d]+c[d]);for(d=0;12>d;d++)b(e.$,"#000000")})();return{title:h.title,minWidth:360,minHeight:220,onLoad:function(){p=this},onHide:function(){n();var a=g.getChild(0).getHtml();g.setStyle("border-color",a);g.setStyle("border-style","solid");f.getById(k).removeStyle("background-color");f.getById(l).setHtml(" ");g=null},contents:[{id:"picker",label:h.title,accessKey:"I",elements:[{type:"hbox", +padding:0,widths:["70%","10%","30%"],children:[{type:"html",html:"
",onLoad:function(){CKEDITOR.document.getById(this.domId).append(i)},focus:function(){(g||this.getElement().getElementsByTag("td").getItem(0)).focus()}},x,{type:"vbox",padding:0,widths:["70%","5%","25%"],children:[{type:"html",html:""+h.highlight+'\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t
 
'+h.selected+ +'\t\t\t\t\t\t\t\t\t\t\t\t
'},{type:"text",label:h.selected,labelStyle:"display:none",id:"selectedColor",style:"width: 76px;margin-top:4px",onChange:function(){try{f.getById(o).setStyle("background-color",this.getValue())}catch(a){n()}}},x,{type:"button",id:"clear",label:h.clear,onClick:n}]}]}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/af.js b/src/lib/ckeditor/plugins/colordialog/lang/af.js new file mode 100644 index 00000000..9a6d5746 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","af",{clear:"Herstel",highlight:"Aktief",options:"Kleuropsies",selected:"Geselekteer",title:"Kies kleur"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ar.js b/src/lib/ckeditor/plugins/colordialog/lang/ar.js new file mode 100644 index 00000000..3b4a4977 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ar",{clear:"مسح",highlight:"تحديد",options:"اختيارات الألوان",selected:"اللون المختار",title:"اختر اللون"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/bg.js b/src/lib/ckeditor/plugins/colordialog/lang/bg.js new file mode 100644 index 00000000..f57a3a9c --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bg",{clear:"Изчистване",highlight:"Осветяване",options:"Цветови опции",selected:"Изберете цвят",title:"Изберете цвят"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/bn.js b/src/lib/ckeditor/plugins/colordialog/lang/bn.js new file mode 100644 index 00000000..1cd50972 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/bs.js b/src/lib/ckeditor/plugins/colordialog/lang/bs.js new file mode 100644 index 00000000..e8ea577b --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bs",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ca.js b/src/lib/ckeditor/plugins/colordialog/lang/ca.js new file mode 100644 index 00000000..9e76e9e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ca",{clear:"Neteja",highlight:"Destacat",options:"Opcions del color",selected:"Color Seleccionat",title:"Seleccioni el color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/cs.js b/src/lib/ckeditor/plugins/colordialog/lang/cs.js new file mode 100644 index 00000000..4de1f1fc --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cs",{clear:"Vyčistit",highlight:"Zvýraznit",options:"Nastavení barvy",selected:"Vybráno",title:"Výběr barvy"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/cy.js b/src/lib/ckeditor/plugins/colordialog/lang/cy.js new file mode 100644 index 00000000..6536226b --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cy",{clear:"Clirio",highlight:"Uwcholeuo",options:"Opsiynau Lliw",selected:"Lliw a Ddewiswyd",title:"Dewis lliw"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/da.js b/src/lib/ckeditor/plugins/colordialog/lang/da.js new file mode 100644 index 00000000..df1c5c85 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","da",{clear:"Nulstil",highlight:"Markér",options:"Farvemuligheder",selected:"Valgt farve",title:"Vælg farve"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/de.js b/src/lib/ckeditor/plugins/colordialog/lang/de.js new file mode 100644 index 00000000..7ccd5b6b --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","de",{clear:"Entfernen",highlight:"Hervorheben",options:"Farbeoptionen",selected:"Ausgewählte Farbe",title:"Farbe wählen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/el.js b/src/lib/ckeditor/plugins/colordialog/lang/el.js new file mode 100644 index 00000000..1447a1c4 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","el",{clear:"Εκκαθάριση",highlight:"Σήμανση",options:"Επιλογές Χρωμάτων",selected:"Επιλεγμένο Χρώμα",title:"Επιλογή χρώματος"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/en-au.js b/src/lib/ckeditor/plugins/colordialog/lang/en-au.js new file mode 100644 index 00000000..cdde12b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-au",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/en-ca.js b/src/lib/ckeditor/plugins/colordialog/lang/en-ca.js new file mode 100644 index 00000000..535acfca --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-ca",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/en-gb.js b/src/lib/ckeditor/plugins/colordialog/lang/en-gb.js new file mode 100644 index 00000000..1ec95ff2 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-gb",{clear:"Clear",highlight:"Highlight",options:"Colour Options",selected:"Selected Colour",title:"Select colour"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/en.js b/src/lib/ckeditor/plugins/colordialog/lang/en.js new file mode 100644 index 00000000..21a79bc0 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/eo.js b/src/lib/ckeditor/plugins/colordialog/lang/eo.js new file mode 100644 index 00000000..aaa8cf96 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eo",{clear:"Forigi",highlight:"Detaloj",options:"Opcioj pri koloroj",selected:"Selektita koloro",title:"Selekti koloron"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/es.js b/src/lib/ckeditor/plugins/colordialog/lang/es.js new file mode 100644 index 00000000..ae4688f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","es",{clear:"Borrar",highlight:"Muestra",options:"Opciones de colores",selected:"Elegido",title:"Elegir color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/et.js b/src/lib/ckeditor/plugins/colordialog/lang/et.js new file mode 100644 index 00000000..4a51ac6b --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","et",{clear:"Eemalda",highlight:"Näidis",options:"Värvi valikud",selected:"Valitud värv",title:"Värvi valimine"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/eu.js b/src/lib/ckeditor/plugins/colordialog/lang/eu.js new file mode 100644 index 00000000..09a91290 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eu",{clear:"Garbitu",highlight:"Nabarmendu",options:"Kolore Aukerak",selected:"Hautatutako Kolorea",title:"Kolorea Hautatu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/fa.js b/src/lib/ckeditor/plugins/colordialog/lang/fa.js new file mode 100644 index 00000000..8b0de9df --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fa",{clear:"پاک کردن",highlight:"متمایز",options:"گزینه​های رنگ",selected:"رنگ انتخاب شده",title:"انتخاب رنگ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/fi.js b/src/lib/ckeditor/plugins/colordialog/lang/fi.js new file mode 100644 index 00000000..8a9a1fe3 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fi",{clear:"Poista",highlight:"Korostus",options:"Värin ominaisuudet",selected:"Valittu",title:"Valitse väri"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/fo.js b/src/lib/ckeditor/plugins/colordialog/lang/fo.js new file mode 100644 index 00000000..575a9d47 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fo",{clear:"Strika",highlight:"Framheva",options:"Litmøguleikar",selected:"Valdur litur",title:"Vel lit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/fr-ca.js b/src/lib/ckeditor/plugins/colordialog/lang/fr-ca.js new file mode 100644 index 00000000..d321a839 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr-ca",{clear:"Effacer",highlight:"Surligner",options:"Options de couleur",selected:"Couleur sélectionnée",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/fr.js b/src/lib/ckeditor/plugins/colordialog/lang/fr.js new file mode 100644 index 00000000..b99e1b92 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr",{clear:"Effacer",highlight:"Détails",options:"Option des couleurs",selected:"Couleur choisie",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/gl.js b/src/lib/ckeditor/plugins/colordialog/lang/gl.js new file mode 100644 index 00000000..13fcd5fb --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gl",{clear:"Limpar",highlight:"Resaltar",options:"Opcións de cor",selected:"Cor seleccionado",title:"Seleccione unha cor"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/gu.js b/src/lib/ckeditor/plugins/colordialog/lang/gu.js new file mode 100644 index 00000000..658cb5a3 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gu",{clear:"સાફ કરવું",highlight:"હાઈઈટ",options:"રંગના વિકલ્પ",selected:"પસંદ કરેલો રંગ",title:"રંગ પસંદ કરો"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/he.js b/src/lib/ckeditor/plugins/colordialog/lang/he.js new file mode 100644 index 00000000..c5700716 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","he",{clear:"ניקוי",highlight:"סימון",options:"אפשרויות צבע",selected:"בחירה",title:"בחירת צבע"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/hi.js b/src/lib/ckeditor/plugins/colordialog/lang/hi.js new file mode 100644 index 00000000..d14f1a84 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hi",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/hr.js b/src/lib/ckeditor/plugins/colordialog/lang/hr.js new file mode 100644 index 00000000..5a99c466 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hr",{clear:"Očisti",highlight:"Istaknuto",options:"Opcije boje",selected:"Odabrana boja",title:"Odaberi boju"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/hu.js b/src/lib/ckeditor/plugins/colordialog/lang/hu.js new file mode 100644 index 00000000..f905e8f0 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hu",{clear:"Ürítés",highlight:"Nagyítás",options:"Szín opciók",selected:"Kiválasztott",title:"Válasszon színt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/is.js b/src/lib/ckeditor/plugins/colordialog/lang/is.js new file mode 100644 index 00000000..35044395 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","is",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/it.js b/src/lib/ckeditor/plugins/colordialog/lang/it.js new file mode 100644 index 00000000..cb5ca860 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","it",{clear:"cancella",highlight:"Evidenzia",options:"Opzioni colore",selected:"Seleziona il colore",title:"Selezionare il colore"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ja.js b/src/lib/ckeditor/plugins/colordialog/lang/ja.js new file mode 100644 index 00000000..01f28518 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ja",{clear:"クリア",highlight:"ハイライト",options:"カラーオプション",selected:"選択された色",title:"色選択"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ka.js b/src/lib/ckeditor/plugins/colordialog/lang/ka.js new file mode 100644 index 00000000..d11c4849 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ka",{clear:"გასუფთავება",highlight:"ჩვენება",options:"ფერის პარამეტრები",selected:"არჩეული ფერი",title:"ფერის შეცვლა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/km.js b/src/lib/ckeditor/plugins/colordialog/lang/km.js new file mode 100644 index 00000000..9be3d0f0 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","km",{clear:"សម្អាត",highlight:"បន្លិច​ពណ៌",options:"ជម្រើស​ពណ៌",selected:"ពណ៌​ដែល​បាន​រើស",title:"រើស​ពណ៌"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ko.js b/src/lib/ckeditor/plugins/colordialog/lang/ko.js new file mode 100644 index 00000000..25715bf3 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ko",{clear:"제거",highlight:"하이라이트",options:"색상 옵션",selected:"색상 선택됨",title:"색상 선택"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ku.js b/src/lib/ckeditor/plugins/colordialog/lang/ku.js new file mode 100644 index 00000000..5b590758 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ku",{clear:"پاکیکەوە",highlight:"نیشانکردن",options:"هەڵبژاردەی ڕەنگەکان",selected:"ڕەنگی هەڵبژێردراو",title:"هەڵبژاردنی ڕەنگ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/lt.js b/src/lib/ckeditor/plugins/colordialog/lang/lt.js new file mode 100644 index 00000000..4e3f2506 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lt",{clear:"Išvalyti",highlight:"Paryškinti",options:"Spalvos nustatymai",selected:"Pasirinkta spalva",title:"Pasirinkite spalvą"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/lv.js b/src/lib/ckeditor/plugins/colordialog/lang/lv.js new file mode 100644 index 00000000..0e4c7b8b --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lv",{clear:"Notīrīt",highlight:"Paraugs",options:"Krāsas uzstādījumi",selected:"Izvēlētā krāsa",title:"Izvēlies krāsu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/mk.js b/src/lib/ckeditor/plugins/colordialog/lang/mk.js new file mode 100644 index 00000000..870e2325 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mk",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/mn.js b/src/lib/ckeditor/plugins/colordialog/lang/mn.js new file mode 100644 index 00000000..0547d82c --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ms.js b/src/lib/ckeditor/plugins/colordialog/lang/ms.js new file mode 100644 index 00000000..65c6e817 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ms",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/nb.js b/src/lib/ckeditor/plugins/colordialog/lang/nb.js new file mode 100644 index 00000000..dab73fd5 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nb",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/nl.js b/src/lib/ckeditor/plugins/colordialog/lang/nl.js new file mode 100644 index 00000000..c2ed1223 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nl",{clear:"Wissen",highlight:"Actief",options:"Kleuropties",selected:"Geselecteerde kleur",title:"Selecteer kleur"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/no.js b/src/lib/ckeditor/plugins/colordialog/lang/no.js new file mode 100644 index 00000000..7a853026 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","no",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/pl.js b/src/lib/ckeditor/plugins/colordialog/lang/pl.js new file mode 100644 index 00000000..3be00f6e --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pl",{clear:"Wyczyść",highlight:"Zaznacz",options:"Opcje koloru",selected:"Wybrany",title:"Wybierz kolor"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/pt-br.js b/src/lib/ckeditor/plugins/colordialog/lang/pt-br.js new file mode 100644 index 00000000..90c14fd7 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt-br",{clear:"Limpar",highlight:"Grifar",options:"Opções de Cor",selected:"Cor Selecionada",title:"Selecione uma Cor"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/pt.js b/src/lib/ckeditor/plugins/colordialog/lang/pt.js new file mode 100644 index 00000000..ac11b30d --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt",{clear:"Limpar",highlight:"Realçar",options:"Opções da Cor",selected:"Cor Selecionada",title:"Selecionar Cor"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ro.js b/src/lib/ckeditor/plugins/colordialog/lang/ro.js new file mode 100644 index 00000000..85d83ffb --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ro",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ru.js b/src/lib/ckeditor/plugins/colordialog/lang/ru.js new file mode 100644 index 00000000..7fe16d27 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ru",{clear:"Очистить",highlight:"Под курсором",options:"Настройки цвета",selected:"Выбранный цвет",title:"Выберите цвет"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/si.js b/src/lib/ckeditor/plugins/colordialog/lang/si.js new file mode 100644 index 00000000..54bb6924 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","si",{clear:"පැහැදිලි",highlight:"මතුකර පෙන්වන්න",options:"වර්ණ විකල්ප",selected:"තෙරු වර්ණ",title:"වර්ණ තෝරන්න"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/sk.js b/src/lib/ckeditor/plugins/colordialog/lang/sk.js new file mode 100644 index 00000000..be5f13a3 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sk",{clear:"Vyčistiť",highlight:"Zvýrazniť",options:"Možnosti farby",selected:"Vybraná farba",title:"Vyberte farbu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/sl.js b/src/lib/ckeditor/plugins/colordialog/lang/sl.js new file mode 100644 index 00000000..610c269a --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sl",{clear:"Počisti",highlight:"Poudarjeno",options:"Barvne Možnosti",selected:"Izbrano",title:"Izberi barvo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/sq.js b/src/lib/ckeditor/plugins/colordialog/lang/sq.js new file mode 100644 index 00000000..f739ac4d --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sq",{clear:"Pastro",highlight:"Thekso",options:"Përzgjedhjet e Ngjyrave",selected:"Ngjyra e Përzgjedhur",title:"Përzgjidh një ngjyrë"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/sr-latn.js b/src/lib/ckeditor/plugins/colordialog/lang/sr-latn.js new file mode 100644 index 00000000..cd518c98 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr-latn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/sr.js b/src/lib/ckeditor/plugins/colordialog/lang/sr.js new file mode 100644 index 00000000..227ed2ea --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/sv.js b/src/lib/ckeditor/plugins/colordialog/lang/sv.js new file mode 100644 index 00000000..d527156a --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sv",{clear:"Rensa",highlight:"Markera",options:"Färgalternativ",selected:"Vald färg",title:"Välj färg"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/th.js b/src/lib/ckeditor/plugins/colordialog/lang/th.js new file mode 100644 index 00000000..8f352d9d --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","th",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/tr.js b/src/lib/ckeditor/plugins/colordialog/lang/tr.js new file mode 100644 index 00000000..c416c061 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tr",{clear:"Temizle",highlight:"İşaretle",options:"Renk Seçenekleri",selected:"Seçilmiş",title:"Renk seç"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/tt.js b/src/lib/ckeditor/plugins/colordialog/lang/tt.js new file mode 100644 index 00000000..df9d32ae --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tt",{clear:"Бушату",highlight:"Билгеләү",options:"Төс көйләүләре",selected:"Сайланган төсләр",title:"Төс сайлау"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/ug.js b/src/lib/ckeditor/plugins/colordialog/lang/ug.js new file mode 100644 index 00000000..f89a948c --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ug",{clear:"تازىلا",highlight:"يورۇت",options:"رەڭ تاللانمىسى",selected:"رەڭ تاللاڭ",title:"رەڭ تاللاڭ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/uk.js b/src/lib/ckeditor/plugins/colordialog/lang/uk.js new file mode 100644 index 00000000..c59d1de8 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","uk",{clear:"Очистити",highlight:"Колір, на який вказує курсор",options:"Опції кольорів",selected:"Обраний колір",title:"Обрати колір"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/vi.js b/src/lib/ckeditor/plugins/colordialog/lang/vi.js new file mode 100644 index 00000000..dae8623e --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","vi",{clear:"Xóa bỏ",highlight:"Màu chọn",options:"Tùy chọn màu",selected:"Màu đã chọn",title:"Chọn màu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/zh-cn.js b/src/lib/ckeditor/plugins/colordialog/lang/zh-cn.js new file mode 100644 index 00000000..25e3b000 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh-cn",{clear:"清除",highlight:"高亮",options:"颜色选项",selected:"选择颜色",title:"选择颜色"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/lang/zh.js b/src/lib/ckeditor/plugins/colordialog/lang/zh.js new file mode 100644 index 00000000..57868b94 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh",{clear:"清除",highlight:"高亮",options:"色彩選項",selected:"選取的色彩",title:"選取色彩"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/colordialog/plugin.js b/src/lib/ckeditor/plugins/colordialog/plugin.js new file mode 100644 index 00000000..9f393004 --- /dev/null +++ b/src/lib/ckeditor/plugins/colordialog/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.colordialog={requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var c=new CKEDITOR.dialogCommand("colordialog");c.editorFocus=!1;b.addCommand("colordialog",c);CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(c,f){var d=function(a){this.removeListener("ok", +d);this.removeListener("cancel",d);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;c.call(f,a)},e=function(a){a.on("ok",d);a.on("cancel",d)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)e(b._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){e(this);b.onLoad=a;"function"==typeof a&& +a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt b/src/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt new file mode 100644 index 00000000..8e09cb23 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 5 Missing: 0 +cs.js Found: 5 Missing: 0 +cy.js Found: 5 Missing: 0 +da.js Found: 5 Missing: 0 +de.js Found: 5 Missing: 0 +el.js Found: 5 Missing: 0 +eo.js Found: 5 Missing: 0 +et.js Found: 5 Missing: 0 +fa.js Found: 5 Missing: 0 +fi.js Found: 5 Missing: 0 +fr.js Found: 5 Missing: 0 +gu.js Found: 5 Missing: 0 +he.js Found: 5 Missing: 0 +hr.js Found: 5 Missing: 0 +it.js Found: 5 Missing: 0 +nb.js Found: 5 Missing: 0 +nl.js Found: 5 Missing: 0 +no.js Found: 5 Missing: 0 +pl.js Found: 5 Missing: 0 +tr.js Found: 5 Missing: 0 +ug.js Found: 5 Missing: 0 +uk.js Found: 5 Missing: 0 +vi.js Found: 5 Missing: 0 +zh-cn.js Found: 5 Missing: 0 diff --git a/src/lib/ckeditor/plugins/devtools/lang/ar.js b/src/lib/ckeditor/plugins/devtools/lang/ar.js new file mode 100644 index 00000000..c781fcfc --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ar",{title:"معلومات العنصر",dialogName:"إسم نافذة الحوار",tabName:"إسم التبويب",elementId:"إسم العنصر",elementType:"نوع العنصر"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/bg.js b/src/lib/ckeditor/plugins/devtools/lang/bg.js new file mode 100644 index 00000000..6432b5d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","bg",{title:"Информация за елемента",dialogName:"Име на диалоговия прозорец",tabName:"Име на таб",elementId:"ID на елемента",elementType:"Тип на елемента"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/ca.js b/src/lib/ckeditor/plugins/devtools/lang/ca.js new file mode 100644 index 00000000..7505a8d8 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ca",{title:"Informació de l'element",dialogName:"Nom de la finestra de quadre de diàleg",tabName:"Nom de la pestanya",elementId:"ID de l'element",elementType:"Tipus d'element"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/cs.js b/src/lib/ckeditor/plugins/devtools/lang/cs.js new file mode 100644 index 00000000..5a2573fe --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cs",{title:"Informace o prvku",dialogName:"Název dialogového okna",tabName:"Název karty",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/cy.js b/src/lib/ckeditor/plugins/devtools/lang/cy.js new file mode 100644 index 00000000..ffd1c8ac --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cy",{title:"Gwybodaeth am yr Elfen",dialogName:"Enw ffenestr y deialog",tabName:"Enw'r tab",elementId:"ID yr Elfen",elementType:"Math yr elfen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/da.js b/src/lib/ckeditor/plugins/devtools/lang/da.js new file mode 100644 index 00000000..5bac0651 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","da",{title:"Information på elementet",dialogName:"Dialogboks",tabName:"Tab beskrivelse",elementId:"ID på element",elementType:"Type af element"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/de.js b/src/lib/ckeditor/plugins/devtools/lang/de.js new file mode 100644 index 00000000..6b350ca3 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","de",{title:"Elementinformation",dialogName:"Dialogfenstername",tabName:"Reitername",elementId:"Element ID",elementType:"Elementtyp"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/el.js b/src/lib/ckeditor/plugins/devtools/lang/el.js new file mode 100644 index 00000000..3b53133d --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","el",{title:"Πληροφορίες Στοιχείου",dialogName:"Όνομα παραθύρου διαλόγου",tabName:"Όνομα καρτέλας",elementId:"Αναγνωριστικό Στοιχείου",elementType:"Τύπος στοιχείου"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/en-gb.js b/src/lib/ckeditor/plugins/devtools/lang/en-gb.js new file mode 100644 index 00000000..bdadf923 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en-gb",{title:"Element Information",dialogName:"Dialogue window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/en.js b/src/lib/ckeditor/plugins/devtools/lang/en.js new file mode 100644 index 00000000..e3022855 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en",{title:"Element Information",dialogName:"Dialog window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/eo.js b/src/lib/ckeditor/plugins/devtools/lang/eo.js new file mode 100644 index 00000000..bc67c556 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eo",{title:"Informo pri la elemento",dialogName:"Nomo de la dialogfenestro",tabName:"Langetnomo",elementId:"ID de la elemento",elementType:"Tipo de la elemento"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/es.js b/src/lib/ckeditor/plugins/devtools/lang/es.js new file mode 100644 index 00000000..681809ed --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","es",{title:"Información del Elemento",dialogName:"Nombre de la ventana de diálogo",tabName:"Nombre de la pestaña",elementId:"ID del Elemento",elementType:"Tipo del elemento"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/et.js b/src/lib/ckeditor/plugins/devtools/lang/et.js new file mode 100644 index 00000000..548e5865 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","et",{title:"Elemendi andmed",dialogName:"Dialoogiakna nimi",tabName:"Saki nimi",elementId:"Elemendi ID",elementType:"Elemendi liik"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/eu.js b/src/lib/ckeditor/plugins/devtools/lang/eu.js new file mode 100644 index 00000000..ec05883a --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eu",{title:"Elementuaren Informazioa",dialogName:"Elkarrizketa leihoaren izena",tabName:"Fitxaren izena",elementId:"Elementuaren ID-a",elementType:"Elementu mota"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/fa.js b/src/lib/ckeditor/plugins/devtools/lang/fa.js new file mode 100644 index 00000000..d89f8fe3 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fa",{title:"اطلاعات عنصر",dialogName:"نام پنجره محاوره‌ای",tabName:"نام برگه",elementId:"ID عنصر",elementType:"نوع عنصر"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/fi.js b/src/lib/ckeditor/plugins/devtools/lang/fi.js new file mode 100644 index 00000000..0eef32cc --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fi",{title:"Elementin tiedot",dialogName:"Dialogi-ikkunan nimi",tabName:"Välilehden nimi",elementId:"Elementin ID",elementType:"Elementin tyyppi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/fr-ca.js b/src/lib/ckeditor/plugins/devtools/lang/fr-ca.js new file mode 100644 index 00000000..074bd4f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr-ca",{title:"Information de l'élément",dialogName:"Nom de la fenêtre",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/fr.js b/src/lib/ckeditor/plugins/devtools/lang/fr.js new file mode 100644 index 00000000..b0686908 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr",{title:"Information sur l'élément",dialogName:"Nom de la fenêtre de dialogue",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/gl.js b/src/lib/ckeditor/plugins/devtools/lang/gl.js new file mode 100644 index 00000000..11e1c2a6 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gl",{title:"Información do elemento",dialogName:"Nome da xanela de diálogo",tabName:"Nome da lapela",elementId:"ID do elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/gu.js b/src/lib/ckeditor/plugins/devtools/lang/gu.js new file mode 100644 index 00000000..e7ef6677 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/gu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gu",{title:"પ્રાથમિક માહિતી",dialogName:"વિન્ડોનું નામ",tabName:"ટેબનું નામ",elementId:"પ્રાથમિક આઈડી",elementType:"પ્રાથમિક પ્રકાર"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/he.js b/src/lib/ckeditor/plugins/devtools/lang/he.js new file mode 100644 index 00000000..aaf968ad --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","he",{title:"מידע על האלמנט",dialogName:"שם הדיאלוג",tabName:"שם הטאב",elementId:"ID של האלמנט",elementType:"סוג האלמנט"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/hr.js b/src/lib/ckeditor/plugins/devtools/lang/hr.js new file mode 100644 index 00000000..0ec29f36 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hr",{title:"Informacije elementa",dialogName:"Naziv prozora za dijalog",tabName:"Naziva jahača",elementId:"ID elementa",elementType:"Vrsta elementa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/hu.js b/src/lib/ckeditor/plugins/devtools/lang/hu.js new file mode 100644 index 00000000..2f3c5653 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hu",{title:"Elem információ",dialogName:"Párbeszédablak neve",tabName:"Fül neve",elementId:"Elem ID",elementType:"Elem típusa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/id.js b/src/lib/ckeditor/plugins/devtools/lang/id.js new file mode 100644 index 00000000..e988b2f4 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","id",{title:"Informasi Elemen",dialogName:"Nama jendela dialog",tabName:"Nama tab",elementId:"ID Elemen",elementType:"Tipe elemen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/it.js b/src/lib/ckeditor/plugins/devtools/lang/it.js new file mode 100644 index 00000000..79a18eab --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","it",{title:"Informazioni elemento",dialogName:"Nome finestra di dialogo",tabName:"Nome Tab",elementId:"ID Elemento",elementType:"Tipo elemento"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/ja.js b/src/lib/ckeditor/plugins/devtools/lang/ja.js new file mode 100644 index 00000000..6e7bc0fd --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ja",{title:"エレメント情報",dialogName:"ダイアログウィンドウ名",tabName:"タブ名",elementId:"エレメントID",elementType:"要素タイプ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/km.js b/src/lib/ckeditor/plugins/devtools/lang/km.js new file mode 100644 index 00000000..d9de2802 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","km",{title:"ព័ត៌មាន​នៃ​ធាតុ",dialogName:"ឈ្មោះ​ប្រអប់​វីនដូ",tabName:"ឈ្មោះ​ផ្ទាំង",elementId:"អត្តលេខ​ធាតុ",elementType:"ប្រភេទ​ធាតុ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/ko.js b/src/lib/ckeditor/plugins/devtools/lang/ko.js new file mode 100644 index 00000000..a41c6a8e --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ko",{title:"구성 요소 정보",dialogName:"다이얼로그 윈도우 이름",tabName:"탭 이름",elementId:"요소 ID",elementType:"요소 형식"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/ku.js b/src/lib/ckeditor/plugins/devtools/lang/ku.js new file mode 100644 index 00000000..12372f43 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ku",{title:"زانیاری توخم",dialogName:"ناوی پەنجەرەی دیالۆگ",tabName:"ناوی بازدەر تاب",elementId:"ناسنامەی توخم",elementType:"جۆری توخم"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/lt.js b/src/lib/ckeditor/plugins/devtools/lang/lt.js new file mode 100644 index 00000000..8ed88b6f --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/lt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lt",{title:"Elemento informacija",dialogName:"Dialogo lango pavadinimas",tabName:"Auselės pavadinimas",elementId:"Elemento ID",elementType:"Elemento tipas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/lv.js b/src/lib/ckeditor/plugins/devtools/lang/lv.js new file mode 100644 index 00000000..95a2d235 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lv",{title:"Elementa informācija",dialogName:"Dialoga loga nosaukums",tabName:"Cilnes nosaukums",elementId:"Elementa ID",elementType:"Elementa tips"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/nb.js b/src/lib/ckeditor/plugins/devtools/lang/nb.js new file mode 100644 index 00000000..0a8bd3d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nb",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/nl.js b/src/lib/ckeditor/plugins/devtools/lang/nl.js new file mode 100644 index 00000000..587fedfb --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nl",{title:"Elementinformatie",dialogName:"Naam dialoogvenster",tabName:"Tabnaam",elementId:"Element ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/no.js b/src/lib/ckeditor/plugins/devtools/lang/no.js new file mode 100644 index 00000000..7461a121 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","no",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/pl.js b/src/lib/ckeditor/plugins/devtools/lang/pl.js new file mode 100644 index 00000000..1ef3d228 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pl",{title:"Informacja o elemencie",dialogName:"Nazwa okna dialogowego",tabName:"Nazwa zakładki",elementId:"ID elementu",elementType:"Typ elementu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/pt-br.js b/src/lib/ckeditor/plugins/devtools/lang/pt-br.js new file mode 100644 index 00000000..f75850fc --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt-br",{title:"Informação do Elemento",dialogName:"Nome da janela de diálogo",tabName:"Nome da aba",elementId:"ID do Elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/pt.js b/src/lib/ckeditor/plugins/devtools/lang/pt.js new file mode 100644 index 00000000..a9c96a8c --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt",{title:"Informação do Elemento",dialogName:"Nome da janela do diálogo",tabName:"Nome do Separador",elementId:"Id. do Elemento",elementType:"Tipo de Elemento"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/ru.js b/src/lib/ckeditor/plugins/devtools/lang/ru.js new file mode 100644 index 00000000..36c4b1de --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ru",{title:"Информация об элементе",dialogName:"Имя окна диалога",tabName:"Имя вкладки",elementId:"ID элемента",elementType:"Тип элемента"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/si.js b/src/lib/ckeditor/plugins/devtools/lang/si.js new file mode 100644 index 00000000..a1fb3707 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","si",{title:"මුලද්‍රව්‍ය ",dialogName:"දෙබස් කවුළුවේ නම",tabName:"තීරුවේ නම",elementId:"මුලද්‍රව්‍ය කේතය",elementType:"මුලද්‍රව්‍ය වර්ගය"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/sk.js b/src/lib/ckeditor/plugins/devtools/lang/sk.js new file mode 100644 index 00000000..e80a613d --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sk",{title:"Informácie o prvku",dialogName:"Názov okna dialógu",tabName:"Názov záložky",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/sl.js b/src/lib/ckeditor/plugins/devtools/lang/sl.js new file mode 100644 index 00000000..6f1df087 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sl",{title:"Podatki elementa",dialogName:"Ime pogovornega okna",tabName:"Ime zavihka",elementId:"ID elementa",elementType:"Tip elementa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/sq.js b/src/lib/ckeditor/plugins/devtools/lang/sq.js new file mode 100644 index 00000000..bb173c47 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sq",{title:"Të dhënat e elementit",dialogName:"Emri i dritares së dialogut",tabName:"Emri i fletës",elementId:"ID e elementit",elementType:"Lloji i elementit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/sv.js b/src/lib/ckeditor/plugins/devtools/lang/sv.js new file mode 100644 index 00000000..1c73e5e9 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sv",{title:"Elementinformation",dialogName:"Dialogrutans namn",tabName:"Fliknamn",elementId:"Elementet-ID",elementType:"Elementet-typ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/tr.js b/src/lib/ckeditor/plugins/devtools/lang/tr.js new file mode 100644 index 00000000..293d3ced --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tr",{title:"Eleman Bilgisi",dialogName:"İletişim pencere ismi",tabName:"Sekme adı",elementId:"Eleman ID",elementType:"Eleman türü"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/tt.js b/src/lib/ckeditor/plugins/devtools/lang/tt.js new file mode 100644 index 00000000..e3f94b34 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tt",{title:"Элемент тасвирламасы",dialogName:"Диалог тәрәзәсе исеме",tabName:"Өстәмә бит исеме",elementId:"Элемент идентификаторы",elementType:"Элемент төре"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/ug.js b/src/lib/ckeditor/plugins/devtools/lang/ug.js new file mode 100644 index 00000000..b5c98762 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ug",{title:"ئېلېمېنت ئۇچۇرى",dialogName:"سۆزلەشكۈ كۆزنەك ئاتى",tabName:"Tab ئاتى",elementId:"ئېلېمېنت كىملىكى",elementType:"ئېلېمېنت تىپى"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/uk.js b/src/lib/ckeditor/plugins/devtools/lang/uk.js new file mode 100644 index 00000000..3974ef87 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","uk",{title:"Відомості про Елемент",dialogName:"Заголовок діалогового вікна",tabName:"Назва вкладки",elementId:"Ідентифікатор Елемента",elementType:"Тип Елемента"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/vi.js b/src/lib/ckeditor/plugins/devtools/lang/vi.js new file mode 100644 index 00000000..08076e51 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","vi",{title:"Thông tin thành ph",dialogName:"Tên hộp tho",tabName:"Tên th",elementId:"Mã thành ph",elementType:"Loại thành ph"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/zh-cn.js b/src/lib/ckeditor/plugins/devtools/lang/zh-cn.js new file mode 100644 index 00000000..ae1b8e0b --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh-cn",{title:"元素信息",dialogName:"对话框窗口名称",tabName:"选项卡名称",elementId:"元素 ID",elementType:"元素类型"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/lang/zh.js b/src/lib/ckeditor/plugins/devtools/lang/zh.js new file mode 100644 index 00000000..613e9edf --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh",{title:"元件資訊",dialogName:"對話視窗名稱",tabName:"標籤名稱",elementId:"元件 ID",elementType:"元件類型"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/devtools/plugin.js b/src/lib/ckeditor/plugins/devtools/plugin.js new file mode 100644 index 00000000..be0a2de6 --- /dev/null +++ b/src/lib/ckeditor/plugins/devtools/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("devtools",{lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,gu,he,hr,hu,id,it,ja,km,ko,ku,lt,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",init:function(i){i._.showDialogDefinitionTooltips=1},onLoad:function(){CKEDITOR.document.appendStyleText(CKEDITOR.config.devtools_styles||"#cke_tooltip { padding: 5px; border: 2px solid #333; background: #ffffff }#cke_tooltip h2 { font-size: 1.1em; border-bottom: 1px solid; margin: 0; padding: 1px; }#cke_tooltip ul { padding: 0pt; list-style-type: none; }")}}); +(function(){function i(a,c,b,f){var a=a.lang.devtools,j=''+(b?b.type:"content")+"",c="

"+a.title+"

  • "+a.dialogName+" : "+c.getName()+"
  • "+a.tabName+" : "+f+"
  • ";b&&(c+="
  • "+a.elementId+" : "+b.id+"
  • ");c+="
  • "+a.elementType+" : "+j+"
  • ";return c+"
"}function k(d, +c,b,f,j,g){var e=c.getDocumentPosition(),h={"z-index":CKEDITOR.dialog._.currentZIndex+10,top:e.y+c.getSize("height")+"px"};a.setHtml(d(b,f,j,g));a.show();"rtl"==b.lang.dir?(d=CKEDITOR.document.getWindow().getViewPaneSize(),h.right=d.width-e.x-c.getSize("width")+"px"):h.left=e.x+"px";a.setStyles(h)}var a;CKEDITOR.on("reset",function(){a&&a.remove();a=null});CKEDITOR.on("dialogDefinition",function(d){var c=d.editor;if(c._.showDialogDefinitionTooltips){a||(a=CKEDITOR.dom.element.createFromHtml('
', +CKEDITOR.document),a.hide(),a.on("mouseover",function(){this.show()}),a.on("mouseout",function(){this.hide()}),a.appendTo(CKEDITOR.document.getBody()));var b=d.data.definition.dialog,f=c.config.devtools_textCallback||i;b.on("load",function(){for(var d=b.parts.tabs.getChildren(),g,e=0,h=d.count();e
');a.ui.space("contents").append(b);b=a.editable(b);b.detach=CKEDITOR.tools.override(b.detach,function(a){return function(){a.apply(this,arguments);this.remove()}});a.setData(a.getData(1),c);a.fire("contentDom")})}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/dialogs/docprops.js b/src/lib/ckeditor/plugins/docprops/dialogs/docprops.js new file mode 100644 index 00000000..28d043f5 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/dialogs/docprops.js @@ -0,0 +1,25 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("docProps",function(g){function p(a,d){var e=function(){b(this);d(this,this._.parentDialog)},b=function(a){a.removeListener("ok",e);a.removeListener("cancel",b)},f=function(a){a.on("ok",e);a.on("cancel",b)};g.execCommand(a);if(g._.storedDialogs.colordialog)f(g._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(b){if(b.data.name==a){var d=b.data.definition;b.removeListener();d.onLoad=CKEDITOR.tools.override(d.onLoad,function(a){return function(){f(this);d.onLoad= +a;"function"==typeof a&&a.call(this)}})}})}function l(){var a=this.getDialog().getContentElement("general",this.id+"Other");a&&("other"==this.getValue()?(a.getInputElement().removeAttribute("readOnly"),a.focus(),a.getElement().removeClass("cke_disabled")):(a.getInputElement().setAttribute("readOnly",!0),a.getElement().addClass("cke_disabled")))}function i(a,d,e){return function(b,f,c){f=k;b="undefined"!=typeof e?e:this.getValue();!b&&a in f?f[a].remove():b&&a in f?f[a].setAttribute("content",b):b&& +(f=new CKEDITOR.dom.element("meta",g.document),f.setAttribute(d?"http-equiv":"name",a),f.setAttribute("content",b),c.append(f))}}function j(a,d){return function(){var e=k,e=a in e?e[a].getAttribute("content")||"":"";if(d)return e;this.setValue(e);return null}}function m(a){return function(d,e,b,f){f.removeAttribute("margin"+a);d=this.getValue();""!==d?f.setStyle("margin-"+a,CKEDITOR.tools.cssLength(d)):f.removeStyle("margin-"+a)}}function n(a,d,e){a.removeStyle(d);a.getComputedStyle(d)!=e&&a.setStyle(d, +e)}var c=g.lang.docprops,h=g.lang.common,k={},o=function(a,d,e){return{type:"hbox",padding:0,widths:["60%","40%"],children:[CKEDITOR.tools.extend({type:"text",id:a,label:c[d]},e||{},1),{type:"button",id:a+"Choose",label:c.chooseColor,className:"colorChooser",onClick:function(){var b=this;p("colordialog",function(d){var e=b.getDialog();e.getContentElement(e._.currentTabId,a).setValue(d.getContentElement("picker","selectedColor").getValue())})}}]}},q="javascript:void((function(){"+encodeURIComponent("document.open();"+ +(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+'document.write( \''+c.previewHtml+"' );document.close();")+"})())";return{title:c.title,minHeight:330,minWidth:500,onShow:function(){for(var a=g.document,d=a.getElementsByTag("html").getItem(0),e=a.getHead(),b=a.getBody(),f={},c=a.getElementsByTag("meta"),h=c.count(),i=0;i'],["XHTML 1.0 Transitional",''],["XHTML 1.0 Strict",''],["XHTML 1.0 Frameset",''], +["HTML 5",""],["HTML 4.01 Transitional",''],["HTML 4.01 Strict",''],["HTML 4.01 Frameset",''],["HTML 3.2",''],["HTML 2.0",''],[c.other, +"other"]],onChange:l,setup:function(){if(g.docType&&(this.setValue(g.docType),!this.getValue())){this.setValue("other");var a=this.getDialog().getContentElement("general","docTypeOther");a&&a.setValue(g.docType)}l.call(this)},commit:function(a,d,c,b,f){f||(a=this.getValue(),d=this.getDialog().getContentElement("general","docTypeOther"),g.docType="other"==a?d?d.getValue():"":a)}},{type:"text",id:"docTypeOther",label:c.docTypeOther}]},{type:"checkbox",id:"xhtmlDec",label:c.xhtmlDec,setup:function(){this.setValue(!!g.xmlDeclaration)}, +commit:function(a,d,c,b,f){f||(this.getValue()?(g.xmlDeclaration='',d.setAttribute("xmlns","http://www.w3.org/1999/xhtml")):(g.xmlDeclaration="",d.removeAttribute("xmlns")))}}]},{id:"design",label:c.design,elements:[{type:"hbox",widths:["60%","40%"],children:[{type:"vbox",children:[o("txtColor","txtColor",{setup:function(a,d,c,b){this.setValue(b.getComputedStyle("color"))},commit:function(a,d,c,b,f){if(this.isChanged()|| +f)b.removeAttribute("text"),(a=this.getValue())?b.setStyle("color",a):b.removeStyle("color")}}),o("bgColor","bgColor",{setup:function(a,d,c,b){a=b.getComputedStyle("background-color")||"";this.setValue("transparent"==a?"":a)},commit:function(a,d,c,b,f){if(this.isChanged()||f)b.removeAttribute("bgcolor"),(a=this.getValue())?b.setStyle("background-color",a):n(b,"background-color","transparent")}}),{type:"hbox",widths:["60%","40%"],padding:1,children:[{type:"text",id:"bgImage",label:c.bgImage,setup:function(a, +d,c,b){a=b.getComputedStyle("background-image")||"";a="none"==a?"":a.replace(/url\(\s*(["']?)\s*([^\)]*)\s*\1\s*\)/i,function(a,b,d){return d});this.setValue(a)},commit:function(a,d,c,b){b.removeAttribute("background");(a=this.getValue())?b.setStyle("background-image","url("+a+")"):n(b,"background-image","none")}},{type:"button",id:"bgImageChoose",label:h.browseServer,style:"display:inline-block;margin-top:10px;",hidden:!0,filebrowser:"design:bgImage"}]},{type:"checkbox",id:"bgFixed",label:c.bgFixed, +setup:function(a,d,c,b){this.setValue("fixed"==b.getComputedStyle("background-attachment"))},commit:function(a,d,c,b){this.getValue()?b.setStyle("background-attachment","fixed"):n(b,"background-attachment","scroll")}}]},{type:"vbox",children:[{type:"html",id:"marginTitle",html:'
'+c.margin+"
"},{type:"text",id:"marginTop",label:c.marginTop,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-top")||b.getAttribute("margintop")||"")},commit:m("top")},{type:"hbox",children:[{type:"text",id:"marginLeft",label:c.marginLeft,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,d,c,b){this.setValue(b.getStyle("margin-left")||b.getAttribute("marginleft")||"")},commit:m("left")},{type:"text",id:"marginRight",label:c.marginRight,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-right")||b.getAttribute("marginright")||"")},commit:m("right")}]},{type:"text",id:"marginBottom",label:c.marginBottom,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,c,e,b){this.setValue(b.getStyle("margin-bottom")||b.getAttribute("marginbottom")||"")},commit:m("bottom")}]}]}]},{id:"meta",label:c.meta,elements:[{type:"textarea",id:"metaKeywords",label:c.metaKeywords,setup:j("keywords"), +commit:i("keywords")},{type:"textarea",id:"metaDescription",label:c.metaDescription,setup:j("description"),commit:i("description")},{type:"text",id:"metaAuthor",label:c.metaAuthor,setup:j("author"),commit:i("author")},{type:"text",id:"metaCopyright",label:c.metaCopyright,setup:j("copyright"),commit:i("copyright")}]},{id:"preview",label:h.preview,elements:[{type:"html",id:"previewHtml",html:'', +onLoad:function(){this.getDialog().on("selectPage",function(a){if("preview"==a.data.page){var c=this;setTimeout(function(){var a=CKEDITOR.document.getById("cke_docProps_preview_iframe").getFrameDocument(),b=a.getElementsByTag("html").getItem(0),f=a.getHead(),g=a.getBody();c.commitContent(a,b,f,g,1)},50)}});CKEDITOR.document.getById("cke_docProps_preview_iframe").getAscendant("table").setStyle("height","100%")}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png b/src/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png new file mode 100644 index 00000000..ed286a25 Binary files /dev/null and b/src/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png differ diff --git a/src/lib/ckeditor/plugins/docprops/icons/docprops.png b/src/lib/ckeditor/plugins/docprops/icons/docprops.png new file mode 100644 index 00000000..8bfdcb91 Binary files /dev/null and b/src/lib/ckeditor/plugins/docprops/icons/docprops.png differ diff --git a/src/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png b/src/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png new file mode 100644 index 00000000..4a966da0 Binary files /dev/null and b/src/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png differ diff --git a/src/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png b/src/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png new file mode 100644 index 00000000..a66c8697 Binary files /dev/null and b/src/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png differ diff --git a/src/lib/ckeditor/plugins/docprops/lang/af.js b/src/lib/ckeditor/plugins/docprops/lang/af.js new file mode 100644 index 00000000..dbda4d7b --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","af",{bgColor:"Agtergrond kleur",bgFixed:"Vasgeklemde Agtergrond",bgImage:"Agtergrond Beeld URL",charset:"Karakterstel Kodeering",charsetASCII:"ASCII",charsetCE:"Sentraal Europa",charsetCR:"Cyrillic",charsetCT:"Chinees Traditioneel (Big5)",charsetGR:"Grieks",charsetJP:"Japanees",charsetKR:"Koreans",charsetOther:"Ander Karakterstel Kodeering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Kies",design:"Design",docTitle:"Bladsy Opskrif", +docType:"Dokument Opskrif Soort",docTypeOther:"Ander Dokument Opskrif Soort",label:"Dokument Eienskappe",margin:"Bladsy Rante",marginBottom:"Onder",marginLeft:"Links",marginRight:"Regs",marginTop:"Bo",meta:"Meta Data",metaAuthor:"Skrywer",metaCopyright:"Kopiereg",metaDescription:"Dokument Beskrywing",metaKeywords:"Dokument Index Sleutelwoorde(comma verdeelt)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Dokument Eienskappe", +txtColor:"Tekskleur",xhtmlDec:"Voeg XHTML verklaring by"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ar.js b/src/lib/ckeditor/plugins/docprops/lang/ar.js new file mode 100644 index 00000000..bd26b491 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ar",{bgColor:"لون الخلفية",bgFixed:"جعلها علامة مائية",bgImage:"رابط الصورة الخلفية",charset:"ترميز الحروف",charsetASCII:"ASCII",charsetCE:"أوروبا الوسطى",charsetCR:"السيريلية",charsetCT:"الصينية التقليدية (Big5)",charsetGR:"اليونانية",charsetJP:"اليابانية",charsetKR:"الكورية",charsetOther:"ترميز آخر",charsetTR:"التركية",charsetUN:"Unicode (UTF-8)",charsetWE:"أوروبا الغربية",chooseColor:"اختر",design:"تصميم",docTitle:"عنوان الصفحة",docType:"ترويسة نوع الصفحة", +docTypeOther:"ترويسة نوع صفحة أخرى",label:"خصائص الصفحة",margin:"هوامش الصفحة",marginBottom:"سفلي",marginLeft:"أيسر",marginRight:"أيمن",marginTop:"علوي",meta:"المعرّفات الرأسية",metaAuthor:"الكاتب",metaCopyright:"المالك",metaDescription:"وصف الصفحة",metaKeywords:"الكلمات الأساسية (مفصولة بفواصل)َ",other:"<أخرى>",previewHtml:'

هذه مجرد كتابة بسيطةمن أجل التمثيل. CKEditor.

',title:"خصائص الصفحة",txtColor:"لون النص",xhtmlDec:"تضمين إعلانات لغة XHTMLَ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/bg.js b/src/lib/ckeditor/plugins/docprops/lang/bg.js new file mode 100644 index 00000000..5faba47d --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bg",{bgColor:"Фон",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Кодова таблица",charsetASCII:"ASCII",charsetCE:"Централна европейска",charsetCR:"Cyrillic",charsetCT:"Китайски традиционен",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Друга кодова таблица",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Изберете",design:"Дизайн",docTitle:"Заглавие на страницата", +docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Настройки на документа",margin:"Page Margins",marginBottom:"Долу",marginLeft:"Ляво",marginRight:"Дясно",marginTop:"Горе",meta:"Мета етикети",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Други...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Настройки на документа",txtColor:"Цвят на шрифт",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/bn.js b/src/lib/ckeditor/plugins/docprops/lang/bn.js new file mode 100644 index 00000000..838cbc8f --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bn",{bgColor:"ব্যাকগ্রাউন্ড রং",bgFixed:"স্ক্রলহীন ব্যাকগ্রাউন্ড",bgImage:"ব্যাকগ্রাউন্ড ছবির URL",charset:"ক্যারেক্টার সেট এনকোডিং",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"অন্য ক্যারেক্টার সেট এনকোডিং",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"পেজ শীর্ষক", +docType:"ডক্যুমেন্ট টাইপ হেডিং",docTypeOther:"অন্য ডক্যুমেন্ট টাইপ হেডিং",label:"ডক্যুমেন্ট প্রোপার্টি",margin:"পেজ মার্জিন",marginBottom:"নীচে",marginLeft:"বামে",marginRight:"ডানে",marginTop:"উপর",meta:"মেটাডেটা",metaAuthor:"লেখক",metaCopyright:"কপীরাইট",metaDescription:"ডক্যূমেন্ট বর্ণনা",metaKeywords:"ডক্যুমেন্ট ইন্ডেক্স কিওয়ার্ড (কমা দ্বারা বিচ্ছিন্ন)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"ডক্যুমেন্ট প্রোপার্টি", +txtColor:"টেক্স্ট রং",xhtmlDec:"XHTML ডেক্লারেশন যুক্ত কর"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/bs.js b/src/lib/ckeditor/plugins/docprops/lang/bs.js new file mode 100644 index 00000000..624acfc4 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bs",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Dno",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Boja teksta",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ca.js b/src/lib/ckeditor/plugins/docprops/lang/ca.js new file mode 100644 index 00000000..6eafe7fe --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ca",{bgColor:"Color de fons",bgFixed:"Fons sense desplaçament (Fixe)",bgImage:"URL de la imatge de fons",charset:"Codificació de conjunt de caràcters",charsetASCII:"ASCII",charsetCE:"Europeu Central",charsetCR:"Ciríl·lic",charsetCT:"Xinès tradicional (Big5)",charsetGR:"Grec",charsetJP:"Japonès",charsetKR:"Coreà",charsetOther:"Una altra codificació de caràcters",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeu occidental",chooseColor:"Triar",design:"Disseny", +docTitle:"Títol de la pàgina",docType:"Capçalera de tipus de document",docTypeOther:"Un altra capçalera de tipus de document",label:"Propietats del document",margin:"Marges de pàgina",marginBottom:"Peu",marginLeft:"Esquerra",marginRight:"Dreta",marginTop:"Cap",meta:"Metadades",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripció del document",metaKeywords:"Paraules clau per a indexació (separats per coma)",other:"Altre...",previewHtml:'

Aquest és un text d\'exemple. Estàs utilitzant CKEditor.

', +title:"Propietats del document",txtColor:"Color de Text",xhtmlDec:"Incloure declaracions XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/cs.js b/src/lib/ckeditor/plugins/docprops/lang/cs.js new file mode 100644 index 00000000..568bac85 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cs",{bgColor:"Barva pozadí",bgFixed:"Nerolovatelné (Pevné) pozadí",bgImage:"URL obrázku na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Středoevropské jazyky",charsetCR:"Cyrilice",charsetCT:"Tradiční čínština (Big5)",charsetGR:"Řečtina",charsetJP:"Japonština",charsetKR:"Korejština",charsetOther:"Další znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západoevropské jazyky",chooseColor:"Výběr",design:"Vzhled",docTitle:"Titulek stránky", +docType:"Typ dokumentu",docTypeOther:"Jiný typ dokumetu",label:"Vlastnosti dokumentu",margin:"Okraje stránky",marginBottom:"Dolní",marginLeft:"Levý",marginRight:"Pravý",marginTop:"Horní",meta:"Metadata",metaAuthor:"Autor",metaCopyright:"Autorská práva",metaDescription:"Popis dokumentu",metaKeywords:"Klíčová slova (oddělená čárkou)",other:"",previewHtml:'

Toto je ukázkový text. Používáte CKEditor.

',title:"Vlastnosti dokumentu",txtColor:"Barva textu", +xhtmlDec:"Zahrnout deklarace XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/cy.js b/src/lib/ckeditor/plugins/docprops/lang/cy.js new file mode 100644 index 00000000..ef7e1cc9 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cy",{bgColor:"Lliw Cefndir",bgFixed:"Cefndir Sefydlog (Ddim yn Sgrolio)",bgImage:"URL Delwedd Cefndir",charset:"Amgodio Set Nodau",charsetASCII:"ASCII",charsetCE:"Ewropeaidd Canol",charsetCR:"Syrilig",charsetCT:"Tsieinëeg Traddodiadol (Big5)",charsetGR:"Groeg",charsetJP:"Siapanëeg",charsetKR:"Corëeg",charsetOther:"Amgodio Set Nodau Arall",charsetTR:"Tyrceg",charsetUN:"Unicode (UTF-8)",charsetWE:"Ewropeaidd Gorllewinol",chooseColor:"Dewis",design:"Cynllunio",docTitle:"Teitl y Dudalen", +docType:"Pennawd Math y Ddogfen",docTypeOther:"Pennawd Math y Ddogfen Arall",label:"Priodweddau Dogfen",margin:"Ffin y Dudalen",marginBottom:"Gwaelod",marginLeft:"Chwith",marginRight:"Dde",marginTop:"Brig",meta:"Tagiau Meta",metaAuthor:"Awdur",metaCopyright:"Hawlfraint",metaDescription:"Disgrifiad y Ddogfen",metaKeywords:"Allweddeiriau Indecsio Dogfen (gwahanu gyda choma)",other:"Arall...",previewHtml:'

Dyma ychydig o destun sampl. Rydych chi\'n defnyddio CKEditor.

', +title:"Priodweddau Dogfen",txtColor:"Lliw y Testun",xhtmlDec:"Cynnwys Datganiadau XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/da.js b/src/lib/ckeditor/plugins/docprops/lang/da.js new file mode 100644 index 00000000..0a10cf09 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","da",{bgColor:"Baggrundsfarve",bgFixed:"Fastlåst baggrund",bgImage:"Baggrundsbillede URL",charset:"Tegnsætskode",charsetASCII:"ASCII",charsetCE:"Centraleuropæisk",charsetCR:"Kyrillisk",charsetCT:"Traditionel kinesisk (Big5)",charsetGR:"Græsk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Anden tegnsætskode",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropæisk",chooseColor:"Vælg",design:"Design",docTitle:"Sidetitel",docType:"Dokumenttype kategori", +docTypeOther:"Anden dokumenttype kategori",label:"Egenskaber for dokument",margin:"Sidemargen",marginBottom:"Nederst",marginLeft:"Venstre",marginRight:"Højre",marginTop:"Øverst",meta:"Metatags",metaAuthor:"Forfatter",metaCopyright:"Copyright",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument index nøgleord (kommasepareret)",other:"",previewHtml:'

Dette er et eksempel på noget tekst. Du benytter CKEditor.

',title:"Egenskaber for dokument", +txtColor:"Tekstfarve",xhtmlDec:"Inkludere XHTML deklartion"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/de.js b/src/lib/ckeditor/plugins/docprops/lang/de.js new file mode 100644 index 00000000..6dee2e4a --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","de",{bgColor:"Hintergrundfarbe",bgFixed:"feststehender Hintergrund",bgImage:"Hintergrundbild URL",charset:"Zeichenkodierung",charsetASCII:"ASCII",charsetCE:"Zentraleuropäisch",charsetCR:"Kyrillisch",charsetCT:"traditionell Chinesisch (Big5)",charsetGR:"Griechisch",charsetJP:"Japanisch",charsetKR:"Koreanisch",charsetOther:"Andere Zeichenkodierung",charsetTR:"Türkisch",charsetUN:"Unicode (UTF-8)",charsetWE:"Westeuropäisch",chooseColor:"Wählen",design:"Design",docTitle:"Seitentitel", +docType:"Dokumententyp",docTypeOther:"Anderer Dokumententyp",label:"Dokument-Eigenschaften",margin:"Seitenränder",marginBottom:"Unten",marginLeft:"Links",marginRight:"Rechts",marginTop:"Oben",meta:"Metadaten",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Dokument-Beschreibung",metaKeywords:"Schlüsselwörter (durch Komma getrennt)",other:"",previewHtml:'

Das ist ein Beispieltext. Du schreibst in CKEditor.

',title:"Dokument-Eigenschaften", +txtColor:"Textfarbe",xhtmlDec:"Beziehe XHTML Deklarationen ein"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/el.js b/src/lib/ckeditor/plugins/docprops/lang/el.js new file mode 100644 index 00000000..3f0999c5 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","el",{bgColor:"Χρώμα Φόντου",bgFixed:"Φόντο Χωρίς Κύλιση (Σταθερό)",bgImage:"Διεύθυνση Εικόνας Φόντου",charset:"Κωδικοποίηση Χαρακτήρων",charsetASCII:"ASCII",charsetCE:"Κεντρικής Ευρώπης",charsetCR:"Κυριλλική",charsetCT:"Παραδοσιακή Κινέζικη (Big5)",charsetGR:"Ελληνική",charsetJP:"Ιαπωνική",charsetKR:"Κορεάτικη",charsetOther:"Άλλη Κωδικοποίηση Χαρακτήρων",charsetTR:"Τουρκική",charsetUN:"Διεθνής (UTF-8)",charsetWE:"Δυτικής Ευρώπης",chooseColor:"Επιλέξτε",design:"Σχεδιασμός", +docTitle:"Τίτλος Σελίδας",docType:"Κεφαλίδα Τύπου Εγγράφου",docTypeOther:"Άλλη Κεφαλίδα Τύπου Εγγράφου",label:"Ιδιότητες Εγγράφου",margin:"Περιθώρια Σελίδας",marginBottom:"Κάτω",marginLeft:"Αριστερά",marginRight:"Δεξιά",marginTop:"Κορυφή",meta:"Μεταδεδομένα",metaAuthor:"Δημιουργός",metaCopyright:"Πνευματικά Δικαιώματα",metaDescription:"Περιγραφή Εγγράφου",metaKeywords:"Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",other:"Άλλο...",previewHtml:'

Αυτό είναι ένα παραδειγματικό κείμενο. Χρησιμοποιείτε το CKEditor.

', +title:"Ιδιότητες Εγγράφου",txtColor:"Χρώμα Κειμένου",xhtmlDec:"Να Συμπεριληφθούν οι Δηλώσεις XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/en-au.js b/src/lib/ckeditor/plugins/docprops/lang/en-au.js new file mode 100644 index 00000000..1991fce7 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-au",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/en-ca.js b/src/lib/ckeditor/plugins/docprops/lang/en-ca.js new file mode 100644 index 00000000..f135acfa --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-ca",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/en-gb.js b/src/lib/ckeditor/plugins/docprops/lang/en-gb.js new file mode 100644 index 00000000..4ae5c6f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-gb",{bgColor:"Background Colour",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma-separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Colour",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/en.js b/src/lib/ckeditor/plugins/docprops/lang/en.js new file mode 100644 index 00000000..73926df2 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/eo.js b/src/lib/ckeditor/plugins/docprops/lang/eo.js new file mode 100644 index 00000000..182ea18b --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eo",{bgColor:"Fona Koloro",bgFixed:"Neruluma Fono",bgImage:"URL de Fona Bildo",charset:"Signara Kodo",charsetASCII:"ASCII",charsetCE:"Centra Eŭropa",charsetCR:"Cirila",charsetCT:"Tradicia Ĉina (Big5)",charsetGR:"Greka",charsetJP:"Japana",charsetKR:"Korea",charsetOther:"Alia Signara Kodo",charsetTR:"Turka",charsetUN:"Unikodo (UTF-8)",charsetWE:"Okcidenta Eŭropa",chooseColor:"Elektu",design:"Dizajno",docTitle:"Paĝotitolo",docType:"Dokumenta Tipo",docTypeOther:"Alia Dokumenta Tipo", +label:"Dokumentaj Atributoj",margin:"Paĝaj Marĝenoj",marginBottom:"Malsupra",marginLeft:"Maldekstra",marginRight:"Dekstra",marginTop:"Supra",meta:"Metadatenoj",metaAuthor:"Verkinto",metaCopyright:"Kopirajto",metaDescription:"Dokumenta Priskribo",metaKeywords:"Ŝlosilvortoj de la Dokumento (apartigitaj de komoj)",other:"",previewHtml:'

Tio estas sampla teksto. Vi estas uzanta CKEditor.

',title:"Dokumentaj Atributoj",txtColor:"Teksta Koloro", +xhtmlDec:"Inkluzivi XHTML Deklarojn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/es.js b/src/lib/ckeditor/plugins/docprops/lang/es.js new file mode 100644 index 00000000..8170464f --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","es",{bgColor:"Color de fondo",bgFixed:"Fondo fijo (no se desplaza)",bgImage:"Imagen de fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro Europeo",charsetCR:"Ruso",charsetCT:"Chino Tradicional (Big5)",charsetGR:"Griego",charsetJP:"Japonés",charsetKR:"Koreano",charsetOther:"Otra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Elegir",design:"Diseño",docTitle:"Título de página", +docType:"Tipo de documento",docTypeOther:"Otro tipo de documento",label:"Propiedades del documento",margin:"Márgenes",marginBottom:"Inferior",marginLeft:"Izquierdo",marginRight:"Derecho",marginTop:"Superior",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripción del documento",metaKeywords:"Palabras claves del documento separadas por coma (meta keywords)",other:"Otro...",previewHtml:'

Este es un texto de ejemplo. Usted está usando CKEditor.

', +title:"Propiedades del documento",txtColor:"Color del texto",xhtmlDec:"Incluir declaración XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/et.js b/src/lib/ckeditor/plugins/docprops/lang/et.js new file mode 100644 index 00000000..43ad55d2 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","et",{bgColor:"Taustavärv",bgFixed:"Mittekeritav tagataust",bgImage:"Taustapildi URL",charset:"Märgistiku kodeering",charsetASCII:"ASCII",charsetCE:"Kesk-Euroopa",charsetCR:"Kirillisa",charsetCT:"Hiina traditsiooniline (Big5)",charsetGR:"Kreeka",charsetJP:"Jaapani",charsetKR:"Korea",charsetOther:"Ülejäänud märgistike kodeeringud",charsetTR:"Türgi",charsetUN:"Unicode (UTF-8)",charsetWE:"Lääne-Euroopa",chooseColor:"Vali",design:"Disain",docTitle:"Lehekülje tiitel", +docType:"Dokumendi tüüppäis",docTypeOther:"Teised dokumendi tüüppäised",label:"Dokumendi omadused",margin:"Lehekülje äärised",marginBottom:"Alaserv",marginLeft:"Vasakserv",marginRight:"Paremserv",marginTop:"Ülaserv",meta:"Meta andmed",metaAuthor:"Autor",metaCopyright:"Autoriõigus",metaDescription:"Dokumendi kirjeldus",metaKeywords:"Dokumendi võtmesõnad (eraldatud komadega)",other:"",previewHtml:'

See on näidistekst. Sa kasutad CKEditori.

', +title:"Dokumendi omadused",txtColor:"Teksti värv",xhtmlDec:"Arva kaasa XHTML deklaratsioonid"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/eu.js b/src/lib/ckeditor/plugins/docprops/lang/eu.js new file mode 100644 index 00000000..16175cc1 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eu",{bgColor:"Atzeko Kolorea",bgFixed:"Korritze gabeko Atzealdea",bgImage:"Atzeko Irudiaren URL-a",charset:"Karaktere Multzoaren Kodeketa",charsetASCII:"ASCII",charsetCE:"Erdialdeko Europakoa",charsetCR:"Zirilikoa",charsetCT:"Txinatar Tradizionala (Big5)",charsetGR:"Grekoa",charsetJP:"Japoniarra",charsetKR:"Korearra",charsetOther:"Beste Karaktere Multzoko Kodeketa",charsetTR:"Turkiarra",charsetUN:"Unicode (UTF-8)",charsetWE:"Mendebaldeko Europakoa",chooseColor:"Choose", +design:"Diseinua",docTitle:"Orriaren Izenburua",docType:"Document Type Goiburua",docTypeOther:"Beste Document Type Goiburua",label:"Dokumentuaren Ezarpenak",margin:"Orrialdearen marjinak",marginBottom:"Behean",marginLeft:"Ezkerrean",marginRight:"Eskuman",marginTop:"Goian",meta:"Meta Informazioa",metaAuthor:"Egilea",metaCopyright:"Copyright",metaDescription:"Dokumentuaren Deskribapena",metaKeywords:"Dokumentuaren Gako-hitzak (komarekin bananduta)",other:"",previewHtml:'

Hau adibideko testua da. CKEditor erabiltzen ari zara.

', +title:"Dokumentuaren Ezarpenak",txtColor:"Testu Kolorea",xhtmlDec:"XHTML Ezarpenak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/fa.js b/src/lib/ckeditor/plugins/docprops/lang/fa.js new file mode 100644 index 00000000..078e3838 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","fa",{bgColor:"رنگ پس​زمینه",bgFixed:"پس​زمینهٴ ثابت (بدون حرکت)",bgImage:"URL تصویر پسزمینه",charset:"رمزگذاری نویسه​گان",charsetASCII:"اسکی",charsetCE:"اروپای مرکزی",charsetCR:"سیریلیک",charsetCT:"چینی رسمی (Big5)",charsetGR:"یونانی",charsetJP:"ژاپنی",charsetKR:"کره​ای",charsetOther:"رمزگذاری نویسه​گان دیگر",charsetTR:"ترکی",charsetUN:"یونیکد (UTF-8)",charsetWE:"اروپای غربی",chooseColor:"انتخاب",design:"طراحی",docTitle:"عنوان صفحه",docType:"عنوان نوع سند",docTypeOther:"عنوان نوع سند دیگر", +label:"ویژگی​های سند",margin:"حاشیه​های صفحه",marginBottom:"پایین",marginLeft:"چپ",marginRight:"راست",marginTop:"بالا",meta:"فراداده",metaAuthor:"نویسنده",metaCopyright:"حق انتشار",metaDescription:"توصیف سند",metaKeywords:"کلیدواژگان نمایه​گذاری سند (با کاما جدا شوند)",other:"<سایر>",previewHtml:'

این یک متن نمونه است. شما در حال استفاده از CKEditor هستید.

',title:"ویژگی​های سند",txtColor:"رنگ متن",xhtmlDec:"شامل تعاریف XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/fi.js b/src/lib/ckeditor/plugins/docprops/lang/fi.js new file mode 100644 index 00000000..22a9740a --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fi",{bgColor:"Taustaväri",bgFixed:"Paikallaanpysyvä tausta",bgImage:"Taustakuva",charset:"Merkistökoodaus",charsetASCII:"ASCII",charsetCE:"Keskieurooppalainen",charsetCR:"Kyrillinen",charsetCT:"Kiina, perinteinen (Big5)",charsetGR:"Kreikka",charsetJP:"Japani",charsetKR:"Korealainen",charsetOther:"Muu merkistökoodaus",charsetTR:"Turkkilainen",charsetUN:"Unicode (UTF-8)",charsetWE:"Länsieurooppalainen",chooseColor:"Valitse",design:"Sommittelu",docTitle:"Sivun nimi", +docType:"Dokumentin tyyppi",docTypeOther:"Muu dokumentin tyyppi",label:"Dokumentin ominaisuudet",margin:"Sivun marginaalit",marginBottom:"Ala",marginLeft:"Vasen",marginRight:"Oikea",marginTop:"Ylä",meta:"Metatieto",metaAuthor:"Tekijä",metaCopyright:"Tekijänoikeudet",metaDescription:"Kuvaus",metaKeywords:"Hakusanat (pilkulla erotettuna)",other:"",previewHtml:'

Tämä on esimerkkitekstiä. Käytät juuri CKEditoria.

',title:"Dokumentin ominaisuudet", +txtColor:"Tekstiväri",xhtmlDec:"Lisää XHTML julistukset"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/fo.js b/src/lib/ckeditor/plugins/docprops/lang/fo.js new file mode 100644 index 00000000..ef352698 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fo",{bgColor:"Bakgrundslitur",bgFixed:"Læst bakgrund (rullar ikki)",bgImage:"Leið til bakgrundsmynd (URL)",charset:"Teknsett koda",charsetASCII:"ASCII",charsetCE:"Miðeuropa",charsetCR:"Cyrilliskt",charsetCT:"Kinesiskt traditionelt (Big5)",charsetGR:"Grikst",charsetJP:"Japanskt",charsetKR:"Koreanskt",charsetOther:"Onnur teknsett koda",charsetTR:"Turkiskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestureuropa",chooseColor:"Vel",design:"Design",docTitle:"Síðuheiti", +docType:"Dokumentslag yvirskrift",docTypeOther:"Annað dokumentslag yvirskrift",label:"Eginleikar fyri dokument",margin:"Síðubreddar",marginBottom:"Niðast",marginLeft:"Vinstra",marginRight:"Høgra",marginTop:"Ovast",meta:"META-upplýsingar",metaAuthor:"Høvundur",metaCopyright:"Upphavsrættindi",metaDescription:"Dokumentlýsing",metaKeywords:"Dokument index lyklaorð (sundurbýtt við komma)",other:"",previewHtml:'

Hetta er ein royndartekstur. Tygum brúka CKEditor.

', +title:"Eginleikar fyri dokument",txtColor:"Tekstlitur",xhtmlDec:"Viðfest XHTML deklaratiónir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/fr-ca.js b/src/lib/ckeditor/plugins/docprops/lang/fr-ca.js new file mode 100644 index 00000000..31a809e8 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr-ca",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage",charsetASCII:"ACSII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grecque",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage",charsetTR:"Turque",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Sélectionner",design:"Design",docTitle:"Titre de la page",docType:"Type de document", +docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Méta-données",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"Autre...",previewHtml:'

Voici un example de texte. Vous utilisez CKEditor.

',title:"Propriétés du document",txtColor:"Couleur de caractère", +xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/fr.js b/src/lib/ckeditor/plugins/docprops/lang/fr.js new file mode 100644 index 00000000..f22e2493 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage de caractère",charsetASCII:"ASCII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grec",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage de caractère",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Choisissez",design:"Design",docTitle:"Titre de la page", +docType:"Type de document",docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Métadonnées",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"",previewHtml:'

Ceci est un texte d\'exemple. Vous utilisez CKEditor.

',title:"Propriétés du document", +txtColor:"Couleur de texte",xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/gl.js b/src/lib/ckeditor/plugins/docprops/lang/gl.js new file mode 100644 index 00000000..f8b0c21d --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gl",{bgColor:"Cor do fondo",bgFixed:"Fondo fixo (non se despraza)",bgImage:"URL da imaxe do fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro europeo",charsetCR:"Cirílico",charsetCT:"Chinés tradicional (Big5)",charsetGR:"Grego",charsetJP:"Xaponés",charsetKR:"Coreano",charsetOther:"Outra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Escoller",design:"Deseño", +docTitle:"Título da páxina",docType:"Cabeceira do tipo de documento",docTypeOther:"Outra cabeceira do tipo de documento",label:"Propiedades do documento",margin:"Marxes da páxina",marginBottom:"Abaixo",marginLeft:"Esquerda",marginRight:"Dereita",marginTop:"Arriba",meta:"Meta etiquetas",metaAuthor:"Autor",metaCopyright:"Dereito de autoría",metaDescription:"Descrición do documento",metaKeywords:"Palabras clave de indexación do documento (separadas por comas)",other:"Outro...",previewHtml:'

Este é un texto de exemplo. Vostede esta a empregar o CKEditor.

', +title:"Propiedades do documento",txtColor:"Cor do texto",xhtmlDec:"Incluír as declaracións XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/gu.js b/src/lib/ckeditor/plugins/docprops/lang/gu.js new file mode 100644 index 00000000..7458ffe6 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gu",{bgColor:"બૅકગ્રાઉન્ડ રંગ",bgFixed:"સ્ક્રોલ ન થાય તેવું બૅકગ્રાઉન્ડ",bgImage:"બૅકગ્રાઉન્ડ ચિત્ર URL",charset:"કેરેક્ટર સેટ એન્કોડિંગ",charsetASCII:"ASCII",charsetCE:"મધ્ય યુરોપિઅન (Central European)",charsetCR:"સિરીલિક (Cyrillic)",charsetCT:"ચાઇનીઝ (Chinese Traditional Big5)",charsetGR:"ગ્રીક (Greek)",charsetJP:"જાપાનિઝ (Japanese)",charsetKR:"કોરીયન (Korean)",charsetOther:"અન્ય કેરેક્ટર સેટ એન્કોડિંગ",charsetTR:"ટર્કિ (Turkish)",charsetUN:"યૂનિકોડ (UTF-8)", +charsetWE:"પશ્ચિમ યુરોપિઅન (Western European)",chooseColor:"વિકલ્પ",design:"ડીસા",docTitle:"પેજ મથાળું/ટાઇટલ",docType:"ડૉક્યુમન્ટ પ્રકાર શીર્ષક",docTypeOther:"અન્ય ડૉક્યુમન્ટ પ્રકાર શીર્ષક",label:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",margin:"પેજ માર્જિન",marginBottom:"નીચે",marginLeft:"ડાબી",marginRight:"જમણી",marginTop:"ઉપર",meta:"મેટાડૅટા",metaAuthor:"લેખક",metaCopyright:"કૉપિરાઇટ",metaDescription:"ડૉક્યુમન્ટ વર્ણન",metaKeywords:"ડૉક્યુમન્ટ ઇન્ડેક્સ સંકેતશબ્દ (અલ્પવિરામ (,) થી અલગ કરો)",other:"",previewHtml:'

આ એક સેમ્પલ ટેક્ષ્ત્ છે. તમે CKEditor વાપરો છો.

', +title:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",txtColor:"શબ્દનો રંગ",xhtmlDec:"XHTML સૂચના સમાવિષ્ટ કરવી"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/he.js b/src/lib/ckeditor/plugins/docprops/lang/he.js new file mode 100644 index 00000000..d71d1586 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","he",{bgColor:"צבע רקע",bgFixed:"רקע לא נגלל (צמוד)",bgImage:"כתובת של תמונת רקע",charset:"קידוד תווים",charsetASCII:"ASCII",charsetCE:"מרכז אירופאי",charsetCR:"קירילי",charsetCT:"סיני מסורתי (Big5)",charsetGR:"יווני",charsetJP:"יפני",charsetKR:"קוריאני",charsetOther:"קידוד תווים אחר",charsetTR:"טורקי",charsetUN:"יוניקוד (UTF-8)",charsetWE:"מערב אירופאי",chooseColor:"בחירה",design:"עיצוב",docTitle:"כותרת עמוד",docType:"כותר סוג מסמך",docTypeOther:"כותר סוג מסמך אחר", +label:"מאפייני מסמך",margin:"מרווחי עמוד",marginBottom:"תחתון",marginLeft:"שמאלי",marginRight:"ימני",marginTop:"עליון",meta:"תגי Meta",metaAuthor:"מחבר/ת",metaCopyright:"זכויות יוצרים",metaDescription:"תיאור המסמך",metaKeywords:"מילות מפתח של המסמך (מופרדות בפסיק)",other:"אחר...",previewHtml:'

זהו טקסט הדגמה. את/ה משתמש/ת בCKEditor.

',title:"מאפייני מסמך",txtColor:"צבע טקסט",xhtmlDec:"כלול הכרזות XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/hi.js b/src/lib/ckeditor/plugins/docprops/lang/hi.js new file mode 100644 index 00000000..68266186 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hi",{bgColor:"बैक्ग्राउन्ड रंग",bgFixed:"स्क्रॉल न करने वाला बैक्ग्राउन्ड",bgImage:"बैक्ग्राउन्ड तस्वीर URL",charset:"करेक्टर सॅट ऍन्कोडिंग",charsetASCII:"ASCII",charsetCE:"मध्य यूरोपीय (Central European)",charsetCR:"सिरीलिक (Cyrillic)",charsetCT:"चीनी (Chinese Traditional Big5)",charsetGR:"यवन (Greek)",charsetJP:"जापानी (Japanese)",charsetKR:"कोरीयन (Korean)",charsetOther:"अन्य करेक्टर सॅट ऍन्कोडिंग",charsetTR:"तुर्की (Turkish)",charsetUN:"यूनीकोड (UTF-8)",charsetWE:"पश्चिम यूरोपीय (Western European)", +chooseColor:"Choose",design:"Design",docTitle:"पेज शीर्षक",docType:"डॉक्यूमॅन्ट प्रकार शीर्षक",docTypeOther:"अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",label:"डॉक्यूमॅन्ट प्रॉपर्टीज़",margin:"पेज मार्जिन",marginBottom:"नीचे",marginLeft:"बायें",marginRight:"दायें",marginTop:"ऊपर",meta:"मॅटाडेटा",metaAuthor:"लेखक",metaCopyright:"कॉपीराइट",metaDescription:"डॉक्यूमॅन्ट करॅक्टरन",metaKeywords:"डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",other:"<अन्य>",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"डॉक्यूमॅन्ट प्रॉपर्टीज़",txtColor:"टेक्स्ट रंग",xhtmlDec:"XHTML सूचना सम्मिलित करें"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/hr.js b/src/lib/ckeditor/plugins/docprops/lang/hr.js new file mode 100644 index 00000000..3477c6f0 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hr",{bgColor:"Boja pozadine",bgFixed:"Pozadine se ne pomiče",bgImage:"URL slike pozadine",charset:"Enkodiranje znakova",charsetASCII:"ASCII",charsetCE:"Središnja Europa",charsetCR:"Ćirilica",charsetCT:"Tradicionalna kineska (Big5)",charsetGR:"Grčka",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Ostalo enkodiranje znakova",charsetTR:"Turska",charsetUN:"Unicode (UTF-8)",charsetWE:"Zapadna Europa",chooseColor:"Odaberi",design:"Dizajn",docTitle:"Naslov stranice", +docType:"Zaglavlje vrste dokumenta",docTypeOther:"Ostalo zaglavlje vrste dokumenta",label:"Svojstva dokumenta",margin:"Margine stranice",marginBottom:"Dolje",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne riječi dokumenta (odvojene zarezom)",other:"",previewHtml:'

Ovo je neki primjer teksta. Vi koristite CKEditor.

', +title:"Svojstva dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ubaci XHTML deklaracije"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/hu.js b/src/lib/ckeditor/plugins/docprops/lang/hu.js new file mode 100644 index 00000000..beeed2b5 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hu",{bgColor:"Háttérszín",bgFixed:"Nem gördíthető háttér",bgImage:"Háttérkép cím",charset:"Karakterkódolás",charsetASCII:"ASCII",charsetCE:"Közép-Európai",charsetCR:"Cyrill",charsetCT:"Kínai Tradicionális (Big5)",charsetGR:"Görög",charsetJP:"Japán",charsetKR:"Koreai",charsetOther:"Más karakterkódolás",charsetTR:"Török",charsetUN:"Unicode (UTF-8)",charsetWE:"Nyugat-Európai",chooseColor:"Válasszon",design:"Design",docTitle:"Oldalcím",docType:"Dokumentum típus fejléc", +docTypeOther:"Más dokumentum típus fejléc",label:"Dokumentum tulajdonságai",margin:"Oldal margók",marginBottom:"Alsó",marginLeft:"Bal",marginRight:"Jobb",marginTop:"Felső",meta:"Meta adatok",metaAuthor:"Szerző",metaCopyright:"Szerzői jog",metaDescription:"Dokumentum leírás",metaKeywords:"Dokumentum keresőszavak (vesszővel elválasztva)",other:"",previewHtml:'

Ez itt egy példa. A CKEditor-t használod.

',title:"Dokumentum tulajdonságai",txtColor:"Betűszín", +xhtmlDec:"XHTML deklarációk beillesztése"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/id.js b/src/lib/ckeditor/plugins/docprops/lang/id.js new file mode 100644 index 00000000..9716026d --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","id",{bgColor:"Warna Latar Belakang",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Pilih",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/is.js b/src/lib/ckeditor/plugins/docprops/lang/is.js new file mode 100644 index 00000000..9085a4f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","is",{bgColor:"Bakgrunnslitur",bgFixed:"Læstur bakgrunnur",bgImage:"Slóð bakgrunnsmyndar",charset:"Letursett",charsetASCII:"ASCII",charsetCE:"Mið-evrópskt",charsetCR:"Kýrilskt",charsetCT:"Kínverskt, hefðbundið (Big5)",charsetGR:"Grískt",charsetJP:"Japanskt",charsetKR:"Kóreskt",charsetOther:"Annað letursett",charsetTR:"Tyrkneskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestur-evrópst",chooseColor:"Choose",design:"Design",docTitle:"Titill síðu",docType:"Flokkur skjalategunda", +docTypeOther:"Annar flokkur skjalategunda",label:"Eigindi skjals",margin:"Hliðarspássía",marginBottom:"Neðst",marginLeft:"Vinstri",marginRight:"Hægri",marginTop:"Efst",meta:"Lýsigögn",metaAuthor:"Höfundur",metaCopyright:"Höfundarréttur",metaDescription:"Lýsing skjals",metaKeywords:"Lykilorð efnisorðaskrár (aðgreind með kommum)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Eigindi skjals",txtColor:"Litur texta", +xhtmlDec:"Fella inn XHTML lýsingu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/it.js b/src/lib/ckeditor/plugins/docprops/lang/it.js new file mode 100644 index 00000000..56edb3af --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","it",{bgColor:"Colore di sfondo",bgFixed:"Sfondo fissato",bgImage:"Immagine di sfondo",charset:"Set di caretteri",charsetASCII:"ASCII",charsetCE:"Europa Centrale",charsetCR:"Cirillico",charsetCT:"Cinese Tradizionale (Big5)",charsetGR:"Greco",charsetJP:"Giapponese",charsetKR:"Coreano",charsetOther:"Altro set di caretteri",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Occidentale",chooseColor:"Scegli",design:"Disegna",docTitle:"Titolo pagina",docType:"Intestazione DocType", +docTypeOther:"Altra intestazione DocType",label:"Proprietà del Documento",margin:"Margini",marginBottom:"In Basso",marginLeft:"A Sinistra",marginRight:"A Destra",marginTop:"In Alto",meta:"Meta Data",metaAuthor:"Autore",metaCopyright:"Copyright",metaDescription:"Descrizione documento",metaKeywords:"Chiavi di indicizzazione documento (separate da virgola)",other:"",previewHtml:'

Questo è un testo di esempio. State usando CKEditor.

',title:"Proprietà del Documento", +txtColor:"Colore testo",xhtmlDec:"Includi dichiarazione XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ja.js b/src/lib/ckeditor/plugins/docprops/lang/ja.js new file mode 100644 index 00000000..34f57912 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ja",{bgColor:"背景色",bgFixed:"スクロールしない背景",bgImage:"背景画像 URL",charset:"文字コード",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"日本語",charsetKR:"Korean",charsetOther:"他の文字セット符号化",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"色の選択",design:"デザイン",docTitle:"ページタイトル",docType:"文書タイプヘッダー",docTypeOther:"その他文書タイプヘッダー",label:"文書 プロパティ",margin:"ページ・マージン", +marginBottom:"下部",marginLeft:"左",marginRight:"右",marginTop:"上部",meta:"メタデータ",metaAuthor:"文書の作者",metaCopyright:"文書の著作権",metaDescription:"文書の概要",metaKeywords:"文書のキーワード(カンマ区切り)",other:"<その他の>",previewHtml:'

これはテキストサンプルです。 あなたは、CKEditorを使っています。

',title:"文書 プロパティ",txtColor:"テキスト色",xhtmlDec:"XHTML宣言をインクルード"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ka.js b/src/lib/ckeditor/plugins/docprops/lang/ka.js new file mode 100644 index 00000000..50f71dee --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ka",{bgColor:"ფონის ფერი",bgFixed:"უმოძრაო (ფიქსირებული) ფონი",bgImage:"ფონური სურათის URL",charset:"კოდირება",charsetASCII:"ამერიკული (ASCII)",charsetCE:"ცენტრალურ ევროპული",charsetCR:"კირილური",charsetCT:"ტრადიციული ჩინური (Big5)",charsetGR:"ბერძნული",charsetJP:"იაპონური",charsetKR:"კორეული",charsetOther:"სხვა კოდირებები",charsetTR:"თურქული",charsetUN:"უნიკოდი (UTF-8)",charsetWE:"დასავლეთ ევროპული",chooseColor:"არჩევა",design:"დიზაინი",docTitle:"გვერდის სათაური", +docType:"დოკუმენტის ტიპი",docTypeOther:"სხვა ტიპის დოკუმენტი",label:"დოკუმენტის პარამეტრები",margin:"გვერდის კიდეები",marginBottom:"ქვედა",marginLeft:"მარცხენა",marginRight:"მარჯვენა",marginTop:"ზედა",meta:"მეტაTag-ები",metaAuthor:"ავტორი",metaCopyright:"Copyright",metaDescription:"დოკუმენტის აღწერა",metaKeywords:"დოკუმენტის საკვანძო სიტყვები (მძიმით გამოყოფილი)",other:"სხვა...",previewHtml:'

ეს არის საცდელი ტექსტი. თქვენ CKEditor-ით სარგებლობთ.

', +title:"დოკუმენტის პარამეტრები",txtColor:"ტექსტის ფერი",xhtmlDec:"XHTML დეკლარაციების ჩართვა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/km.js b/src/lib/ckeditor/plugins/docprops/lang/km.js new file mode 100644 index 00000000..34272904 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","km",{bgColor:"ពណ៌​ផ្ទៃ​ក្រោយ",bgFixed:"ផ្ទៃ​ក្រោយ​គ្មាន​ការ​រំកិល (នឹង​ថ្កល់)",bgImage:"URL រូបភាព​ផ្ទៃ​ក្រោយ",charset:"ការ​អ៊ិនកូដ​តួ​អក្សរ",charsetASCII:"ASCII",charsetCE:"អឺរ៉ុប​កណ្ដាល",charsetCR:"Cyrillic",charsetCT:"ចិន​បុរាណ (Big5)",charsetGR:"ក្រិក",charsetJP:"ជប៉ុន",charsetKR:"កូរ៉េ",charsetOther:"កំណត់លេខកូតភាសាផ្សេងទៀត",charsetTR:"ទួរគី",charsetUN:"យូនីកូដ (UTF-8)",charsetWE:"អឺរ៉ុប​ខាង​លិច",chooseColor:"រើស",design:"រចនា",docTitle:"ចំណងជើងទំព័រ",docType:"ប្រភេទក្បាលទំព័រ​ឯកសារ", +docTypeOther:"ប្រភេទក្បាលទំព័រឯកសារ​ផ្សេងទៀត",label:"លក្ខណៈ​សម្បត្តិ​ឯកសារ",margin:"រឹម​ទំព័រ",marginBottom:"បាត​ក្រោម",marginLeft:"ឆ្វេង",marginRight:"ស្ដាំ",marginTop:"លើ",meta:"ស្លាក​មេតា",metaAuthor:"អ្នកនិពន្ធ",metaCopyright:"រក្សាសិទ្ធិ",metaDescription:"សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",metaKeywords:"ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",other:"ដទៃ​ទៀត...",previewHtml:'

នេះ​គឺ​ជាអក្សរ​គំរូ​ខ្លះៗ។ អ្នក​កំពុង​ប្រើ CKEditor

',title:"ការកំណត់ ឯកសារ", +txtColor:"ពណ៌អក្សរ",xhtmlDec:"បញ្ជូល XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ko.js b/src/lib/ckeditor/plugins/docprops/lang/ko.js new file mode 100644 index 00000000..168e9b17 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ko",{bgColor:"배경색상",bgFixed:"스크롤되지 않는 배경",bgImage:"배경 이미지 URL",charset:"캐릭터셋 인코딩",charsetASCII:"ASCII",charsetCE:"중앙 유럽",charsetCR:"키릴 문자",charsetCT:"중국어 (Big5)",charsetGR:"그리스어",charsetJP:"일본어",charsetKR:"한국어",charsetOther:"다른 캐릭터셋 인코딩",charsetTR:"터키어",charsetUN:"유니코드 (UTF-8)",charsetWE:"서유럽",chooseColor:"선택하기",design:"디자인",docTitle:"페이지명",docType:"문서 헤드",docTypeOther:"다른 문서헤드",label:"문서 속성",margin:"페이지 여백",marginBottom:"아래",marginLeft:"왼쪽",marginRight:"오른쪽", +marginTop:"위",meta:"메타데이터",metaAuthor:"작성자",metaCopyright:"저작권",metaDescription:"문서 설명",metaKeywords:"문서 키워드 (콤마로 구분)",other:"<기타>",previewHtml:'

이것은 예문입니다. 여러분은 지금 CKEditor를 사용하고 있습니다.

',title:"문서 속성",txtColor:"글자 색상",xhtmlDec:"XHTML 문서정의 포함"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ku.js b/src/lib/ckeditor/plugins/docprops/lang/ku.js new file mode 100644 index 00000000..f2dd2844 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ku",{bgColor:"ڕەنگی پاشبنەما",bgFixed:"بێ هاتووچوپێکردنی (چەسپاو) پاشبنەمای وێنه",bgImage:"ناونیشانی بەستەری وێنەی پاشبنەما",charset:"دەستەی نووسەی بەکۆدکەر",charsetASCII:"ASCII",charsetCE:"ناوەڕاستی ئەوروپا",charsetCR:"سیریلیك",charsetCT:"چینی(Big5)",charsetGR:"یۆنانی",charsetJP:"ژاپۆنی",charsetKR:"کۆریا",charsetOther:"دەستەی نووسەی بەکۆدکەری تر",charsetTR:"تورکی",charsetUN:"Unicode (UTF-8)",charsetWE:"ڕۆژئاوای ئەوروپا",chooseColor:"هەڵبژێرە",design:"شێوەکار", +docTitle:"سەردێڕی پەڕه",docType:"سەرپەڕەی جۆری پەڕه",docTypeOther:"سەرپەڕەی جۆری پەڕەی تر",label:"خاسییەتی پەڕه",margin:"تەنیشت پەڕه",marginBottom:"ژێرەوه",marginLeft:"چەپ",marginRight:"ڕاست",marginTop:"سەرەوه",meta:"زانیاری مێتا",metaAuthor:"نووسەر",metaCopyright:"مافی بڵاوکردنەوەی",metaDescription:"پێناسەی لاپەڕه",metaKeywords:"بەڵگەنامەی وشەی کاریگەر(به کۆما لێکیان جیابکەوه)",other:"هیتر...",previewHtml:'

ئەمە وەك نموونەی دەقه. تۆ بەکاردەهێنیت CKEditor.

', +title:"خاسییەتی پەڕه",txtColor:"ڕەنگی دەق",xhtmlDec:"بەیاننامەکانی XHTML لەگەڵدابێت"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/lt.js b/src/lib/ckeditor/plugins/docprops/lang/lt.js new file mode 100644 index 00000000..b2e1ba95 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lt",{bgColor:"Fono spalva",bgFixed:"Neslenkantis fonas",bgImage:"Fono paveikslėlio nuoroda (URL)",charset:"Simbolių kodavimo lentelė",charsetASCII:"ASCII",charsetCE:"Centrinės Europos",charsetCR:"Kirilica",charsetCT:"Tradicinės kinų (Big5)",charsetGR:"Graikų",charsetJP:"Japonų",charsetKR:"Korėjiečių",charsetOther:"Kita simbolių kodavimo lentelė",charsetTR:"Turkų",charsetUN:"Unikodas (UTF-8)",charsetWE:"Vakarų Europos",chooseColor:"Pasirinkite",design:"Išdėstymas", +docTitle:"Puslapio antraštė",docType:"Dokumento tipo antraštė",docTypeOther:"Kita dokumento tipo antraštė",label:"Dokumento savybės",margin:"Puslapio kraštinės",marginBottom:"Apačioje",marginLeft:"Kairėje",marginRight:"Dešinėje",marginTop:"Viršuje",meta:"Meta duomenys",metaAuthor:"Autorius",metaCopyright:"Autorinės teisės",metaDescription:"Dokumento apibūdinimas",metaKeywords:"Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",other:"",previewHtml:'

Tai yra pavyzdinis tekstas. Jūs naudojate CKEditor.

', +title:"Dokumento savybės",txtColor:"Teksto spalva",xhtmlDec:"Įtraukti XHTML deklaracijas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/lv.js b/src/lib/ckeditor/plugins/docprops/lang/lv.js new file mode 100644 index 00000000..61014944 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lv",{bgColor:"Fona krāsa",bgFixed:"Fona attēls ir fiksēts",bgImage:"Fona attēla hipersaite",charset:"Simbolu kodējums",charsetASCII:"ASCII",charsetCE:"Centrāleiropas",charsetCR:"Kirilica",charsetCT:"Ķīniešu tradicionālā (Big5)",charsetGR:"Grieķu",charsetJP:"Japāņu",charsetKR:"Korejiešu",charsetOther:"Cits simbolu kodējums",charsetTR:"Turku",charsetUN:"Unikods (UTF-8)",charsetWE:"Rietumeiropas",chooseColor:"Izvēlēties",design:"Dizains",docTitle:"Dokumenta virsraksts ", +docType:"Dokumenta tips",docTypeOther:"Cits dokumenta tips",label:"Dokumenta īpašības",margin:"Lapas robežas",marginBottom:"Apakšā",marginLeft:"Pa kreisi",marginRight:"Pa labi",marginTop:"Augšā",meta:"META dati",metaAuthor:"Autors",metaCopyright:"Autortiesības",metaDescription:"Dokumenta apraksts",metaKeywords:"Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",other:"<cits>",previewHtml:'<p>Šis ir <strong>parauga teksts</strong>. Jūs izmantojiet <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Dokumenta īpašības",txtColor:"Teksta krāsa",xhtmlDec:"Ietvert XHTML deklarācijas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/mk.js b/src/lib/ckeditor/plugins/docprops/lang/mk.js new file mode 100644 index 00000000..7f48e61c --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mk",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/mn.js b/src/lib/ckeditor/plugins/docprops/lang/mn.js new file mode 100644 index 00000000..8907ba39 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mn",{bgColor:"Фоно өнгө",bgFixed:"Гүйдэггүй фоно",bgImage:"Фоно зурагны URL",charset:"Encoding тэмдэгт",charsetASCII:"ASCII",charsetCE:"Төв европ",charsetCR:"Крил",charsetCT:"Хятадын уламжлалт (Big5)",charsetGR:"Гред",charsetJP:"Япон",charsetKR:"Солонгос",charsetOther:"Encoding-д өөр тэмдэгт оноох",charsetTR:"Tурк",charsetUN:"Юникод (UTF-8)",charsetWE:"Баруун европ",chooseColor:"Сонгох",design:"Design",docTitle:"Хуудасны гарчиг",docType:"Баримт бичгийн төрөл Heading", +docTypeOther:"Бусад баримт бичгийн төрөл Heading",label:"Баримт бичиг шинж чанар",margin:"Хуудасны захын зай",marginBottom:"Доод тал",marginLeft:"Зүүн тал",marginRight:"Баруун тал",marginTop:"Дээд тал",meta:"Meta өгөгдөл",metaAuthor:"Зохиогч",metaCopyright:"Зохиогчийн эрх",metaDescription:"Баримт бичгийн тайлбар",metaKeywords:"Баримт бичгийн индекс түлхүүр үг (таслалаар тусгаарлагдана)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Баримт бичиг шинж чанар",txtColor:"Фонтны өнгө",xhtmlDec:"XHTML-ийн мэдээллийг агуулах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ms.js b/src/lib/ckeditor/plugins/docprops/lang/ms.js new file mode 100644 index 00000000..fe51ef5a --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ms",{bgColor:"Warna Latarbelakang",bgFixed:"Imej Latarbelakang tanpa Skrol",bgImage:"URL Gambar Latarbelakang",charset:"Enkod Set Huruf",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Enkod Set Huruf yang Lain",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Tajuk Muka Surat", +docType:"Jenis Kepala Dokumen",docTypeOther:"Jenis Kepala Dokumen yang Lain",label:"Ciri-ciri dokumen",margin:"Margin Muka Surat",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Data Meta",metaAuthor:"Penulis",metaCopyright:"Hakcipta",metaDescription:"Keterangan Dokumen",metaKeywords:"Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",other:"<lain>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Ciri-ciri dokumen",txtColor:"Warna Text",xhtmlDec:"Masukkan pemula kod XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/nb.js b/src/lib/ckeditor/plugins/docprops/lang/nb.js new file mode 100644 index 00000000..87926ab8 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nb",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/nl.js b/src/lib/ckeditor/plugins/docprops/lang/nl.js new file mode 100644 index 00000000..7425a0aa --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nl",{bgColor:"Achtergrondkleur",bgFixed:"Niet-scrollend (gefixeerde) achtergrond",bgImage:"Achtergrondafbeelding URL",charset:"Tekencodering",charsetASCII:"ASCII",charsetCE:"Centraal Europees",charsetCR:"Cyrillisch",charsetCT:"Traditioneel Chinees (Big5)",charsetGR:"Grieks",charsetJP:"Japans",charsetKR:"Koreaans",charsetOther:"Andere tekencodering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"West Europees",chooseColor:"Kies",design:"Ontwerp",docTitle:"Paginatitel", +docType:"Documenttype-definitie",docTypeOther:"Andere documenttype-definitie",label:"Documenteigenschappen",margin:"Pagina marges",marginBottom:"Onder",marginLeft:"Links",marginRight:"Rechts",marginTop:"Boven",meta:"Meta tags",metaAuthor:"Auteur",metaCopyright:"Auteursrechten",metaDescription:"Documentbeschrijving",metaKeywords:"Trefwoorden voor indexering (komma-gescheiden)",other:"Anders...",previewHtml:'<p>Dit is <strong>voorbeeld tekst</strong>. Je gebruikt <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Documenteigenschappen",txtColor:"Tekstkleur",xhtmlDec:"XHTML declaratie invoegen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/no.js b/src/lib/ckeditor/plugins/docprops/lang/no.js new file mode 100644 index 00000000..11dddcff --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","no",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/pl.js b/src/lib/ckeditor/plugins/docprops/lang/pl.js new file mode 100644 index 00000000..4fb43438 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pl",{bgColor:"Kolor tła",bgFixed:"Tło nieruchome (nieprzewijające się)",bgImage:"Adres URL obrazka tła",charset:"Kodowanie znaków",charsetASCII:"ASCII",charsetCE:"Środkowoeuropejskie",charsetCR:"Cyrylica",charsetCT:"Chińskie tradycyjne (Big5)",charsetGR:"Greckie",charsetJP:"Japońskie",charsetKR:"Koreańskie",charsetOther:"Inne kodowanie znaków",charsetTR:"Tureckie",charsetUN:"Unicode (UTF-8)",charsetWE:"Zachodnioeuropejskie",chooseColor:"Wybierz",design:"Projekt strony", +docTitle:"Tytuł strony",docType:"Definicja typu dokumentu",docTypeOther:"Inna definicja typu dokumentu",label:"Właściwości dokumentu",margin:"Marginesy strony",marginBottom:"Dolny",marginLeft:"Lewy",marginRight:"Prawy",marginTop:"Górny",meta:"Znaczniki meta",metaAuthor:"Autor",metaCopyright:"Prawa autorskie",metaDescription:"Opis dokumentu",metaKeywords:"Słowa kluczowe dokumentu (oddzielone przecinkami)",other:"Inne",previewHtml:'<p>To jest <strong>przykładowy tekst</strong>. Korzystasz z programu <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Właściwości dokumentu",txtColor:"Kolor tekstu",xhtmlDec:"Uwzględnij deklaracje XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/pt-br.js b/src/lib/ckeditor/plugins/docprops/lang/pt-br.js new file mode 100644 index 00000000..c671fed0 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt-br",{bgColor:"Cor do Plano de Fundo",bgFixed:"Plano de Fundo Fixo",bgImage:"URL da Imagem de Plano de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Tradicional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Escolher",design:"Design", +docTitle:"Título da Página",docType:"Cabeçalho Tipo de Documento",docTypeOther:"Outro Tipo de Documento",label:"Propriedades Documento",margin:"Margens da Página",marginBottom:"Inferior",marginLeft:"Inferior",marginRight:"Direita",marginTop:"Superior",meta:"Meta Dados",metaAuthor:"Autor",metaCopyright:"Direitos Autorais",metaDescription:"Descrição do Documento",metaKeywords:"Palavras-chave de Indexação do Documento (separadas por vírgula)",other:"<outro>",previewHtml:'<p>Este é um <strong>texto de exemplo</strong>. Você está usando <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/pt.js b/src/lib/ckeditor/plugins/docprops/lang/pt.js new file mode 100644 index 00000000..ec1514d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt",{bgColor:"Cor de Fundo",bgFixed:"Fundo Fixo",bgImage:"Caminho para a Imagem de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Traditional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Choose",design:"Desenho",docTitle:"Título da Página", +docType:"Tipo de Cabeçalho do Documento",docTypeOther:"Outro Tipo de Cabeçalho do Documento",label:"Propriedades do Documento",margin:"Margem das Páginas",marginBottom:"Fundo",marginLeft:"Esquerda",marginRight:"Direita",marginTop:"Topo",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Direitos de Autor",metaDescription:"Descrição do Documento",metaKeywords:"Palavras de Indexação do Documento (separadas por virgula)",other:"<outro>",previewHtml:'<p>Isto é algum <strong>texto amostra</strong>. Está a usar o <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades do Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ro.js b/src/lib/ckeditor/plugins/docprops/lang/ro.js new file mode 100644 index 00000000..9aa0e6d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ro",{bgColor:"Culoarea fundalului (Background Color)",bgFixed:"Fundal neflotant, fix (Non-scrolling Background)",bgImage:"URL-ul imaginii din fundal (Background Image URL)",charset:"Encoding setului de caractere",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Chirilic",charsetCT:"Chinezesc tradiţional (Big5)",charsetGR:"Grecesc",charsetJP:"Japonez",charsetKR:"Corean",charsetOther:"Alt encoding al setului de caractere",charsetTR:"Turcesc",charsetUN:"Unicode (UTF-8)", +charsetWE:"Vest european",chooseColor:"Alege",design:"Design",docTitle:"Titlul paginii",docType:"Document Type Heading",docTypeOther:"Alt Document Type Heading",label:"Proprietăţile documentului",margin:"Marginile paginii",marginBottom:"Jos",marginLeft:"Stânga",marginRight:"Dreapta",marginTop:"Sus",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Drepturi de autor",metaDescription:"Descrierea documentului",metaKeywords:"Cuvinte cheie după care se va indexa documentul (separate prin virgulă)",other:"<alt>", +previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Proprietăţile documentului",txtColor:"Culoarea textului",xhtmlDec:"Include declaraţii XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ru.js b/src/lib/ckeditor/plugins/docprops/lang/ru.js new file mode 100644 index 00000000..01d585f6 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ru",{bgColor:"Цвет фона",bgFixed:"Фон прикреплён (не проматывается)",bgImage:"Ссылка на фоновое изображение",charset:"Кодировка набора символов",charsetASCII:"ASCII",charsetCE:"Центрально-европейская",charsetCR:"Кириллица",charsetCT:"Китайская традиционная (Big5)",charsetGR:"Греческая",charsetJP:"Японская",charsetKR:"Корейская",charsetOther:"Другая кодировка набора символов",charsetTR:"Турецкая",charsetUN:"Юникод (UTF-8)",charsetWE:"Западно-европейская",chooseColor:"Выберите", +design:"Дизайн",docTitle:"Заголовок страницы",docType:"Заголовок типа документа",docTypeOther:"Другой заголовок типа документа",label:"Свойства документа",margin:"Отступы страницы",marginBottom:"Нижний",marginLeft:"Левый",marginRight:"Правый",marginTop:"Верхний",meta:"Метаданные",metaAuthor:"Автор",metaCopyright:"Авторские права",metaDescription:"Описание документа",metaKeywords:"Ключевые слова документа (через запятую)",other:"Другой ...",previewHtml:'<p>Это <strong>пример</strong> текста, написанного с помощью <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Свойства документа",txtColor:"Цвет текста",xhtmlDec:"Включить объявления XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/si.js b/src/lib/ckeditor/plugins/docprops/lang/si.js new file mode 100644 index 00000000..19a7d6fa --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","si",{bgColor:"පසුබිම් වර්ණය",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"පසුබිම් ",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"මාධ්‍ය ",charsetCR:"සිරිලික් හෝඩිය",charsetCT:"චීන සම්ප්‍රදාය",charsetGR:"ග්‍රීක",charsetJP:"ජපාන",charsetKR:"Korean",charsetOther:"අනෙකුත් අක්ෂර කොටස්",charsetTR:"තුර්කි",charsetUN:"Unicode (UTF-8)",charsetWE:"බස්නාහිර ",chooseColor:"තෝරන්න",design:"Design",docTitle:"පිටු මාතෘකාව",docType:"ලිපිගොනු වර්ගයේ මාතෘකාව", +docTypeOther:"අනෙකුත් ලිපිගොනු වර්ගයේ මාතෘකා",label:"ලිපිගොනු ",margin:"පිටු සීමාවන්",marginBottom:"පහල",marginLeft:"වම",marginRight:"දකුණ",marginTop:"ඉ",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"ප්‍රකාශන ",metaDescription:"ලිපිගොනු ",metaKeywords:"ලිපිගොනු පෙලගේසමේ විශේෂ වචන (කොමා වලින් වෙන්කරන ලද)",other:"අනෙකුත්",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"පෝරමයේ ගුණ/",txtColor:"අක්ෂර වර්ණ",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/sk.js b/src/lib/ckeditor/plugins/docprops/lang/sk.js new file mode 100644 index 00000000..b347ab05 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sk",{bgColor:"Farba pozadia",bgFixed:"Fixné pozadie",bgImage:"URL obrázka na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Stredoeurópska",charsetCR:"Cyrillika",charsetCT:"Čínština tradičná (Big5)",charsetGR:"Gréčtina",charsetJP:"Japončina",charsetKR:"Korejčina",charsetOther:"Iná znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západná európa",chooseColor:"Vybrať",design:"Design",docTitle:"Titulok stránky",docType:"Typ záhlavia dokumentu", +docTypeOther:"Iný typ záhlavia dokumentu",label:"Vlastnosti dokumentu",margin:"Okraje stránky (margins)",marginBottom:"Dolný",marginLeft:"Ľavý",marginRight:"Pravý",marginTop:"Horný",meta:"Meta značky",metaAuthor:"Autor",metaCopyright:"Autorské práva (copyright)",metaDescription:"Popis dokumentu",metaKeywords:"Indexované kľúčové slová dokumentu (oddelené čiarkou)",other:"Iný...",previewHtml:'<p>Toto je nejaký <strong>ukážkový text</strong>. Používate <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Vlastnosti dokumentu",txtColor:"Farba textu",xhtmlDec:"Vložiť deklarácie XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/sl.js b/src/lib/ckeditor/plugins/docprops/lang/sl.js new file mode 100644 index 00000000..7017e1bd --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sl",{bgColor:"Barva ozadja",bgFixed:"Nepremično ozadje",bgImage:"URL slike za ozadje",charset:"Kodna tabela",charsetASCII:"ASCII",charsetCE:"Srednjeevropsko",charsetCR:"Cirilica",charsetCT:"Tradicionalno Kitajsko (Big5)",charsetGR:"Grško",charsetJP:"Japonsko",charsetKR:"Korejsko",charsetOther:"Druga kodna tabela",charsetTR:"Turško",charsetUN:"Unicode (UTF-8)",charsetWE:"Zahodnoevropsko",chooseColor:"Izberi",design:"Oblika",docTitle:"Naslov strani",docType:"Glava tipa dokumenta", +docTypeOther:"Druga glava tipa dokumenta",label:"Lastnosti dokumenta",margin:"Zamiki strani",marginBottom:"Spodaj",marginLeft:"Levo",marginRight:"Desno",marginTop:"Na vrhu",meta:"Meta podatki",metaAuthor:"Avtor",metaCopyright:"Avtorske pravice",metaDescription:"Opis strani",metaKeywords:"Ključne besede (ločene z vejicami)",other:"<drug>",previewHtml:'<p>Tole je<strong>primer besedila</strong>. Uporabljate <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Lastnosti dokumenta",txtColor:"Barva besedila", +xhtmlDec:"Vstavi XHTML deklaracije"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/sq.js b/src/lib/ckeditor/plugins/docprops/lang/sq.js new file mode 100644 index 00000000..373c7293 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sq",{bgColor:"Ngjyra e Prapavijës",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"URL e Fotografisë së Prapavijës",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Evropës Qendrore",charsetCR:"Sllave",charsetCT:"Kinezisht Tradicional (Big5)",charsetGR:"Greke",charsetJP:"Japoneze",charsetKR:"Koreane",charsetOther:"Other Character Set Encoding",charsetTR:"Turke",charsetUN:"Unicode (UTF-8)",charsetWE:"Evropiano Perëndimor",chooseColor:"Përzgjidh", +design:"Dizajni",docTitle:"Titulli i Faqes",docType:"Document Type Heading",docTypeOther:"Koka e Llojit Tjetër të Dokumentit",label:"Karakteristikat e Dokumentit",margin:"Kufijtë e Faqes",marginBottom:"Poshtë",marginLeft:"Majtas",marginRight:"Djathtas",marginTop:"Lart",meta:"Meta Tags",metaAuthor:"Autori",metaCopyright:"Të drejtat e kopjimit",metaDescription:"Përshkrimi i Dokumentit",metaKeywords:"Fjalët kyçe të indeksimit të dokumentit (të ndarë me presje)",other:"Tjera...",previewHtml:'<p>Ky është nje <strong>tekst shembull</strong>. Ju jeni duke shfrytëzuar <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Karakteristikat e Dokumentit",txtColor:"Ngjyra e Tekstit",xhtmlDec:"Përfshij XHTML Deklarimet"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/sr-latn.js b/src/lib/ckeditor/plugins/docprops/lang/sr-latn.js new file mode 100644 index 00000000..77312ffb --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr-latn",{bgColor:"Boja pozadine",bgFixed:"Fiksirana pozadina",bgImage:"URL pozadinske slike",charset:"Kodiranje skupa karaktera",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Ostala kodiranja skupa karaktera",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Naslov stranice", +docType:"Zaglavlje tipa dokumenta",docTypeOther:"Ostala zaglavlja tipa dokumenta",label:"Osobine dokumenta",margin:"Margine stranice",marginBottom:"Donja",marginLeft:"Leva",marginRight:"Desna",marginTop:"Gornja",meta:"Metapodaci",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne reci za indeksiranje dokumenta (razdvojene zarezima)",other:"<остало>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Osobine dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ukljuci XHTML deklaracije"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/sr.js b/src/lib/ckeditor/plugins/docprops/lang/sr.js new file mode 100644 index 00000000..f50c3e4a --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr",{bgColor:"Боја позадине",bgFixed:"Фиксирана позадина",bgImage:"УРЛ позадинске слике",charset:"Кодирање скупа карактера",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Остала кодирања скупа карактера",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Наслов странице", +docType:"Заглавље типа документа",docTypeOther:"Остала заглавља типа документа",label:"Особине документа",margin:"Маргине странице",marginBottom:"Доња",marginLeft:"Лева",marginRight:"Десна",marginTop:"Горња",meta:"Метаподаци",metaAuthor:"Аутор",metaCopyright:"Ауторска права",metaDescription:"Опис документа",metaKeywords:"Кључне речи за индексирање документа (раздвојене зарезом)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Особине документа",txtColor:"Боја текста",xhtmlDec:"Улључи XHTML декларације"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/sv.js b/src/lib/ckeditor/plugins/docprops/lang/sv.js new file mode 100644 index 00000000..363de9bc --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","sv",{bgColor:"Bakgrundsfärg",bgFixed:"Fast bakgrund",bgImage:"Bakgrundsbildens URL",charset:"Teckenuppsättningar",charsetASCII:"ASCII",charsetCE:"Central Europa",charsetCR:"Kyrillisk",charsetCT:"Traditionell Kinesisk (Big5)",charsetGR:"Grekiska",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Övriga teckenuppsättningar",charsetTR:"Turkiska",charsetUN:"Unicode (UTF-8)",charsetWE:"Väst Europa",chooseColor:"Välj",design:"Design",docTitle:"Sidtitel",docType:"Sidhuvud", +docTypeOther:"Övriga sidhuvuden",label:"Dokumentegenskaper",margin:"Sidmarginal",marginBottom:"Botten",marginLeft:"Vänster",marginRight:"Höger",marginTop:"Topp",meta:"Metadata",metaAuthor:"Författare",metaCopyright:"Upphovsrätt",metaDescription:"Sidans beskrivning",metaKeywords:"Sidans nyckelord (kommaseparerade)",other:"Annan...",previewHtml:'<p>Detta är en <strong>exempel text</strong>. Du använder <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Textfärg",xhtmlDec:"Inkludera XHTML deklaration"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/th.js b/src/lib/ckeditor/plugins/docprops/lang/th.js new file mode 100644 index 00000000..2befc7f7 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","th",{bgColor:"สีพื้นหลัง",bgFixed:"พื้นหลังแบบไม่มีแถบเลื่อน",bgImage:"ที่อยู่อ้างอิงออนไลน์ของรูปพื้นหลัง (Image URL)",charset:"ชุดตัวอักษร",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"ชุดตัวอักษรอื่นๆ",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"ออกแบบ",docTitle:"ชื่อไตเติ้ล", +docType:"ประเภทของเอกสาร",docTypeOther:"ประเภทเอกสารอื่นๆ",label:"คุณสมบัติของเอกสาร",margin:"ระยะขอบของหน้าเอกสาร",marginBottom:"ด้านล่าง",marginLeft:"ด้านซ้าย",marginRight:"ด้านขวา",marginTop:"ด้านบน",meta:"ข้อมูลสำหรับเสิร์ชเอนจิ้น",metaAuthor:"ผู้สร้างเอกสาร",metaCopyright:"สงวนลิขสิทธิ์",metaDescription:"ประโยคอธิบายเกี่ยวกับเอกสาร",metaKeywords:"คำสำคัญอธิบายเอกสาร (คั่นคำด้วย คอมม่า)",other:"<อื่น ๆ>",previewHtml:'<p>นี่เป็น <strong>ข้อความตัวอย่าง</strong>. คุณกำลังใช้งาน <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"คุณสมบัติของเอกสาร",txtColor:"สีตัวอักษร",xhtmlDec:"รวมเอา XHTML Declarations ไว้ด้วย"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/tr.js b/src/lib/ckeditor/plugins/docprops/lang/tr.js new file mode 100644 index 00000000..00a35d43 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tr",{bgColor:"Arka Plan Rengi",bgFixed:"Sabit Arka Plan",bgImage:"Arka Plan Resim URLsi",charset:"Karakter Kümesi Kodlaması",charsetASCII:"ASCII",charsetCE:"Orta Avrupa",charsetCR:"Kiril",charsetCT:"Geleneksel Çince (Big5)",charsetGR:"Yunanca",charsetJP:"Japonca",charsetKR:"Korece",charsetOther:"Diğer Karakter Kümesi Kodlaması",charsetTR:"Türkçe",charsetUN:"Evrensel Kod (UTF-8)",charsetWE:"Batı Avrupa",chooseColor:"Seçiniz",design:"Dizayn",docTitle:"Sayfa Başlığı", +docType:"Belge Türü Başlığı",docTypeOther:"Diğer Belge Türü Başlığı",label:"Belge Özellikleri",margin:"Kenar Boşlukları",marginBottom:"Alt",marginLeft:"Sol",marginRight:"Sağ",marginTop:"Tepe",meta:"Tanım Bilgisi (Meta)",metaAuthor:"Yazar",metaCopyright:"Telif",metaDescription:"Belge Tanımı",metaKeywords:"Belge Dizinleme Anahtar Kelimeleri (virgülle ayrılmış)",other:"<diğer>",previewHtml:'<p>Bu bir <strong>örnek metindir</strong>. <a href="javascript:void(0)">CKEditor</a> kullanıyorsunuz.</p>',title:"Belge Özellikleri", +txtColor:"Yazı Rengi",xhtmlDec:"XHTML Bildirimlerini Dahil Et"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/tt.js b/src/lib/ckeditor/plugins/docprops/lang/tt.js new file mode 100644 index 00000000..c1c6ce14 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tt",{bgColor:"Фон төсе",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Урта Ауропа",charsetCR:"Кириллик",charsetCT:"Гадәти кытай (Big5)",charsetGR:"Грек",charsetJP:"Япон",charsetKR:"Корей",charsetOther:"Other Character Set Encoding",charsetTR:"Төрек",charsetUN:"Юникод (UTF-8)",charsetWE:"Көнбатыш Ауропа",chooseColor:"Сайлау",design:"Дизайн",docTitle:"Page Title",docType:"Document Type Heading", +docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Аска",marginLeft:"Сул",marginRight:"Right",marginTop:"Өскә",meta:"Meta Tags",metaAuthor:"Автор",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Башка...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Document Properties",txtColor:"Текст төсе", +xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/ug.js b/src/lib/ckeditor/plugins/docprops/lang/ug.js new file mode 100644 index 00000000..424d13a0 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ug",{bgColor:"تەگلىك رەڭگى",bgFixed:"تەگلىك سۈرەتنى دومىلاتما",bgImage:"تەگلىك سۈرەت",charset:"ھەرپ كودلىنىشى",charsetASCII:"ASCII",charsetCE:"ئوتتۇرا ياۋرۇپا",charsetCR:"سىلاۋيانچە",charsetCT:"مۇرەككەپ خەنزۇچە (Big5)",charsetGR:"گىرېكچە",charsetJP:"ياپونچە",charsetKR:"كۆرىيەچە",charsetOther:"باشقا ھەرپ كودلىنىشى",charsetTR:"تۈركچە",charsetUN:"يۇنىكود (UTF-8)",charsetWE:"غەربىي ياۋرۇپا",chooseColor:"تاللاڭ",design:"لايىھە",docTitle:"بەت ماۋزۇسى",docType:"پۈتۈك تىپى", +docTypeOther:"باشقا پۈتۈك تىپى",label:"بەت خاسلىقى",margin:"بەت گىرۋەك",marginBottom:"ئاستى",marginLeft:"سول",marginRight:"ئوڭ",marginTop:"ئۈستى",meta:"مېتا سانلىق مەلۇمات",metaAuthor:"يازغۇچى",metaCopyright:"نەشر ھوقۇقى",metaDescription:"بەت يۈزى چۈشەندۈرۈشى",metaKeywords:"بەت يۈزى ئىندېكىس ھالقىلىق سۆزى (ئىنگلىزچە پەش [,] بىلەن ئايرىلىدۇ)",other:"باشقا",previewHtml:'<p>بۇ بىر قىسىم <strong>كۆرسەتمىگە ئىشلىتىدىغان تېكىست </strong>سىز نۆۋەتتە <a href="javascript:void(0)">CKEditor</a>.نى ئىشلىتىۋاتىسىز.</p>', +title:"بەت خاسلىقى",txtColor:"تېكىست رەڭگى",xhtmlDec:"XHTML ئېنىقلىمىسىنى ئۆز ئىچىگە ئالىدۇ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/uk.js b/src/lib/ckeditor/plugins/docprops/lang/uk.js new file mode 100644 index 00000000..c1027967 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","uk",{bgColor:"Колір тла",bgFixed:"Тло без прокрутки",bgImage:"URL зображення тла",charset:"Кодування набору символів",charsetASCII:"ASCII",charsetCE:"Центрально-європейська",charsetCR:"Кирилиця",charsetCT:"Китайська традиційна (Big5)",charsetGR:"Грецька",charsetJP:"Японська",charsetKR:"Корейська",charsetOther:"Інше кодування набору символів",charsetTR:"Турецька",charsetUN:"Юнікод (UTF-8)",charsetWE:"Західно-европейская",chooseColor:"Обрати",design:"Дизайн",docTitle:"Заголовок сторінки", +docType:"Заголовок типу документу",docTypeOther:"Інший заголовок типу документу",label:"Властивості документа",margin:"Відступи сторінки",marginBottom:"Нижній",marginLeft:"Лівий",marginRight:"Правий",marginTop:"Верхній",meta:"Мета дані",metaAuthor:"Автор",metaCopyright:"Авторські права",metaDescription:"Опис документа",metaKeywords:"Ключові слова документа (розділені комами)",other:"<інший>",previewHtml:'<p>Це приклад<strong>тексту</strong>. Ви використовуєте<a href="javascript:void(0)"> CKEditor </a>.</p>', +title:"Властивості документа",txtColor:"Колір тексту",xhtmlDec:"Ввімкнути XHTML оголошення"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/vi.js b/src/lib/ckeditor/plugins/docprops/lang/vi.js new file mode 100644 index 00000000..b4583767 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","vi",{bgColor:"Màu nền",bgFixed:"Không cuộn nền",bgImage:"URL của Hình ảnh nền",charset:"Bảng mã ký tự",charsetASCII:"ASCII",charsetCE:"Trung Âu",charsetCR:"Tiếng Kirin",charsetCT:"Tiếng Trung Quốc (Big5)",charsetGR:"Tiếng Hy Lạp",charsetJP:"Tiếng Nhật",charsetKR:"Tiếng Hàn",charsetOther:"Bảng mã ký tự khác",charsetTR:"Tiếng Thổ Nhĩ Kỳ",charsetUN:"Unicode (UTF-8)",charsetWE:"Tây Âu",chooseColor:"Chọn màu",design:"Thiết kế",docTitle:"Tiêu đề Trang",docType:"Kiểu Đề mục Tài liệu", +docTypeOther:"Kiểu Đề mục Tài liệu khác",label:"Thuộc tính Tài liệu",margin:"Đường biên của Trang",marginBottom:"Dưới",marginLeft:"Trái",marginRight:"Phải",marginTop:"Trên",meta:"Siêu dữ liệu",metaAuthor:"Tác giả",metaCopyright:"Bản quyền",metaDescription:"Mô tả tài liệu",metaKeywords:"Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",other:"<khác>",previewHtml:'<p>Đây là một số <strong>văn bản mẫu</strong>. Bạn đang sử dụng <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Thuộc tính Tài liệu", +txtColor:"Màu chữ",xhtmlDec:"Bao gồm cả định nghĩa XHTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/zh-cn.js b/src/lib/ckeditor/plugins/docprops/lang/zh-cn.js new file mode 100644 index 00000000..d8c87e71 --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh-cn",{bgColor:"背景颜色",bgFixed:"不滚动背景图像",bgImage:"背景图像",charset:"字符编码",charsetASCII:"ASCII",charsetCE:"中欧",charsetCR:"西里尔文",charsetCT:"繁体中文 (Big5)",charsetGR:"希腊文",charsetJP:"日文",charsetKR:"韩文",charsetOther:"其它字符编码",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西欧",chooseColor:"选择",design:"设计",docTitle:"页面标题",docType:"文档类型",docTypeOther:"其它文档类型",label:"页面属性",margin:"页面边距",marginBottom:"下",marginLeft:"左",marginRight:"右",marginTop:"上",meta:"Meta 数据",metaAuthor:"作者", +metaCopyright:"版权",metaDescription:"页面说明",metaKeywords:"页面索引关键字 (用半角逗号[,]分隔)",other:"<其他>",previewHtml:'<p>这是一些<strong>演示用文字</strong>。您当前正在使用<a href="javascript:void(0)">CKEditor</a>。</p>',title:"页面属性",txtColor:"文本颜色",xhtmlDec:"包含 XHTML 声明"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/lang/zh.js b/src/lib/ckeditor/plugins/docprops/lang/zh.js new file mode 100644 index 00000000..193a57da --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh",{bgColor:"背景顏色",bgFixed:"非捲動 (固定) 背景",bgImage:"背景圖像 URL",charset:"字元集編碼",charsetASCII:"ASCII",charsetCE:"中歐語系",charsetCR:"斯拉夫文",charsetCT:"正體中文 (Big5)",charsetGR:"希臘文",charsetJP:"日文",charsetKR:"韓文",charsetOther:"其他字元集編碼",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西歐語系",chooseColor:"選擇",design:"設計模式",docTitle:"頁面標題",docType:"文件類型標題",docTypeOther:"其他文件類型標題",label:"文件屬性",margin:"頁面邊界",marginBottom:"底端",marginLeft:"左",marginRight:"右",marginTop:"頂端", +meta:"Meta 標籤",metaAuthor:"作者",metaCopyright:"版權資訊",metaDescription:"文件描述",metaKeywords:"文件索引關鍵字 (以逗號分隔)",other:"其他…",previewHtml:'<p>此為簡短的<strong>範例文字</strong>。您正在使用 <a href="javascript:void(0)">CKEditor</a>。</p>',title:"文件屬性",txtColor:"文字顏色",xhtmlDec:"包含 XHTML 宣告"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/docprops/plugin.js b/src/lib/ckeditor/plugins/docprops/plugin.js new file mode 100644 index 00000000..efbe090f --- /dev/null +++ b/src/lib/ckeditor/plugins/docprops/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("docprops",{requires:"wysiwygarea,dialog,colordialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"docprops,docprops-rtl",hidpi:!0,init:function(a){var b=new CKEDITOR.dialogCommand("docProps");b.modes={wysiwyg:a.config.fullPage};b.allowedContent={body:{styles:"*",attributes:"dir"},html:{attributes:"lang,xml:lang"}}; +b.requiredContent="body";a.addCommand("docProps",b);CKEDITOR.dialog.add("docProps",this.path+"dialogs/docprops.js");a.ui.addButton&&a.ui.addButton("DocProps",{label:a.lang.docprops.label,command:"docProps",toolbar:"document,30"})}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/dialogs/find.js b/src/lib/ckeditor/plugins/find/dialogs/find.js new file mode 100644 index 00000000..0ad6a589 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/dialogs/find.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(c){return c.type==CKEDITOR.NODE_TEXT&&0<c.getLength()&&(!o||!c.isReadOnly())}function s(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)))}var o,t=function(){return{textNode:this.textNode,offset:this.offset,character:this.textNode?this.textNode.getText().charAt(this.offset):null,hitMatchBoundary:this._.matchBoundary}},u=["find","replace"],p=[["txtFindFind","txtFindReplace"],["txtFindCaseChk", +"txtReplaceCaseChk"],["txtFindWordChk","txtReplaceWordChk"],["txtFindCyclic","txtReplaceCyclic"]],n=function(c,g){function n(a,b){var d=c.createRange();d.setStart(a.textNode,b?a.offset:a.offset+1);d.setEndAt(c.editable(),CKEDITOR.POSITION_BEFORE_END);return d}function q(a){var b=c.getSelection(),d=c.editable();b&&!a?(a=b.getRanges()[0].clone(),a.collapse(!0)):(a=c.createRange(),a.setStartAt(d,CKEDITOR.POSITION_AFTER_START));a.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);return a}var v=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1}, +fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},c.config.find_highlight,!0)),l=function(a,b){var d=this,c=new CKEDITOR.dom.walker(a);c.guard=b?s:function(a){!s(a)&&(d._.matchBoundary=!0)};c.evaluator=y;c.breakOnFalse=1;a.startContainer.type==CKEDITOR.NODE_TEXT&&(this.textNode=a.startContainer,this.offset=a.startOffset-1);this._={matchWord:b,walker:c,matchBoundary:!1}};l.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(a){var b=this.textNode; +if(null===b)return t.call(this);this._.matchBoundary=!1;if(b&&a&&0<this.offset)this.offset--;else if(b&&this.offset<b.getLength()-1)this.offset++;else{for(b=null;!b&&!(b=this._.walker[a?"previous":"next"].call(this._.walker),this._.matchWord&&!b||this._.walker._.end););this.offset=(this.textNode=b)?a?b.getLength()-1:0:0}return t.call(this)}};var r=function(a,b){this._={walker:a,cursors:[],rangeLength:b,highlightRange:null,isMatched:0}};r.prototype={toDomRange:function(){var a=c.createRange(),b=this._.cursors; +if(1>b.length){var d=this._.walker.textNode;if(d)a.setStartAfter(d);else return null}else d=b[0],b=b[b.length-1],a.setStart(d.textNode,d.offset),a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new l(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1> +this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();v.applyToRange(a,c);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();v.removeFromRange(this._.highlightRange,c);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange); +this._.highlightRange=null}},isReadOnly:function(){return!this._.highlightRange?0:this._.highlightRange.startContainer.isReadOnly()},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a);b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors; +return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,d;d=this._.cursors;d=(b=d[d.length-1])&&b.textNode?new l(n(b)):this._.walker;return new r(d,a)},getCursors:function(){return this._.cursors}};var w=function(a,b){var d=[-1];b&&(a=a.toLowerCase());for(var c=0;c<a.length;c++)for(d.push(d[c]+1);0<d[c+1]&&a.charAt(c)!=a.charAt(d[c+1]-1);)d[c+1]=d[d[c+1]-1]+1;this._={overlap:d,state:0,ignoreCase:!!b,pattern:a}};w.prototype={feedCharacter:function(a){for(this._.ignoreCase&& +(a=a.toLowerCase());;){if(a==this._.pattern.charAt(this._.state))return this._.state++,this._.state==this._.pattern.length?(this._.state=0,2):1;if(this._.state)this._.state=this._.overlap[this._.state];else return 0}return null},reset:function(){this._.state=0}};var z=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,x=function(a){if(!a)return!0;var b=a.charCodeAt(0);return 9<=b&&13>=b||8192<=b&&8202>=b||z.test(a)},e={searchRange:null,matchRange:null,find:function(a,b,d,f,e,A){this.matchRange? +(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(a.length)):this.matchRange=new r(new l(this.searchRange),a.length);for(var i=new w(a,!b),j=0,k="%";null!==k;){for(this.matchRange.moveNext();k=this.matchRange.getEndCharacter();){j=i.feedCharacter(k);if(2==j)break;this.matchRange.moveNext().hitMatchBoundary&&i.reset()}if(2==j){if(d){var h=this.matchRange.getCursors(),m=h[h.length-1],h=h[0],g=c.createRange();g.setStartAt(c.editable(),CKEDITOR.POSITION_AFTER_START); +g.setEnd(h.textNode,h.offset);h=g;m=n(m);h.trim();m.trim();h=new l(h,!0);m=new l(m,!0);if(!x(h.back().character)||!x(m.next().character))continue}this.matchRange.setMatched();!1!==e&&this.matchRange.highlight();return!0}}this.matchRange.clearMatched();this.matchRange.removeHighlight();return f&&!A?(this.searchRange=q(1),this.matchRange=null,arguments.callee.apply(this,Array.prototype.slice.call(arguments).concat([!0]))):!1},replaceCounter:0,replace:function(a,b,d,f,e,g,i){o=1;a=0;if(this.matchRange&& +this.matchRange.isMatched()&&!this.matchRange._.isReplaced&&!this.matchRange.isReadOnly()){this.matchRange.removeHighlight();b=this.matchRange.toDomRange();d=c.document.createText(d);if(!i){var j=c.getSelection();j.selectRanges([b]);c.fire("saveSnapshot")}b.deleteContents();b.insertNode(d);i||(j.selectRanges([b]),c.fire("saveSnapshot"));this.matchRange.updateFromDomRange(b);i||this.matchRange.highlight();this.matchRange._.isReplaced=!0;this.replaceCounter++;a=1}else a=this.find(b,f,e,g,!i);o=0;return a}}, +f=c.lang.find;return{title:f.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton(c,{label:c.lang.common.close})],contents:[{id:"find",label:f.find,title:f.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:f.find,onClick:function(){var a=this.getDialog(); +e.find(a.getValueOf("find","txtFindFind"),a.getValueOf("find","txtFindCaseChk"),a.getValueOf("find","txtFindWordChk"),a.getValueOf("find","txtFindCyclic"))||alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0, +label:f.matchCyclic}]}]}]},{id:"replace",label:f.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindReplace",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:f.replace,onClick:function(){var a=this.getDialog();e.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace", +"txtReplaceWordChk"),a.getValueOf("replace","txtReplaceCyclic"))||alert(f.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtReplace",label:f.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:f.replaceAll,isChanged:!1,onClick:function(){var a=this.getDialog();e.replaceCounter=0;e.searchRange=q(1);e.matchRange&&(e.matchRange.removeHighlight(),e.matchRange=null);for(c.fire("saveSnapshot");e.replace(a, +a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),!1,!0););e.replaceCounter?(alert(f.replaceSuccessMsg.replace(/%1/,e.replaceCounter)),c.fire("saveSnapshot")):alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtReplaceWordChk", +isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:f.matchCyclic}]}]}]}],onLoad:function(){var a=this,b,c=0;this.on("hide",function(){c=0});this.on("show",function(){c=1});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(f){return function(e){f.call(a,e);var g=a._.tabs[e],i;i="find"===e?"txtFindWordChk":"txtReplaceWordChk";b=a.getContentElement(e,"find"===e?"txtFindFind":"txtFindReplace");a.getContentElement(e,i);g.initialized||(CKEDITOR.document.getById(b._.inputId), +g.initialized=!0);if(c){var j,e="find"===e?1:0,g=1-e,k,h=p.length;for(k=0;k<h;k++)i=this.getContentElement(u[e],p[k][e]),j=this.getContentElement(u[g],p[k][g]),j.setValue(i.getValue())}}})},onShow:function(){e.searchRange=q();var a=this.getParentEditor().getSelection().getSelectedText(),b=this.getContentElement(g,"find"==g?"txtFindFind":"txtFindReplace");b.setValue(a);b.select();this.selectPage(g);this[("find"==g&&this._.editor.readOnly?"hide":"show")+"Page"]("replace")},onHide:function(){var a;e.matchRange&& +e.matchRange.isMatched()&&(e.matchRange.removeHighlight(),c.focus(),(a=e.matchRange.toDomRange())&&c.getSelection().selectRanges([a]));delete e.matchRange},onFocus:function(){return"replace"==g?this.getContentElement("replace","txtFindReplace"):this.getContentElement("find","txtFindFind")}}};CKEDITOR.dialog.add("find",function(c){return n(c,"find")});CKEDITOR.dialog.add("replace",function(c){return n(c,"replace")})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/icons/find-rtl.png b/src/lib/ckeditor/plugins/find/icons/find-rtl.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/src/lib/ckeditor/plugins/find/icons/find-rtl.png differ diff --git a/src/lib/ckeditor/plugins/find/icons/find.png b/src/lib/ckeditor/plugins/find/icons/find.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/src/lib/ckeditor/plugins/find/icons/find.png differ diff --git a/src/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png b/src/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/src/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png differ diff --git a/src/lib/ckeditor/plugins/find/icons/hidpi/find.png b/src/lib/ckeditor/plugins/find/icons/hidpi/find.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/src/lib/ckeditor/plugins/find/icons/hidpi/find.png differ diff --git a/src/lib/ckeditor/plugins/find/icons/hidpi/replace.png b/src/lib/ckeditor/plugins/find/icons/hidpi/replace.png new file mode 100644 index 00000000..9efd8bbd Binary files /dev/null and b/src/lib/ckeditor/plugins/find/icons/hidpi/replace.png differ diff --git a/src/lib/ckeditor/plugins/find/icons/replace.png b/src/lib/ckeditor/plugins/find/icons/replace.png new file mode 100644 index 00000000..e68afcbe Binary files /dev/null and b/src/lib/ckeditor/plugins/find/icons/replace.png differ diff --git a/src/lib/ckeditor/plugins/find/lang/af.js b/src/lib/ckeditor/plugins/find/lang/af.js new file mode 100644 index 00000000..79e13e84 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","af",{find:"Soek",findOptions:"Find Options",findWhat:"Soek na:",matchCase:"Hoof/kleinletter sensitief",matchCyclic:"Soek deurlopend",matchWord:"Hele woord moet voorkom",notFoundMsg:"Teks nie gevind nie.",replace:"Vervang",replaceAll:"Vervang alles",replaceSuccessMsg:"%1 voorkoms(te) vervang.",replaceWith:"Vervang met:",title:"Soek en vervang"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ar.js b/src/lib/ckeditor/plugins/find/lang/ar.js new file mode 100644 index 00000000..e995c89d --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ar",{find:"بحث",findOptions:"Find Options",findWhat:"البحث بـ:",matchCase:"مطابقة حالة الأحرف",matchCyclic:"مطابقة دورية",matchWord:"مطابقة بالكامل",notFoundMsg:"لم يتم العثور على النص المحدد.",replace:"إستبدال",replaceAll:"إستبدال الكل",replaceSuccessMsg:"تم استبدال 1% من الحالات ",replaceWith:"إستبدال بـ:",title:"بحث واستبدال"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/bg.js b/src/lib/ckeditor/plugins/find/lang/bg.js new file mode 100644 index 00000000..844a0b27 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bg",{find:"Търсене",findOptions:"Find Options",findWhat:"Търси за:",matchCase:"Съвпадение",matchCyclic:"Циклично съвпадение",matchWord:"Съвпадение с дума",notFoundMsg:"Указаният текст не е намерен.",replace:"Препокриване",replaceAll:"Препокрий всички",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Препокрива с:",title:"Търсене и препокриване"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/bn.js b/src/lib/ckeditor/plugins/find/lang/bn.js new file mode 100644 index 00000000..f80be452 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bn",{find:"খোজো",findOptions:"Find Options",findWhat:"যা খুঁজতে হবে:",matchCase:"কেস মিলাও",matchCyclic:"Match cyclic",matchWord:"পুরা শব্দ মেলাও",notFoundMsg:"আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",replace:"রিপ্লেস",replaceAll:"সব বদলে দাও",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"যার সাথে বদলাতে হবে:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/bs.js b/src/lib/ckeditor/plugins/find/lang/bs.js new file mode 100644 index 00000000..4941067b --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bs",{find:"Naði",findOptions:"Find Options",findWhat:"Naði šta:",matchCase:"Uporeðuj velika/mala slova",matchCyclic:"Match cyclic",matchWord:"Uporeðuj samo cijelu rijeè",notFoundMsg:"Traženi tekst nije pronaðen.",replace:"Zamjeni",replaceAll:"Zamjeni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zamjeni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ca.js b/src/lib/ckeditor/plugins/find/lang/ca.js new file mode 100644 index 00000000..85448cf4 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ca",{find:"Cerca",findOptions:"Opcions de Cerca",findWhat:"Cerca el:",matchCase:"Distingeix majúscules/minúscules",matchCyclic:"Coincidència cíclica",matchWord:"Només paraules completes",notFoundMsg:"El text especificat no s'ha trobat.",replace:"Reemplaça",replaceAll:"Reemplaça-ho tot",replaceSuccessMsg:"%1 ocurrència/es reemplaçada/es.",replaceWith:"Reemplaça amb:",title:"Cerca i reemplaça"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/cs.js b/src/lib/ckeditor/plugins/find/lang/cs.js new file mode 100644 index 00000000..a63cd194 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cs",{find:"Hledat",findOptions:"Možnosti hledání",findWhat:"Co hledat:",matchCase:"Rozlišovat velikost písma",matchCyclic:"Procházet opakovaně",matchWord:"Pouze celá slova",notFoundMsg:"Hledaný text nebyl nalezen.",replace:"Nahradit",replaceAll:"Nahradit vše",replaceSuccessMsg:"%1 nahrazení.",replaceWith:"Čím nahradit:",title:"Najít a nahradit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/cy.js b/src/lib/ckeditor/plugins/find/lang/cy.js new file mode 100644 index 00000000..3e87336f --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cy",{find:"Chwilio",findOptions:"Opsiynau Chwilio",findWhat:"Chwilio'r term:",matchCase:"Cydweddu'r cas",matchCyclic:"Cydweddu'n gylchol",matchWord:"Cydweddu gair cyfan",notFoundMsg:"Nid oedd y testun wedi'i ddarganfod.",replace:"Amnewid Un",replaceAll:"Amnewid Pob",replaceSuccessMsg:"Amnewidiwyd %1 achlysur.",replaceWith:"Amnewid gyda:",title:"Chwilio ac Amnewid"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/da.js b/src/lib/ckeditor/plugins/find/lang/da.js new file mode 100644 index 00000000..35693e27 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","da",{find:"Søg",findOptions:"Find muligheder",findWhat:"Søg efter:",matchCase:"Forskel på store og små bogstaver",matchCyclic:"Match cyklisk",matchWord:"Kun hele ord",notFoundMsg:"Søgeteksten blev ikke fundet",replace:"Erstat",replaceAll:"Erstat alle",replaceSuccessMsg:"%1 forekomst(er) erstattet.",replaceWith:"Erstat med:",title:"Søg og erstat"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/de.js b/src/lib/ckeditor/plugins/find/lang/de.js new file mode 100644 index 00000000..5295d06e --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","de",{find:"Suchen",findOptions:"Suchoptionen",findWhat:"Suche nach:",matchCase:"Groß-Kleinschreibung beachten",matchCyclic:"Zyklische Suche",matchWord:"Nur ganze Worte suchen",notFoundMsg:"Der gesuchte Text wurde nicht gefunden.",replace:"Ersetzen",replaceAll:"Alle ersetzen",replaceSuccessMsg:"%1 vorkommen ersetzt.",replaceWith:"Ersetze mit:",title:"Suchen und Ersetzen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/el.js b/src/lib/ckeditor/plugins/find/lang/el.js new file mode 100644 index 00000000..f559f2a0 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","el",{find:"Εύρεση",findOptions:"Επιλογές Εύρεσης",findWhat:"Εύρεση για:",matchCase:"Ταίριασμα πεζών/κεφαλαίων",matchCyclic:"Αναδρομική εύρεση",matchWord:"Εύρεση μόνο πλήρων λέξεων",notFoundMsg:"Το κείμενο δεν βρέθηκε.",replace:"Αντικατάσταση",replaceAll:"Αντικατάσταση Όλων",replaceSuccessMsg:"Ο(ι) όρος(-οι) αντικαταστήθηκε(-αν) %1 φορές.",replaceWith:"Αντικατάσταση με:",title:"Εύρεση και Αντικατάσταση"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/en-au.js b/src/lib/ckeditor/plugins/find/lang/en-au.js new file mode 100644 index 00000000..ad033791 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-au",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/en-ca.js b/src/lib/ckeditor/plugins/find/lang/en-ca.js new file mode 100644 index 00000000..d217f653 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-ca",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/en-gb.js b/src/lib/ckeditor/plugins/find/lang/en-gb.js new file mode 100644 index 00000000..dfbafb7e --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-gb",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/en.js b/src/lib/ckeditor/plugins/find/lang/en.js new file mode 100644 index 00000000..6865f0b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/eo.js b/src/lib/ckeditor/plugins/find/lang/eo.js new file mode 100644 index 00000000..9fde69e3 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eo",{find:"Serĉi",findOptions:"Opcioj pri Serĉado",findWhat:"Serĉi:",matchCase:"Kongruigi Usklecon",matchCyclic:"Cikla Serĉado",matchWord:"Tuta Vorto",notFoundMsg:"La celteksto ne estas trovita.",replace:"Anstataŭigi",replaceAll:"Anstataŭigi Ĉion",replaceSuccessMsg:"%1 anstataŭigita(j) apero(j).",replaceWith:"Anstataŭigi per:",title:"Serĉi kaj Anstataŭigi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/es.js b/src/lib/ckeditor/plugins/find/lang/es.js new file mode 100644 index 00000000..2efd39ce --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","es",{find:"Buscar",findOptions:"Opciones de búsqueda",findWhat:"Texto a buscar:",matchCase:"Coincidir may/min",matchCyclic:"Buscar en todo el contenido",matchWord:"Coincidir toda la palabra",notFoundMsg:"El texto especificado no ha sido encontrado.",replace:"Reemplazar",replaceAll:"Reemplazar Todo",replaceSuccessMsg:"La expresión buscada ha sido reemplazada %1 veces.",replaceWith:"Reemplazar con:",title:"Buscar y Reemplazar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/et.js b/src/lib/ckeditor/plugins/find/lang/et.js new file mode 100644 index 00000000..bcc39210 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","et",{find:"Otsi",findOptions:"Otsingu valikud",findWhat:"Otsitav:",matchCase:"Suur- ja väiketähtede eristamine",matchCyclic:"Jätkatakse algusest",matchWord:"Ainult terved sõnad",notFoundMsg:"Otsitud teksti ei leitud.",replace:"Asenda",replaceAll:"Asenda kõik",replaceSuccessMsg:"%1 vastet asendati.",replaceWith:"Asendus:",title:"Otsimine ja asendamine"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/eu.js b/src/lib/ckeditor/plugins/find/lang/eu.js new file mode 100644 index 00000000..f082555f --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eu",{find:"Bilatu",findOptions:"Find Options",findWhat:"Zer bilatu:",matchCase:"Maiuskula/minuskula",matchCyclic:"Bilaketa ziklikoa",matchWord:"Esaldi osoa bilatu",notFoundMsg:"Idatzitako testua ez da topatu.",replace:"Ordezkatu",replaceAll:"Ordeztu Guztiak",replaceSuccessMsg:"Zenbat aldiz ordeztua: %1",replaceWith:"Zerekin ordeztu:",title:"Bilatu eta Ordeztu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/fa.js b/src/lib/ckeditor/plugins/find/lang/fa.js new file mode 100644 index 00000000..2339c6dd --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fa",{find:"جستجو",findOptions:"گزینه​های جستجو",findWhat:"چه چیز را مییابید:",matchCase:"همسانی در بزرگی و کوچکی نویسه​ها",matchCyclic:"همسانی با چرخه",matchWord:"همسانی با واژهٴ کامل",notFoundMsg:"متن موردنظر یافت نشد.",replace:"جایگزینی",replaceAll:"جایگزینی همهٴ یافته​ها",replaceSuccessMsg:"%1 رخداد جایگزین شد.",replaceWith:"جایگزینی با:",title:"جستجو و جایگزینی"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/fi.js b/src/lib/ckeditor/plugins/find/lang/fi.js new file mode 100644 index 00000000..79daf814 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fi",{find:"Etsi",findOptions:"Hakuasetukset",findWhat:"Etsi mitä:",matchCase:"Sama kirjainkoko",matchCyclic:"Kierrä ympäri",matchWord:"Koko sana",notFoundMsg:"Etsittyä tekstiä ei löytynyt.",replace:"Korvaa",replaceAll:"Korvaa kaikki",replaceSuccessMsg:"%1 esiintymä(ä) korvattu.",replaceWith:"Korvaa tällä:",title:"Etsi ja korvaa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/fo.js b/src/lib/ckeditor/plugins/find/lang/fo.js new file mode 100644 index 00000000..1e3dc043 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fo",{find:"Leita",findOptions:"Finn møguleikar",findWhat:"Finn:",matchCase:"Munur á stórum og smáum bókstavum",matchCyclic:"Match cyclic",matchWord:"Bert heil orð",notFoundMsg:"Leititeksturin varð ikki funnin",replace:"Yvirskriva",replaceAll:"Yvirskriva alt",replaceSuccessMsg:"%1 úrslit broytt.",replaceWith:"Yvirskriva við:",title:"Finn og broyt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/fr-ca.js b/src/lib/ckeditor/plugins/find/lang/fr-ca.js new file mode 100644 index 00000000..59a8e22c --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr-ca",{find:"Rechercher",findOptions:"Options de recherche",findWhat:"Rechercher:",matchCase:"Respecter la casse",matchCyclic:"Recherche cyclique",matchWord:"Mot entier",notFoundMsg:"Le texte indiqué est introuvable.",replace:"Remplacer",replaceAll:"Tout remplacer",replaceSuccessMsg:"%1 remplacements.",replaceWith:"Remplacer par:",title:"Rechercher et remplacer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/fr.js b/src/lib/ckeditor/plugins/find/lang/fr.js new file mode 100644 index 00000000..a7b4218e --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr",{find:"Trouver",findOptions:"Options de recherche",findWhat:"Expression à trouver: ",matchCase:"Respecter la casse",matchCyclic:"Boucler",matchWord:"Mot entier uniquement",notFoundMsg:"Le texte spécifié ne peut être trouvé.",replace:"Remplacer",replaceAll:"Remplacer tout",replaceSuccessMsg:"%1 occurrence(s) replacée(s).",replaceWith:"Remplacer par: ",title:"Trouver et remplacer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/gl.js b/src/lib/ckeditor/plugins/find/lang/gl.js new file mode 100644 index 00000000..be892489 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gl",{find:"Buscar",findOptions:"Buscar opcións",findWhat:"Texto a buscar:",matchCase:"Coincidir Mai./min.",matchCyclic:"Coincidencia cíclica",matchWord:"Coincidencia coa palabra completa",notFoundMsg:"Non se atopou o texto indicado.",replace:"Substituir",replaceAll:"Substituír todo",replaceSuccessMsg:"%1 concorrencia(s) substituída(s).",replaceWith:"Substituír con:",title:"Buscar e substituír"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/gu.js b/src/lib/ckeditor/plugins/find/lang/gu.js new file mode 100644 index 00000000..572afcfd --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gu",{find:"શોધવું",findOptions:"વીકલ્પ શોધો",findWhat:"આ શોધો",matchCase:"કેસ સરખા રાખો",matchCyclic:"સરખાવવા બધા",matchWord:"બઘા શબ્દ સરખા રાખો",notFoundMsg:"તમે શોધેલી ટેક્સ્ટ નથી મળી",replace:"રિપ્લેસ/બદલવું",replaceAll:"બઘા બદલી ",replaceSuccessMsg:"%1 ફેરફારો બાદલાયા છે.",replaceWith:"આનાથી બદલો",title:"શોધવું અને બદલવું"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/he.js b/src/lib/ckeditor/plugins/find/lang/he.js new file mode 100644 index 00000000..ea4e4224 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","he",{find:"חיפוש",findOptions:"אפשרויות חיפוש",findWhat:"חיפוש מחרוזת:",matchCase:"הבחנה בין אותיות רשיות לקטנות (Case)",matchCyclic:"התאמה מחזורית",matchWord:"התאמה למילה המלאה",notFoundMsg:"הטקסט המבוקש לא נמצא.",replace:"החלפה",replaceAll:"החלפה בכל העמוד",replaceSuccessMsg:"%1 טקסטים הוחלפו.",replaceWith:"החלפה במחרוזת:",title:"חיפוש והחלפה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/hi.js b/src/lib/ckeditor/plugins/find/lang/hi.js new file mode 100644 index 00000000..d67da0a3 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hi",{find:"खोजें",findOptions:"Find Options",findWhat:"यह खोजें:",matchCase:"केस मिलायें",matchCyclic:"Match cyclic",matchWord:"पूरा शब्द मिलायें",notFoundMsg:"आपके द्वारा दिया गया टेक्स्ट नहीं मिला",replace:"रीप्लेस",replaceAll:"सभी रिप्लेस करें",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"इससे रिप्लेस करें:",title:"खोजें और बदलें"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/hr.js b/src/lib/ckeditor/plugins/find/lang/hr.js new file mode 100644 index 00000000..bcca21eb --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hr",{find:"Pronađi",findOptions:"Opcije traženja",findWhat:"Pronađi:",matchCase:"Usporedi mala/velika slova",matchCyclic:"Usporedi kružno",matchWord:"Usporedi cijele riječi",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamijeni",replaceAll:"Zamijeni sve",replaceSuccessMsg:"Zamijenjeno %1 pojmova.",replaceWith:"Zamijeni s:",title:"Pronađi i zamijeni"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/hu.js b/src/lib/ckeditor/plugins/find/lang/hu.js new file mode 100644 index 00000000..6ca2b808 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hu",{find:"Keresés",findOptions:"Find Options",findWhat:"Keresett szöveg:",matchCase:"kis- és nagybetű megkülönböztetése",matchCyclic:"Ciklikus keresés",matchWord:"csak ha ez a teljes szó",notFoundMsg:"A keresett szöveg nem található.",replace:"Csere",replaceAll:"Az összes cseréje",replaceSuccessMsg:"%1 egyezőség cserélve.",replaceWith:"Csere erre:",title:"Keresés és csere"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/id.js b/src/lib/ckeditor/plugins/find/lang/id.js new file mode 100644 index 00000000..4257045a --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","id",{find:"Temukan",findOptions:"Opsi menemukan",findWhat:"Temukan apa:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Ganti",replaceAll:"Ganti Semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Ganti dengan:",title:"Temukan dan Ganti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/is.js b/src/lib/ckeditor/plugins/find/lang/is.js new file mode 100644 index 00000000..d69cba6b --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","is",{find:"Leita",findOptions:"Find Options",findWhat:"Leita að:",matchCase:"Gera greinarmun á¡ há¡- og lágstöfum",matchCyclic:"Match cyclic",matchWord:"Aðeins heil orð",notFoundMsg:"Leitartexti fannst ekki!",replace:"Skipta út",replaceAll:"Skipta út allsstaðar",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Skipta út fyrir:",title:"Finna og skipta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/it.js b/src/lib/ckeditor/plugins/find/lang/it.js new file mode 100644 index 00000000..2aed2adc --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","it",{find:"Trova",findOptions:"Opzioni di ricerca",findWhat:"Trova:",matchCase:"Maiuscole/minuscole",matchCyclic:"Ricerca ciclica",matchWord:"Solo parole intere",notFoundMsg:"L'elemento cercato non è stato trovato.",replace:"Sostituisci",replaceAll:"Sostituisci tutto",replaceSuccessMsg:"%1 occorrenza(e) sostituite.",replaceWith:"Sostituisci con:",title:"Cerca e Sostituisci"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ja.js b/src/lib/ckeditor/plugins/find/lang/ja.js new file mode 100644 index 00000000..f2043d1f --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ja",{find:"検索",findOptions:"検索オプション",findWhat:"検索する文字列:",matchCase:"大文字と小文字を区別する",matchCyclic:"末尾に逹したら先頭に戻る",matchWord:"単語単位で探す",notFoundMsg:"指定された文字列は見つかりませんでした。",replace:"置換",replaceAll:"すべて置換",replaceSuccessMsg:"%1 個置換しました。",replaceWith:"置換後の文字列:",title:"検索と置換"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ka.js b/src/lib/ckeditor/plugins/find/lang/ka.js new file mode 100644 index 00000000..d5d8dda9 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ka",{find:"ძებნა",findOptions:"Find Options",findWhat:"საძიებელი ტექსტი:",matchCase:"დიდი და პატარა ასოების დამთხვევა",matchCyclic:"დოკუმენტის ბოლოში გასვლის მერე თავიდან დაწყება",matchWord:"მთელი სიტყვის დამთხვევა",notFoundMsg:"მითითებული ტექსტი არ მოიძებნა.",replace:"შეცვლა",replaceAll:"ყველას შეცვლა",replaceSuccessMsg:"%1 მოძებნილი შეიცვალა.",replaceWith:"შეცვლის ტექსტი:",title:"ძებნა და შეცვლა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/km.js b/src/lib/ckeditor/plugins/find/lang/km.js new file mode 100644 index 00000000..3815f2ca --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","km",{find:"ស្វែងរក",findOptions:"ជម្រើស​ស្វែង​រក",findWhat:"ស្វែងរកអ្វី:",matchCase:"ករណី​ដំណូច",matchCyclic:"ត្រូវ​នឹង cyclic",matchWord:"ដូច​នឹង​ពាក្យ​ទាំង​មូល",notFoundMsg:"រក​មិន​ឃើញ​ពាក្យ​ដែល​បាន​បញ្ជាក់។",replace:"ជំនួស",replaceAll:"ជំនួសទាំងអស់",replaceSuccessMsg:"ការ​ជំនួស​ចំនួន %1 បាន​កើត​ឡើង។",replaceWith:"ជំនួសជាមួយ:",title:"រក​និង​ជំនួស"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ko.js b/src/lib/ckeditor/plugins/find/lang/ko.js new file mode 100644 index 00000000..e17dce40 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ko",{find:"찾기",findOptions:"Find Options",findWhat:"찾을 문자열:",matchCase:"대소문자 구분",matchCyclic:"Match cyclic",matchWord:"온전한 단어",notFoundMsg:"문자열을 찾을 수 없습니다.",replace:"바꾸기",replaceAll:"모두 바꾸기",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"바꿀 문자열:",title:"찾기 & 바꾸기"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ku.js b/src/lib/ckeditor/plugins/find/lang/ku.js new file mode 100644 index 00000000..54cc3c93 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ku",{find:"گەڕان",findOptions:"هەڵبژاردەکانی گەڕان",findWhat:"گەڕان بەدووای:",matchCase:"جیاکردنەوه لەنێوان پیتی گەورەو بچووك",matchCyclic:"گەڕان لەهەموو پەڕەکه",matchWord:"تەنەا هەموو وشەکه",notFoundMsg:"هیچ دەقه گەڕانێك نەدۆزراوه.",replace:"لەبریدانان",replaceAll:"لەبریدانانی هەمووی",replaceSuccessMsg:" پێشهاتە(ی) لەبری دانرا. %1",replaceWith:"لەبریدانان به:",title:"گەڕان و لەبریدانان"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/lt.js b/src/lib/ckeditor/plugins/find/lang/lt.js new file mode 100644 index 00000000..2c55039e --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lt",{find:"Rasti",findOptions:"Paieškos nustatymai",findWhat:"Surasti tekstą:",matchCase:"Skirti didžiąsias ir mažąsias raides",matchCyclic:"Sutampantis cikliškumas",matchWord:"Atitikti pilną žodį",notFoundMsg:"Nurodytas tekstas nerastas.",replace:"Pakeisti",replaceAll:"Pakeisti viską",replaceSuccessMsg:"%1 sutapimas(ų) buvo pakeisti.",replaceWith:"Pakeisti tekstu:",title:"Surasti ir pakeisti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/lv.js b/src/lib/ckeditor/plugins/find/lang/lv.js new file mode 100644 index 00000000..12a554cc --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lv",{find:"Meklēt",findOptions:"Meklēt uzstādījumi",findWhat:"Meklēt:",matchCase:"Reģistrjūtīgs",matchCyclic:"Sakrist cikliski",matchWord:"Jāsakrīt pilnībā",notFoundMsg:"Norādītā frāze netika atrasta.",replace:"Nomainīt",replaceAll:"Aizvietot visu",replaceSuccessMsg:"%1 gadījums(i) aizvietoti",replaceWith:"Nomainīt uz:",title:"Meklēt un aizvietot"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/mk.js b/src/lib/ckeditor/plugins/find/lang/mk.js new file mode 100644 index 00000000..8c41cfc1 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mk",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/mn.js b/src/lib/ckeditor/plugins/find/lang/mn.js new file mode 100644 index 00000000..28498167 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mn",{find:"Хайх",findOptions:"Хайх сонголтууд",findWhat:"Хайх үг/үсэг:",matchCase:"Тэнцэх төлөв",matchCyclic:"Match cyclic",matchWord:"Тэнцэх бүтэн үг",notFoundMsg:"Хайсан бичвэрийг олсонгүй.",replace:"Орлуулах",replaceAll:"Бүгдийг нь солих",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Солих үг:",title:"Хайж орлуулах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ms.js b/src/lib/ckeditor/plugins/find/lang/ms.js new file mode 100644 index 00000000..75f96037 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ms",{find:"Cari",findOptions:"Find Options",findWhat:"Perkataan yang dicari:",matchCase:"Padanan case huruf",matchCyclic:"Match cyclic",matchWord:"Padana Keseluruhan perkataan",notFoundMsg:"Text yang dicari tidak dijumpai.",replace:"Ganti",replaceAll:"Ganti semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Diganti dengan:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/nb.js b/src/lib/ckeditor/plugins/find/lang/nb.js new file mode 100644 index 00000000..6779f499 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nb",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/nl.js b/src/lib/ckeditor/plugins/find/lang/nl.js new file mode 100644 index 00000000..156a9da5 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nl",{find:"Zoeken",findOptions:"Zoekopties",findWhat:"Zoeken naar:",matchCase:"Hoofdlettergevoelig",matchCyclic:"Doorlopend zoeken",matchWord:"Hele woord moet voorkomen",notFoundMsg:"De opgegeven tekst is niet gevonden.",replace:"Vervangen",replaceAll:"Alles vervangen",replaceSuccessMsg:"%1 resultaten vervangen.",replaceWith:"Vervangen met:",title:"Zoeken en vervangen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/no.js b/src/lib/ckeditor/plugins/find/lang/no.js new file mode 100644 index 00000000..e098a7c5 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","no",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/pl.js b/src/lib/ckeditor/plugins/find/lang/pl.js new file mode 100644 index 00000000..1144fd8b --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pl",{find:"Znajdź",findOptions:"Opcje wyszukiwania",findWhat:"Znajdź:",matchCase:"Uwzględnij wielkość liter",matchCyclic:"Cykliczne dopasowanie",matchWord:"Całe słowa",notFoundMsg:"Nie znaleziono szukanego hasła.",replace:"Zamień",replaceAll:"Zamień wszystko",replaceSuccessMsg:"%1 wystąpień zastąpionych.",replaceWith:"Zastąp przez:",title:"Znajdź i zamień"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/pt-br.js b/src/lib/ckeditor/plugins/find/lang/pt-br.js new file mode 100644 index 00000000..b9e438c8 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt-br",{find:"Localizar",findOptions:"Opções",findWhat:"Procurar por:",matchCase:"Coincidir Maiúsculas/Minúsculas",matchCyclic:"Coincidir cíclico",matchWord:"Coincidir a palavra inteira",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 ocorrência(s) substituída(s).",replaceWith:"Substituir por:",title:"Localizar e Substituir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/pt.js b/src/lib/ckeditor/plugins/find/lang/pt.js new file mode 100644 index 00000000..bb8c1a6a --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt",{find:"Procurar",findOptions:"Find Options",findWhat:"Texto a Procurar:",matchCase:"Maiúsculas/Minúsculas",matchCyclic:"Match cyclic",matchWord:"Coincidir com toda a palavra",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Substituir por:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ro.js b/src/lib/ckeditor/plugins/find/lang/ro.js new file mode 100644 index 00000000..7ec8b9d6 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ro",{find:"Găseşte",findOptions:"Find Options",findWhat:"Găseşte:",matchCase:"Deosebeşte majuscule de minuscule (Match case)",matchCyclic:"Potrivește ciclic",matchWord:"Doar cuvintele întregi",notFoundMsg:"Textul specificat nu a fost găsit.",replace:"Înlocuieşte",replaceAll:"Înlocuieşte tot",replaceSuccessMsg:"%1 căutări înlocuite.",replaceWith:"Înlocuieşte cu:",title:"Găseşte şi înlocuieşte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ru.js b/src/lib/ckeditor/plugins/find/lang/ru.js new file mode 100644 index 00000000..b611c271 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ru",{find:"Найти",findOptions:"Опции поиска",findWhat:"Найти:",matchCase:"Учитывать регистр",matchCyclic:"По всему тексту",matchWord:"Только слово целиком",notFoundMsg:"Искомый текст не найден.",replace:"Заменить",replaceAll:"Заменить всё",replaceSuccessMsg:"Успешно заменено %1 раз(а).",replaceWith:"Заменить на:",title:"Поиск и замена"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/si.js b/src/lib/ckeditor/plugins/find/lang/si.js new file mode 100644 index 00000000..1e1d1457 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","si",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"හිලව් කිරීම",replaceAll:"සියල්ලම හිලව් කරන්න",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/sk.js b/src/lib/ckeditor/plugins/find/lang/sk.js new file mode 100644 index 00000000..11821e7a --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sk",{find:"Hľadať",findOptions:"Nájsť možnosti",findWhat:"Čo hľadať:",matchCase:"Rozlišovať malé a veľké písmená",matchCyclic:"Cykliť zhodu",matchWord:"Len celé slová",notFoundMsg:"Hľadaný text nebol nájdený.",replace:"Nahradiť",replaceAll:"Nahradiť všetko",replaceSuccessMsg:"%1 výskyt(ov) nahradených.",replaceWith:"Čím nahradiť:",title:"Nájsť a nahradiť"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/sl.js b/src/lib/ckeditor/plugins/find/lang/sl.js new file mode 100644 index 00000000..32dea7e3 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sl",{find:"Najdi",findOptions:"Find Options",findWhat:"Najdi:",matchCase:"Razlikuj velike in male črke",matchCyclic:"Primerjaj znake v cirilici",matchWord:"Samo cele besede",notFoundMsg:"Navedeno besedilo ni bilo najdeno.",replace:"Zamenjaj",replaceAll:"Zamenjaj vse",replaceSuccessMsg:"%1 pojavitev je bilo zamenjano.",replaceWith:"Zamenjaj z:",title:"Najdi in zamenjaj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/sq.js b/src/lib/ckeditor/plugins/find/lang/sq.js new file mode 100644 index 00000000..ae034f6d --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sq",{find:"Gjej",findOptions:"Gjejë Alternativat",findWhat:"Gjej çka:",matchCase:"Rasti i përputhjes",matchCyclic:"Përputh ciklikun",matchWord:"Përputh fjalën e tërë",notFoundMsg:"Teksti i caktuar nuk mundej të gjendet.",replace:"Zëvendëso",replaceAll:"Zëvendëso të gjitha",replaceSuccessMsg:"%1 rast(e) u zëvendësua(n).",replaceWith:"Zëvendëso me:",title:"Gjej dhe Zëvendëso"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/sr-latn.js b/src/lib/ckeditor/plugins/find/lang/sr-latn.js new file mode 100644 index 00000000..40a40064 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr-latn",{find:"Pretraga",findOptions:"Find Options",findWhat:"Pronadi:",matchCase:"Razlikuj mala i velika slova",matchCyclic:"Match cyclic",matchWord:"Uporedi cele reci",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamena",replaceAll:"Zameni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zameni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/sr.js b/src/lib/ckeditor/plugins/find/lang/sr.js new file mode 100644 index 00000000..57ca6296 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr",{find:"Претрага",findOptions:"Find Options",findWhat:"Пронађи:",matchCase:"Разликуј велика и мала слова",matchCyclic:"Match cyclic",matchWord:"Упореди целе речи",notFoundMsg:"Тражени текст није пронађен.",replace:"Замена",replaceAll:"Замени све",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Замени са:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/sv.js b/src/lib/ckeditor/plugins/find/lang/sv.js new file mode 100644 index 00000000..f86c7d28 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sv",{find:"Sök",findOptions:"Sökalternativ",findWhat:"Sök efter:",matchCase:"Skiftläge",matchCyclic:"Matcha cykliska",matchWord:"Inkludera hela ord",notFoundMsg:"Angiven text kunde ej hittas.",replace:"Ersätt",replaceAll:"Ersätt alla",replaceSuccessMsg:"%1 förekomst(er) ersatta.",replaceWith:"Ersätt med:",title:"Sök och ersätt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/th.js b/src/lib/ckeditor/plugins/find/lang/th.js new file mode 100644 index 00000000..877ab909 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","th",{find:"ค้นหา",findOptions:"Find Options",findWhat:"ค้นหาคำว่า:",matchCase:"ตัวโหญ่-เล็ก ต้องตรงกัน",matchCyclic:"Match cyclic",matchWord:"ต้องตรงกันทุกคำ",notFoundMsg:"ไม่พบคำที่ค้นหา.",replace:"ค้นหาและแทนที่",replaceAll:"แทนที่ทั้งหมดที่พบ",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"แทนที่ด้วย:",title:"Find and Replace"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/tr.js b/src/lib/ckeditor/plugins/find/lang/tr.js new file mode 100644 index 00000000..a0fc4f0a --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tr",{find:"Bul",findOptions:"Seçenekleri Bul",findWhat:"Aranan:",matchCase:"Büyük/küçük harf duyarlı",matchCyclic:"Eşleşen döngü",matchWord:"Kelimenin tamamı uysun",notFoundMsg:"Belirtilen yazı bulunamadı.",replace:"Değiştir",replaceAll:"Tümünü Değiştir",replaceSuccessMsg:"%1 bulunanlardan değiştirildi.",replaceWith:"Bununla değiştir:",title:"Bul ve Değiştir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/tt.js b/src/lib/ckeditor/plugins/find/lang/tt.js new file mode 100644 index 00000000..90a66914 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tt",{find:"Эзләү",findOptions:"Эзләү көйләүләре",findWhat:"Нәрсә эзләргә:",matchCase:"Баш һәм юл хәрефләрен исәпкә алу",matchCyclic:"Кабатлап эзләргә",matchWord:"Сүзләрне тулысынча гына эзләү",notFoundMsg:"Эзләнгән текст табылмады.",replace:"Алмаштыру",replaceAll:"Барысын да алмаштыру",replaceSuccessMsg:"%1 урында(ларда) алмаштырылган.",replaceWith:"Нәрсәгә алмаштыру:",title:"Эзләп табу һәм алмаштыру"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/ug.js b/src/lib/ckeditor/plugins/find/lang/ug.js new file mode 100644 index 00000000..9a3e7542 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ug",{find:"ئىزدە",findOptions:"ئىزدەش تاللانمىسى",findWhat:"ئىزدە:",matchCase:"چوڭ كىچىك ھەرپنى پەرقلەندۈر",matchCyclic:"ئايلانما ماسلىشىش",matchWord:"پۈتۈن سۆز ماسلىشىش",notFoundMsg:"بەلگىلەنگەن تېكىستنى تاپالمىدى",replace:"ئالماشتۇر",replaceAll:"ھەممىنى ئالماشتۇر",replaceSuccessMsg:"جەمئى %1 جايدىكى ئالماشتۇرۇش تاماملاندى",replaceWith:"ئالماشتۇر:",title:"ئىزدەپ ئالماشتۇر"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/uk.js b/src/lib/ckeditor/plugins/find/lang/uk.js new file mode 100644 index 00000000..12bf2eb6 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","uk",{find:"Пошук",findOptions:"Параметри Пошуку",findWhat:"Шукати:",matchCase:"Враховувати регістр",matchCyclic:"Циклічна заміна",matchWord:"Збіг цілих слів",notFoundMsg:"Вказаний текст не знайдено.",replace:"Заміна",replaceAll:"Замінити все",replaceSuccessMsg:"%1 співпадінь(ня) замінено.",replaceWith:"Замінити на:",title:"Знайти і замінити"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/vi.js b/src/lib/ckeditor/plugins/find/lang/vi.js new file mode 100644 index 00000000..07936d94 --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","vi",{find:"Tìm kiếm",findOptions:"Tìm tùy chọn",findWhat:"Tìm chuỗi:",matchCase:"Phân biệt chữ hoa/thường",matchCyclic:"Giống một phần",matchWord:"Giống toàn bộ từ",notFoundMsg:"Không tìm thấy chuỗi cần tìm.",replace:"Thay thế",replaceAll:"Thay thế tất cả",replaceSuccessMsg:"%1 vị trí đã được thay thế.",replaceWith:"Thay bằng:",title:"Tìm kiếm và thay thế"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/zh-cn.js b/src/lib/ckeditor/plugins/find/lang/zh-cn.js new file mode 100644 index 00000000..746626af --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh-cn",{find:"查找",findOptions:"查找选项",findWhat:"查找:",matchCase:"区分大小写",matchCyclic:"循环匹配",matchWord:"全字匹配",notFoundMsg:"指定的文本没有找到。",replace:"替换",replaceAll:"全部替换",replaceSuccessMsg:"共完成 %1 处替换。",replaceWith:"替换:",title:"查找和替换"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/lang/zh.js b/src/lib/ckeditor/plugins/find/lang/zh.js new file mode 100644 index 00000000..4d6656ae --- /dev/null +++ b/src/lib/ckeditor/plugins/find/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh",{find:"尋找",findOptions:"尋找選項",findWhat:"尋找目標:",matchCase:"大小寫須相符",matchCyclic:"循環搜尋",matchWord:"全字拼寫須相符",notFoundMsg:"找不到指定的文字。",replace:"取代",replaceAll:"全部取代",replaceSuccessMsg:"已取代 %1 個指定項目。",replaceWith:"取代成:",title:"尋找及取代"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/find/plugin.js b/src/lib/ckeditor/plugins/find/plugin.js new file mode 100644 index 00000000..103b530d --- /dev/null +++ b/src/lib/ckeditor/plugins/find/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("find",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"find,find-rtl,replace",hidpi:!0,init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&& +(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("replace",this.path+"dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}}; \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/dialogs/flash.js b/src/lib/ckeditor/plugins/flash/dialogs/flash.js new file mode 100644 index 00000000..6592f8e4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/dialogs/flash.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function b(a,b,c){var k=n[this.id];if(k)for(var f=this instanceof CKEDITOR.ui.dialog.checkbox,e=0;e<k.length;e++){var d=k[e];switch(d.type){case g:if(!a)continue;if(null!==a.getAttribute(d.name)){a=a.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case o:if(!a)continue;if(d.name in c){a=c[d.name];f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case i:if(!b)continue; +if(b.getAttribute(d.name)){a=b.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"])}}}function c(a,b,c){var k=n[this.id];if(k)for(var f=""===this.getValue(),e=this instanceof CKEDITOR.ui.dialog.checkbox,d=0;d<k.length;d++){var h=k[d];switch(h.type){case g:if(!a||"data"==h.name&&b&&!a.hasAttribute("data"))continue;var l=this.getValue();f||e&&l===h["default"]?a.removeAttribute(h.name):a.setAttribute(h.name,l);break;case o:if(!a)continue; +l=this.getValue();if(f||e&&l===h["default"])h.name in c&&c[h.name].remove();else if(h.name in c)c[h.name].setAttribute("value",l);else{var p=CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>",a.getDocument());p.setAttributes({name:h.name,value:l});1>a.getChildCount()?p.appendTo(a):p.insertBefore(a.getFirst())}break;case i:if(!b)continue;l=this.getValue();f||e&&l===h["default"]?b.removeAttribute(h.name):b.setAttribute(h.name,l)}}}for(var g=1,o=2,i=4,n={id:[{type:g,name:"id"}],classid:[{type:g, +name:"classid"}],codebase:[{type:g,name:"codebase"}],pluginspage:[{type:i,name:"pluginspage"}],src:[{type:o,name:"movie"},{type:i,name:"src"},{type:g,name:"data"}],name:[{type:i,name:"name"}],align:[{type:g,name:"align"}],"class":[{type:g,name:"class"},{type:i,name:"class"}],width:[{type:g,name:"width"},{type:i,name:"width"}],height:[{type:g,name:"height"},{type:i,name:"height"}],hSpace:[{type:g,name:"hSpace"},{type:i,name:"hSpace"}],vSpace:[{type:g,name:"vSpace"},{type:i,name:"vSpace"}],style:[{type:g, +name:"style"},{type:i,name:"style"}],type:[{type:i,name:"type"}]},m="play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "),j=0;j<m.length;j++)n[m[j]]=[{type:i,name:m[j]},{type:o,name:m[j]}];m=["play","loop","menu"];for(j=0;j<m.length;j++)n[m[j]][0]["default"]=n[m[j]][1]["default"]=!0;CKEDITOR.dialog.add("flash",function(a){var g=!a.config.flashEmbedTagOnly,i=a.config.flashAddEmbedTag||a.config.flashEmbedTagOnly,k,f="<div>"+CKEDITOR.tools.htmlEncode(a.lang.common.preview)+ +'<br><div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div><div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';return{title:a.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){this.fakeImage=this.objectNode=this.embedNode=null;k=new CKEDITOR.dom.element("embed",a.document);var e=this.getSelectedElement();if(e&&e.data("cke-real-element-type")&&"flash"==e.data("cke-real-element-type")){this.fakeImage= +e;var d=a.restoreRealElement(e),h=null,b=null,c={};if("cke:object"==d.getName()){h=d;d=h.getElementsByTag("embed","cke");0<d.count()&&(b=d.getItem(0));for(var d=h.getElementsByTag("param","cke"),g=0,i=d.count();g<i;g++){var f=d.getItem(g),j=f.getAttribute("name"),f=f.getAttribute("value");c[j]=f}}else"cke:embed"==d.getName()&&(b=d);this.objectNode=h;this.embedNode=b;this.setupContent(h,b,c,e)}},onOk:function(){var e=null,d=null,b=null;if(this.fakeImage)e=this.objectNode,d=this.embedNode;else if(g&& +(e=CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>",a.document),e.setAttributes({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"})),i)d=CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>",a.document),d.setAttributes({type:"application/x-shockwave-flash",pluginspage:"http://www.macromedia.com/go/getflashplayer"}),e&&d.appendTo(e);if(e)for(var b={},c=e.getElementsByTag("param", +"cke"),f=0,j=c.count();f<j;f++)b[c.getItem(f).getAttribute("name")]=c.getItem(f);c={};f={};this.commitContent(e,d,b,c,f);e=a.createFakeElement(e||d,"cke_flash","flash",!0);e.setAttributes(f);e.setStyles(c);this.fakeImage?(e.replace(this.fakeImage),a.getSelection().selectElement(e)):a.insertElement(e)},onHide:function(){this.preview&&this.preview.setHtml("")},contents:[{id:"info",label:a.lang.common.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"], +align:"right",children:[{id:"src",type:"text",label:a.lang.common.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc),setup:b,commit:c,onLoad:function(){var a=this.getDialog(),b=function(b){k.setAttribute("src",b);a.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(k.getAttribute("src"))+'" type="application/x-shockwave-flash"></embed>')};a.preview=a.getContentElement("info","preview").getElement().getChild(3);this.on("change",function(a){a.data&& +a.data.value&&b(a.data.value)});this.getInputElement().on("change",function(){b(this.getValue())},this)}},{type:"button",id:"browse",filebrowser:"info:src",hidden:!0,style:"display:inline-block;margin-top:14px;",label:a.lang.common.browseServer}]}]},{type:"hbox",widths:["25%","25%","25%","25%","25%"],children:[{type:"text",id:"width",requiredContent:"embed[width]",style:"width:95px",label:a.lang.common.width,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1", +a.lang.common.width)),setup:b,commit:c},{type:"text",id:"height",requiredContent:"embed[height]",style:"width:95px",label:a.lang.common.height,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",a.lang.common.height)),setup:b,commit:c},{type:"text",id:"hSpace",requiredContent:"embed[hspace]",style:"width:95px",label:a.lang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace),setup:b,commit:c},{type:"text",id:"vSpace",requiredContent:"embed[vspace]", +style:"width:95px",label:a.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace),setup:b,commit:c}]},{type:"vbox",children:[{type:"html",id:"preview",style:"width:95%;",html:f}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:a.lang.common.upload,elements:[{type:"file",id:"upload",label:a.lang.common.upload,size:38},{type:"fileButton",id:"uploadButton",label:a.lang.common.uploadSubmit,filebrowser:"info:src","for":["Upload","upload"]}]},{id:"properties", +label:a.lang.flash.propertiesTab,elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"scale",type:"select",requiredContent:"embed[scale]",label:a.lang.flash.scale,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.scaleAll,"showall"],[a.lang.flash.scaleNoBorder,"noborder"],[a.lang.flash.scaleFit,"exactfit"]],setup:b,commit:c},{id:"allowScriptAccess",type:"select",requiredContent:"embed[allowscriptaccess]",label:a.lang.flash.access,"default":"",style:"width : 100%;", +items:[[a.lang.common.notSet,""],[a.lang.flash.accessAlways,"always"],[a.lang.flash.accessSameDomain,"samedomain"],[a.lang.flash.accessNever,"never"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"wmode",type:"select",requiredContent:"embed[wmode]",label:a.lang.flash.windowMode,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.windowModeWindow,"window"],[a.lang.flash.windowModeOpaque,"opaque"],[a.lang.flash.windowModeTransparent,"transparent"]], +setup:b,commit:c},{id:"quality",type:"select",requiredContent:"embed[quality]",label:a.lang.flash.quality,"default":"high",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.qualityBest,"best"],[a.lang.flash.qualityHigh,"high"],[a.lang.flash.qualityAutoHigh,"autohigh"],[a.lang.flash.qualityMedium,"medium"],[a.lang.flash.qualityAutoLow,"autolow"],[a.lang.flash.qualityLow,"low"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"align",type:"select",requiredContent:"object[align]", +label:a.lang.common.align,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.flash.alignAbsBottom,"absBottom"],[a.lang.flash.alignAbsMiddle,"absMiddle"],[a.lang.flash.alignBaseline,"baseline"],[a.lang.common.alignBottom,"bottom"],[a.lang.common.alignMiddle,"middle"],[a.lang.common.alignRight,"right"],[a.lang.flash.alignTextTop,"textTop"],[a.lang.common.alignTop,"top"]],setup:b,commit:function(a,b,f,g,i){var j=this.getValue();c.apply(this,arguments); +j&&(i.align=j)}},{type:"html",html:"<div></div>"}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"menu",label:a.lang.flash.chkMenu,"default":!0,setup:b,commit:c},{type:"checkbox",id:"play",label:a.lang.flash.chkPlay,"default":!0,setup:b,commit:c},{type:"checkbox",id:"loop",label:a.lang.flash.chkLoop,"default":!0,setup:b,commit:c},{type:"checkbox",id:"allowFullScreen",label:a.lang.flash.chkFull,"default":!0, +setup:b,commit:c}]}]}]},{id:"advanced",label:a.lang.common.advancedTab,elements:[{type:"hbox",children:[{type:"text",id:"id",requiredContent:"object[id]",label:a.lang.common.id,setup:b,commit:c}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",id:"bgcolor",requiredContent:"embed[bgcolor]",label:a.lang.flash.bgcolor,setup:b,commit:c},{type:"text",id:"class",requiredContent:"embed(cke-xyz)",label:a.lang.common.cssClass,setup:b,commit:c}]},{type:"text",id:"style",requiredContent:"embed{cke-xyz}", +validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),label:a.lang.common.cssStyle,setup:b,commit:c}]}]}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/icons/flash.png b/src/lib/ckeditor/plugins/flash/icons/flash.png new file mode 100644 index 00000000..df7b1c60 Binary files /dev/null and b/src/lib/ckeditor/plugins/flash/icons/flash.png differ diff --git a/src/lib/ckeditor/plugins/flash/icons/hidpi/flash.png b/src/lib/ckeditor/plugins/flash/icons/hidpi/flash.png new file mode 100644 index 00000000..7ad0e388 Binary files /dev/null and b/src/lib/ckeditor/plugins/flash/icons/hidpi/flash.png differ diff --git a/src/lib/ckeditor/plugins/flash/images/placeholder.png b/src/lib/ckeditor/plugins/flash/images/placeholder.png new file mode 100644 index 00000000..0bc6caa7 Binary files /dev/null and b/src/lib/ckeditor/plugins/flash/images/placeholder.png differ diff --git a/src/lib/ckeditor/plugins/flash/lang/af.js b/src/lib/ckeditor/plugins/flash/lang/af.js new file mode 100644 index 00000000..9ee64f1f --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","af",{access:"Skrip toegang",accessAlways:"Altyd",accessNever:"Nooit",accessSameDomain:"Selfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-middel",alignBaseline:"Basislyn",alignTextTop:"Teks bo",bgcolor:"Agtergrondkleur",chkFull:"Laat volledige skerm toe",chkLoop:"Herhaal",chkMenu:"Flash spyskaart aan",chkPlay:"Speel outomaties",flashvars:"Veranderlikes vir Flash",hSpace:"HSpasie",properties:"Flash eienskappe",propertiesTab:"Eienskappe",quality:"Kwaliteit", +qualityAutoHigh:"Outomaties hoog",qualityAutoLow:"Outomaties laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Skaal",scaleAll:"Wys alles",scaleFit:"Presiese pas",scaleNoBorder:"Geen rand",title:"Flash eienskappe",vSpace:"VSpasie",validateHSpace:"HSpasie moet 'n heelgetal wees.",validateSrc:"Voeg die URL in",validateVSpace:"VSpasie moet 'n heelgetal wees.",windowMode:"Venster modus",windowModeOpaque:"Ondeursigtig",windowModeTransparent:"Deursigtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ar.js b/src/lib/ckeditor/plugins/flash/lang/ar.js new file mode 100644 index 00000000..5b89e5b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ar",{access:"دخول النص البرمجي",accessAlways:"دائماً",accessNever:"مطلقاً",accessSameDomain:"نفس النطاق",alignAbsBottom:"أسفل النص",alignAbsMiddle:"وسط السطر",alignBaseline:"على السطر",alignTextTop:"أعلى النص",bgcolor:"لون الخلفية",chkFull:"ملء الشاشة",chkLoop:"تكرار",chkMenu:"تمكين قائمة فيلم الفلاش",chkPlay:"تشغيل تلقائي",flashvars:"متغيرات الفلاش",hSpace:"تباعد أفقي",properties:"خصائص الفلاش",propertiesTab:"الخصائص",quality:"جودة",qualityAutoHigh:"عالية تلقائياً", +qualityAutoLow:"منخفضة تلقائياً",qualityBest:"أفضل",qualityHigh:"عالية",qualityLow:"منخفضة",qualityMedium:"متوسطة",scale:"الحجم",scaleAll:"إظهار الكل",scaleFit:"ضبط تام",scaleNoBorder:"بلا حدود",title:"خصائص فيلم الفلاش",vSpace:"تباعد عمودي",validateHSpace:"HSpace يجب أن يكون عدداً.",validateSrc:"فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",validateVSpace:"VSpace يجب أن يكون عدداً.",windowMode:"وضع النافذة",windowModeOpaque:"غير شفاف",windowModeTransparent:"شفاف",windowModeWindow:"نافذة"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/bg.js b/src/lib/ckeditor/plugins/flash/lang/bg.js new file mode 100644 index 00000000..a60e86c5 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","bg",{access:"Достъп до скрипт",accessAlways:"Винаги",accessNever:"Никога",accessSameDomain:"Същият домейн",alignAbsBottom:"Най-долу",alignAbsMiddle:"Точно по средата",alignBaseline:"Базова линия",alignTextTop:"Върху текста",bgcolor:"Цвят на фона",chkFull:"Включи на цял екран",chkLoop:"Цикъл",chkMenu:"Разрешено Flash меню",chkPlay:"Авто. пускане",flashvars:"Променливи за Флаш",hSpace:"Хоризонтален отстъп",properties:"Настройки за флаш",propertiesTab:"Настройки",quality:"Качество", +qualityAutoHigh:"Авто. високо",qualityAutoLow:"Авто. ниско",qualityBest:"Отлично",qualityHigh:"Високо",qualityLow:"Ниско",qualityMedium:"Средно",scale:"Оразмеряване",scaleAll:"Показва всичко",scaleFit:"Според мястото",scaleNoBorder:"Без рамка",title:"Настройки за флаш",vSpace:"Вертикален отстъп",validateHSpace:"HSpace трябва да е число.",validateSrc:"Уеб адреса не трябва да е празен.",validateVSpace:"VSpace трябва да е число.",windowMode:"Режим на прозореца",windowModeOpaque:"Плътност",windowModeTransparent:"Прозрачност", +windowModeWindow:"Прозорец"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/bn.js b/src/lib/ckeditor/plugins/flash/lang/bn.js new file mode 100644 index 00000000..2eed56b1 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs নীচে",alignAbsMiddle:"Abs উপর",alignBaseline:"মূল রেখা",alignTextTop:"টেক্সট উপর",bgcolor:"বেকগ্রাউন্ড রং",chkFull:"Allow Fullscreen",chkLoop:"লূপ",chkMenu:"ফ্ল্যাশ মেনু এনাবল কর",chkPlay:"অটো প্লে",flashvars:"Variables for Flash",hSpace:"হরাইজন্টাল স্পেস",properties:"ফ্লাশ প্রোপার্টি",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"স্কেল",scaleAll:"সব দেখাও",scaleFit:"নিখুঁত ফিট",scaleNoBorder:"কোনো বর্ডার নেই",title:"ফ্ল্যাশ প্রোপার্টি",vSpace:"ভার্টিকেল স্পেস",validateHSpace:"HSpace must be a number.",validateSrc:"অনুগ্রহ করে URL লিংক টাইপ করুন",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/bs.js b/src/lib/ckeditor/plugins/flash/lang/bs.js new file mode 100644 index 00000000..4d5f4b4b --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bs",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Molimo ukucajte URL link",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ca.js b/src/lib/ckeditor/plugins/flash/lang/ca.js new file mode 100644 index 00000000..c1e16027 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ca",{access:"Accés a scripts",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"El mateix domini",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Superior",bgcolor:"Color de Fons",chkFull:"Permetre la pantalla completa",chkLoop:"Bucle",chkMenu:"Habilita menú Flash",chkPlay:"Reprodució automàtica",flashvars:"Variables de Flash",hSpace:"Espaiat horitzontal",properties:"Propietats del Flash",propertiesTab:"Propietats", +quality:"Qualitat",qualityAutoHigh:"Alta automàtica",qualityAutoLow:"Baixa automàtica",qualityBest:"La millor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Mitjana",scale:"Escala",scaleAll:"Mostra-ho tot",scaleFit:"Mida exacta",scaleNoBorder:"Sense vores",title:"Propietats del Flash",vSpace:"Espaiat vertical",validateHSpace:"L'espaiat horitzontal ha de ser un número.",validateSrc:"La URL no pot estar buida.",validateVSpace:"L'espaiat vertical ha de ser un número.",windowMode:"Mode de la finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparent",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/cs.js b/src/lib/ckeditor/plugins/flash/lang/cs.js new file mode 100644 index 00000000..51087ed4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","cs",{access:"Přístup ke skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Ve stejné doméně",alignAbsBottom:"Zcela dolů",alignAbsMiddle:"Doprostřed",alignBaseline:"Na účaří",alignTextTop:"Na horní okraj textu",bgcolor:"Barva pozadí",chkFull:"Povolit celoobrazovkový režim",chkLoop:"Opakování",chkMenu:"Nabídka Flash",chkPlay:"Automatické spuštění",flashvars:"Proměnné pro Flash",hSpace:"Horizontální mezera",properties:"Vlastnosti Flashe",propertiesTab:"Vlastnosti", +quality:"Kvalita",qualityAutoHigh:"Vysoká - auto",qualityAutoLow:"Nízká - auto",qualityBest:"Nejlepší",qualityHigh:"Vysoká",qualityLow:"Nejnižší",qualityMedium:"Střední",scale:"Zobrazit",scaleAll:"Zobrazit vše",scaleFit:"Přizpůsobit",scaleNoBorder:"Bez okraje",title:"Vlastnosti Flashe",vSpace:"Vertikální mezera",validateHSpace:"Zadaná horizontální mezera musí být číslo.",validateSrc:"Zadejte prosím URL odkazu",validateVSpace:"Zadaná vertikální mezera musí být číslo.",windowMode:"Režim okna",windowModeOpaque:"Neprůhledné", +windowModeTransparent:"Průhledné",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/cy.js b/src/lib/ckeditor/plugins/flash/lang/cy.js new file mode 100644 index 00000000..b6ae1ef3 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","cy",{access:"Mynediad Sgript",accessAlways:"Pob amser",accessNever:"Byth",accessSameDomain:"R'un parth",alignAbsBottom:"Gwaelod Abs",alignAbsMiddle:"Canol Abs",alignBaseline:"Baslinell",alignTextTop:"Testun Top",bgcolor:"Lliw cefndir",chkFull:"Caniatàu Sgrin Llawn",chkLoop:"Lwpio",chkMenu:"Galluogi Dewislen Flash",chkPlay:"AwtoChwarae",flashvars:"Newidynnau ar gyfer Flash",hSpace:"BwlchLl",properties:"Priodweddau Flash",propertiesTab:"Priodweddau",quality:"Ansawdd", +qualityAutoHigh:"Uchel Awto",qualityAutoLow:"Isel Awto",qualityBest:"Gorau",qualityHigh:"Uchel",qualityLow:"Isel",qualityMedium:"Canolig",scale:"Graddfa",scaleAll:"Dangos pob",scaleFit:"Ffit Union",scaleNoBorder:"Dim Ymyl",title:"Priodweddau Flash",vSpace:"BwlchF",validateHSpace:"Rhaid i'r BwlchLl fod yn rhif.",validateSrc:"Ni all yr URL fod yn wag.",validateVSpace:"Rhaid i'r BwlchF fod yn rhif.",windowMode:"Modd ffenestr",windowModeOpaque:"Afloyw",windowModeTransparent:"Tryloyw",windowModeWindow:"Ffenestr"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/da.js b/src/lib/ckeditor/plugins/flash/lang/da.js new file mode 100644 index 00000000..a55294d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","da",{access:"Scriptadgang",accessAlways:"Altid",accessNever:"Aldrig",accessSameDomain:"Samme domæne",alignAbsBottom:"Absolut nederst",alignAbsMiddle:"Absolut centreret",alignBaseline:"Grundlinje",alignTextTop:"Toppen af teksten",bgcolor:"Baggrundsfarve",chkFull:"Tillad fuldskærm",chkLoop:"Gentagelse",chkMenu:"Vis Flash-menu",chkPlay:"Automatisk afspilning",flashvars:"Variabler for Flash",hSpace:"Vandret margen",properties:"Egenskaber for Flash",propertiesTab:"Egenskaber", +quality:"Kvalitet",qualityAutoHigh:"Auto høj",qualityAutoLow:"Auto lav",qualityBest:"Bedste",qualityHigh:"Høj",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skalér",scaleAll:"Vis alt",scaleFit:"Tilpas størrelse",scaleNoBorder:"Ingen ramme",title:"Egenskaber for Flash",vSpace:"Lodret margen",validateHSpace:"Vandret margen skal være et tal.",validateSrc:"Indtast hyperlink URL!",validateVSpace:"Lodret margen skal være et tal.",windowMode:"Vinduestilstand",windowModeOpaque:"Gennemsigtig (opaque)",windowModeTransparent:"Transparent", +windowModeWindow:"Vindue"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/de.js b/src/lib/ckeditor/plugins/flash/lang/de.js new file mode 100644 index 00000000..44d7237a --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","de",{access:"Skript Zugang",accessAlways:"Immer",accessNever:"Nie",accessSameDomain:"Gleiche Domain",alignAbsBottom:"Abs Unten",alignAbsMiddle:"Abs Mitte",alignBaseline:"Baseline",alignTextTop:"Text Oben",bgcolor:"Hintergrundfarbe",chkFull:"Vollbildmodus erlauben",chkLoop:"Endlosschleife",chkMenu:"Flash-Menü aktivieren",chkPlay:"Automatisch Abspielen",flashvars:"Variablen für Flash",hSpace:"Horizontal-Abstand",properties:"Flash-Eigenschaften",propertiesTab:"Eigenschaften", +quality:"Qualität",qualityAutoHigh:"Auto Hoch",qualityAutoLow:"Auto Niedrig",qualityBest:"Beste",qualityHigh:"Hoch",qualityLow:"Niedrig",qualityMedium:"Medium",scale:"Skalierung",scaleAll:"Alles anzeigen",scaleFit:"Passgenau",scaleNoBorder:"Ohne Rand",title:"Flash-Eigenschaften",vSpace:"Vertikal-Abstand",validateHSpace:"HSpace muss eine Zahl sein.",validateSrc:"Bitte geben Sie die Link-URL an",validateVSpace:"VSpace muss eine Zahl sein.",windowMode:"Fenster Modus",windowModeOpaque:"Deckend",windowModeTransparent:"Transparent", +windowModeWindow:"Fenster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/el.js b/src/lib/ckeditor/plugins/flash/lang/el.js new file mode 100644 index 00000000..4904d1b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","el",{access:"Πρόσβαση Script",accessAlways:"Πάντα",accessNever:"Ποτέ",accessSameDomain:"Ίδιο όνομα τομέα",alignAbsBottom:"Απόλυτα Κάτω",alignAbsMiddle:"Απόλυτα στη Μέση",alignBaseline:"Γραμμή Βάσης",alignTextTop:"Κορυφή Κειμένου",bgcolor:"Χρώμα Υποβάθρου",chkFull:"Να Επιτρέπεται η Προβολή σε Πλήρη Οθόνη",chkLoop:"Επανάληψη",chkMenu:"Ενεργοποίηση Flash Menu",chkPlay:"Αυτόματη Εκτέλεση",flashvars:"Μεταβλητές για Flash",hSpace:"Οριζόντιο Διάστημα",properties:"Ιδιότητες Flash", +propertiesTab:"Ιδιότητες",quality:"Ποιότητα",qualityAutoHigh:"Αυτόματη Υψηλή",qualityAutoLow:"Αυτόματη Χαμηλή",qualityBest:"Καλύτερη",qualityHigh:"Υψηλή",qualityLow:"Χαμηλή",qualityMedium:"Μεσαία",scale:"Μεγέθυνση",scaleAll:"Εμφάνιση όλων",scaleFit:"Ακριβές Μέγεθος",scaleNoBorder:"Χωρίς Περίγραμμα",title:"Ιδιότητες Flash",vSpace:"Κάθετο Διάστημα",validateHSpace:"Το HSpace πρέπει να είναι αριθμός.",validateSrc:"Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",validateVSpace:"Το VSpace πρέπει να είναι αριθμός.", +windowMode:"Τρόπος λειτουργίας παραθύρου",windowModeOpaque:"Συμπαγές",windowModeTransparent:"Διάφανο",windowModeWindow:"Παράθυρο"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/en-au.js b/src/lib/ckeditor/plugins/flash/lang/en-au.js new file mode 100644 index 00000000..e066c740 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-au",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/en-ca.js b/src/lib/ckeditor/plugins/flash/lang/en-ca.js new file mode 100644 index 00000000..9c6fdc4a --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-ca",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/en-gb.js b/src/lib/ckeditor/plugins/flash/lang/en-gb.js new file mode 100644 index 00000000..ccbc28af --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-gb",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/en.js b/src/lib/ckeditor/plugins/flash/lang/en.js new file mode 100644 index 00000000..13380310 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/eo.js b/src/lib/ckeditor/plugins/flash/lang/eo.js new file mode 100644 index 00000000..30218bc1 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eo",{access:"Atingi skriptojn",accessAlways:"Ĉiam",accessNever:"Neniam",accessSameDomain:"Sama domajno",alignAbsBottom:"Absoluta Malsupro",alignAbsMiddle:"Absoluta Centro",alignBaseline:"TekstoMalsupro",alignTextTop:"TekstoSupro",bgcolor:"Fona Koloro",chkFull:"Permesi tutekranon",chkLoop:"Iteracio",chkMenu:"Ebligi flaŝmenuon",chkPlay:"Aŭtomata legado",flashvars:"Variabloj por Flaŝo",hSpace:"Horizontala Spaco",properties:"Flaŝatributoj",propertiesTab:"Atributoj",quality:"Kvalito", +qualityAutoHigh:"Aŭtomate alta",qualityAutoLow:"Aŭtomate malalta",qualityBest:"Plej bona",qualityHigh:"Alta",qualityLow:"Malalta",qualityMedium:"Meza",scale:"Skalo",scaleAll:"Montri ĉion",scaleFit:"Origina grando",scaleNoBorder:"Neniu bordero",title:"Flaŝatributoj",vSpace:"Vertikala Spaco",validateHSpace:"Horizontala Spaco devas esti nombro.",validateSrc:"Bonvolu entajpi la retadreson (URL)",validateVSpace:"Vertikala Spaco devas esti nombro.",windowMode:"Fenestra reĝimo",windowModeOpaque:"Opaka", +windowModeTransparent:"Travidebla",windowModeWindow:"Fenestro"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/es.js b/src/lib/ckeditor/plugins/flash/lang/es.js new file mode 100644 index 00000000..296239e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","es",{access:"Acceso de scripts",accessAlways:"Siempre",accessNever:"Nunca",accessSameDomain:"Mismo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Línea de base",alignTextTop:"Tope del texto",bgcolor:"Color de Fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar Menú Flash",chkPlay:"Autoejecución",flashvars:"Opciones",hSpace:"Esp.Horiz",properties:"Propiedades de Flash",propertiesTab:"Propiedades",quality:"Calidad", +qualityAutoHigh:"Auto Alta",qualityAutoLow:"Auto Baja",qualityBest:"La mejor",qualityHigh:"Alta",qualityLow:"Baja",qualityMedium:"Media",scale:"Escala",scaleAll:"Mostrar todo",scaleFit:"Ajustado",scaleNoBorder:"Sin Borde",title:"Propiedades de Flash",vSpace:"Esp.Vert",validateHSpace:"Esp.Horiz debe ser un número.",validateSrc:"Por favor escriba el vínculo URL",validateVSpace:"Esp.Vert debe ser un número.",windowMode:"WindowMode",windowModeOpaque:"Opaco",windowModeTransparent:"Transparente",windowModeWindow:"Ventana"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/et.js b/src/lib/ckeditor/plugins/flash/lang/et.js new file mode 100644 index 00000000..9ac2b3cd --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","et",{access:"Skriptide ligipääs",accessAlways:"Kõigile",accessNever:"Mitte ühelegi",accessSameDomain:"Samalt domeenilt",alignAbsBottom:"Abs alla",alignAbsMiddle:"Abs keskele",alignBaseline:"Baasjoonele",alignTextTop:"Tekstist üles",bgcolor:"Tausta värv",chkFull:"Täisekraan lubatud",chkLoop:"Korduv",chkMenu:"Flashi menüü lubatud",chkPlay:"Automaatne start ",flashvars:"Flashi muutujad",hSpace:"H. vaheruum",properties:"Flashi omadused",propertiesTab:"Omadused",quality:"Kvaliteet", +qualityAutoHigh:"Automaatne kõrge",qualityAutoLow:"Automaatne madal",qualityBest:"Parim",qualityHigh:"Kõrge",qualityLow:"Madal",qualityMedium:"Keskmine",scale:"Mastaap",scaleAll:"Näidatakse kõike",scaleFit:"Täpne sobivus",scaleNoBorder:"Äärist ei ole",title:"Flashi omadused",vSpace:"V. vaheruum",validateHSpace:"H. vaheruum peab olema number.",validateSrc:"Palun kirjuta lingi URL",validateVSpace:"V. vaheruum peab olema number.",windowMode:"Akna režiim",windowModeOpaque:"Läbipaistmatu",windowModeTransparent:"Läbipaistev", +windowModeWindow:"Aken"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/eu.js b/src/lib/ckeditor/plugins/flash/lang/eu.js new file mode 100644 index 00000000..5cf12025 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eu",{access:"Scriptak baimendu",accessAlways:"Beti",accessNever:"Inoiz ere ez",accessSameDomain:"Domeinu berdinekoak",alignAbsBottom:"Abs Behean",alignAbsMiddle:"Abs Erdian",alignBaseline:"Oinan",alignTextTop:"Testua Goian",bgcolor:"Atzeko kolorea",chkFull:"Onartu Pantaila osoa",chkLoop:"Begizta",chkMenu:"Flasharen Menua Gaitu",chkPlay:"Automatikoki Erreproduzitu",flashvars:"Flash Aldagaiak",hSpace:"HSpace",properties:"Flasharen Ezaugarriak",propertiesTab:"Ezaugarriak", +quality:"Kalitatea",qualityAutoHigh:"Auto Altua",qualityAutoLow:"Auto Baxua",qualityBest:"Hoberena",qualityHigh:"Altua",qualityLow:"Baxua",qualityMedium:"Ertaina",scale:"Eskalatu",scaleAll:"Dena erakutsi",scaleFit:"Doitu",scaleNoBorder:"Ertzik gabe",title:"Flasharen Ezaugarriak",vSpace:"VSpace",validateHSpace:"HSpace zenbaki bat izan behar da.",validateSrc:"Mesedez URL esteka idatzi",validateVSpace:"VSpace zenbaki bat izan behar da.",windowMode:"Leihoaren modua",windowModeOpaque:"Opakoa",windowModeTransparent:"Gardena", +windowModeWindow:"Leihoa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/fa.js b/src/lib/ckeditor/plugins/flash/lang/fa.js new file mode 100644 index 00000000..ac4a6092 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","fa",{access:"دسترسی به اسکریپت",accessAlways:"همیشه",accessNever:"هرگز",accessSameDomain:"همان دامنه",alignAbsBottom:"پائین مطلق",alignAbsMiddle:"وسط مطلق",alignBaseline:"خط پایه",alignTextTop:"متن بالا",bgcolor:"رنگ پس​زمینه",chkFull:"اجازه تمام صفحه",chkLoop:"اجرای پیاپی",chkMenu:"در دسترس بودن منوی فلش",chkPlay:"آغاز خودکار",flashvars:"مقادیر برای فلش",hSpace:"فاصلهٴ افقی",properties:"ویژگی​های فلش",propertiesTab:"ویژگی​ها",quality:"کیفیت",qualityAutoHigh:"بالا - خودکار", +qualityAutoLow:"پایین - خودکار",qualityBest:"بهترین",qualityHigh:"بالا",qualityLow:"پایین",qualityMedium:"متوسط",scale:"مقیاس",scaleAll:"نمایش همه",scaleFit:"جایگیری کامل",scaleNoBorder:"بدون کران",title:"ویژگی​های فلش",vSpace:"فاصلهٴ عمودی",validateHSpace:"مقدار فاصله گذاری افقی باید یک عدد باشد.",validateSrc:"لطفا URL پیوند را بنویسید",validateVSpace:"مقدار فاصله گذاری عمودی باید یک عدد باشد.",windowMode:"حالت پنجره",windowModeOpaque:"مات",windowModeTransparent:"شفاف",windowModeWindow:"پنجره"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/fi.js b/src/lib/ckeditor/plugins/flash/lang/fi.js new file mode 100644 index 00000000..c40fe43d --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fi",{access:"Skriptien pääsy",accessAlways:"Aina",accessNever:"Ei koskaan",accessSameDomain:"Sama verkkotunnus",alignAbsBottom:"Aivan alas",alignAbsMiddle:"Aivan keskelle",alignBaseline:"Alas (teksti)",alignTextTop:"Ylös (teksti)",bgcolor:"Taustaväri",chkFull:"Salli kokoruututila",chkLoop:"Toisto",chkMenu:"Näytä Flash-valikko",chkPlay:"Automaattinen käynnistys",flashvars:"Muuttujat Flash:lle",hSpace:"Vaakatila",properties:"Flash-ominaisuudet",propertiesTab:"Ominaisuudet", +quality:"Laatu",qualityAutoHigh:"Automaattinen korkea",qualityAutoLow:"Automaattinen matala",qualityBest:"Paras",qualityHigh:"Korkea",qualityLow:"Matala",qualityMedium:"Keskitaso",scale:"Levitä",scaleAll:"Näytä kaikki",scaleFit:"Tarkka koko",scaleNoBorder:"Ei rajaa",title:"Flash ominaisuudet",vSpace:"Pystytila",validateHSpace:"Vaakatilan täytyy olla numero.",validateSrc:"Linkille on kirjoitettava URL",validateVSpace:"Pystytilan täytyy olla numero.",windowMode:"Ikkuna tila",windowModeOpaque:"Läpinäkyvyys", +windowModeTransparent:"Läpinäkyvä",windowModeWindow:"Ikkuna"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/fo.js b/src/lib/ckeditor/plugins/flash/lang/fo.js new file mode 100644 index 00000000..d02410a1 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fo",{access:"Script atgongd",accessAlways:"Altíð",accessNever:"Ongantíð",accessSameDomain:"Sama navnaøki",alignAbsBottom:"Abs botnur",alignAbsMiddle:"Abs miðja",alignBaseline:"Basislinja",alignTextTop:"Tekst toppur",bgcolor:"Bakgrundslitur",chkFull:"Loyv fullan skerm",chkLoop:"Endurspæl",chkMenu:"Ger Flash skrá virkna",chkPlay:"Avspælingin byrjar sjálv",flashvars:"Variablar fyri Flash",hSpace:"Høgri breddi",properties:"Flash eginleikar",propertiesTab:"Eginleikar", +quality:"Góðska",qualityAutoHigh:"Auto høg",qualityAutoLow:"Auto Lág",qualityBest:"Besta",qualityHigh:"Høg",qualityLow:"Lág",qualityMedium:"Meðal",scale:"Skalering",scaleAll:"Vís alt",scaleFit:"Neyv skalering",scaleNoBorder:"Eingin bordi",title:"Flash eginleikar",vSpace:"Vinstri breddi",validateHSpace:"HSpace má vera eitt tal.",validateSrc:"Vinarliga skriva tilknýti (URL)",validateVSpace:"VSpace má vera eitt tal.",windowMode:"Slag av rúti",windowModeOpaque:"Ikki transparent",windowModeTransparent:"Transparent", +windowModeWindow:"Rútur"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/fr-ca.js b/src/lib/ckeditor/plugins/flash/lang/fr-ca.js new file mode 100644 index 00000000..8218f119 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr-ca",{access:"Accès au script",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur de fond",chkFull:"Permettre le plein-écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Lecture automatique",flashvars:"Variables pour Flash",hSpace:"Espacement horizontal",properties:"Propriétés de l'animation Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute auto",qualityAutoLow:"Basse auto",qualityBest:"Meilleur",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Échelle",scaleAll:"Afficher tout",scaleFit:"Ajuster aux dimensions",scaleNoBorder:"Sans bordure",title:"Propriétés de l'animation Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un entier.",validateSrc:"Veuillez saisir l'URL",validateVSpace:"L'espacement vertical doit être un entier.", +windowMode:"Mode de fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/fr.js b/src/lib/ckeditor/plugins/flash/lang/fr.js new file mode 100644 index 00000000..fdc543c6 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr",{access:"Accès aux scripts",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur d'arrière-plan",chkFull:"Permettre le plein écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Jouer automatiquement",flashvars:"Variables du Flash",hSpace:"Espacement horizontal",properties:"Propriétés du Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute Auto",qualityAutoLow:"Basse Auto",qualityBest:"Meilleure",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Echelle",scaleAll:"Afficher tout",scaleFit:"Taille d'origine",scaleNoBorder:"Pas de bordure",title:"Propriétés du Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un nombre.",validateSrc:"L'adresse ne doit pas être vide.",validateVSpace:"L'espacement vertical doit être un nombre.", +windowMode:"Mode fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/gl.js b/src/lib/ckeditor/plugins/flash/lang/gl.js new file mode 100644 index 00000000..38e85081 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","gl",{access:"Acceso de scripts",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs Inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Liña de base",alignTextTop:"Tope do texto",bgcolor:"Cor do fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar o menú do «Flash»",chkPlay:"Reprodución auomática",flashvars:"Opcións do «Flash»",hSpace:"Esp. Horiz.",properties:"Propiedades do «Flash»",propertiesTab:"Propiedades", +quality:"Calidade",qualityAutoHigh:"Alta, automática",qualityAutoLow:"Baixa, automática",qualityBest:"A mellor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Media",scale:"Escalar",scaleAll:"Amosar todo",scaleFit:"Encaixar axustando",scaleNoBorder:"Sen bordo",title:"Propiedades do «Flash»",vSpace:"Esp.Vert.",validateHSpace:"O espazado horizontal debe ser un número.",validateSrc:"O URL non pode estar baleiro.",validateVSpace:"O espazado vertical debe ser un número.",windowMode:"Modo da xanela", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Xanela"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/gu.js b/src/lib/ckeditor/plugins/flash/lang/gu.js new file mode 100644 index 00000000..601bb61c --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","gu",{access:"સ્ક્રીપ્ટ એક્સેસ",accessAlways:"હમેશાં",accessNever:"નહી",accessSameDomain:"એજ ડોમેન",alignAbsBottom:"Abs નીચે",alignAbsMiddle:"Abs ઉપર",alignBaseline:"આધાર લીટી",alignTextTop:"ટેક્સ્ટ ઉપર",bgcolor:"બૅકગ્રાઉન્ડ રંગ,",chkFull:"ફૂલ સ્ક્રીન કરવું",chkLoop:"લૂપ",chkMenu:"ફ્લૅશ મેન્યૂ નો પ્રયોગ કરો",chkPlay:"ઑટો/સ્વયં પ્લે",flashvars:"ફલેશ ના વિકલ્પો",hSpace:"સમસ્તરીય જગ્યા",properties:"ફ્લૅશના ગુણ",propertiesTab:"ગુણ",quality:"ગુણધર્મ",qualityAutoHigh:"ઓટો ઊંચું", +qualityAutoLow:"ઓટો નીચું",qualityBest:"શ્રેષ્ઠ",qualityHigh:"ઊંચું",qualityLow:"નીચું",qualityMedium:"મધ્યમ",scale:"સ્કેલ",scaleAll:"સ્કેલ ઓલ/બધુ બતાવો",scaleFit:"સ્કેલ એકદમ ફીટ",scaleNoBorder:"સ્કેલ બોર્ડર વગર",title:"ફ્લૅશ ગુણ",vSpace:"લંબરૂપ જગ્યા",validateHSpace:"HSpace આંકડો હોવો જોઈએ.",validateSrc:"લિંક URL ટાઇપ કરો",validateVSpace:"VSpace આંકડો હોવો જોઈએ.",windowMode:"વિન્ડો મોડ",windowModeOpaque:"અપારદર્શક",windowModeTransparent:"પારદર્શક",windowModeWindow:"વિન્ડો"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/he.js b/src/lib/ckeditor/plugins/flash/lang/he.js new file mode 100644 index 00000000..6870ea2a --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","he",{access:"גישת סקריפט",accessAlways:"תמיד",accessNever:"אף פעם",accessSameDomain:"דומיין זהה",alignAbsBottom:"לתחתית האבסולוטית",alignAbsMiddle:"מרכוז אבסולוטי",alignBaseline:"לקו התחתית",alignTextTop:"לראש הטקסט",bgcolor:"צבע רקע",chkFull:"אפשר חלון מלא",chkLoop:"לולאה",chkMenu:"אפשר תפריט פלאש",chkPlay:"ניגון אוטומטי",flashvars:"משתנים לפלאש",hSpace:"מרווח אופקי",properties:"מאפייני פלאש",propertiesTab:"מאפיינים",quality:"איכות",qualityAutoHigh:"גבוהה אוטומטית", +qualityAutoLow:"נמוכה אוטומטית",qualityBest:"מעולה",qualityHigh:"גבוהה",qualityLow:"נמוכה",qualityMedium:"ממוצעת",scale:"גודל",scaleAll:"הצג הכל",scaleFit:"התאמה מושלמת",scaleNoBorder:"ללא גבולות",title:"מאפיני פלאש",vSpace:"מרווח אנכי",validateHSpace:"המרווח האופקי חייב להיות מספר.",validateSrc:"יש להקליד את כתובת סרטון הפלאש (URL)",validateVSpace:"המרווח האנכי חייב להיות מספר.",windowMode:"מצב חלון",windowModeOpaque:"אטום",windowModeTransparent:"שקוף",windowModeWindow:"חלון"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/hi.js b/src/lib/ckeditor/plugins/flash/lang/hi.js new file mode 100644 index 00000000..2f3b6e99 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hi",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs नीचे",alignAbsMiddle:"Abs ऊपर",alignBaseline:"मूल रेखा",alignTextTop:"टेक्स्ट ऊपर",bgcolor:"बैक्ग्राउन्ड रंग",chkFull:"Allow Fullscreen",chkLoop:"लूप",chkMenu:"फ़्लैश मॅन्यू का प्रयोग करें",chkPlay:"ऑटो प्ले",flashvars:"Variables for Flash",hSpace:"हॉरिज़ॉन्टल स्पेस",properties:"फ़्लैश प्रॉपर्टीज़",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"स्केल",scaleAll:"सभी दिखायें",scaleFit:"बिल्कुल फ़िट",scaleNoBorder:"कोई बॉर्डर नहीं",title:"फ़्लैश प्रॉपर्टीज़",vSpace:"वर्टिकल स्पेस",validateHSpace:"HSpace must be a number.",validateSrc:"लिंक URL टाइप करें",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/hr.js b/src/lib/ckeditor/plugins/flash/lang/hr.js new file mode 100644 index 00000000..ae7c82f4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hr",{access:"Script Access",accessAlways:"Uvijek",accessNever:"Nikad",accessSameDomain:"Ista domena",alignAbsBottom:"Abs dolje",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Omogući Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Omogući Flash izbornik",chkPlay:"Auto Play",flashvars:"Varijable za Flash",hSpace:"HSpace",properties:"Flash svojstva",propertiesTab:"Svojstva",quality:"Kvaliteta",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Omjer",scaleAll:"Prikaži sve",scaleFit:"Točna veličina",scaleNoBorder:"Bez okvira",title:"Flash svojstva",vSpace:"VSpace",validateHSpace:"HSpace mora biti broj.",validateSrc:"Molimo upišite URL link",validateVSpace:"VSpace mora biti broj.",windowMode:"Vrsta prozora",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/hu.js b/src/lib/ckeditor/plugins/flash/lang/hu.js new file mode 100644 index 00000000..92620909 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","hu",{access:"Szkript hozzáférés",accessAlways:"Mindig",accessNever:"Soha",accessSameDomain:"Azonos domainről",alignAbsBottom:"Legaljára",alignAbsMiddle:"Közepére",alignBaseline:"Alapvonalhoz",alignTextTop:"Szöveg tetejére",bgcolor:"Háttérszín",chkFull:"Teljes képernyő engedélyezése",chkLoop:"Folyamatosan",chkMenu:"Flash menü engedélyezése",chkPlay:"Automata lejátszás",flashvars:"Flash változók",hSpace:"Vízsz. táv",properties:"Flash tulajdonságai",propertiesTab:"Tulajdonságok", +quality:"Minőség",qualityAutoHigh:"Automata jó",qualityAutoLow:"Automata gyenge",qualityBest:"Legjobb",qualityHigh:"Jó",qualityLow:"Gyenge",qualityMedium:"Közepes",scale:"Méretezés",scaleAll:"Mindent mutat",scaleFit:"Teljes kitöltés",scaleNoBorder:"Keret nélkül",title:"Flash tulajdonságai",vSpace:"Függ. táv",validateHSpace:"A vízszintes távolsűág mezőbe csak számokat írhat.",validateSrc:"Adja meg a hivatkozás webcímét",validateVSpace:"A függőleges távolsűág mezőbe csak számokat írhat.",windowMode:"Ablak mód", +windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/id.js b/src/lib/ckeditor/plugins/flash/lang/id.js new file mode 100644 index 00000000..9272c08d --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","id",{access:"Script Access",accessAlways:"Selalu",accessNever:"Tidak Pernah",accessSameDomain:"Domain yang sama",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Dasar",alignTextTop:"Text Top",bgcolor:"Warna Latar Belakang",chkFull:"Izinkan Layar Penuh",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Mainkan Otomatis",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properti",quality:"Kualitas", +qualityAutoHigh:"Tinggi Otomatis",qualityAutoLow:"Rendah Otomatis",qualityBest:"Terbaik",qualityHigh:"Tinggi",qualityLow:"Rendah",qualityMedium:"Sedang",scale:"Scale",scaleAll:"Perlihatkan semua",scaleFit:"Exact Fit",scaleNoBorder:"Tanpa Batas",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace harus sebuah angka",validateSrc:"URL tidak boleh kosong",validateVSpace:"VSpace harus sebuah angka",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparan",windowModeWindow:"Jendela"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/is.js b/src/lib/ckeditor/plugins/flash/lang/is.js new file mode 100644 index 00000000..0b0d71b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","is",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs neðst",alignAbsMiddle:"Abs miðjuð",alignBaseline:"Grunnlína",alignTextTop:"Efri brún texta",bgcolor:"Bakgrunnslitur",chkFull:"Allow Fullscreen",chkLoop:"Endurtekning",chkMenu:"Sýna Flash-valmynd",chkPlay:"Sjálfvirk spilun",flashvars:"Variables for Flash",hSpace:"Vinstri bil",properties:"Eigindi Flash",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skali",scaleAll:"Sýna allt",scaleFit:"Fella skala að stærð",scaleNoBorder:"Án ramma",title:"Eigindi Flash",vSpace:"Hægri bil",validateHSpace:"HSpace must be a number.",validateSrc:"Sláðu inn veffang stiklunnar!",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/it.js b/src/lib/ckeditor/plugins/flash/lang/it.js new file mode 100644 index 00000000..7c5e09f4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","it",{access:"Accesso Script",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"Solo stesso dominio",alignAbsBottom:"In basso assoluto",alignAbsMiddle:"Centrato assoluto",alignBaseline:"Linea base",alignTextTop:"In alto al testo",bgcolor:"Colore sfondo",chkFull:"Permetti la modalità tutto schermo",chkLoop:"Riavvio automatico",chkMenu:"Abilita Menu di Flash",chkPlay:"Avvio Automatico",flashvars:"Variabili per Flash",hSpace:"HSpace",properties:"Proprietà Oggetto Flash", +propertiesTab:"Proprietà",quality:"Qualità",qualityAutoHigh:"Alta Automatica",qualityAutoLow:"Bassa Automatica",qualityBest:"Massima",qualityHigh:"Alta",qualityLow:"Bassa",qualityMedium:"Intermedia",scale:"Ridimensiona",scaleAll:"Mostra Tutto",scaleFit:"Dimensione Esatta",scaleNoBorder:"Senza Bordo",title:"Proprietà Oggetto Flash",vSpace:"VSpace",validateHSpace:"L'HSpace dev'essere un numero.",validateSrc:"Devi inserire l'URL del collegamento",validateVSpace:"Il VSpace dev'essere un numero.",windowMode:"Modalità finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Trasparente",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ja.js b/src/lib/ckeditor/plugins/flash/lang/ja.js new file mode 100644 index 00000000..8a2238b4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ja",{access:"スプリクトアクセス(AllowScriptAccess)",accessAlways:"すべての場合に通信可能(Always)",accessNever:"すべての場合に通信不可能(Never)",accessSameDomain:"同一ドメインのみに通信可能(Same domain)",alignAbsBottom:"下部(絶対的)",alignAbsMiddle:"中央(絶対的)",alignBaseline:"ベースライン",alignTextTop:"テキスト上部",bgcolor:"背景色",chkFull:"フルスクリーン許可",chkLoop:"ループ再生",chkMenu:"Flashメニュー可能",chkPlay:"再生",flashvars:"フラッシュに渡す変数(FlashVars)",hSpace:"横間隔",properties:"Flash プロパティ",propertiesTab:"プロパティ",quality:"画質",qualityAutoHigh:"自動/高", +qualityAutoLow:"自動/低",qualityBest:"品質優先",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"拡大縮小設定",scaleAll:"すべて表示",scaleFit:"上下左右にフィット",scaleNoBorder:"外が見えない様に拡大",title:"Flash プロパティ",vSpace:"縦間隔",validateHSpace:"横間隔は数値で入力してください。",validateSrc:"リンクURLを入力してください。",validateVSpace:"縦間隔は数値で入力してください。",windowMode:"ウィンドウモード",windowModeOpaque:"背景を不透明設定",windowModeTransparent:"背景を透過設定",windowModeWindow:"標準"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ka.js b/src/lib/ckeditor/plugins/flash/lang/ka.js new file mode 100644 index 00000000..fb482eca --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ka",{access:"სკრიპტის წვდომა",accessAlways:"ყოველთვის",accessNever:"არასდროს",accessSameDomain:"იგივე დომენი",alignAbsBottom:"ჩარჩოს ქვემოთა ნაწილის სწორება ტექსტისთვის",alignAbsMiddle:"ჩარჩოს შუა ნაწილის სწორება ტექსტისთვის",alignBaseline:"საბაზისო ხაზის სწორება",alignTextTop:"ტექსტი ზემოდან",bgcolor:"ფონის ფერი",chkFull:"მთელი ეკრანის დაშვება",chkLoop:"ჩაციკლვა",chkMenu:"Flash-ის მენიუს დაშვება",chkPlay:"ავტო გაშვება",flashvars:"ცვლადები Flash-ისთვის",hSpace:"ჰორიზ. სივრცე", +properties:"Flash-ის პარამეტრები",propertiesTab:"პარამეტრები",quality:"ხარისხი",qualityAutoHigh:"მაღალი (ავტომატური)",qualityAutoLow:"ძალიან დაბალი",qualityBest:"საუკეთესო",qualityHigh:"მაღალი",qualityLow:"დაბალი",qualityMedium:"საშუალო",scale:"მასშტაბირება",scaleAll:"ყველაფრის ჩვენება",scaleFit:"ზუსტი ჩასმა",scaleNoBorder:"ჩარჩოს გარეშე",title:"Flash-ის პარამეტრები",vSpace:"ვერტ. სივრცე",validateHSpace:"ჰორიზონტალური სივრცე არ უნდა იყოს ცარიელი.",validateSrc:"URL არ უნდა იყოს ცარიელი.",validateVSpace:"ვერტიკალური სივრცე არ უნდა იყოს ცარიელი.", +windowMode:"ფანჯრის რეჟიმი",windowModeOpaque:"გაუმჭვირვალე",windowModeTransparent:"გამჭვირვალე",windowModeWindow:"ფანჯარა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/km.js b/src/lib/ckeditor/plugins/flash/lang/km.js new file mode 100644 index 00000000..a4babe9e --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","km",{access:"Script Access",accessAlways:"ជានិច្ច",accessNever:"កុំ",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"បន្ទាត់ជាមូលដ្ឋាន",alignTextTop:"លើអត្ថបទ",bgcolor:"ពណ៌ផ្ទៃខាងក្រោយ",chkFull:"អនុញ្ញាត​ឲ្យ​ពេញ​អេក្រង់",chkLoop:"ចំនួនដង",chkMenu:"បង្ហាញ មឺនុយរបស់ Flash",chkPlay:"លេងដោយស្វ័យប្រវត្ត",flashvars:"អថេរ Flash",hSpace:"គំលាតទទឹង",properties:"ការកំណត់ Flash",propertiesTab:"លក្ខណៈ​សម្បត្តិ",quality:"គុណភាព", +qualityAutoHigh:"ខ្ពស់​ស្វ័យ​ប្រវត្តិ",qualityAutoLow:"ទាប​ស្វ័យ​ប្រវត្តិ",qualityBest:"ល្អ​បំផុត",qualityHigh:"ខ្ពស់",qualityLow:"ទាប",qualityMedium:"មធ្យម",scale:"ទំហំ",scaleAll:"បង្ហាញទាំងអស់",scaleFit:"ត្រូវល្មម",scaleNoBorder:"មិនបង្ហាញស៊ុម",title:"ការកំណត់ Flash",vSpace:"គំលាតបណ្តោយ",validateHSpace:"HSpace must be a number.",validateSrc:"សូមសរសេរ អាស័យដ្ឋាន URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"ភាព​ថ្លា",windowModeWindow:"វីនដូ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ko.js b/src/lib/ckeditor/plugins/flash/lang/ko.js new file mode 100644 index 00000000..514c74a8 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ko",{access:"스크립트 허용",accessAlways:"항상 허용",accessNever:"허용 안함",accessSameDomain:"Same domain",alignAbsBottom:"줄아래(Abs Bottom)",alignAbsMiddle:"줄중간(Abs Middle)",alignBaseline:"기준선",alignTextTop:"글자상단",bgcolor:"배경 색상",chkFull:"전체화면 ",chkLoop:"반복",chkMenu:"플래쉬메뉴 가능",chkPlay:"자동재생",flashvars:"Variables for Flash",hSpace:"수평여백",properties:"플래쉬 속성",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High", +qualityLow:"Low",qualityMedium:"Medium",scale:"영역",scaleAll:"모두보기",scaleFit:"영역자동조절",scaleNoBorder:"경계선없음",title:"플래쉬 등록정보",vSpace:"수직여백",validateHSpace:"HSpace must be a number.",validateSrc:"링크 URL을 입력하십시요.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ku.js b/src/lib/ckeditor/plugins/flash/lang/ku.js new file mode 100644 index 00000000..e9618955 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ku",{access:"دەستپێگەیشتنی نووسراو",accessAlways:"هەمیشه",accessNever:"هەرگیز",accessSameDomain:"هەمان دۆمەین",alignAbsBottom:"له ژێرەوه",alignAbsMiddle:"لەناوەند",alignBaseline:"هێڵەبنەڕەت",alignTextTop:"دەق لەسەرەوه",bgcolor:"ڕەنگی پاشبنەما",chkFull:"ڕێپێدان بە پڕی شاشه",chkLoop:"گرێ",chkMenu:"چالاککردنی لیستەی فلاش",chkPlay:"پێکردنی یان لێدانی خۆکار",flashvars:"گۆڕاوەکان بۆ فلاش",hSpace:"بۆشایی ئاسۆیی",properties:"خاسیەتی فلاش",propertiesTab:"خاسیەت",quality:"جۆرایەتی", +qualityAutoHigh:"بەرزی خۆکار",qualityAutoLow:"نزمی خۆکار",qualityBest:"باشترین",qualityHigh:"بەرزی",qualityLow:"نزم",qualityMedium:"مامناوەند",scale:"پێوانه",scaleAll:"نیشاندانی هەموو",scaleFit:"بەوردی بگونجێت",scaleNoBorder:"بێ پەراوێز",title:"خاسیەتی فلاش",vSpace:"بۆشایی ئەستونی",validateHSpace:"بۆشایی ئاسۆیی دەبێت ژمارە بێت.",validateSrc:"ناونیشانی بەستەر نابێت خاڵی بێت",validateVSpace:"بۆشایی ئەستونی دەبێت ژماره بێت.",windowMode:"شێوازی پەنجەره",windowModeOpaque:"ناڕوون",windowModeTransparent:"ڕۆشن", +windowModeWindow:"پەنجەره"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/lt.js b/src/lib/ckeditor/plugins/flash/lang/lt.js new file mode 100644 index 00000000..8e013f24 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lt",{access:"Skripto priėjimas",accessAlways:"Visada",accessNever:"Niekada",accessSameDomain:"Tas pats domenas",alignAbsBottom:"Absoliučią apačią",alignAbsMiddle:"Absoliutų vidurį",alignBaseline:"Apatinę liniją",alignTextTop:"Teksto viršūnę",bgcolor:"Fono spalva",chkFull:"Leisti per visą ekraną",chkLoop:"Ciklas",chkMenu:"Leisti Flash meniu",chkPlay:"Automatinis paleidimas",flashvars:"Flash kintamieji",hSpace:"Hor.Erdvė",properties:"Flash savybės",propertiesTab:"Nustatymai", +quality:"Kokybė",qualityAutoHigh:"Automatiškai Gera",qualityAutoLow:"Automatiškai Žema",qualityBest:"Geriausia",qualityHigh:"Gera",qualityLow:"Žema",qualityMedium:"Vidutinė",scale:"Mastelis",scaleAll:"Rodyti visą",scaleFit:"Tikslus atitikimas",scaleNoBorder:"Be rėmelio",title:"Flash savybės",vSpace:"Vert.Erdvė",validateHSpace:"HSpace turi būti skaičius.",validateSrc:"Prašome įvesti nuorodos URL",validateVSpace:"VSpace turi būti skaičius.",windowMode:"Lango režimas",windowModeOpaque:"Nepermatomas", +windowModeTransparent:"Permatomas",windowModeWindow:"Langas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/lv.js b/src/lib/ckeditor/plugins/flash/lang/lv.js new file mode 100644 index 00000000..30edb939 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lv",{access:"Skripta pieeja",accessAlways:"Vienmēr",accessNever:"Nekad",accessSameDomain:"Tas pats domēns",alignAbsBottom:"Absolūti apakšā",alignAbsMiddle:"Absolūti vertikāli centrēts",alignBaseline:"Pamatrindā",alignTextTop:"Teksta augšā",bgcolor:"Fona krāsa",chkFull:"Pilnekrāns",chkLoop:"Nepārtraukti",chkMenu:"Atļaut Flash izvēlni",chkPlay:"Automātiska atskaņošana",flashvars:"Flash mainīgie",hSpace:"Horizontālā telpa",properties:"Flash īpašības",propertiesTab:"Uzstādījumi", +quality:"Kvalitāte",qualityAutoHigh:"Automātiski Augsta",qualityAutoLow:"Automātiski Zema",qualityBest:"Labākā",qualityHigh:"Augsta",qualityLow:"Zema",qualityMedium:"Vidēja",scale:"Mainīt izmēru",scaleAll:"Rādīt visu",scaleFit:"Precīzs izmērs",scaleNoBorder:"Bez rāmja",title:"Flash īpašības",vSpace:"Vertikālā telpa",validateHSpace:"Hspace jābūt skaitlim",validateSrc:"Lūdzu norādi hipersaiti",validateVSpace:"Vspace jābūt skaitlim",windowMode:"Loga režīms",windowModeOpaque:"Necaurspīdīgs",windowModeTransparent:"Caurspīdīgs", +windowModeWindow:"Logs"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/mk.js b/src/lib/ckeditor/plugins/flash/lang/mk.js new file mode 100644 index 00000000..ae22f2a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mk",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/mn.js b/src/lib/ckeditor/plugins/flash/lang/mn.js new file mode 100644 index 00000000..6759d77d --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mn",{access:"Script Access",accessAlways:"Онцлогууд",accessNever:"Хэзээ ч үгүй",accessSameDomain:"Байнга",alignAbsBottom:"Abs доод талд",alignAbsMiddle:"Abs Дунд талд",alignBaseline:"Baseline",alignTextTop:"Текст дээр",bgcolor:"Дэвсгэр өнгө",chkFull:"Allow Fullscreen",chkLoop:"Давтах",chkMenu:"Флаш цэс идвэхжүүлэх",chkPlay:"Автоматаар тоглох",flashvars:"Variables for Flash",hSpace:"Хөндлөн зай",properties:"Флаш шинж чанар",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Өргөгтгөх",scaleAll:"Бүгдийг харуулах",scaleFit:"Яг тааруулах",scaleNoBorder:"Хүрээгүй",title:"Флаш шинж чанар",vSpace:"Босоо зай",validateHSpace:"HSpace must be a number.",validateSrc:"Линк URL-ээ төрөлжүүлнэ үү",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ms.js b/src/lib/ckeditor/plugins/flash/lang/ms.js new file mode 100644 index 00000000..9012a684 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ms",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Bawah Mutlak",alignAbsMiddle:"Pertengahan Mutlak",alignBaseline:"Garis Dasar",alignTextTop:"Atas Text",bgcolor:"Warna Latarbelakang",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"Ruang Melintang",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"Ruang Menegak",validateHSpace:"HSpace must be a number.",validateSrc:"Sila taip sambungan URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/nb.js b/src/lib/ckeditor/plugins/flash/lang/nb.js new file mode 100644 index 00000000..c03f61f7 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","nb",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/nl.js b/src/lib/ckeditor/plugins/flash/lang/nl.js new file mode 100644 index 00000000..193591ba --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","nl",{access:"Script toegang",accessAlways:"Altijd",accessNever:"Nooit",accessSameDomain:"Zelfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-midden",alignBaseline:"Basislijn",alignTextTop:"Boven tekst",bgcolor:"Achtergrondkleur",chkFull:"Schermvullend toestaan",chkLoop:"Herhalen",chkMenu:"Flashmenu's inschakelen",chkPlay:"Automatisch afspelen",flashvars:"Variabelen voor Flash",hSpace:"HSpace",properties:"Eigenschappen Flash",propertiesTab:"Eigenschappen", +quality:"Kwaliteit",qualityAutoHigh:"Automatisch hoog",qualityAutoLow:"Automatisch laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Schaal",scaleAll:"Alles tonen",scaleFit:"Precies passend",scaleNoBorder:"Geen rand",title:"Eigenschappen Flash",vSpace:"VSpace",validateHSpace:"De HSpace moet een getal zijn.",validateSrc:"De URL mag niet leeg zijn.",validateVSpace:"De VSpace moet een getal zijn.",windowMode:"Venster modus",windowModeOpaque:"Ondoorzichtig", +windowModeTransparent:"Doorzichtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/no.js b/src/lib/ckeditor/plugins/flash/lang/no.js new file mode 100644 index 00000000..4f660ce4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","no",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/pl.js b/src/lib/ckeditor/plugins/flash/lang/pl.js new file mode 100644 index 00000000..aa3da87e --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pl",{access:"Dostęp skryptów",accessAlways:"Zawsze",accessNever:"Nigdy",accessSameDomain:"Ta sama domena",alignAbsBottom:"Do dołu",alignAbsMiddle:"Do środka w pionie",alignBaseline:"Do linii bazowej",alignTextTop:"Do góry tekstu",bgcolor:"Kolor tła",chkFull:"Zezwól na pełny ekran",chkLoop:"Pętla",chkMenu:"Włącz menu",chkPlay:"Autoodtwarzanie",flashvars:"Zmienne obiektu Flash",hSpace:"Odstęp poziomy",properties:"Właściwości obiektu Flash",propertiesTab:"Właściwości", +quality:"Jakość",qualityAutoHigh:"Auto wysoka",qualityAutoLow:"Auto niska",qualityBest:"Najlepsza",qualityHigh:"Wysoka",qualityLow:"Niska",qualityMedium:"Średnia",scale:"Skaluj",scaleAll:"Pokaż wszystko",scaleFit:"Dokładne dopasowanie",scaleNoBorder:"Bez obramowania",title:"Właściwości obiektu Flash",vSpace:"Odstęp pionowy",validateHSpace:"Odstęp poziomy musi być liczbą.",validateSrc:"Podaj adres URL",validateVSpace:"Odstęp pionowy musi być liczbą.",windowMode:"Tryb okna",windowModeOpaque:"Nieprzezroczyste", +windowModeTransparent:"Przezroczyste",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/pt-br.js b/src/lib/ckeditor/plugins/flash/lang/pt-br.js new file mode 100644 index 00000000..4be3e143 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt-br",{access:"Acesso ao script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Acessar Mesmo Domínio",alignAbsBottom:"Inferior Absoluto",alignAbsMiddle:"Centralizado Absoluto",alignBaseline:"Baseline",alignTextTop:"Superior Absoluto",bgcolor:"Cor do Plano de Fundo",chkFull:"Permitir tela cheia",chkLoop:"Tocar Infinitamente",chkMenu:"Habilita Menu Flash",chkPlay:"Tocar Automaticamente",flashvars:"Variáveis do Flash",hSpace:"HSpace",properties:"Propriedades do Flash", +propertiesTab:"Propriedades",quality:"Qualidade",qualityAutoHigh:"Qualidade Alta Automática",qualityAutoLow:"Qualidade Baixa Automática",qualityBest:"Qualidade Melhor",qualityHigh:"Qualidade Alta",qualityLow:"Qualidade Baixa",qualityMedium:"Qualidade Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Escala Exata",scaleNoBorder:"Sem Borda",title:"Propriedades do Flash",vSpace:"VSpace",validateHSpace:"O HSpace tem que ser um número",validateSrc:"Por favor, digite o endereço do link",validateVSpace:"O VSpace tem que ser um número.", +windowMode:"Modo da janela",windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/pt.js b/src/lib/ckeditor/plugins/flash/lang/pt.js new file mode 100644 index 00000000..374ffae8 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt",{access:"Acesso ao Script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Linha de base",alignTextTop:"Topo do texto",bgcolor:"Cor de Fundo",chkFull:"Permitir Ecrã inteiro",chkLoop:"Loop",chkMenu:"Permitir Menu do Flash",chkPlay:"Reproduzir automaticamente",flashvars:"Variaveis para o Flash",hSpace:"Esp.Horiz",properties:"Propriedades do Flash",propertiesTab:"Propriedades", +quality:"Qualidade",qualityAutoHigh:"Alta Automaticamente",qualityAutoLow:"Baixa Automaticamente",qualityBest:"Melhor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Tamanho Exacto",scaleNoBorder:"Sem Limites",title:"Propriedades do Flash",vSpace:"Esp.Vert",validateHSpace:"HSpace tem de ser um numero.",validateSrc:"Por favor introduza a hiperligação URL",validateVSpace:"VSpace tem de ser um numero.",windowMode:"Modo de janela",windowModeOpaque:"Opaco", +windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ro.js b/src/lib/ckeditor/plugins/flash/lang/ro.js new file mode 100644 index 00000000..8be6b18f --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ro",{access:"Acces script",accessAlways:"Întotdeauna",accessNever:"Niciodată",accessSameDomain:"Același domeniu",alignAbsBottom:"Jos absolut (Abs Bottom)",alignAbsMiddle:"Mijloc absolut (Abs Middle)",alignBaseline:"Linia de jos (Baseline)",alignTextTop:"Text sus",bgcolor:"Coloarea fundalului",chkFull:"Permite pe tot ecranul",chkLoop:"Repetă (Loop)",chkMenu:"Activează meniul flash",chkPlay:"Rulează automat",flashvars:"Variabile pentru flash",hSpace:"HSpace",properties:"Proprietăţile flashului", +propertiesTab:"Proprietăți",quality:"Calitate",qualityAutoHigh:"Auto înaltă",qualityAutoLow:"Auto Joasă",qualityBest:"Cea mai bună",qualityHigh:"Înaltă",qualityLow:"Joasă",qualityMedium:"Medie",scale:"Scală",scaleAll:"Arată tot",scaleFit:"Potriveşte",scaleNoBorder:"Fără bordură (No border)",title:"Proprietăţile flashului",vSpace:"VSpace",validateHSpace:"Hspace trebuie să fie un număr.",validateSrc:"Vă rugăm să scrieţi URL-ul",validateVSpace:"VSpace trebuie să fie un număr",windowMode:"Mod fereastră", +windowModeOpaque:"Opacă",windowModeTransparent:"Transparentă",windowModeWindow:"Fereastră"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ru.js b/src/lib/ckeditor/plugins/flash/lang/ru.js new file mode 100644 index 00000000..d4f39fb5 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ru",{access:"Доступ к скриптам",accessAlways:"Всегда",accessNever:"Никогда",accessSameDomain:"В том же домене",alignAbsBottom:"По низу текста",alignAbsMiddle:"По середине текста",alignBaseline:"По базовой линии",alignTextTop:"По верху текста",bgcolor:"Цвет фона",chkFull:"Разрешить полноэкранный режим",chkLoop:"Повторять",chkMenu:"Включить меню Flash",chkPlay:"Автоматическое воспроизведение",flashvars:"Переменные для Flash",hSpace:"Гориз. отступ",properties:"Свойства Flash", +propertiesTab:"Свойства",quality:"Качество",qualityAutoHigh:"Запуск на высоком",qualityAutoLow:"Запуск на низком",qualityBest:"Лучшее",qualityHigh:"Высокое",qualityLow:"Низкое",qualityMedium:"Среднее",scale:"Масштабировать",scaleAll:"Пропорционально",scaleFit:"Заполнять",scaleNoBorder:"Заходить за границы",title:"Свойства Flash",vSpace:"Вертик. отступ",validateHSpace:"Горизонтальный отступ задается числом.",validateSrc:"Вы должны ввести ссылку",validateVSpace:"Вертикальный отступ задается числом.", +windowMode:"Взаимодействие с окном",windowModeOpaque:"Непрозрачный",windowModeTransparent:"Прозрачный",windowModeWindow:"Обычный"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/si.js b/src/lib/ckeditor/plugins/flash/lang/si.js new file mode 100644 index 00000000..6184682d --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","si",{access:"පිටපත් ප්‍රවේශය",accessAlways:"හැමවිටම",accessNever:"කිසිදා නොවේ",accessSameDomain:"එකම වසමේ",alignAbsBottom:"පතුල",alignAbsMiddle:"Abs ",alignBaseline:"පාද රේඛාව",alignTextTop:"වගන්තිය ඉහල",bgcolor:"පසුබිම් වර්ණය",chkFull:"පුර්ණ තිරය සදහා අවසර",chkLoop:"පුඩුව",chkMenu:"සක්‍රිය බබලන මෙනුව",chkPlay:"ස්‌වයංක්‍රිය ක්‍රියාත්මක වීම",flashvars:"වෙනස්වන දත්ත",hSpace:"HSpace",properties:"බබලන ගුණ",propertiesTab:"ගුණ",quality:"තත්වය",qualityAutoHigh:"ස්‌වයංක්‍රිය ", +qualityAutoLow:" ස්‌වයංක්‍රිය ",qualityBest:"වඩාත් ගැලපෙන",qualityHigh:"ඉහළ",qualityLow:"පහළ",qualityMedium:"මධ්‍ය",scale:"පරිමාණ",scaleAll:"සියල්ල ",scaleFit:"හරියටම ගැලපෙන",scaleNoBorder:"මාඉම් නොමැති",title:"බබලන ",vSpace:"VSpace",validateHSpace:"HSpace සංක්‍යාවක් විය යුතුය.",validateSrc:"URL හිස් නොවිය ",validateVSpace:"VSpace සංක්‍යාවක් විය යුතුය",windowMode:"ජනෙල ක්‍රමය",windowModeOpaque:"විනිවිද පෙනෙන",windowModeTransparent:"විනිවිද පෙනෙන",windowModeWindow:"ජනෙල"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/sk.js b/src/lib/ckeditor/plugins/flash/lang/sk.js new file mode 100644 index 00000000..e959ca02 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sk",{access:"Prístup skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Rovnaká doména",alignAbsBottom:"Úplne dole",alignAbsMiddle:"Do stredu",alignBaseline:"Na základnú čiaru",alignTextTop:"Na horný okraj textu",bgcolor:"Farba pozadia",chkFull:"Povoliť zobrazenie na celú obrazovku (fullscreen)",chkLoop:"Opakovanie",chkMenu:"Povoliť Flash Menu",chkPlay:"Automatické prehrávanie",flashvars:"Premenné pre Flash",hSpace:"H-medzera",properties:"Vlastnosti Flashu", +propertiesTab:"Vlastnosti",quality:"Kvalita",qualityAutoHigh:"Automaticky vysoká",qualityAutoLow:"Automaticky nízka",qualityBest:"Najlepšia",qualityHigh:"Vysoká",qualityLow:"Nízka",qualityMedium:"Stredná",scale:"Mierka",scaleAll:"Zobraziť všetko",scaleFit:"Roztiahnuť, aby sedelo presne",scaleNoBorder:"Bez okrajov",title:"Vlastnosti Flashu",vSpace:"V-medzera",validateHSpace:"H-medzera musí byť číslo.",validateSrc:"URL nesmie byť prázdne.",validateVSpace:"V-medzera musí byť číslo",windowMode:"Mód okna", +windowModeOpaque:"Nepriehľadný",windowModeTransparent:"Priehľadný",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/sl.js b/src/lib/ckeditor/plugins/flash/lang/sl.js new file mode 100644 index 00000000..3de6413e --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sl",{access:"Dostop skript",accessAlways:"Vedno",accessNever:"Nikoli",accessSameDomain:"Samo ista domena",alignAbsBottom:"Popolnoma na dno",alignAbsMiddle:"Popolnoma v sredino",alignBaseline:"Na osnovno črto",alignTextTop:"Besedilo na vrh",bgcolor:"Barva ozadja",chkFull:"Dovoli celozaslonski način",chkLoop:"Ponavljanje",chkMenu:"Omogoči Flash Meni",chkPlay:"Samodejno predvajaj",flashvars:"Spremenljivke za Flash",hSpace:"Vodoravni razmik",properties:"Lastnosti Flash", +propertiesTab:"Lastnosti",quality:"Kakovost",qualityAutoHigh:"Samodejno visoka",qualityAutoLow:"Samodejno nizka",qualityBest:"Najvišja",qualityHigh:"Visoka",qualityLow:"Nizka",qualityMedium:"Srednja",scale:"Povečava",scaleAll:"Pokaži vse",scaleFit:"Natančno prileganje",scaleNoBorder:"Brez obrobe",title:"Lastnosti Flash",vSpace:"Navpični razmik",validateHSpace:"Vodoravni razmik mora biti število.",validateSrc:"Vnesite URL povezave",validateVSpace:"Navpični razmik mora biti število.",windowMode:"Vrsta okna", +windowModeOpaque:"Motno",windowModeTransparent:"Prosojno",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/sq.js b/src/lib/ckeditor/plugins/flash/lang/sq.js new file mode 100644 index 00000000..bded5272 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sq",{access:"Qasja në Skriptë",accessAlways:"Gjithnjë",accessNever:"Asnjëherë",accessSameDomain:"Fusha e Njëjtë",alignAbsBottom:"Abs në Fund",alignAbsMiddle:"Abs në Mes",alignBaseline:"Baza",alignTextTop:"Koka e Tekstit",bgcolor:"Ngjyra e Prapavijës",chkFull:"Lejo Ekran të Plotë",chkLoop:"Përsëritje",chkMenu:"Lejo Menynë për Flash",chkPlay:"Auto Play",flashvars:"Variablat për Flash",hSpace:"Hapësira Horizontale",properties:"Karakteristikat për Flash",propertiesTab:"Karakteristikat", +quality:"Kualiteti",qualityAutoHigh:"Automatikisht i Lartë",qualityAutoLow:"Automatikisht i Ulët",qualityBest:"Më i Miri",qualityHigh:"I Lartë",qualityLow:"Më i Ulti",qualityMedium:"I Mesëm",scale:"Shkalla",scaleAll:"Shfaq të Gjitha",scaleFit:"Përputhje të Plotë",scaleNoBorder:"Pa Kornizë",title:"Rekuizitat për Flash",vSpace:"Hapësira Vertikale",validateHSpace:"Hapësira Horizontale duhet të është numër.",validateSrc:"URL nuk duhet mbetur zbrazur.",validateVSpace:"Hapësira Vertikale duhet të është numër.", +windowMode:"Window mode",windowModeOpaque:"Errët",windowModeTransparent:"Tejdukshëm",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/sr-latn.js b/src/lib/ckeditor/plugins/flash/lang/sr-latn.js new file mode 100644 index 00000000..641140c3 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr-latn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Uključi fleš meni",chkPlay:"Automatski start",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Osobine fleša",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skaliraj",scaleAll:"Prikaži sve",scaleFit:"Popuni površinu",scaleNoBorder:"Bez ivice",title:"Osobine fleša",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Unesite URL linka",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/sr.js b/src/lib/ckeditor/plugins/flash/lang/sr.js new file mode 100644 index 00000000..c62614dc --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs доле",alignAbsMiddle:"Abs средина",alignBaseline:"Базно",alignTextTop:"Врх текста",bgcolor:"Боја позадине",chkFull:"Allow Fullscreen",chkLoop:"Понављај",chkMenu:"Укључи флеш мени",chkPlay:"Аутоматски старт",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Особине Флеша",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Скалирај",scaleAll:"Прикажи све",scaleFit:"Попуни површину",scaleNoBorder:"Без ивице",title:"Особине флеша",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Унесите УРЛ линка",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/sv.js b/src/lib/ckeditor/plugins/flash/lang/sv.js new file mode 100644 index 00000000..7c6edcc4 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sv",{access:"Script-tillgång",accessAlways:"Alltid",accessNever:"Aldrig",accessSameDomain:"Samma domän",alignAbsBottom:"Absolut nederkant",alignAbsMiddle:"Absolut centrering",alignBaseline:"Baslinje",alignTextTop:"Text överkant",bgcolor:"Bakgrundsfärg",chkFull:"Tillåt helskärm",chkLoop:"Upprepa/Loopa",chkMenu:"Aktivera Flashmeny",chkPlay:"Automatisk uppspelning",flashvars:"Variabler för Flash",hSpace:"Horis. marginal",properties:"Flashegenskaper",propertiesTab:"Egenskaper", +quality:"Kvalitet",qualityAutoHigh:"Auto Hög",qualityAutoLow:"Auto Låg",qualityBest:"Bäst",qualityHigh:"Hög",qualityLow:"Låg",qualityMedium:"Medium",scale:"Skala",scaleAll:"Visa allt",scaleFit:"Exakt passning",scaleNoBorder:"Ingen ram",title:"Flashegenskaper",vSpace:"Vert. marginal",validateHSpace:"HSpace måste vara ett nummer.",validateSrc:"Var god ange länkens URL",validateVSpace:"VSpace måste vara ett nummer.",windowMode:"Fönsterläge",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent", +windowModeWindow:"Fönster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/th.js b/src/lib/ckeditor/plugins/flash/lang/th.js new file mode 100644 index 00000000..49932348 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","th",{access:"การเข้าถึงสคริปต์",accessAlways:"ตลอดไป",accessNever:"ไม่เลย",accessSameDomain:"โดเมนเดียวกัน",alignAbsBottom:"ชิดด้านล่างสุด",alignAbsMiddle:"กึ่งกลาง",alignBaseline:"ชิดบรรทัด",alignTextTop:"ใต้ตัวอักษร",bgcolor:"สีพื้นหลัง",chkFull:"อนุญาตให้แสดงเต็มหน้าจอได้",chkLoop:"เล่นวนรอบ Loop",chkMenu:"ให้ใช้งานเมนูของ Flash",chkPlay:"เล่นอัตโนมัติ Auto Play",flashvars:"ตัวแปรสำหรับ Flas",hSpace:"ระยะแนวนอน",properties:"คุณสมบัติของไฟล์ Flash",propertiesTab:"คุณสมบัติ", +quality:"คุณภาพ",qualityAutoHigh:"ปรับคุณภาพสูงอัตโนมัติ",qualityAutoLow:"ปรับคุณภาพต่ำอัตโนมัติ",qualityBest:"ดีที่สุด",qualityHigh:"สูง",qualityLow:"ต่ำ",qualityMedium:"ปานกลาง",scale:"อัตราส่วน Scale",scaleAll:"แสดงให้เห็นทั้งหมด Show all",scaleFit:"แสดงให้พอดีกับพื้นที่ Exact Fit",scaleNoBorder:"ไม่แสดงเส้นขอบ No Border",title:"คุณสมบัติของไฟล์ Flash",vSpace:"ระยะแนวตั้ง",validateHSpace:"HSpace ต้องเป็นจำนวนตัวเลข",validateSrc:"กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",validateVSpace:"VSpace ต้องเป็นจำนวนตัวเลข", +windowMode:"โหมดหน้าต่าง",windowModeOpaque:"ความทึบแสง",windowModeTransparent:"ความโปรงแสง",windowModeWindow:"หน้าต่าง"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/tr.js b/src/lib/ckeditor/plugins/flash/lang/tr.js new file mode 100644 index 00000000..8d76aa2b --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tr",{access:"Kod İzni",accessAlways:"Herzaman",accessNever:"Asla",accessSameDomain:"Aynı domain",alignAbsBottom:"Tam Altı",alignAbsMiddle:"Tam Ortası",alignBaseline:"Taban Çizgisi",alignTextTop:"Yazı Tepeye",bgcolor:"Arka Renk",chkFull:"Tam ekrana İzinver",chkLoop:"Döngü",chkMenu:"Flash Menüsünü Kullan",chkPlay:"Otomatik Oynat",flashvars:"Flash Değerleri",hSpace:"Yatay Boşluk",properties:"Flash Özellikleri",propertiesTab:"Özellikler",quality:"Kalite",qualityAutoHigh:"Otomatik Yükseklik", +qualityAutoLow:"Otomatik Düşüklük",qualityBest:"En iyi",qualityHigh:"Yüksek",qualityLow:"Düşük",qualityMedium:"Orta",scale:"Boyutlandır",scaleAll:"Hepsini Göster",scaleFit:"Tam Sığdır",scaleNoBorder:"Kenar Yok",title:"Flash Özellikleri",vSpace:"Dikey Boşluk",validateHSpace:"HSpace sayı olmalıdır.",validateSrc:"Lütfen köprü URL'sini yazın",validateVSpace:"VSpace sayı olmalıdır.",windowMode:"Pencere modu",windowModeOpaque:"Opak",windowModeTransparent:"Şeffaf",windowModeWindow:"Pencere"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/tt.js b/src/lib/ckeditor/plugins/flash/lang/tt.js new file mode 100644 index 00000000..db937890 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tt",{access:"Script Access",accessAlways:"Һəрвакыт",accessNever:"Беркайчан да",accessSameDomain:"Same domain",alignAbsBottom:"Иң аска",alignAbsMiddle:"Төгәл уртада",alignBaseline:"Таяныч сызыгы",alignTextTop:"Text Top",bgcolor:"Фон төсе",chkFull:"Allow Fullscreen",chkLoop:"Әйләнеш",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Флеш үзлекләре",propertiesTab:"Үзлекләр",quality:"Сыйфат",qualityAutoHigh:"Авто югары сыйфат", +qualityAutoLow:"Авто түбән сыйфат",qualityBest:"Иң югары сыйфат",qualityHigh:"Югары",qualityLow:"Түбəн",qualityMedium:"Уртача",scale:"Scale",scaleAll:"Барысын күрсәтү",scaleFit:"Exact Fit",scaleNoBorder:"Чиксез",title:"Флеш үзлекләре",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Тəрəзə тәртибе",windowModeOpaque:"Үтә күренмәле",windowModeTransparent:"Үтə күренмəле",windowModeWindow:"Тəрəзə"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/ug.js b/src/lib/ckeditor/plugins/flash/lang/ug.js new file mode 100644 index 00000000..36bdb424 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ug",{access:"قوليازما زىيارەتكە يول قوي",accessAlways:"ھەمىشە",accessNever:"ھەرگىز",accessSameDomain:"ئوخشاش دائىرىدە",alignAbsBottom:"مۇتلەق ئاستى",alignAbsMiddle:"مۇتلەق ئوتتۇرا",alignBaseline:"ئاساسىي سىزىق",alignTextTop:"تېكىست ئۈستىدە",bgcolor:"تەگلىك رەڭگى",chkFull:"پۈتۈن ئېكراننى قوزغات",chkLoop:"دەۋرىي",chkMenu:"Flash تىزىملىكنى قوزغات",chkPlay:"ئۆزلۈكىدىن چال",flashvars:"Flash ئۆزگەرگۈچى",hSpace:"توغرىسىغا ئارىلىق",properties:"Flash خاسلىق",propertiesTab:"خاسلىق", +quality:"سۈپەت",qualityAutoHigh:"يۇقىرى (ئاپتوماتىك)",qualityAutoLow:"تۆۋەن (ئاپتوماتىك)",qualityBest:"ئەڭ ياخشى",qualityHigh:"يۇقىرى",qualityLow:"تۆۋەن",qualityMedium:"ئوتتۇرا (ئاپتوماتىك)",scale:"نىسبىتى",scaleAll:"ھەممىنى كۆرسەت",scaleFit:"قەتئىي ماسلىشىش",scaleNoBorder:"گىرۋەك يوق",title:"ماۋزۇ",vSpace:"بويىغا ئارىلىق",validateHSpace:"توغرىسىغا ئارىلىق چوقۇم سان بولىدۇ",validateSrc:"ئەسلى ھۆججەت ئادرېسىنى كىرگۈزۈڭ",validateVSpace:"بويىغا ئارىلىق چوقۇم سان بولىدۇ",windowMode:"كۆزنەك ھالىتى",windowModeOpaque:"خىرە", +windowModeTransparent:"سۈزۈك",windowModeWindow:"كۆزنەك گەۋدىسى"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/uk.js b/src/lib/ckeditor/plugins/flash/lang/uk.js new file mode 100644 index 00000000..cc458daf --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","uk",{access:"Доступ до скрипта",accessAlways:"Завжди",accessNever:"Ніколи",accessSameDomain:"З того ж домена",alignAbsBottom:"По нижньому краю (abs)",alignAbsMiddle:"По середині (abs)",alignBaseline:"По базовій лінії",alignTextTop:"Текст по верхньому краю",bgcolor:"Колір фону",chkFull:"Дозволити повноекранний перегляд",chkLoop:"Циклічно",chkMenu:"Дозволити меню Flash",chkPlay:"Автопрогравання",flashvars:"Змінні Flash",hSpace:"Гориз. відступ",properties:"Властивості Flash", +propertiesTab:"Властивості",quality:"Якість",qualityAutoHigh:"Автом. відмінна",qualityAutoLow:"Автом. низька",qualityBest:"Відмінна",qualityHigh:"Висока",qualityLow:"Низька",qualityMedium:"Середня",scale:"Масштаб",scaleAll:"Показати все",scaleFit:"Поч. розмір",scaleNoBorder:"Без рамки",title:"Властивості Flash",vSpace:"Верт. відступ",validateHSpace:"Гориз. відступ повинен бути цілим числом.",validateSrc:"Будь ласка, вкажіть URL посилання",validateVSpace:"Верт. відступ повинен бути цілим числом.", +windowMode:"Віконний режим",windowModeOpaque:"Непрозорість",windowModeTransparent:"Прозорість",windowModeWindow:"Вікно"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/vi.js b/src/lib/ckeditor/plugins/flash/lang/vi.js new file mode 100644 index 00000000..17a0c1b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","vi",{access:"Truy cập mã",accessAlways:"Luôn luôn",accessNever:"Không bao giờ",accessSameDomain:"Cùng tên miền",alignAbsBottom:"Dưới tuyệt đối",alignAbsMiddle:"Giữa tuyệt đối",alignBaseline:"Đường cơ sở",alignTextTop:"Phía trên chữ",bgcolor:"Màu nền",chkFull:"Cho phép toàn màn hình",chkLoop:"Lặp",chkMenu:"Cho phép bật menu của Flash",chkPlay:"Tự động chạy",flashvars:"Các biến số dành cho Flash",hSpace:"Khoảng đệm ngang",properties:"Thuộc tính Flash",propertiesTab:"Thuộc tính", +quality:"Chất lượng",qualityAutoHigh:"Cao tự động",qualityAutoLow:"Thấp tự động",qualityBest:"Tốt nhất",qualityHigh:"Cao",qualityLow:"Thấp",qualityMedium:"Trung bình",scale:"Tỷ lệ",scaleAll:"Hiển thị tất cả",scaleFit:"Vừa vặn",scaleNoBorder:"Không đường viền",title:"Thuộc tính Flash",vSpace:"Khoảng đệm dọc",validateHSpace:"Khoảng đệm ngang phải là số nguyên.",validateSrc:"Hãy đưa vào đường dẫn liên kết",validateVSpace:"Khoảng đệm dọc phải là số nguyên.",windowMode:"Chế độ cửa sổ",windowModeOpaque:"Mờ đục", +windowModeTransparent:"Trong suốt",windowModeWindow:"Cửa sổ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/zh-cn.js b/src/lib/ckeditor/plugins/flash/lang/zh-cn.js new file mode 100644 index 00000000..d7be33ba --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh-cn",{access:"允许脚本访问",accessAlways:"总是",accessNever:"从不",accessSameDomain:"同域",alignAbsBottom:"绝对底部",alignAbsMiddle:"绝对居中",alignBaseline:"基线",alignTextTop:"文本上方",bgcolor:"背景颜色",chkFull:"启用全屏",chkLoop:"循环",chkMenu:"启用 Flash 菜单",chkPlay:"自动播放",flashvars:"Flash 变量",hSpace:"水平间距",properties:"Flash 属性",propertiesTab:"属性",quality:"质量",qualityAutoHigh:"高(自动)",qualityAutoLow:"低(自动)",qualityBest:"最好",qualityHigh:"高",qualityLow:"低",qualityMedium:"中(自动)",scale:"缩放",scaleAll:"全部显示", +scaleFit:"严格匹配",scaleNoBorder:"无边框",title:"标题",vSpace:"垂直间距",validateHSpace:"水平间距必须为数字格式",validateSrc:"请输入源文件地址",validateVSpace:"垂直间距必须为数字格式",windowMode:"窗体模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"窗体"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/lang/zh.js b/src/lib/ckeditor/plugins/flash/lang/zh.js new file mode 100644 index 00000000..83af6820 --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh",{access:"腳本存取",accessAlways:"永遠",accessNever:"從不",accessSameDomain:"相同網域",alignAbsBottom:"絕對下方",alignAbsMiddle:"絕對置中",alignBaseline:"基準線",alignTextTop:"上層文字",bgcolor:"背景顏色",chkFull:"允許全螢幕",chkLoop:"重複播放",chkMenu:"啟用 Flash 選單",chkPlay:"自動播放",flashvars:"Flash 變數",hSpace:"HSpace",properties:"Flash 屬性​​",propertiesTab:"屬性",quality:"品質",qualityAutoHigh:"自動高",qualityAutoLow:"自動低",qualityBest:"最佳",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"縮放比例",scaleAll:"全部顯示", +scaleFit:"最適化",scaleNoBorder:"無框線",title:"Flash 屬性​​",vSpace:"VSpace",validateHSpace:"HSpace 必須為數字。",validateSrc:"URL 不可為空白。",validateVSpace:"VSpace 必須為數字。",windowMode:"視窗模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"視窗"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/flash/plugin.js b/src/lib/ckeditor/plugins/flash/plugin.js new file mode 100644 index 00000000..a2a786ac --- /dev/null +++ b/src/lib/ckeditor/plugins/flash/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||f.test(a.src||"")}function e(a,b){return a.createFakeParserElement(b,"cke_flash","flash",!0)}var f=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"flash", +hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b="object[classid,codebase,height,hspace,vspace,width];param[name,value];embed[height,hspace,pluginspage,src,type,vspace,width]";CKEDITOR.dialog.isTabEnabled(a,"flash","properties")&&(b+=";object[align]; embed[allowscriptaccess,quality,scale,wmode]"); +CKEDITOR.dialog.isTabEnabled(a,"flash","advanced")&&(b+=";object[id]{*}; embed[bgcolor]{*}(*)");a.addCommand("flash",new CKEDITOR.dialogCommand("flash",{allowedContent:b,requiredContent:"embed"}));a.ui.addButton&&a.ui.addButton("Flash",{label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element; +b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!d(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!d(b.children[c]))break; +return e(a,b)}return null}return e(a,b)},"cke:embed":function(b){return!d(b)?null:e(a,b)}}},5)}})})();CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/af.js b/src/lib/ckeditor/plugins/font/lang/af.js new file mode 100644 index 00000000..0473fe90 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","af",{fontSize:{label:"Grootte",voiceLabel:"Fontgrootte",panelTitle:"Fontgrootte"},label:"Font",panelTitle:"Fontnaam",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ar.js b/src/lib/ckeditor/plugins/font/lang/ar.js new file mode 100644 index 00000000..cf81e27a --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ar",{fontSize:{label:"حجم الخط",voiceLabel:"حجم الخط",panelTitle:"حجم الخط"},label:"خط",panelTitle:"حجم الخط",voiceLabel:"حجم الخط"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/bg.js b/src/lib/ckeditor/plugins/font/lang/bg.js new file mode 100644 index 00000000..62e05fe6 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bg",{fontSize:{label:"Размер",voiceLabel:"Размер на шрифт",panelTitle:"Размер на шрифт"},label:"Шрифт",panelTitle:"Име на шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/bn.js b/src/lib/ckeditor/plugins/font/lang/bn.js new file mode 100644 index 00000000..98cd2702 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bn",{fontSize:{label:"সাইজ",voiceLabel:"Font Size",panelTitle:"সাইজ"},label:"ফন্ট",panelTitle:"ফন্ট",voiceLabel:"ফন্ট"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/bs.js b/src/lib/ckeditor/plugins/font/lang/bs.js new file mode 100644 index 00000000..171cdc18 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bs",{fontSize:{label:"Velièina",voiceLabel:"Font Size",panelTitle:"Velièina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ca.js b/src/lib/ckeditor/plugins/font/lang/ca.js new file mode 100644 index 00000000..b710fa74 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ca",{fontSize:{label:"Mida",voiceLabel:"Mida de la lletra",panelTitle:"Mida de la lletra"},label:"Tipus de lletra",panelTitle:"Tipus de lletra",voiceLabel:"Tipus de lletra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/cs.js b/src/lib/ckeditor/plugins/font/lang/cs.js new file mode 100644 index 00000000..31c3d385 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cs",{fontSize:{label:"Velikost",voiceLabel:"Velikost písma",panelTitle:"Velikost"},label:"Písmo",panelTitle:"Písmo",voiceLabel:"Písmo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/cy.js b/src/lib/ckeditor/plugins/font/lang/cy.js new file mode 100644 index 00000000..d85cdff4 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cy",{fontSize:{label:"Maint",voiceLabel:"Maint y Ffont",panelTitle:"Maint y Ffont"},label:"Ffont",panelTitle:"Enw'r Ffont",voiceLabel:"Ffont"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/da.js b/src/lib/ckeditor/plugins/font/lang/da.js new file mode 100644 index 00000000..24b02926 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","da",{fontSize:{label:"Skriftstørrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrifttype",panelTitle:"Skrifttype",voiceLabel:"Skrifttype"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/de.js b/src/lib/ckeditor/plugins/font/lang/de.js new file mode 100644 index 00000000..71bd88de --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","de",{fontSize:{label:"Größe",voiceLabel:"Schrifgröße",panelTitle:"Größe"},label:"Schriftart",panelTitle:"Schriftart",voiceLabel:"Schriftart"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/el.js b/src/lib/ckeditor/plugins/font/lang/el.js new file mode 100644 index 00000000..ecb9a8b2 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","el",{fontSize:{label:"Μέγεθος",voiceLabel:"Μέγεθος Γραμματοσειράς",panelTitle:"Μέγεθος Γραμματοσειράς"},label:"Γραμματοσειρά",panelTitle:"Όνομα Γραμματοσειράς",voiceLabel:"Γραμματοσειρά"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/en-au.js b/src/lib/ckeditor/plugins/font/lang/en-au.js new file mode 100644 index 00000000..8b19ae02 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-au",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/en-ca.js b/src/lib/ckeditor/plugins/font/lang/en-ca.js new file mode 100644 index 00000000..a41715d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-ca",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/en-gb.js b/src/lib/ckeditor/plugins/font/lang/en-gb.js new file mode 100644 index 00000000..aa7fd0d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-gb",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/en.js b/src/lib/ckeditor/plugins/font/lang/en.js new file mode 100644 index 00000000..c332c074 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/eo.js b/src/lib/ckeditor/plugins/font/lang/eo.js new file mode 100644 index 00000000..bf6f5123 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eo",{fontSize:{label:"Grado",voiceLabel:"Tipara grado",panelTitle:"Tipara grado"},label:"Tiparo",panelTitle:"Tipara nomo",voiceLabel:"Tiparo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/es.js b/src/lib/ckeditor/plugins/font/lang/es.js new file mode 100644 index 00000000..c452c865 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","es",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño de fuente",panelTitle:"Tamaño"},label:"Fuente",panelTitle:"Fuente",voiceLabel:"Fuente"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/et.js b/src/lib/ckeditor/plugins/font/lang/et.js new file mode 100644 index 00000000..76f2b072 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","et",{fontSize:{label:"Suurus",voiceLabel:"Kirja suurus",panelTitle:"Suurus"},label:"Kiri",panelTitle:"Kiri",voiceLabel:"Kiri"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/eu.js b/src/lib/ckeditor/plugins/font/lang/eu.js new file mode 100644 index 00000000..941c541f --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eu",{fontSize:{label:"Tamaina",voiceLabel:"Tamaina",panelTitle:"Tamaina"},label:"Letra-tipoa",panelTitle:"Letra-tipoa",voiceLabel:"Letra-tipoa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/fa.js b/src/lib/ckeditor/plugins/font/lang/fa.js new file mode 100644 index 00000000..b4b4cfca --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fa",{fontSize:{label:"اندازه",voiceLabel:"اندازه قلم",panelTitle:"اندازه قلم"},label:"قلم",panelTitle:"نام قلم",voiceLabel:"قلم"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/fi.js b/src/lib/ckeditor/plugins/font/lang/fi.js new file mode 100644 index 00000000..59de601f --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fi",{fontSize:{label:"Koko",voiceLabel:"Kirjaisimen koko",panelTitle:"Koko"},label:"Kirjaisinlaji",panelTitle:"Kirjaisinlaji",voiceLabel:"Kirjaisinlaji"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/fo.js b/src/lib/ckeditor/plugins/font/lang/fo.js new file mode 100644 index 00000000..2080e025 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fo",{fontSize:{label:"Skriftstødd",voiceLabel:"Skriftstødd",panelTitle:"Skriftstødd"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Skrift"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/fr-ca.js b/src/lib/ckeditor/plugins/font/lang/fr-ca.js new file mode 100644 index 00000000..bcf3fc12 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr-ca",{fontSize:{label:"Taille",voiceLabel:"Taille",panelTitle:"Taille"},label:"Police",panelTitle:"Police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/fr.js b/src/lib/ckeditor/plugins/font/lang/fr.js new file mode 100644 index 00000000..32486dc7 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr",{fontSize:{label:"Taille",voiceLabel:"Taille de police",panelTitle:"Taille de police"},label:"Police",panelTitle:"Style de police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/gl.js b/src/lib/ckeditor/plugins/font/lang/gl.js new file mode 100644 index 00000000..74fdf0d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gl",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño da letra",panelTitle:"Tamaño da letra"},label:"Tipo de letra",panelTitle:"Nome do tipo de letra",voiceLabel:"Tipo de letra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/gu.js b/src/lib/ckeditor/plugins/font/lang/gu.js new file mode 100644 index 00000000..7c1a2670 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gu",{fontSize:{label:"ફૉન્ટ સાઇઝ/કદ",voiceLabel:"ફોન્ટ સાઈઝ",panelTitle:"ફૉન્ટ સાઇઝ/કદ"},label:"ફૉન્ટ",panelTitle:"ફૉન્ટ",voiceLabel:"ફોન્ટ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/he.js b/src/lib/ckeditor/plugins/font/lang/he.js new file mode 100644 index 00000000..a712a5a3 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","he",{fontSize:{label:"גודל",voiceLabel:"גודל",panelTitle:"גודל"},label:"גופן",panelTitle:"גופן",voiceLabel:"גופן"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/hi.js b/src/lib/ckeditor/plugins/font/lang/hi.js new file mode 100644 index 00000000..2c66d5f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hi",{fontSize:{label:"साइज़",voiceLabel:"Font Size",panelTitle:"साइज़"},label:"फ़ॉन्ट",panelTitle:"फ़ॉन्ट",voiceLabel:"फ़ॉन्ट"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/hr.js b/src/lib/ckeditor/plugins/font/lang/hr.js new file mode 100644 index 00000000..4cb480d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hr",{fontSize:{label:"Veličina",voiceLabel:"Veličina slova",panelTitle:"Veličina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/hu.js b/src/lib/ckeditor/plugins/font/lang/hu.js new file mode 100644 index 00000000..e9edbdb1 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hu",{fontSize:{label:"Méret",voiceLabel:"Betűméret",panelTitle:"Méret"},label:"Betűtípus",panelTitle:"Betűtípus",voiceLabel:"Betűtípus"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/id.js b/src/lib/ckeditor/plugins/font/lang/id.js new file mode 100644 index 00000000..22b03078 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","id",{fontSize:{label:"Ukuran",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/is.js b/src/lib/ckeditor/plugins/font/lang/is.js new file mode 100644 index 00000000..9fbd17d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","is",{fontSize:{label:"Leturstærð ",voiceLabel:"Font Size",panelTitle:"Leturstærð "},label:"Leturgerð ",panelTitle:"Leturgerð ",voiceLabel:"Leturgerð "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/it.js b/src/lib/ckeditor/plugins/font/lang/it.js new file mode 100644 index 00000000..146a8fb5 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","it",{fontSize:{label:"Dimensione",voiceLabel:"Dimensione Carattere",panelTitle:"Dimensione"},label:"Carattere",panelTitle:"Carattere",voiceLabel:"Carattere"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ja.js b/src/lib/ckeditor/plugins/font/lang/ja.js new file mode 100644 index 00000000..c7e579ed --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ja",{fontSize:{label:"サイズ",voiceLabel:"フォントサイズ",panelTitle:"フォントサイズ"},label:"フォント",panelTitle:"フォント",voiceLabel:"フォント"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ka.js b/src/lib/ckeditor/plugins/font/lang/ka.js new file mode 100644 index 00000000..a45a4b5c --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ka",{fontSize:{label:"ზომა",voiceLabel:"ტექსტის ზომა",panelTitle:"ტექსტის ზომა"},label:"ფონტი",panelTitle:"ფონტის სახელი",voiceLabel:"ფონტი"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/km.js b/src/lib/ckeditor/plugins/font/lang/km.js new file mode 100644 index 00000000..b817819b --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","km",{fontSize:{label:"ទំហំ",voiceLabel:"ទំហំ​អក្សរ",panelTitle:"ទំហំ​អក្សរ"},label:"ពុម្ព​អក្សរ",panelTitle:"ឈ្មោះ​ពុម្ព​អក្សរ",voiceLabel:"ពុម្ព​អក្សរ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ko.js b/src/lib/ckeditor/plugins/font/lang/ko.js new file mode 100644 index 00000000..b6b66210 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ko",{fontSize:{label:"글자 크기",voiceLabel:"Font Size",panelTitle:"글자 크기"},label:"폰트",panelTitle:"폰트",voiceLabel:"폰트"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ku.js b/src/lib/ckeditor/plugins/font/lang/ku.js new file mode 100644 index 00000000..9e2d5582 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ku",{fontSize:{label:"گەورەیی",voiceLabel:"گەورەیی فۆنت",panelTitle:"گەورەیی فۆنت"},label:"فۆنت",panelTitle:"ناوی فۆنت",voiceLabel:"فۆنت"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/lt.js b/src/lib/ckeditor/plugins/font/lang/lt.js new file mode 100644 index 00000000..c613a9d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lt",{fontSize:{label:"Šrifto dydis",voiceLabel:"Šrifto dydis",panelTitle:"Šrifto dydis"},label:"Šriftas",panelTitle:"Šriftas",voiceLabel:"Šriftas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/lv.js b/src/lib/ckeditor/plugins/font/lang/lv.js new file mode 100644 index 00000000..023b054f --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lv",{fontSize:{label:"Izmērs",voiceLabel:"Fonta izmeŗs",panelTitle:"Izmērs"},label:"Šrifts",panelTitle:"Šrifts",voiceLabel:"Fonts"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/mk.js b/src/lib/ckeditor/plugins/font/lang/mk.js new file mode 100644 index 00000000..c47889e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mk",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/mn.js b/src/lib/ckeditor/plugins/font/lang/mn.js new file mode 100644 index 00000000..855b36e8 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mn",{fontSize:{label:"Хэмжээ",voiceLabel:"Үсгийн хэмжээ",panelTitle:"Үсгийн хэмжээ"},label:"Үсгийн хэлбэр",panelTitle:"Үгсийн хэлбэрийн нэр",voiceLabel:"Үгсийн хэлбэр"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ms.js b/src/lib/ckeditor/plugins/font/lang/ms.js new file mode 100644 index 00000000..bf2cac96 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ms",{fontSize:{label:"Saiz",voiceLabel:"Font Size",panelTitle:"Saiz"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/nb.js b/src/lib/ckeditor/plugins/font/lang/nb.js new file mode 100644 index 00000000..3e85a266 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nb",{fontSize:{label:"Størrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/nl.js b/src/lib/ckeditor/plugins/font/lang/nl.js new file mode 100644 index 00000000..301a9424 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nl",{fontSize:{label:"Lettergrootte",voiceLabel:"Lettergrootte",panelTitle:"Lettergrootte"},label:"Lettertype",panelTitle:"Lettertype",voiceLabel:"Lettertype"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/no.js b/src/lib/ckeditor/plugins/font/lang/no.js new file mode 100644 index 00000000..2e45e27c --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","no",{fontSize:{label:"Størrelse",voiceLabel:"Font Størrelse",panelTitle:"Størrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/pl.js b/src/lib/ckeditor/plugins/font/lang/pl.js new file mode 100644 index 00000000..f15dd769 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pl",{fontSize:{label:"Rozmiar",voiceLabel:"Rozmiar czcionki",panelTitle:"Rozmiar"},label:"Czcionka",panelTitle:"Czcionka",voiceLabel:"Czcionka"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/pt-br.js b/src/lib/ckeditor/plugins/font/lang/pt-br.js new file mode 100644 index 00000000..bfe0147b --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt-br",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da fonte",panelTitle:"Tamanho"},label:"Fonte",panelTitle:"Fonte",voiceLabel:"Fonte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/pt.js b/src/lib/ckeditor/plugins/font/lang/pt.js new file mode 100644 index 00000000..06de8cd0 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da Letra",panelTitle:"Tamanho da Letra"},label:"Tipo de Letra",panelTitle:"Nome do Tipo de Letra",voiceLabel:"Tipo de Letra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ro.js b/src/lib/ckeditor/plugins/font/lang/ro.js new file mode 100644 index 00000000..2b101811 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ro",{fontSize:{label:"Mărime",voiceLabel:"Font Size",panelTitle:"Mărime"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ru.js b/src/lib/ckeditor/plugins/font/lang/ru.js new file mode 100644 index 00000000..c5407217 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ru",{fontSize:{label:"Размер",voiceLabel:"Размер шрифта",panelTitle:"Размер шрифта"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/si.js b/src/lib/ckeditor/plugins/font/lang/si.js new file mode 100644 index 00000000..c6246daf --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","si",{fontSize:{label:"විශාලත්වය",voiceLabel:"අක්ෂර විශාලත්වය",panelTitle:"අක්ෂර විශාලත්වය"},label:"අක්ෂරය",panelTitle:"අක්ෂර නාමය",voiceLabel:"අක්ෂර"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/sk.js b/src/lib/ckeditor/plugins/font/lang/sk.js new file mode 100644 index 00000000..e09e8d4c --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sk",{fontSize:{label:"Veľkosť",voiceLabel:"Veľkosť písma",panelTitle:"Veľkosť písma"},label:"Font",panelTitle:"Názov fontu",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/sl.js b/src/lib/ckeditor/plugins/font/lang/sl.js new file mode 100644 index 00000000..061fea48 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sl",{fontSize:{label:"Velikost",voiceLabel:"Velikost",panelTitle:"Velikost"},label:"Pisava",panelTitle:"Pisava",voiceLabel:"Pisava"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/sq.js b/src/lib/ckeditor/plugins/font/lang/sq.js new file mode 100644 index 00000000..c7c95938 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sq",{fontSize:{label:"Madhësia",voiceLabel:"Madhësia e Shkronjës",panelTitle:"Madhësia e Shkronjës"},label:"Shkronja",panelTitle:"Emri i Shkronjës",voiceLabel:"Shkronja"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/sr-latn.js b/src/lib/ckeditor/plugins/font/lang/sr-latn.js new file mode 100644 index 00000000..87604c2f --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr-latn",{fontSize:{label:"Veličina fonta",voiceLabel:"Font Size",panelTitle:"Veličina fonta"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/sr.js b/src/lib/ckeditor/plugins/font/lang/sr.js new file mode 100644 index 00000000..5e2276d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr",{fontSize:{label:"Величина фонта",voiceLabel:"Font Size",panelTitle:"Величина фонта"},label:"Фонт",panelTitle:"Фонт",voiceLabel:"Фонт"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/sv.js b/src/lib/ckeditor/plugins/font/lang/sv.js new file mode 100644 index 00000000..6eb9e8e0 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sv",{fontSize:{label:"Storlek",voiceLabel:"Teckenstorlek",panelTitle:"Teckenstorlek"},label:"Typsnitt",panelTitle:"Typsnitt",voiceLabel:"Typsnitt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/th.js b/src/lib/ckeditor/plugins/font/lang/th.js new file mode 100644 index 00000000..464cab1f --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","th",{fontSize:{label:"ขนาด",voiceLabel:"Font Size",panelTitle:"ขนาด"},label:"แบบอักษร",panelTitle:"แบบอักษร",voiceLabel:"แบบอักษร"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/tr.js b/src/lib/ckeditor/plugins/font/lang/tr.js new file mode 100644 index 00000000..424f6652 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tr",{fontSize:{label:"Boyut",voiceLabel:"Font Size",panelTitle:"Boyut"},label:"Yazı Türü",panelTitle:"Yazı Türü",voiceLabel:"Font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/tt.js b/src/lib/ckeditor/plugins/font/lang/tt.js new file mode 100644 index 00000000..623cbcb4 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tt",{fontSize:{label:"Зурлык",voiceLabel:"Шрифт зурлыклары",panelTitle:"Шрифт зурлыклары"},label:"Шрифт",panelTitle:"Шрифт исеме",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/ug.js b/src/lib/ckeditor/plugins/font/lang/ug.js new file mode 100644 index 00000000..235c677f --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ug",{fontSize:{label:"چوڭلۇقى",voiceLabel:"خەت چوڭلۇقى",panelTitle:"چوڭلۇقى"},label:"خەت نۇسخا",panelTitle:"خەت نۇسخا",voiceLabel:"خەت نۇسخا"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/uk.js b/src/lib/ckeditor/plugins/font/lang/uk.js new file mode 100644 index 00000000..8a2387fe --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","uk",{fontSize:{label:"Розмір",voiceLabel:"Розмір шрифту",panelTitle:"Розмір"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/vi.js b/src/lib/ckeditor/plugins/font/lang/vi.js new file mode 100644 index 00000000..e082b7b6 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","vi",{fontSize:{label:"Cỡ chữ",voiceLabel:"Kích cỡ phông",panelTitle:"Cỡ chữ"},label:"Phông",panelTitle:"Phông",voiceLabel:"Phông"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/zh-cn.js b/src/lib/ckeditor/plugins/font/lang/zh-cn.js new file mode 100644 index 00000000..370710a5 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh-cn",{fontSize:{label:"大小",voiceLabel:"文字大小",panelTitle:"大小"},label:"字体",panelTitle:"字体",voiceLabel:"字体"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/lang/zh.js b/src/lib/ckeditor/plugins/font/lang/zh.js new file mode 100644 index 00000000..a2716813 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh",{fontSize:{label:"大小",voiceLabel:"字型大小",panelTitle:"字型大小"},label:"字型",panelTitle:"字型名稱",voiceLabel:"字型"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/font/plugin.js b/src/lib/ckeditor/plugins/font/plugin.js new file mode 100644 index 00000000..dba4cae1 --- /dev/null +++ b/src/lib/ckeditor/plugins/font/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(b,a,e,h,j,n,l,o){for(var p=b.config,k=new CKEDITOR.style(l),c=j.split(";"),j=[],g={},d=0;d<c.length;d++){var f=c[d];if(f){var f=f.split("/"),m={},i=c[d]=f[0];m[e]=j[d]=f[1]||i;g[i]=new CKEDITOR.style(l,m);g[i]._.definition.name=i}else c.splice(d--,1)}b.ui.addRichCombo(a,{label:h.label,title:h.panelTitle,toolbar:"styles,"+o,allowedContent:k,requiredContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(p.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}}, +init:function(){this.startGroup(h.panelTitle);for(var b=0;b<c.length;b++){var a=c[b];this.add(a,g[a].buildPreview(),a)}},onClick:function(a){b.focus();b.fire("saveSnapshot");var c=g[a];b[this.getValue()==a?"removeStyle":"applyStyle"](c);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){for(var c=this.getValue(),a=a.data.path.elements,d=0,f;d<a.length;d++){f=a[d];for(var e in g)if(g[e].checkElementMatch(f,!0,b)){e!=c&&this.setValue(e);return}}this.setValue("",n)},this)}, +refresh:function(){b.activeFilter.check(k)||this.setState(CKEDITOR.TRISTATE_DISABLED)}})}CKEDITOR.plugins.add("font",{requires:"richcombo",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var a=b.config;e(b,"Font","family",b.lang.font,a.font_names,a.font_defaultLabel,a.font_style,30);e(b,"FontSize","size", +b.lang.font.fontSize,a.fontSize_sizes,a.fontSize_defaultLabel,a.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif"; +CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]}; \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/button.js b/src/lib/ckeditor/plugins/forms/dialogs/button.js new file mode 100644 index 00000000..56a4efdd --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/button.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("button",function(b){function d(a){var b=this.getValue();b?(a.attributes[this.id]=b,"name"==this.id&&(a.attributes["data-cke-saved-name"]=b)):(delete a.attributes[this.id],"name"==this.id&&delete a.attributes["data-cke-saved-name"])}return{title:b.lang.forms.button.title,minWidth:350,minHeight:150,onShow:function(){delete this.button;var a=this.getParentEditor().getSelection().getSelectedElement();a&&a.is("input")&&a.getAttribute("type")in{button:1,reset:1,submit:1}&&(this.button= +a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.button,d=!b,c=b?CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]:new CKEDITOR.htmlParser.element("input");this.commitContent(c);var e=new CKEDITOR.htmlParser.basicWriter;c.writeHtml(e);c=CKEDITOR.dom.element.createFromHtml(e.getHtml(),a.document);d?a.insertElement(c):(c.replace(b),a.getSelection().selectElement(c))},contents:[{id:"info",label:b.lang.forms.button.title,title:b.lang.forms.button.title,elements:[{id:"name", +type:"text",label:b.lang.common.name,"default":"",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:d},{id:"value",type:"text",label:b.lang.forms.button.text,accessKey:"V","default":"",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:d},{id:"type",type:"select",label:b.lang.forms.button.type,"default":"button",accessKey:"T",items:[[b.lang.forms.button.typeBtn,"button"],[b.lang.forms.button.typeSbm,"submit"],[b.lang.forms.button.typeRst, +"reset"]],setup:function(a){this.setValue(a.getAttribute("type")||"")},commit:d}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/checkbox.js b/src/lib/ckeditor/plugins/forms/dialogs/checkbox.js new file mode 100644 index 00000000..65f1be60 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/checkbox.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkbox",function(d){return{title:d.lang.forms.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){delete this.checkbox;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"checkbox"==a.getAttribute("type")&&(this.checkbox=a,this.setupContent(a))},onOk:function(){var a,b=this.checkbox;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","checkbox"),a.insertElement(b));this.commitContent({element:b})},contents:[{id:"info", +label:d.lang.forms.checkboxAndRadio.checkboxTitle,title:d.lang.forms.checkboxAndRadio.checkboxTitle,startupFocus:"txtName",elements:[{id:"txtName",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",label:d.lang.forms.checkboxAndRadio.value, +"default":"",accessKey:"V",setup:function(a){a=a.getAttribute("value");this.setValue(CKEDITOR.env.ie&&"on"==a?"":a)},commit:function(a){var b=a.element,c=this.getValue();c&&!(CKEDITOR.env.ie&&"on"==c)?b.setAttribute("value",c):CKEDITOR.env.ie?(c=new CKEDITOR.dom.element("input",b.getDocument()),b.copyAttributes(c,{value:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c):b.removeAttribute("value")}},{id:"cmbSelected",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"", +accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=!!b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="checkbox"'+(e?' checked="checked"':"")+"/>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/form.js b/src/lib/ckeditor/plugins/forms/dialogs/form.js new file mode 100644 index 00000000..86267185 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/form.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("form",function(a){var d={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.forms.form.title,minWidth:350,minHeight:200,onShow:function(){delete this.form;var b=this.getParentEditor().elementPath().contains("form",1);b&&(this.form=b,this.setupContent(b))},onOk:function(){var b,a=this.form,c=!a;c&&(b=this.getParentEditor(),a=b.document.createElement("form"),a.appendBogus());c&&b.insertElement(a);this.commitContent(a)},onLoad:function(){function a(b){this.setValue(b.getAttribute(this.id)|| +"")}function e(a){this.getValue()?a.setAttribute(this.id,this.getValue()):a.removeAttribute(this.id)}this.foreach(function(c){d[c.id]&&(c.setup=a,c.commit=e)})},contents:[{id:"info",label:a.lang.forms.form.title,title:a.lang.forms.form.title,elements:[{id:"txtName",type:"text",label:a.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name", +!1),a.removeAttribute("name"))}},{id:"action",type:"text",label:a.lang.forms.form.action,"default":"",accessKey:"T"},{type:"hbox",widths:["45%","55%"],children:[{id:"id",type:"text",label:a.lang.common.id,"default":"",accessKey:"I"},{id:"enctype",type:"select",label:a.lang.forms.form.encoding,style:"width:100%",accessKey:"E","default":"",items:[[""],["text/plain"],["multipart/form-data"],["application/x-www-form-urlencoded"]]}]},{type:"hbox",widths:["45%","55%"],children:[{id:"target",type:"select", +label:a.lang.common.target,style:"width:100%",accessKey:"M","default":"",items:[[a.lang.common.notSet,""],[a.lang.common.targetNew,"_blank"],[a.lang.common.targetTop,"_top"],[a.lang.common.targetSelf,"_self"],[a.lang.common.targetParent,"_parent"]]},{id:"method",type:"select",label:a.lang.forms.form.method,accessKey:"M","default":"GET",items:[["GET","get"],["POST","post"]]}]}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js b/src/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js new file mode 100644 index 00000000..f4699b7d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("hiddenfield",function(d){return{title:d.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){delete this.hiddenField;var a=this.getParentEditor(),b=a.getSelection(),c=b.getSelectedElement();c&&(c.data("cke-real-element-type")&&"hiddenfield"==c.data("cke-real-element-type"))&&(this.hiddenField=c,c=a.restoreRealElement(this.hiddenField),this.setupContent(c),b.selectElement(this.hiddenField))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name"); +this.getValueOf("info","value");var b=this.getParentEditor(),a=CKEDITOR.env.ie&&!(8<=CKEDITOR.document.$.documentMode)?b.document.createElement('<input name="'+CKEDITOR.tools.htmlEncode(a)+'">'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title, +elements:[{id:"_cke_saved_name",type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()): +a.removeAttribute("value")}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/radio.js b/src/lib/ckeditor/plugins/forms/dialogs/radio.js new file mode 100644 index 00000000..1af693e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/radio.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("radio",function(d){return{title:d.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&("input"==a.getName()&&"radio"==a.getAttribute("type"))&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"));c&&a.insertElement(b);this.commitContent({element:b})}, +contents:[{id:"info",label:d.lang.forms.checkboxAndRadio.radioTitle,title:d.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:d.lang.forms.checkboxAndRadio.value,"default":"", +accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="radio"'+ +(e?' checked="checked"':"")+"></input>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/select.js b/src/lib/ckeditor/plugins/forms/dialogs/select.js new file mode 100644 index 00000000..a6c50e20 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/select.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("select",function(c){function h(a,b,e,d,c){a=f(a);d=d?d.createElement("OPTION"):document.createElement("OPTION");if(a&&d&&"option"==d.getName())CKEDITOR.env.ie?(isNaN(parseInt(c,10))?a.$.options.add(d.$):a.$.options.add(d.$,c),d.$.innerHTML=0<b.length?b:"",d.$.value=e):(null!==c&&c<a.getChildCount()?a.getChild(0>c?0:c).insertBeforeMe(d):a.append(d),d.setText(0<b.length?b:""),d.setValue(e));else return!1;return d}function m(a){for(var a=f(a),b=g(a),e=a.getChildren().count()-1;0<= +e;e--)a.getChild(e).$.selected&&a.getChild(e).remove();i(a,b)}function n(a,b,e,d){a=f(a);if(0>b)return!1;a=a.getChild(b);a.setText(e);a.setValue(d);return a}function k(a){for(a=f(a);a.getChild(0)&&a.getChild(0).remove(););}function j(a,b,e){var a=f(a),d=g(a);if(0>d)return!1;b=d+b;b=0>b?0:b;b=b>=a.getChildCount()?a.getChildCount()-1:b;if(d==b)return!1;var d=a.getChild(d),c=d.getText(),o=d.getValue();d.remove();d=h(a,c,o,!e?null:e,b);i(a,b);return d}function g(a){return(a=f(a))?a.$.selectedIndex:-1} +function i(a,b){a=f(a);if(0>b)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function l(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){delete this.selectBox;this.setupContent("clear");var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"select"==a.getName()){this.selectBox= +a;this.setupContent(a.getName(),a);for(var a=l(a),b=0;b<a.count();b++)this.setupContent("option",a.getItem(b))}},onOk:function(){var a=this.getParentEditor(),b=this.selectBox,e=!b;e&&(b=a.document.createElement("select"));this.commitContent(b);if(e&&(a.insertElement(b),CKEDITOR.env.ie)){var d=a.getSelection(),c=d.createBookmarks();setTimeout(function(){d.selectBookmarks(c)},0)}},contents:[{id:"info",label:c.lang.forms.select.selectInfo,title:c.lang.forms.select.selectInfo,accessKey:"",elements:[{id:"txtName", +type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.common.name,"default":"",accessKey:"N",style:"width:350px",setup:function(a,b){"clear"==a?this.setValue(this["default"]||""):"select"==a&&this.setValue(b.data("cke-saved-name")||b.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.forms.select.value, +style:"width:350px","default":"",className:"cke_disabled",onLoad:function(){this.getInputElement().setAttribute("readOnly",!0)},setup:function(a,b){"clear"==a?this.setValue(""):"option"==a&&b.getAttribute("selected")&&this.setValue(b.$.value)}},{type:"hbox",widths:["175px","170px"],children:[{id:"txtSize",type:"text",labelLayout:"horizontal",label:c.lang.forms.select.size,"default":"",accessKey:"S",style:"width:175px",validate:function(){var a=CKEDITOR.dialog.validate.integer(c.lang.common.validateNumberFailed); +return""===this.getValue()||a.apply(this)},setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("size")||"");CKEDITOR.env.webkit&&this.getInputElement().setStyle("width","86px")},commit:function(a){this.getValue()?a.setAttribute("size",this.getValue()):a.removeAttribute("size")}},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.lines)+"</span>"}]},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.opAvail)+"</span>"},{type:"hbox",widths:["115px", +"115px","100px"],children:[{type:"vbox",children:[{id:"txtOptName",type:"text",label:c.lang.forms.select.opText,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbName",label:"",title:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(this.getValue());a.setValue(b.getValue())}, +setup:function(a,b){"clear"==a?k(this):"option"==a&&h(this,b.getText(),b.getText(),this.getDialog().getParentEditor().document)},commit:function(a){var b=this.getDialog(),e=l(this),d=l(b.getContentElement("info","cmbValue")),c=b.getContentElement("info","txtValue").getValue();k(a);for(var f=0;f<e.count();f++){var g=h(a,e.getItem(f).getValue(),d.getItem(f).getValue(),b.getParentEditor().document);d.getItem(f).getValue()==c&&(g.setAttribute("selected","selected"),g.selected=!0)}}}]},{type:"vbox",children:[{id:"txtOptValue", +type:"text",label:c.lang.forms.select.opValue,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbValue",label:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(b.getValue());a.setValue(this.getValue())},setup:function(a,b){if("clear"==a)k(this);else if("option"== +a){var e=b.getValue();h(this,e,e,this.getDialog().getParentEditor().document);"selected"==b.getAttribute("selected")&&this.getDialog().getContentElement("info","txtValue").setValue(e)}}}]},{type:"vbox",padding:5,children:[{type:"button",id:"btnAdd",style:"",label:c.lang.forms.select.btnAdd,title:c.lang.forms.select.btnAdd,style:"width:100%;",onClick:function(){var a=this.getDialog();a.getParentEditor();var b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info", +"cmbName"),c=a.getContentElement("info","cmbValue");h(d,b.getValue(),b.getValue(),a.getParentEditor().document);h(c,e.getValue(),e.getValue(),a.getParentEditor().document);b.setValue("");e.setValue("")}},{type:"button",id:"btnModify",label:c.lang.forms.select.btnModify,title:c.lang.forms.select.btnModify,style:"width:100%;",onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info","cmbName"),a=a.getContentElement("info", +"cmbValue"),c=g(d);0<=c&&(n(d,c,b.getValue(),b.getValue()),n(a,c,e.getValue(),e.getValue()))}},{type:"button",id:"btnUp",style:"width:100%;",label:c.lang.forms.select.btnUp,title:c.lang.forms.select.btnUp,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,-1,a.getParentEditor().document);j(c,-1,a.getParentEditor().document)}},{type:"button",id:"btnDown",style:"width:100%;",label:c.lang.forms.select.btnDown,title:c.lang.forms.select.btnDown, +onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,1,a.getParentEditor().document);j(c,1,a.getParentEditor().document)}}]}]},{type:"hbox",widths:["40%","20%","40%"],children:[{type:"button",id:"btnSetValue",label:c.lang.forms.select.btnSetValue,title:c.lang.forms.select.btnSetValue,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue");a.getContentElement("info","txtValue").setValue(b.getValue())}}, +{type:"button",id:"btnDelete",label:c.lang.forms.select.btnDelete,title:c.lang.forms.select.btnDelete,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue"),d=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue");m(b);m(c);d.setValue("");a.setValue("")}},{id:"chkMulti",type:"checkbox",label:c.lang.forms.select.chkMulti,"default":"",accessKey:"M",value:"checked",setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("multiple")); +CKEDITOR.env.webkit&&this.getElement().getParent().setStyle("vertical-align","middle")},commit:function(a){this.getValue()?a.setAttribute("multiple",this.getValue()):a.removeAttribute("multiple")}}]}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/textarea.js b/src/lib/ckeditor/plugins/forms/dialogs/textarea.js new file mode 100644 index 00000000..de8b3187 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/textarea.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title, +elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed), +setup:function(a){this.setValue(a.hasAttribute("cols")&&a.getAttribute("cols")||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){this.setValue(a.hasAttribute("rows")&&a.getAttribute("rows")||"")},commit:function(a){this.getValue()?a.setAttribute("rows", +this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/dialogs/textfield.js b/src/lib/ckeditor/plugins/forms/dialogs/textfield.js new file mode 100644 index 00000000..46b006e2 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/dialogs/textfield.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textfield",function(b){function e(a){var a=a.element,c=this.getValue();c?a.setAttribute(this.id,c):a.removeAttribute(this.id)}function f(a){this.setValue(a.hasAttribute(this.id)&&a.getAttribute(this.id)||"")}var g={email:1,password:1,search:1,tel:1,text:1,url:1};return{title:b.lang.forms.textfield.title,minWidth:350,minHeight:150,onShow:function(){delete this.textField;var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"input"==a.getName()&&(g[a.getAttribute("type")]|| +!a.getAttribute("type")))this.textField=a,this.setupContent(a)},onOk:function(){var a=this.getParentEditor(),c=this.textField,b=!c;b&&(c=a.document.createElement("input"),c.setAttribute("type","text"));c={element:c};b&&a.insertElement(c.element);this.commitContent(c);b||a.getSelection().selectElement(c.element)},onLoad:function(){this.foreach(function(a){if(a.getValue&&(a.setup||(a.setup=f),!a.commit))a.commit=e})},contents:[{id:"info",label:b.lang.forms.textfield.title,title:b.lang.forms.textfield.title, +elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"_cke_saved_name",type:"text",label:b.lang.forms.textfield.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.textfield.value,"default":"",accessKey:"V",commit:function(a){if(CKEDITOR.env.ie&& +!this.getValue()){var c=a.element,d=new CKEDITOR.dom.element("input",b.document);c.copyAttributes(d,{value:1});d.replace(c);a.element=d}else e.call(this,a)}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"size",type:"text",label:b.lang.forms.textfield.charWidth,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)},{id:"maxLength",type:"text",label:b.lang.forms.textfield.maxChars,"default":"",accessKey:"M",style:"width:50px", +validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}],onLoad:function(){CKEDITOR.env.ie7Compat&&this.getElement().setStyle("zoom","100%")}},{id:"type",type:"select",label:b.lang.forms.textfield.type,"default":"text",accessKey:"M",items:[[b.lang.forms.textfield.typeEmail,"email"],[b.lang.forms.textfield.typePass,"password"],[b.lang.forms.textfield.typeSearch,"search"],[b.lang.forms.textfield.typeTel,"tel"],[b.lang.forms.textfield.typeText,"text"],[b.lang.forms.textfield.typeUrl, +"url"]],setup:function(a){this.setValue(a.getAttribute("type"))},commit:function(a){var c=a.element;if(CKEDITOR.env.ie){var d=c.getAttribute("type"),e=this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('<input type="'+e+'"></input>',b.document),c.copyAttributes(d,{type:1}),d.replace(c),a.element=d)}else c.setAttribute("type",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/icons/button.png b/src/lib/ckeditor/plugins/forms/icons/button.png new file mode 100644 index 00000000..0bf68caa Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/button.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/checkbox.png b/src/lib/ckeditor/plugins/forms/icons/checkbox.png new file mode 100644 index 00000000..2f4eb2f4 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/checkbox.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/form.png b/src/lib/ckeditor/plugins/forms/icons/form.png new file mode 100644 index 00000000..08416674 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/form.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hiddenfield.png b/src/lib/ckeditor/plugins/forms/icons/hiddenfield.png new file mode 100644 index 00000000..fce4fccc Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hiddenfield.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/button.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/button.png new file mode 100644 index 00000000..bd92b165 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/button.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png new file mode 100644 index 00000000..36be4aa0 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/form.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/form.png new file mode 100644 index 00000000..4a02649c Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/form.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png new file mode 100644 index 00000000..cd5f3186 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png new file mode 100644 index 00000000..d2737963 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/radio.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/radio.png new file mode 100644 index 00000000..2f0c72d6 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/radio.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png new file mode 100644 index 00000000..42452e19 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/select.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/select.png new file mode 100644 index 00000000..da2b066b Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/select.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png new file mode 100644 index 00000000..60618a5b Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png new file mode 100644 index 00000000..87073d22 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png b/src/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/imagebutton.png b/src/lib/ckeditor/plugins/forms/icons/imagebutton.png new file mode 100644 index 00000000..162df9a3 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/imagebutton.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/radio.png b/src/lib/ckeditor/plugins/forms/icons/radio.png new file mode 100644 index 00000000..aaad523f Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/radio.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/select-rtl.png b/src/lib/ckeditor/plugins/forms/icons/select-rtl.png new file mode 100644 index 00000000..029a0d22 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/select-rtl.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/select.png b/src/lib/ckeditor/plugins/forms/icons/select.png new file mode 100644 index 00000000..44b02b9d Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/select.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/textarea-rtl.png b/src/lib/ckeditor/plugins/forms/icons/textarea-rtl.png new file mode 100644 index 00000000..8a15d688 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/textarea-rtl.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/textarea.png b/src/lib/ckeditor/plugins/forms/icons/textarea.png new file mode 100644 index 00000000..58e0fa02 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/textarea.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/textfield-rtl.png b/src/lib/ckeditor/plugins/forms/icons/textfield-rtl.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/textfield-rtl.png differ diff --git a/src/lib/ckeditor/plugins/forms/icons/textfield.png b/src/lib/ckeditor/plugins/forms/icons/textfield.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/icons/textfield.png differ diff --git a/src/lib/ckeditor/plugins/forms/images/hiddenfield.gif b/src/lib/ckeditor/plugins/forms/images/hiddenfield.gif new file mode 100644 index 00000000..953f643b Binary files /dev/null and b/src/lib/ckeditor/plugins/forms/images/hiddenfield.gif differ diff --git a/src/lib/ckeditor/plugins/forms/lang/af.js b/src/lib/ckeditor/plugins/forms/lang/af.js new file mode 100644 index 00000000..27ed76df --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","af",{button:{title:"Knop eienskappe",text:"Teks (Waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Stuur",typeRst:"Maak leeg"},checkboxAndRadio:{checkboxTitle:"Merkhokkie eienskappe",radioTitle:"Radioknoppie eienskappe",value:"Waarde",selected:"Geselekteer"},form:{title:"Vorm eienskappe",menu:"Vorm eienskappe",action:"Aksie",method:"Metode",encoding:"Kodering"},hidden:{title:"Verborge veld eienskappe",name:"Naam",value:"Waarde"},select:{title:"Keuseveld eienskappe",selectInfo:"Info", +opAvail:"Beskikbare opsies",value:"Waarde",size:"Grootte",lines:"Lyne",chkMulti:"Laat meer as een keuse toe",opText:"Teks",opValue:"Waarde",btnAdd:"Byvoeg",btnModify:"Wysig",btnUp:"Op",btnDown:"Af",btnSetValue:"Stel as geselekteerde waarde",btnDelete:"Verwyder"},textarea:{title:"Teks-area eienskappe",cols:"Kolomme",rows:"Rye"},textfield:{title:"Teksveld eienskappe",name:"Naam",value:"Waarde",charWidth:"Breedte (karakters)",maxChars:"Maksimum karakters",type:"Soort",typeText:"Teks",typePass:"Wagwoord", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ar.js b/src/lib/ckeditor/plugins/forms/lang/ar.js new file mode 100644 index 00000000..537ca014 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ar.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ar",{button:{title:"خصائص زر الضغط",text:"القيمة/التسمية",type:"نوع الزر",typeBtn:"زر",typeSbm:"إرسال",typeRst:"إعادة تعيين"},checkboxAndRadio:{checkboxTitle:"خصائص خانة الإختيار",radioTitle:"خصائص زر الخيار",value:"القيمة",selected:"محدد"},form:{title:"خصائص النموذج",menu:"خصائص النموذج",action:"اسم الملف",method:"الأسلوب",encoding:"تشفير"},hidden:{title:"خصائص الحقل المخفي",name:"الاسم",value:"القيمة"},select:{title:"خصائص اختيار الحقل",selectInfo:"اختار معلومات", +opAvail:"الخيارات المتاحة",value:"القيمة",size:"الحجم",lines:"الأسطر",chkMulti:"السماح بتحديدات متعددة",opText:"النص",opValue:"القيمة",btnAdd:"إضافة",btnModify:"تعديل",btnUp:"أعلى",btnDown:"أسفل",btnSetValue:"إجعلها محددة",btnDelete:"إزالة"},textarea:{title:"خصائص مساحة النص",cols:"الأعمدة",rows:"الصفوف"},textfield:{title:"خصائص مربع النص",name:"الاسم",value:"القيمة",charWidth:"عرض السمات",maxChars:"اقصى عدد للسمات",type:"نوع المحتوى",typeText:"نص",typePass:"كلمة مرور",typeEmail:"بريد إلكتروني",typeSearch:"بحث", +typeTel:"رقم الهاتف",typeUrl:"الرابط"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/bg.js b/src/lib/ckeditor/plugins/forms/lang/bg.js new file mode 100644 index 00000000..6761facd --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bg",{button:{title:"Настройки на бутона",text:"Текст (стойност)",type:"Тип",typeBtn:"Бутон",typeSbm:"Добави",typeRst:"Нулиране"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Настройки на радиобутон",value:"Стойност",selected:"Избрано"},form:{title:"Настройки на формата",menu:"Настройки на формата",action:"Действие",method:"Метод",encoding:"Кодиране"},hidden:{title:"Настройки за скрито поле",name:"Име",value:"Стойност"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Налични опции",value:"Стойност",size:"Размер",lines:"линии",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Стойност",btnAdd:"Добави",btnModify:"Промени",btnUp:"На горе",btnDown:"На долу",btnSetValue:"Set as selected value",btnDelete:"Изтриване"},textarea:{title:"Опции за текстовата зона",cols:"Колони",rows:"Редове"},textfield:{title:"Настройки за текстово поле",name:"Име",value:"Стойност",charWidth:"Ширина на знаците",maxChars:"Макс. знаци",type:"Тип", +typeText:"Текст",typePass:"Парола",typeEmail:"Email",typeSearch:"Търсене",typeTel:"Телефонен номер",typeUrl:"Уеб адрес"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/bn.js b/src/lib/ckeditor/plugins/forms/lang/bn.js new file mode 100644 index 00000000..63773289 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bn",{button:{title:"বাটন প্রোপার্টি",text:"টেক্সট (ভ্যালু)",type:"প্রকার",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"চেক বক্স প্রোপার্টি",radioTitle:"রেডিও বাটন প্রোপার্টি",value:"ভ্যালু",selected:"সিলেক্টেড"},form:{title:"ফর্ম প্রোপার্টি",menu:"ফর্ম প্রোপার্টি",action:"একশ্যন",method:"পদ্ধতি",encoding:"Encoding"},hidden:{title:"গুপ্ত ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু"},select:{title:"বাছাই ফীল্ড প্রোপার্টি",selectInfo:"তথ্য", +opAvail:"অন্যান্য বিকল্প",value:"ভ্যালু",size:"সাইজ",lines:"লাইন সমূহ",chkMulti:"একাধিক সিলেকশন এলাউ কর",opText:"টেক্সট",opValue:"ভ্যালু",btnAdd:"যুক্ত",btnModify:"বদলে দাও",btnUp:"উপর",btnDown:"নীচে",btnSetValue:"বাছাই করা ভ্যালু হিসেবে সেট কর",btnDelete:"ডিলীট"},textarea:{title:"টেক্সট এরিয়া প্রোপার্টি",cols:"কলাম",rows:"রো"},textfield:{title:"টেক্সট ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু",charWidth:"ক্যারেক্টার প্রশস্ততা",maxChars:"সর্বাধিক ক্যারেক্টার",type:"টাইপ",typeText:"টেক্সট",typePass:"পাসওয়ার্ড", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/bs.js b/src/lib/ckeditor/plugins/forms/lang/bs.js new file mode 100644 index 00000000..cac69a36 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bs",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ca.js b/src/lib/ckeditor/plugins/forms/lang/ca.js new file mode 100644 index 00000000..55da8f9b --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ca",{button:{title:"Propietats del botó",text:"Text (Valor)",type:"Tipus",typeBtn:"Botó",typeSbm:"Transmet formulari",typeRst:"Reinicia formulari"},checkboxAndRadio:{checkboxTitle:"Propietats de la casella de verificació",radioTitle:"Propietats del botó d'opció",value:"Valor",selected:"Seleccionat"},form:{title:"Propietats del formulari",menu:"Propietats del formulari",action:"Acció",method:"Mètode",encoding:"Codificació"},hidden:{title:"Propietats del camp ocult", +name:"Nom",value:"Valor"},select:{title:"Propietats del camp de selecció",selectInfo:"Info",opAvail:"Opcions disponibles",value:"Valor",size:"Mida",lines:"Línies",chkMulti:"Permet múltiples seleccions",opText:"Text",opValue:"Valor",btnAdd:"Afegeix",btnModify:"Modifica",btnUp:"Amunt",btnDown:"Avall",btnSetValue:"Selecciona per defecte",btnDelete:"Elimina"},textarea:{title:"Propietats de l'àrea de text",cols:"Columnes",rows:"Files"},textfield:{title:"Propietats del camp de text",name:"Nom",value:"Valor", +charWidth:"Amplada",maxChars:"Nombre màxim de caràcters",type:"Tipus",typeText:"Text",typePass:"Contrasenya",typeEmail:"Correu electrònic",typeSearch:"Cercar",typeTel:"Número de telèfon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/cs.js b/src/lib/ckeditor/plugins/forms/lang/cs.js new file mode 100644 index 00000000..5691de93 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cs",{button:{title:"Vlastnosti tlačítka",text:"Popisek",type:"Typ",typeBtn:"Tlačítko",typeSbm:"Odeslat",typeRst:"Obnovit"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacího políčka",radioTitle:"Vlastnosti přepínače",value:"Hodnota",selected:"Zaškrtnuto"},form:{title:"Vlastnosti formuláře",menu:"Vlastnosti formuláře",action:"Akce",method:"Metoda",encoding:"Kódování"},hidden:{title:"Vlastnosti skrytého pole",name:"Název",value:"Hodnota"},select:{title:"Vlastnosti seznamu", +selectInfo:"Info",opAvail:"Dostupná nastavení",value:"Hodnota",size:"Velikost",lines:"Řádků",chkMulti:"Povolit mnohonásobné výběry",opText:"Text",opValue:"Hodnota",btnAdd:"Přidat",btnModify:"Změnit",btnUp:"Nahoru",btnDown:"Dolů",btnSetValue:"Nastavit jako vybranou hodnotu",btnDelete:"Smazat"},textarea:{title:"Vlastnosti textové oblasti",cols:"Sloupců",rows:"Řádků"},textfield:{title:"Vlastnosti textového pole",name:"Název",value:"Hodnota",charWidth:"Šířka ve znacích",maxChars:"Maximální počet znaků", +type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hledat",typeTel:"Telefonní číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/cy.js b/src/lib/ckeditor/plugins/forms/lang/cy.js new file mode 100644 index 00000000..332c861f --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cy",{button:{title:"Priodweddau Botymau",text:"Testun (Gwerth)",type:"Math",typeBtn:"Botwm",typeSbm:"Anfon",typeRst:"Ailosod"},checkboxAndRadio:{checkboxTitle:"Priodweddau Blwch Ticio",radioTitle:"Priodweddau Botwm Radio",value:"Gwerth",selected:"Dewiswyd"},form:{title:"Priodweddau Ffurflen",menu:"Priodweddau Ffurflen",action:"Gweithred",method:"Dull",encoding:"Amgodio"},hidden:{title:"Priodweddau Maes Cudd",name:"Enw",value:"Gwerth"},select:{title:"Priodweddau Maes Dewis", +selectInfo:"Gwyb Dewis",opAvail:"Opsiynau ar Gael",value:"Gwerth",size:"Maint",lines:"llinellau",chkMulti:"Caniatàu aml-ddewisiadau",opText:"Testun",opValue:"Gwerth",btnAdd:"Ychwanegu",btnModify:"Newid",btnUp:"Lan",btnDown:"Lawr",btnSetValue:"Gosod fel gwerth a ddewiswyd",btnDelete:"Dileu"},textarea:{title:"Priodweddau Ardal Testun",cols:"Colofnau",rows:"Rhesi"},textfield:{title:"Priodweddau Maes Testun",name:"Enw",value:"Gwerth",charWidth:"Lled Nod",maxChars:"Uchafswm y Nodau",type:"Math",typeText:"Testun", +typePass:"Cyfrinair",typeEmail:"Ebost",typeSearch:"Chwilio",typeTel:"Rhif Ffôn",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/da.js b/src/lib/ckeditor/plugins/forms/lang/da.js new file mode 100644 index 00000000..cf4a1934 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","da",{button:{title:"Egenskaber for knap",text:"Tekst",type:"Type",typeBtn:"Knap",typeSbm:"Send",typeRst:"Nulstil"},checkboxAndRadio:{checkboxTitle:"Egenskaber for afkrydsningsfelt",radioTitle:"Egenskaber for alternativknap",value:"Værdi",selected:"Valgt"},form:{title:"Egenskaber for formular",menu:"Egenskaber for formular",action:"Handling",method:"Metode",encoding:"Kodning (encoding)"},hidden:{title:"Egenskaber for skjult felt",name:"Navn",value:"Værdi"},select:{title:"Egenskaber for liste", +selectInfo:"Generelt",opAvail:"Valgmuligheder",value:"Værdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillad flere valg",opText:"Tekst",opValue:"Værdi",btnAdd:"Tilføj",btnModify:"Redigér",btnUp:"Op",btnDown:"Ned",btnSetValue:"Sæt som valgt",btnDelete:"Slet"},textarea:{title:"Egenskaber for tekstboks",cols:"Kolonner",rows:"Rækker"},textfield:{title:"Egenskaber for tekstfelt",name:"Navn",value:"Værdi",charWidth:"Bredde (tegn)",maxChars:"Max. antal tegn",type:"Type",typeText:"Tekst",typePass:"Adgangskode", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/de.js b/src/lib/ckeditor/plugins/forms/lang/de.js new file mode 100644 index 00000000..483c7f9d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","de",{button:{title:"Button-Eigenschaften",text:"Text (Wert)",type:"Typ",typeBtn:"Button",typeSbm:"Absenden",typeRst:"Zurücksetzen"},checkboxAndRadio:{checkboxTitle:"Checkbox-Eigenschaften",radioTitle:"Optionsfeld-Eigenschaften",value:"Wert",selected:"ausgewählt"},form:{title:"Formular-Eigenschaften",menu:"Formular-Eigenschaften",action:"Action",method:"Method",encoding:"Zeichenkodierung"},hidden:{title:"Verstecktes Feld-Eigenschaften",name:"Name",value:"Wert"},select:{title:"Auswahlfeld-Eigenschaften", +selectInfo:"Info",opAvail:"Mögliche Optionen",value:"Wert",size:"Größe",lines:"Linien",chkMulti:"Erlaube Mehrfachauswahl",opText:"Text",opValue:"Wert",btnAdd:"Hinzufügen",btnModify:"Ändern",btnUp:"Hoch",btnDown:"Runter",btnSetValue:"Setze als Standardwert",btnDelete:"Entfernen"},textarea:{title:"Textfeld (mehrzeilig) Eigenschaften",cols:"Spalten",rows:"Reihen"},textfield:{title:"Textfeld (einzeilig) Eigenschaften",name:"Name",value:"Wert",charWidth:"Zeichenbreite",maxChars:"Max. Zeichen",type:"Typ", +typeText:"Text",typePass:"Passwort",typeEmail:"E-mail",typeSearch:"Suche",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/el.js b/src/lib/ckeditor/plugins/forms/lang/el.js new file mode 100644 index 00000000..2f42eff3 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","el",{button:{title:"Ιδιότητες Κουμπιού",text:"Κείμενο (Τιμή)",type:"Τύπος",typeBtn:"Κουμπί",typeSbm:"Υποβολή",typeRst:"Επαναφορά"},checkboxAndRadio:{checkboxTitle:"Ιδιότητες Κουτιού Επιλογής",radioTitle:"Ιδιότητες Κουμπιού Επιλογής",value:"Τιμή",selected:"Επιλεγμένο"},form:{title:"Ιδιότητες Φόρμας",menu:"Ιδιότητες Φόρμας",action:"Ενέργεια",method:"Μέθοδος",encoding:"Κωδικοποίηση"},hidden:{title:"Ιδιότητες Κρυφού Πεδίου",name:"Όνομα",value:"Τιμή"},select:{title:"Ιδιότητες Πεδίου Επιλογής", +selectInfo:"Πληροφορίες Πεδίου Επιλογής",opAvail:"Διαθέσιμες Επιλογές",value:"Τιμή",size:"Μέγεθος",lines:"γραμμές",chkMulti:"Να επιτρέπονται οι πολλαπλές επιλογές",opText:"Κείμενο",opValue:"Τιμή",btnAdd:"Προσθήκη",btnModify:"Τροποποίηση",btnUp:"Πάνω",btnDown:"Κάτω",btnSetValue:"Θέση ως προεπιλογή",btnDelete:"Διαγραφή"},textarea:{title:"Ιδιότητες Περιοχής Κειμένου",cols:"Στήλες",rows:"Σειρές"},textfield:{title:"Ιδιότητες Πεδίου Κειμένου",name:"Όνομα",value:"Τιμή",charWidth:"Πλάτος Χαρακτήρων",maxChars:"Μέγιστοι χαρακτήρες", +type:"Τύπος",typeText:"Κείμενο",typePass:"Κωδικός",typeEmail:"Email",typeSearch:"Αναζήτηση",typeTel:"Αριθμός Τηλεφώνου",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/en-au.js b/src/lib/ckeditor/plugins/forms/lang/en-au.js new file mode 100644 index 00000000..e144ec74 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-au",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/en-ca.js b/src/lib/ckeditor/plugins/forms/lang/en-ca.js new file mode 100644 index 00000000..8adf26e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-ca",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/en-gb.js b/src/lib/ckeditor/plugins/forms/lang/en-gb.js new file mode 100644 index 00000000..d72b16c6 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-gb",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"E-mail",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/en.js b/src/lib/ckeditor/plugins/forms/lang/en.js new file mode 100644 index 00000000..95cf7753 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/eo.js b/src/lib/ckeditor/plugins/forms/lang/eo.js new file mode 100644 index 00000000..26744b66 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eo",{button:{title:"Butonaj atributoj",text:"Teksto (Valoro)",type:"Tipo",typeBtn:"Butono",typeSbm:"Validigi (submit)",typeRst:"Remeti en la originstaton (Reset)"},checkboxAndRadio:{checkboxTitle:"Markobutonaj Atributoj",radioTitle:"Radiobutonaj Atributoj",value:"Valoro",selected:"Selektita"},form:{title:"Formularaj Atributoj",menu:"Formularaj Atributoj",action:"Ago",method:"Metodo",encoding:"Kodoprezento"},hidden:{title:"Atributoj de Kaŝita Kampo",name:"Nomo",value:"Valoro"}, +select:{title:"Atributoj de Elekta Kampo",selectInfo:"Informoj pri la rulummenuo",opAvail:"Elektoj Disponeblaj",value:"Valoro",size:"Grando",lines:"Linioj",chkMulti:"Permesi Plurajn Elektojn",opText:"Teksto",opValue:"Valoro",btnAdd:"Aldoni",btnModify:"Modifi",btnUp:"Supren",btnDown:"Malsupren",btnSetValue:"Agordi kiel Elektitan Valoron",btnDelete:"Forigi"},textarea:{title:"Atributoj de Teksta Areo",cols:"Kolumnoj",rows:"Linioj"},textfield:{title:"Atributoj de Teksta Kampo",name:"Nomo",value:"Valoro", +charWidth:"Signolarĝo",maxChars:"Maksimuma Nombro da Signoj",type:"Tipo",typeText:"Teksto",typePass:"Pasvorto",typeEmail:"retpoŝtadreso",typeSearch:"Serĉi",typeTel:"Telefonnumero",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/es.js b/src/lib/ckeditor/plugins/forms/lang/es.js new file mode 100644 index 00000000..e275cf88 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","es",{button:{title:"Propiedades de Botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Boton",typeSbm:"Enviar",typeRst:"Reestablecer"},checkboxAndRadio:{checkboxTitle:"Propiedades de Casilla",radioTitle:"Propiedades de Botón de Radio",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades de Formulario",menu:"Propiedades de Formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades de Campo Oculto",name:"Nombre",value:"Valor"}, +select:{title:"Propiedades de Campo de Selección",selectInfo:"Información",opAvail:"Opciones disponibles",value:"Valor",size:"Tamaño",lines:"Lineas",chkMulti:"Permitir múltiple selección",opText:"Texto",opValue:"Valor",btnAdd:"Agregar",btnModify:"Modificar",btnUp:"Subir",btnDown:"Bajar",btnSetValue:"Establecer como predeterminado",btnDelete:"Eliminar"},textarea:{title:"Propiedades de Area de Texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades de Campo de Texto",name:"Nombre",value:"Valor", +charWidth:"Caracteres de ancho",maxChars:"Máximo caracteres",type:"Tipo",typeText:"Texto",typePass:"Contraseña",typeEmail:"Correo electrónico",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/et.js b/src/lib/ckeditor/plugins/forms/lang/et.js new file mode 100644 index 00000000..0e1d62e2 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","et",{button:{title:"Nupu omadused",text:"Tekst (väärtus)",type:"Liik",typeBtn:"Nupp",typeSbm:"Saada",typeRst:"Lähtesta"},checkboxAndRadio:{checkboxTitle:"Märkeruudu omadused",radioTitle:"Raadionupu omadused",value:"Väärtus",selected:"Märgitud"},form:{title:"Vormi omadused",menu:"Vormi omadused",action:"Toiming",method:"Meetod",encoding:"Kodeering"},hidden:{title:"Varjatud lahtri omadused",name:"Nimi",value:"Väärtus"},select:{title:"Valiklahtri omadused",selectInfo:"Info", +opAvail:"Võimalikud valikud:",value:"Väärtus",size:"Suurus",lines:"ridu",chkMulti:"Võimalik mitu valikut",opText:"Tekst",opValue:"Väärtus",btnAdd:"Lisa",btnModify:"Muuda",btnUp:"Üles",btnDown:"Alla",btnSetValue:"Määra vaikimisi",btnDelete:"Kustuta"},textarea:{title:"Tekstiala omadused",cols:"Veerge",rows:"Ridu"},textfield:{title:"Tekstilahtri omadused",name:"Nimi",value:"Väärtus",charWidth:"Laius (tähemärkides)",maxChars:"Maksimaalselt tähemärke",type:"Liik",typeText:"Tekst",typePass:"Parool",typeEmail:"E-mail", +typeSearch:"Otsi",typeTel:"Telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/eu.js b/src/lib/ckeditor/plugins/forms/lang/eu.js new file mode 100644 index 00000000..cfb5e9a5 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eu",{button:{title:"Botoiaren Ezaugarriak",text:"Testua (Balorea)",type:"Mota",typeBtn:"Botoia",typeSbm:"Bidali",typeRst:"Garbitu"},checkboxAndRadio:{checkboxTitle:"Kontrol-laukiko Ezaugarriak",radioTitle:"Aukera-botoiaren Ezaugarriak",value:"Balorea",selected:"Hautatuta"},form:{title:"Formularioaren Ezaugarriak",menu:"Formularioaren Ezaugarriak",action:"Ekintza",method:"Metodoa",encoding:"Kodeketa"},hidden:{title:"Ezkutuko Eremuaren Ezaugarriak",name:"Izena",value:"Balorea"}, +select:{title:"Hautespen Eremuaren Ezaugarriak",selectInfo:"Informazioa",opAvail:"Aukera Eskuragarriak",value:"Balorea",size:"Tamaina",lines:"lerro kopurura",chkMulti:"Hautaketa anitzak baimendu",opText:"Testua",opValue:"Balorea",btnAdd:"Gehitu",btnModify:"Aldatu",btnUp:"Gora",btnDown:"Behera",btnSetValue:"Aukeratutako balorea ezarri",btnDelete:"Ezabatu"},textarea:{title:"Testu-arearen Ezaugarriak",cols:"Zutabeak",rows:"Lerroak"},textfield:{title:"Testu Eremuaren Ezaugarriak",name:"Izena",value:"Balorea", +charWidth:"Zabalera",maxChars:"Zenbat karaktere gehienez",type:"Mota",typeText:"Testua",typePass:"Pasahitza",typeEmail:"E-posta",typeSearch:"Bilatu",typeTel:"Telefono Zenbakia",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/fa.js b/src/lib/ckeditor/plugins/forms/lang/fa.js new file mode 100644 index 00000000..326ada0d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/fa.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fa",{button:{title:"ویژگی​های دکمه",text:"متن (مقدار)",type:"نوع",typeBtn:"دکمه",typeSbm:"ثبت",typeRst:"بازنشانی (Reset)"},checkboxAndRadio:{checkboxTitle:"ویژگی​های خانهٴ گزینه​ای",radioTitle:"ویژگی​های دکمهٴ رادیویی",value:"مقدار",selected:"برگزیده"},form:{title:"ویژگی​های فرم",menu:"ویژگی​های فرم",action:"رویداد",method:"متد",encoding:"رمزنگاری"},hidden:{title:"ویژگی​های فیلد پنهان",name:"نام",value:"مقدار"},select:{title:"ویژگی​های فیلد چندگزینه​ای",selectInfo:"اطلاعات", +opAvail:"گزینه​های دردسترس",value:"مقدار",size:"اندازه",lines:"خطوط",chkMulti:"گزینش چندگانه فراهم باشد",opText:"متن",opValue:"مقدار",btnAdd:"افزودن",btnModify:"ویرایش",btnUp:"بالا",btnDown:"پائین",btnSetValue:"تنظیم به عنوان مقدار برگزیده",btnDelete:"پاککردن"},textarea:{title:"ویژگی​های ناحیهٴ متنی",cols:"ستون​ها",rows:"سطرها"},textfield:{title:"ویژگی​های فیلد متنی",name:"نام",value:"مقدار",charWidth:"پهنای نویسه",maxChars:"بیشینهٴ نویسه​ها",type:"نوع",typeText:"متن",typePass:"گذرواژه",typeEmail:"ایمیل", +typeSearch:"جستجو",typeTel:"شماره تلفن",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/fi.js b/src/lib/ckeditor/plugins/forms/lang/fi.js new file mode 100644 index 00000000..31cf6d05 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fi",{button:{title:"Painikkeen ominaisuudet",text:"Teksti (arvo)",type:"Tyyppi",typeBtn:"Painike",typeSbm:"Lähetä",typeRst:"Tyhjennä"},checkboxAndRadio:{checkboxTitle:"Valintaruudun ominaisuudet",radioTitle:"Radiopainikkeen ominaisuudet",value:"Arvo",selected:"Valittu"},form:{title:"Lomakkeen ominaisuudet",menu:"Lomakkeen ominaisuudet",action:"Toiminto",method:"Tapa",encoding:"Enkoodaus"},hidden:{title:"Piilokentän ominaisuudet",name:"Nimi",value:"Arvo"},select:{title:"Valintakentän ominaisuudet", +selectInfo:"Info",opAvail:"Ominaisuudet",value:"Arvo",size:"Koko",lines:"Rivit",chkMulti:"Salli usea valinta",opText:"Teksti",opValue:"Arvo",btnAdd:"Lisää",btnModify:"Muuta",btnUp:"Ylös",btnDown:"Alas",btnSetValue:"Aseta valituksi",btnDelete:"Poista"},textarea:{title:"Tekstilaatikon ominaisuudet",cols:"Sarakkeita",rows:"Rivejä"},textfield:{title:"Tekstikentän ominaisuudet",name:"Nimi",value:"Arvo",charWidth:"Leveys",maxChars:"Maksimi merkkimäärä",type:"Tyyppi",typeText:"Teksti",typePass:"Salasana", +typeEmail:"Sähköposti",typeSearch:"Haku",typeTel:"Puhelinnumero",typeUrl:"Osoite"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/fo.js b/src/lib/ckeditor/plugins/forms/lang/fo.js new file mode 100644 index 00000000..3ff4950e --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fo",{button:{title:"Eginleikar fyri knøtt",text:"Tekstur",type:"Slag",typeBtn:"Knøttur",typeSbm:"Send",typeRst:"Nullstilla"},checkboxAndRadio:{checkboxTitle:"Eginleikar fyri flugubein",radioTitle:"Eginleikar fyri radioknøtt",value:"Virði",selected:"Valt"},form:{title:"Eginleikar fyri Form",menu:"Eginleikar fyri Form",action:"Hending",method:"Háttur",encoding:"Encoding"},hidden:{title:"Eginleikar fyri fjaldan teig",name:"Navn",value:"Virði"},select:{title:"Eginleikar fyri valskrá", +selectInfo:"Upplýsingar",opAvail:"Tøkir møguleikar",value:"Virði",size:"Stødd",lines:"Linjur",chkMulti:"Loyv fleiri valmøguleikum samstundis",opText:"Tekstur",opValue:"Virði",btnAdd:"Legg afturat",btnModify:"Broyt",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Set sum valt virði",btnDelete:"Strika"},textarea:{title:"Eginleikar fyri tekstumráði",cols:"kolonnur",rows:"røðir"},textfield:{title:"Eginleikar fyri tekstteig",name:"Navn",value:"Virði",charWidth:"Breidd (sjónlig tekn)",maxChars:"Mest loyvdu tekn", +type:"Slag",typeText:"Tekstur",typePass:"Loyniorð",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/fr-ca.js b/src/lib/ckeditor/plugins/forms/lang/fr-ca.js new file mode 100644 index 00000000..f44c8d63 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr-ca",{button:{title:"Propriétés du bouton",text:"Texte (Valeur)",type:"Type",typeBtn:"Bouton",typeSbm:"Soumettre",typeRst:"Réinitialiser"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom",value:"Valeur"}, +select:{title:"Propriétés du champ de sélection",selectInfo:"Info",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Monter",btnDown:"Descendre",btnSetValue:"Valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte",name:"Nom",value:"Valeur",charWidth:"Largeur de caractères", +maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"Courriel",typeSearch:"Recherche",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/fr.js b/src/lib/ckeditor/plugins/forms/lang/fr.js new file mode 100644 index 00000000..eff0fd02 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr",{button:{title:"Propriétés du bouton",text:"Texte (Value)",type:"Type",typeBtn:"Bouton",typeSbm:"Validation (submit)",typeRst:"Remise à zéro"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton Radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom", +value:"Valeur"},select:{title:"Propriétés du menu déroulant",selectInfo:"Informations sur le menu déroulant",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"Lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Haut",btnDown:"Bas",btnSetValue:"Définir comme valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte", +name:"Nom",value:"Valeur",charWidth:"Taille des caractères",maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"E-mail",typeSearch:"Rechercher",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/gl.js b/src/lib/ckeditor/plugins/forms/lang/gl.js new file mode 100644 index 00000000..792ee3f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gl",{button:{title:"Propiedades do botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botón",typeSbm:"Enviar",typeRst:"Restabelever"},checkboxAndRadio:{checkboxTitle:"Propiedades da caixa de selección",radioTitle:"Propiedades do botón de opción",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades do formulario",menu:"Propiedades do formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades do campo agochado",name:"Nome", +value:"Valor"},select:{title:"Propiedades do campo de selección",selectInfo:"Información",opAvail:"Opcións dispoñíbeis",value:"Valor",size:"Tamaño",lines:"liñas",chkMulti:"Permitir múltiplas seleccións",opText:"Texto",opValue:"Valor",btnAdd:"Engadir",btnModify:"Modificar",btnUp:"Subir",btnDown:"Baixar",btnSetValue:"Estabelecer como valor seleccionado",btnDelete:"Eliminar"},textarea:{title:"Propiedades da área de texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades do campo de texto", +name:"Nome",value:"Valor",charWidth:"Largo do carácter",maxChars:"Núm. máximo de caracteres",type:"Tipo",typeText:"Texto",typePass:"Contrasinal",typeEmail:"Correo",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/gu.js b/src/lib/ckeditor/plugins/forms/lang/gu.js new file mode 100644 index 00000000..976d136a --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gu",{button:{title:"બટનના ગુણ",text:"ટેક્સ્ટ (વૅલ્યૂ)",type:"પ્રકાર",typeBtn:"બટન",typeSbm:"સબ્મિટ",typeRst:"રિસેટ"},checkboxAndRadio:{checkboxTitle:"ચેક બોક્સ ગુણ",radioTitle:"રેડિઓ બટનના ગુણ",value:"વૅલ્યૂ",selected:"સિલેક્ટેડ"},form:{title:"ફૉર્મ/પત્રકના ગુણ",menu:"ફૉર્મ/પત્રકના ગુણ",action:"ક્રિયા",method:"પદ્ધતિ",encoding:"અન્કોડીન્ગ"},hidden:{title:"ગુપ્ત ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ"},select:{title:"પસંદગી ક્ષેત્રના ગુણ",selectInfo:"સૂચના",opAvail:"ઉપલબ્ધ વિકલ્પ", +value:"વૅલ્યૂ",size:"સાઇઝ",lines:"લીટીઓ",chkMulti:"એકથી વધારે પસંદ કરી શકો",opText:"ટેક્સ્ટ",opValue:"વૅલ્યૂ",btnAdd:"ઉમેરવું",btnModify:"બદલવું",btnUp:"ઉપર",btnDown:"નીચે",btnSetValue:"પસંદ કરલી વૅલ્યૂ સેટ કરો",btnDelete:"રદ કરવું"},textarea:{title:"ટેક્સ્ટ એઅરિઆ, શબ્દ વિસ્તારના ગુણ",cols:"કૉલમ/ઊભી કટાર",rows:"પંક્તિઓ"},textfield:{title:"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ",charWidth:"કેરેક્ટરની પહોળાઈ",maxChars:"અધિકતમ કેરેક્ટર",type:"ટાઇપ",typeText:"ટેક્સ્ટ",typePass:"પાસવર્ડ", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/he.js b/src/lib/ckeditor/plugins/forms/lang/he.js new file mode 100644 index 00000000..102ba4c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","he",{button:{title:"מאפייני כפתור",text:"טקסט (ערך)",type:"סוג",typeBtn:"כפתור",typeSbm:"שליחה",typeRst:"איפוס"},checkboxAndRadio:{checkboxTitle:"מאפייני תיבת סימון",radioTitle:"מאפייני לחצן אפשרויות",value:"ערך",selected:"מסומן"},form:{title:"מאפיני טופס",menu:"מאפיני טופס",action:"שלח אל",method:"סוג שליחה",encoding:"קידוד"},hidden:{title:"מאפיני שדה חבוי",name:"שם",value:"ערך"},select:{title:"מאפייני שדה בחירה",selectInfo:"מידע",opAvail:"אפשרויות זמינות",value:"ערך", +size:"גודל",lines:"שורות",chkMulti:"איפשור בחירות מרובות",opText:"טקסט",opValue:"ערך",btnAdd:"הוספה",btnModify:"שינוי",btnUp:"למעלה",btnDown:"למטה",btnSetValue:"קביעה כברירת מחדל",btnDelete:"מחיקה"},textarea:{title:"מאפייני איזור טקסט",cols:"עמודות",rows:"שורות"},textfield:{title:"מאפייני שדה טקסט",name:"שם",value:"ערך",charWidth:"רוחב לפי תווים",maxChars:"מקסימום תווים",type:"סוג",typeText:"טקסט",typePass:"סיסמה",typeEmail:'דוא"ל',typeSearch:"חיפוש",typeTel:"מספר טלפון",typeUrl:"כתובת (URL)"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/hi.js b/src/lib/ckeditor/plugins/forms/lang/hi.js new file mode 100644 index 00000000..28f074e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hi",{button:{title:"बटन प्रॉपर्टीज़",text:"टेक्स्ट (वैल्यू)",type:"प्रकार",typeBtn:"बटन",typeSbm:"सब्मिट",typeRst:"रिसेट"},checkboxAndRadio:{checkboxTitle:"चॅक बॉक्स प्रॉपर्टीज़",radioTitle:"रेडिओ बटन प्रॉपर्टीज़",value:"वैल्यू",selected:"सॅलॅक्टॅड"},form:{title:"फ़ॉर्म प्रॉपर्टीज़",menu:"फ़ॉर्म प्रॉपर्टीज़",action:"क्रिया",method:"तरीका",encoding:"Encoding"},hidden:{title:"गुप्त फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू"},select:{title:"चुनाव फ़ील्ड प्रॉपर्टीज़",selectInfo:"सूचना", +opAvail:"उपलब्ध विकल्प",value:"वैल्यू",size:"साइज़",lines:"पंक्तियाँ",chkMulti:"एक से ज्यादा विकल्प चुनने दें",opText:"टेक्स्ट",opValue:"वैल्यू",btnAdd:"जोड़ें",btnModify:"बदलें",btnUp:"ऊपर",btnDown:"नीचे",btnSetValue:"चुनी गई वैल्यू सॅट करें",btnDelete:"डिलीट"},textarea:{title:"टेक्स्त एरिया प्रॉपर्टीज़",cols:"कालम",rows:"पंक्तियां"},textfield:{title:"टेक्स्ट फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू",charWidth:"करॅक्टर की चौढ़ाई",maxChars:"अधिकतम करॅक्टर",type:"टाइप",typeText:"टेक्स्ट",typePass:"पास्वर्ड", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/hr.js b/src/lib/ckeditor/plugins/forms/lang/hr.js new file mode 100644 index 00000000..9965827c --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hr",{button:{title:"Button svojstva",text:"Tekst (vrijednost)",type:"Vrsta",typeBtn:"Gumb",typeSbm:"Pošalji",typeRst:"Poništi"},checkboxAndRadio:{checkboxTitle:"Checkbox svojstva",radioTitle:"Radio Button svojstva",value:"Vrijednost",selected:"Odabrano"},form:{title:"Form svojstva",menu:"Form svojstva",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Hidden Field svojstva",name:"Ime",value:"Vrijednost"},select:{title:"Selection svojstva",selectInfo:"Info", +opAvail:"Dostupne opcije",value:"Vrijednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruki odabir",opText:"Tekst",opValue:"Vrijednost",btnAdd:"Dodaj",btnModify:"Promijeni",btnUp:"Gore",btnDown:"Dolje",btnSetValue:"Postavi kao odabranu vrijednost",btnDelete:"Obriši"},textarea:{title:"Textarea svojstva",cols:"Kolona",rows:"Redova"},textfield:{title:"Text Field svojstva",name:"Ime",value:"Vrijednost",charWidth:"Širina",maxChars:"Najviše karaktera",type:"Vrsta",typeText:"Tekst",typePass:"Šifra", +typeEmail:"Email",typeSearch:"Traži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/hu.js b/src/lib/ckeditor/plugins/forms/lang/hu.js new file mode 100644 index 00000000..962606d8 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hu",{button:{title:"Gomb tulajdonságai",text:"Szöveg (Érték)",type:"Típus",typeBtn:"Gomb",typeSbm:"Küldés",typeRst:"Alaphelyzet"},checkboxAndRadio:{checkboxTitle:"Jelölőnégyzet tulajdonságai",radioTitle:"Választógomb tulajdonságai",value:"Érték",selected:"Kiválasztott"},form:{title:"Űrlap tulajdonságai",menu:"Űrlap tulajdonságai",action:"Adatfeldolgozást végző hivatkozás",method:"Adatküldés módja",encoding:"Kódolás"},hidden:{title:"Rejtett mező tulajdonságai",name:"Név", +value:"Érték"},select:{title:"Legördülő lista tulajdonságai",selectInfo:"Alaptulajdonságok",opAvail:"Elérhető opciók",value:"Érték",size:"Méret",lines:"sor",chkMulti:"több sor is kiválasztható",opText:"Szöveg",opValue:"Érték",btnAdd:"Hozzáad",btnModify:"Módosít",btnUp:"Fel",btnDown:"Le",btnSetValue:"Legyen az alapértelmezett érték",btnDelete:"Töröl"},textarea:{title:"Szövegterület tulajdonságai",cols:"Karakterek száma egy sorban",rows:"Sorok száma"},textfield:{title:"Szövegmező tulajdonságai",name:"Név", +value:"Érték",charWidth:"Megjelenített karakterek száma",maxChars:"Maximális karakterszám",type:"Típus",typeText:"Szöveg",typePass:"Jelszó",typeEmail:"Ímél",typeSearch:"Keresés",typeTel:"Telefonszám",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/id.js b/src/lib/ckeditor/plugins/forms/lang/id.js new file mode 100644 index 00000000..7fdc87fe --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","id",{button:{title:"Button Properties",text:"Teks (Nilai)",type:"Tipe",typeBtn:"Tombol",typeSbm:"Menyerahkan",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Nilai",selected:"Terpilih"},form:{title:"Form Properties",menu:"Form Properties",action:"Aksi",method:"Metode",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Nama",value:"Nilai"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Nilai",size:"Ukuran",lines:"garis",chkMulti:"Izinkan pemilihan ganda",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah",btnModify:"Modifikasi",btnUp:"Atas",btnDown:"Bawah",btnSetValue:"Set as selected value",btnDelete:"Hapus"},textarea:{title:"Textarea Properties",cols:"Kolom",rows:"Baris"},textfield:{title:"Text Field Properties",name:"Name",value:"Nilai",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Tipe",typeText:"Teks", +typePass:"Kata kunci",typeEmail:"Surel",typeSearch:"Cari",typeTel:"Nomor Telepon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/is.js b/src/lib/ckeditor/plugins/forms/lang/is.js new file mode 100644 index 00000000..7ca735ec --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","is",{button:{title:"Eigindi hnapps",text:"Texti",type:"Gerð",typeBtn:"Hnappur",typeSbm:"Staðfesta",typeRst:"Hreinsa"},checkboxAndRadio:{checkboxTitle:"Eigindi markreits",radioTitle:"Eigindi valhnapps",value:"Gildi",selected:"Valið"},form:{title:"Eigindi innsláttarforms",menu:"Eigindi innsláttarforms",action:"Aðgerð",method:"Aðferð",encoding:"Encoding"},hidden:{title:"Eigindi falins svæðis",name:"Nafn",value:"Gildi"},select:{title:"Eigindi lista",selectInfo:"Upplýsingar", +opAvail:"Kostir",value:"Gildi",size:"Stærð",lines:"línur",chkMulti:"Leyfa fleiri kosti",opText:"Texti",opValue:"Gildi",btnAdd:"Bæta við",btnModify:"Breyta",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Merkja sem valið",btnDelete:"Eyða"},textarea:{title:"Eigindi textasvæðis",cols:"Dálkar",rows:"Línur"},textfield:{title:"Eigindi textareits",name:"Nafn",value:"Gildi",charWidth:"Breidd (leturtákn)",maxChars:"Hámarksfjöldi leturtákna",type:"Gerð",typeText:"Texti",typePass:"Lykilorð",typeEmail:"Email",typeSearch:"Search", +typeTel:"Telephone Number",typeUrl:"Vefslóð"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/it.js b/src/lib/ckeditor/plugins/forms/lang/it.js new file mode 100644 index 00000000..90f4f584 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","it",{button:{title:"Proprietà bottone",text:"Testo (Valore)",type:"Tipo",typeBtn:"Bottone",typeSbm:"Invio",typeRst:"Annulla"},checkboxAndRadio:{checkboxTitle:"Proprietà checkbox",radioTitle:"Proprietà radio button",value:"Valore",selected:"Selezionato"},form:{title:"Proprietà modulo",menu:"Proprietà modulo",action:"Azione",method:"Metodo",encoding:"Codifica"},hidden:{title:"Proprietà campo nascosto",name:"Nome",value:"Valore"},select:{title:"Proprietà menu di selezione", +selectInfo:"Info",opAvail:"Opzioni disponibili",value:"Valore",size:"Dimensione",lines:"righe",chkMulti:"Permetti selezione multipla",opText:"Testo",opValue:"Valore",btnAdd:"Aggiungi",btnModify:"Modifica",btnUp:"Su",btnDown:"Gi",btnSetValue:"Imposta come predefinito",btnDelete:"Rimuovi"},textarea:{title:"Proprietà area di testo",cols:"Colonne",rows:"Righe"},textfield:{title:"Proprietà campo di testo",name:"Nome",value:"Valore",charWidth:"Larghezza",maxChars:"Numero massimo di caratteri",type:"Tipo", +typeText:"Testo",typePass:"Password",typeEmail:"Email",typeSearch:"Cerca",typeTel:"Numero di telefono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ja.js b/src/lib/ckeditor/plugins/forms/lang/ja.js new file mode 100644 index 00000000..8e615cfd --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ja",{button:{title:"ボタン プロパティ",text:"テキスト (値)",type:"タイプ",typeBtn:"ボタン",typeSbm:"送信",typeRst:"リセット"},checkboxAndRadio:{checkboxTitle:"チェックボックスのプロパティ",radioTitle:"ラジオボタンのプロパティ",value:"値",selected:"選択済み"},form:{title:"フォームのプロパティ",menu:"フォームのプロパティ",action:"アクション (action)",method:"メソッド (method)",encoding:"エンコード方式 (encoding)"},hidden:{title:"不可視フィールド プロパティ",name:"名前 (name)",value:"値 (value)"},select:{title:"選択フィールドのプロパティ",selectInfo:"情報",opAvail:"利用可能なオプション",value:"選択項目値", +size:"サイズ",lines:"行",chkMulti:"複数選択を許可",opText:"選択項目名",opValue:"値",btnAdd:"追加",btnModify:"編集",btnUp:"上へ",btnDown:"下へ",btnSetValue:"選択した値を設定",btnDelete:"削除"},textarea:{title:"テキストエリア プロパティ",cols:"列",rows:"行"},textfield:{title:"1行テキスト プロパティ",name:"名前",value:"値",charWidth:"サイズ",maxChars:"最大長",type:"タイプ",typeText:"テキスト",typePass:"パスワード入力",typeEmail:"メール",typeSearch:"検索",typeTel:"電話番号",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ka.js b/src/lib/ckeditor/plugins/forms/lang/ka.js new file mode 100644 index 00000000..06b8131d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ka",{button:{title:"ღილაკის პარამეტრები",text:"ტექსტი",type:"ტიპი",typeBtn:"ღილაკი",typeSbm:"გაგზავნა",typeRst:"გასუფთავება"},checkboxAndRadio:{checkboxTitle:"მონიშვნის ღილაკის (Checkbox) პარამეტრები",radioTitle:"ასარჩევი ღილაკის (Radio) პარამეტრები",value:"ტექსტი",selected:"არჩეული"},form:{title:"ფორმის პარამეტრები",menu:"ფორმის პარამეტრები",action:"ქმედება",method:"მეთოდი",encoding:"კოდირება"},hidden:{title:"მალული ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა"}, +select:{title:"არჩევის ველის პარამეტრები",selectInfo:"ინფორმაცია",opAvail:"შესაძლებელი ვარიანტები",value:"მნიშვნელობა",size:"ზომა",lines:"ხაზები",chkMulti:"მრავლობითი არჩევანის საშუალება",opText:"ტექსტი",opValue:"მნიშვნელობა",btnAdd:"დამატება",btnModify:"შეცვლა",btnUp:"ზემოთ",btnDown:"ქვემოთ",btnSetValue:"ამორჩეულ მნიშვნელოვნად დაყენება",btnDelete:"წაშლა"},textarea:{title:"ტექსტური არის პარამეტრები",cols:"სვეტები",rows:"სტრიქონები"},textfield:{title:"ტექსტური ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა", +charWidth:"სიმბოლოს ზომა",maxChars:"ასოების მაქსიმალური ოდენობა",type:"ტიპი",typeText:"ტექსტი",typePass:"პაროლი",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/km.js b/src/lib/ckeditor/plugins/forms/lang/km.js new file mode 100644 index 00000000..e9c1269d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","km",{button:{title:"លក្ខណៈ​ប៊ូតុង",text:"អត្ថបទ (តម្លៃ)",type:"ប្រភេទ",typeBtn:"ប៊ូតុង",typeSbm:"ដាក់ស្នើ",typeRst:"កំណត់​ឡើង​វិញ"},checkboxAndRadio:{checkboxTitle:"លក្ខណៈ​ប្រអប់​ធីក",radioTitle:"លក្ខនៈ​ប៊ូតុង​មូល",value:"តម្លៃ",selected:"បាន​ជ្រើស"},form:{title:"លក្ខណៈ​បែបបទ",menu:"លក្ខណៈ​បែបបទ",action:"សកម្មភាព",method:"វិធីសាស្ត្រ",encoding:"ការ​អ៊ិនកូដ"},hidden:{title:"លក្ខណៈ​វាល​កំបាំង",name:"ឈ្មោះ",value:"តម្លៃ"},select:{title:"លក្ខណៈ​វាល​ជម្រើស",selectInfo:"ព័ត៌មាន​ជម្រើស", +opAvail:"ជម្រើស​ដែល​មាន",value:"តម្លៃ",size:"ទំហំ",lines:"បន្ទាត់",chkMulti:"អនុញ្ញាត​ពហុ​ជម្រើស",opText:"អត្ថបទ",opValue:"តម្លៃ",btnAdd:"បន្ថែម",btnModify:"ផ្លាស់ប្តូរ",btnUp:"លើ",btnDown:"ក្រោម",btnSetValue:"កំណត់​ជា​តម្លៃ​ដែល​បាន​ជ្រើស",btnDelete:"លុប"},textarea:{title:"លក្ខណៈ​ប្រអប់​អត្ថបទ",cols:"ជួរឈរ",rows:"ជួរដេក"},textfield:{title:"លក្ខណៈ​វាល​អត្ថបទ",name:"ឈ្មោះ",value:"តម្លៃ",charWidth:"ទទឹង​តួ​អក្សរ",maxChars:"អក្សរអតិបរិមា",type:"ប្រភេទ",typeText:"អត្ថបទ",typePass:"ពាក្យសម្ងាត់",typeEmail:"អ៊ីមែល", +typeSearch:"ស្វែង​រក",typeTel:"លេខ​ទូរសព្ទ",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ko.js b/src/lib/ckeditor/plugins/forms/lang/ko.js new file mode 100644 index 00000000..7e7ea054 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ko",{button:{title:"버튼 속성",text:"버튼글자(값)",type:"버튼종류",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"체크박스 속성",radioTitle:"라디오버튼 속성",value:"값",selected:"선택됨"},form:{title:"폼 속성",menu:"폼 속성",action:"실행경로(Action)",method:"방법(Method)",encoding:"Encoding"},hidden:{title:"숨김필드 속성",name:"이름",value:"값"},select:{title:"펼침목록 속성",selectInfo:"정보",opAvail:"선택옵션",value:"값",size:"세로크기",lines:"줄",chkMulti:"여러항목 선택 허용",opText:"이름",opValue:"값", +btnAdd:"추가",btnModify:"변경",btnUp:"위로",btnDown:"아래로",btnSetValue:"선택된것으로 설정",btnDelete:"삭제"},textarea:{title:"입력영역 속성",cols:"칸수",rows:"줄수"},textfield:{title:"입력필드 속성",name:"이름",value:"값",charWidth:"글자 너비",maxChars:"최대 글자수",type:"종류",typeText:"문자열",typePass:"비밀번호",typeEmail:"이메일",typeSearch:"검색",typeTel:"전화번호",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ku.js b/src/lib/ckeditor/plugins/forms/lang/ku.js new file mode 100644 index 00000000..75599890 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ku",{button:{title:"خاسیەتی دوگمە",text:"(نرخی) دەق",type:"جۆر",typeBtn:"دوگمە",typeSbm:"بنێرە",typeRst:"ڕێکخستنەوە"},checkboxAndRadio:{checkboxTitle:"خاسیەتی چووارگۆشی پشکنین",radioTitle:"خاسیەتی جێگرەوەی دوگمە",value:"نرخ",selected:"هەڵبژاردرا"},form:{title:"خاسیەتی داڕشتە",menu:"خاسیەتی داڕشتە",action:"کردار",method:"ڕێگە",encoding:"بەکۆدکەر"},hidden:{title:"خاسیەتی خانەی شاردراوە",name:"ناو",value:"نرخ"},select:{title:"هەڵبژاردەی خاسیەتی خانە",selectInfo:"زانیاری", +opAvail:"هەڵبژاردەی لەبەردەستدابوون",value:"نرخ",size:"گەورەیی",lines:"هێڵەکان",chkMulti:"ڕێدان بەفره هەڵبژارده",opText:"دەق",opValue:"نرخ",btnAdd:"زیادکردن",btnModify:"گۆڕانکاری",btnUp:"سەرەوه",btnDown:"خوارەوە",btnSetValue:"دابنێ وەك نرخێکی هەڵبژێردراو",btnDelete:"سڕینەوه"},textarea:{title:"خاسیەتی ڕووبەری دەق",cols:"ستوونەکان",rows:"ڕیزەکان"},textfield:{title:"خاسیەتی خانەی دەق",name:"ناو",value:"نرخ",charWidth:"پانی نووسە",maxChars:"ئەوپەڕی نووسە",type:"جۆر",typeText:"دەق",typePass:"پێپەڕەوشە", +typeEmail:"ئیمەیل",typeSearch:"گەڕان",typeTel:"ژمارەی تەلەفۆن",typeUrl:"ناونیشانی بەستەر"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/lt.js b/src/lib/ckeditor/plugins/forms/lang/lt.js new file mode 100644 index 00000000..743b8307 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lt",{button:{title:"Mygtuko savybės",text:"Tekstas (Reikšmė)",type:"Tipas",typeBtn:"Mygtukas",typeSbm:"Siųsti",typeRst:"Išvalyti"},checkboxAndRadio:{checkboxTitle:"Žymimojo langelio savybės",radioTitle:"Žymimosios akutės savybės",value:"Reikšmė",selected:"Pažymėtas"},form:{title:"Formos savybės",menu:"Formos savybės",action:"Veiksmas",method:"Metodas",encoding:"Kodavimas"},hidden:{title:"Nerodomo lauko savybės",name:"Vardas",value:"Reikšmė"},select:{title:"Atrankos lauko savybės", +selectInfo:"Informacija",opAvail:"Galimos parinktys",value:"Reikšmė",size:"Dydis",lines:"eilučių",chkMulti:"Leisti daugeriopą atranką",opText:"Tekstas",opValue:"Reikšmė",btnAdd:"Įtraukti",btnModify:"Modifikuoti",btnUp:"Aukštyn",btnDown:"Žemyn",btnSetValue:"Laikyti pažymėta reikšme",btnDelete:"Trinti"},textarea:{title:"Teksto srities savybės",cols:"Ilgis",rows:"Plotis"},textfield:{title:"Teksto lauko savybės",name:"Vardas",value:"Reikšmė",charWidth:"Ilgis simboliais",maxChars:"Maksimalus simbolių skaičius", +type:"Tipas",typeText:"Tekstas",typePass:"Slaptažodis",typeEmail:"El. paštas",typeSearch:"Paieška",typeTel:"Telefono numeris",typeUrl:"Nuoroda"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/lv.js b/src/lib/ckeditor/plugins/forms/lang/lv.js new file mode 100644 index 00000000..289cd6a8 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lv",{button:{title:"Pogas īpašības",text:"Teksts (vērtība)",type:"Tips",typeBtn:"Poga",typeSbm:"Nosūtīt",typeRst:"Atcelt"},checkboxAndRadio:{checkboxTitle:"Atzīmēšanas kastītes īpašības",radioTitle:"Izvēles poga īpašības",value:"Vērtība",selected:"Iezīmēts"},form:{title:"Formas īpašības",menu:"Formas īpašības",action:"Darbība",method:"Metode",encoding:"Kodējums"},hidden:{title:"Paslēptās teksta rindas īpašības",name:"Nosaukums",value:"Vērtība"},select:{title:"Iezīmēšanas lauka īpašības", +selectInfo:"Informācija",opAvail:"Pieejamās iespējas",value:"Vērtība",size:"Izmērs",lines:"rindas",chkMulti:"Atļaut vairākus iezīmējumus",opText:"Teksts",opValue:"Vērtība",btnAdd:"Pievienot",btnModify:"Veikt izmaiņas",btnUp:"Augšup",btnDown:"Lejup",btnSetValue:"Noteikt kā iezīmēto vērtību",btnDelete:"Dzēst"},textarea:{title:"Teksta laukuma īpašības",cols:"Kolonnas",rows:"Rindas"},textfield:{title:"Teksta rindas īpašības",name:"Nosaukums",value:"Vērtība",charWidth:"Simbolu platums",maxChars:"Simbolu maksimālais daudzums", +type:"Tips",typeText:"Teksts",typePass:"Parole",typeEmail:"Epasts",typeSearch:"Meklēt",typeTel:"Tālruņa numurs",typeUrl:"Adrese"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/mk.js b/src/lib/ckeditor/plugins/forms/lang/mk.js new file mode 100644 index 00000000..84837f53 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mk",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/mn.js b/src/lib/ckeditor/plugins/forms/lang/mn.js new file mode 100644 index 00000000..747b5eb6 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mn",{button:{title:"Товчны шинж чанар",text:"Тэкст (Утга)",type:"Төрөл",typeBtn:"Товч",typeSbm:"Submit",typeRst:"Болих"},checkboxAndRadio:{checkboxTitle:"Чекбоксны шинж чанар",radioTitle:"Радио товчны шинж чанар",value:"Утга",selected:"Сонгогдсон"},form:{title:"Форм шинж чанар",menu:"Форм шинж чанар",action:"Үйлдэл",method:"Арга",encoding:"Encoding"},hidden:{title:"Нууц талбарын шинж чанар",name:"Нэр",value:"Утга"},select:{title:"Согогч талбарын шинж чанар",selectInfo:"Мэдээлэл", +opAvail:"Идвэхтэй сонголт",value:"Утга",size:"Хэмжээ",lines:"Мөр",chkMulti:"Олон зүйл зэрэг сонгохыг зөвшөөрөх",opText:"Тэкст",opValue:"Утга",btnAdd:"Нэмэх",btnModify:"Өөрчлөх",btnUp:"Дээш",btnDown:"Доош",btnSetValue:"Сонгогдсан утга оноох",btnDelete:"Устгах"},textarea:{title:"Текст орчны шинж чанар",cols:"Багана",rows:"Мөр"},textfield:{title:"Текст талбарын шинж чанар",name:"Нэр",value:"Утга",charWidth:"Тэмдэгтын өргөн",maxChars:"Хамгийн их тэмдэгт",type:"Төрөл",typeText:"Текст",typePass:"Нууц үг", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"цахим хуудасны хаяг (URL)"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ms.js b/src/lib/ckeditor/plugins/forms/lang/ms.js new file mode 100644 index 00000000..fbf6b9f4 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ms",{button:{title:"Ciri-ciri Butang",text:"Teks (Nilai)",type:"Jenis",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Ciri-ciri Checkbox",radioTitle:"Ciri-ciri Butang Radio",value:"Nilai",selected:"Dipilih"},form:{title:"Ciri-ciri Borang",menu:"Ciri-ciri Borang",action:"Tindakan borang",method:"Cara borang dihantar",encoding:"Encoding"},hidden:{title:"Ciri-ciri Field Tersembunyi",name:"Nama",value:"Nilai"},select:{title:"Ciri-ciri Selection Field", +selectInfo:"Select Info",opAvail:"Pilihan sediada",value:"Nilai",size:"Saiz",lines:"garisan",chkMulti:"Benarkan pilihan pelbagai",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah Pilihan",btnModify:"Ubah Pilihan",btnUp:"Naik ke atas",btnDown:"Turun ke bawah",btnSetValue:"Set sebagai nilai terpilih",btnDelete:"Padam"},textarea:{title:"Ciri-ciri Textarea",cols:"Lajur",rows:"Baris"},textfield:{title:"Ciri-ciri Text Field",name:"Nama",value:"Nilai",charWidth:"Lebar isian",maxChars:"Isian Maksimum",type:"Jenis", +typeText:"Teks",typePass:"Kata Laluan",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/nb.js b/src/lib/ckeditor/plugins/forms/lang/nb.js new file mode 100644 index 00000000..5874510b --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nb",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/nl.js b/src/lib/ckeditor/plugins/forms/lang/nl.js new file mode 100644 index 00000000..5bff8285 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nl",{button:{title:"Eigenschappen knop",text:"Tekst (waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Versturen",typeRst:"Leegmaken"},checkboxAndRadio:{checkboxTitle:"Eigenschappen aanvinkvakje",radioTitle:"Eigenschappen selectievakje",value:"Waarde",selected:"Geselecteerd"},form:{title:"Eigenschappen formulier",menu:"Eigenschappen formulier",action:"Actie",method:"Methode",encoding:"Codering"},hidden:{title:"Eigenschappen verborgen veld",name:"Naam",value:"Waarde"}, +select:{title:"Eigenschappen selectieveld",selectInfo:"Informatie",opAvail:"Beschikbare opties",value:"Waarde",size:"Grootte",lines:"Regels",chkMulti:"Gecombineerde selecties toestaan",opText:"Tekst",opValue:"Waarde",btnAdd:"Toevoegen",btnModify:"Wijzigen",btnUp:"Omhoog",btnDown:"Omlaag",btnSetValue:"Als geselecteerde waarde instellen",btnDelete:"Verwijderen"},textarea:{title:"Eigenschappen tekstvak",cols:"Kolommen",rows:"Rijen"},textfield:{title:"Eigenschappen tekstveld",name:"Naam",value:"Waarde", +charWidth:"Breedte (tekens)",maxChars:"Maximum aantal tekens",type:"Soort",typeText:"Tekst",typePass:"Wachtwoord",typeEmail:"E-mail",typeSearch:"Zoeken",typeTel:"Telefoonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/no.js b/src/lib/ckeditor/plugins/forms/lang/no.js new file mode 100644 index 00000000..07e20c4f --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","no",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/pl.js b/src/lib/ckeditor/plugins/forms/lang/pl.js new file mode 100644 index 00000000..8577d620 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pl",{button:{title:"Właściwości przycisku",text:"Tekst (Wartość)",type:"Typ",typeBtn:"Przycisk",typeSbm:"Wyślij",typeRst:"Wyczyść"},checkboxAndRadio:{checkboxTitle:"Właściwości pola wyboru (checkbox)",radioTitle:"Właściwości przycisku opcji (radio)",value:"Wartość",selected:"Zaznaczone"},form:{title:"Właściwości formularza",menu:"Właściwości formularza",action:"Akcja",method:"Metoda",encoding:"Kodowanie"},hidden:{title:"Właściwości pola ukrytego",name:"Nazwa",value:"Wartość"}, +select:{title:"Właściwości listy wyboru",selectInfo:"Informacje",opAvail:"Dostępne opcje",value:"Wartość",size:"Rozmiar",lines:"wierszy",chkMulti:"Wielokrotny wybór",opText:"Tekst",opValue:"Wartość",btnAdd:"Dodaj",btnModify:"Zmień",btnUp:"Do góry",btnDown:"Do dołu",btnSetValue:"Ustaw jako zaznaczoną",btnDelete:"Usuń"},textarea:{title:"Właściwości obszaru tekstowego",cols:"Liczba kolumn",rows:"Liczba wierszy"},textfield:{title:"Właściwości pola tekstowego",name:"Nazwa",value:"Wartość",charWidth:"Szerokość w znakach", +maxChars:"Szerokość maksymalna",type:"Typ",typeText:"Tekst",typePass:"Hasło",typeEmail:"Email",typeSearch:"Szukaj",typeTel:"Numer telefonu",typeUrl:"Adres URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/pt-br.js b/src/lib/ckeditor/plugins/forms/lang/pt-br.js new file mode 100644 index 00000000..1fe748a5 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt-br",{button:{title:"Formatar Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botão",typeSbm:"Enviar",typeRst:"Limpar"},checkboxAndRadio:{checkboxTitle:"Formatar Caixa de Seleção",radioTitle:"Formatar Botão de Opção",value:"Valor",selected:"Selecionado"},form:{title:"Formatar Formulário",menu:"Formatar Formulário",action:"Ação",method:"Método",encoding:"Codificação"},hidden:{title:"Formatar Campo Oculto",name:"Nome",value:"Valor"},select:{title:"Formatar Caixa de Listagem", +selectInfo:"Informações",opAvail:"Opções disponíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir múltiplas seleções",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir como selecionado",btnDelete:"Remover"},textarea:{title:"Formatar Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Formatar Caixa de Texto",name:"Nome",value:"Valor",charWidth:"Comprimento (em caracteres)",maxChars:"Número Máximo de Caracteres", +type:"Tipo",typeText:"Texto",typePass:"Senha",typeEmail:"Email",typeSearch:"Busca",typeTel:"Número de Telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/pt.js b/src/lib/ckeditor/plugins/forms/lang/pt.js new file mode 100644 index 00000000..7958d629 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt",{button:{title:"Propriedades do Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Propriedades da Caixa de Verificação",radioTitle:"Propriedades do Botão de Opção",value:"Valor",selected:"Seleccionado"},form:{title:"Propriedades do Formulário",menu:"Propriedades do Formulário",action:"Acção",method:"Método",encoding:"Encoding"},hidden:{title:"Propriedades do Campo Escondido",name:"Nome", +value:"Valor"},select:{title:"Propriedades da Caixa de Combinação",selectInfo:"Informação",opAvail:"Opções Possíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir selecções múltiplas",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir um valor por defeito",btnDelete:"Apagar"},textarea:{title:"Propriedades da Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Propriedades do Campo de Texto", +name:"Nome",value:"Valor",charWidth:"Tamanho do caracter",maxChars:"Nr. Máximo de Caracteres",type:"Tipo",typeText:"Texto",typePass:"Palavra-chave",typeEmail:"Email",typeSearch:"Pesquisar",typeTel:"Numero de telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ro.js b/src/lib/ckeditor/plugins/forms/lang/ro.js new file mode 100644 index 00000000..0db618b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ro",{button:{title:"Proprietăţi buton",text:"Text (Valoare)",type:"Tip",typeBtn:"Buton",typeSbm:"Trimite",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Proprietăţi bifă (Checkbox)",radioTitle:"Proprietăţi buton radio (Radio Button)",value:"Valoare",selected:"Selectat"},form:{title:"Proprietăţi formular (Form)",menu:"Proprietăţi formular (Form)",action:"Acţiune",method:"Metodă",encoding:"Encodare"},hidden:{title:"Proprietăţi câmp ascuns (Hidden Field)",name:"Nume", +value:"Valoare"},select:{title:"Proprietăţi câmp selecţie (Selection Field)",selectInfo:"Informaţii",opAvail:"Opţiuni disponibile",value:"Valoare",size:"Mărime",lines:"linii",chkMulti:"Permite selecţii multiple",opText:"Text",opValue:"Valoare",btnAdd:"Adaugă",btnModify:"Modifică",btnUp:"Sus",btnDown:"Jos",btnSetValue:"Setează ca valoare selectată",btnDelete:"Şterge"},textarea:{title:"Proprietăţi suprafaţă text (Textarea)",cols:"Coloane",rows:"Linii"},textfield:{title:"Proprietăţi câmp text (Text Field)", +name:"Nume",value:"Valoare",charWidth:"Lărgimea caracterului",maxChars:"Caractere maxime",type:"Tip",typeText:"Text",typePass:"Parolă",typeEmail:"Email",typeSearch:"Cauta",typeTel:"Numar de telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ru.js b/src/lib/ckeditor/plugins/forms/lang/ru.js new file mode 100644 index 00000000..534eb497 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ru",{button:{title:"Свойства кнопки",text:"Текст (Значение)",type:"Тип",typeBtn:"Кнопка",typeSbm:"Отправка",typeRst:"Сброс"},checkboxAndRadio:{checkboxTitle:"Свойства флаговой кнопки",radioTitle:"Свойства кнопки выбора",value:"Значение",selected:"Выбрано"},form:{title:"Свойства формы",menu:"Свойства формы",action:"Действие",method:"Метод",encoding:"Кодировка"},hidden:{title:"Свойства скрытого поля",name:"Имя",value:"Значение"},select:{title:"Свойства списка выбора", +selectInfo:"Информация о списке выбора",opAvail:"Доступные варианты",value:"Значение",size:"Размер",lines:"строк(и)",chkMulti:"Разрешить выбор нескольких вариантов",opText:"Текст",opValue:"Значение",btnAdd:"Добавить",btnModify:"Изменить",btnUp:"Поднять",btnDown:"Опустить",btnSetValue:"Пометить как выбранное",btnDelete:"Удалить"},textarea:{title:"Свойства многострочного текстового поля",cols:"Колонок",rows:"Строк"},textfield:{title:"Свойства текстового поля",name:"Имя",value:"Значение",charWidth:"Ширина поля (в символах)", +maxChars:"Макс. количество символов",type:"Тип содержимого",typeText:"Текст",typePass:"Пароль",typeEmail:"Email",typeSearch:"Поиск",typeTel:"Номер телефона",typeUrl:"Ссылка"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/si.js b/src/lib/ckeditor/plugins/forms/lang/si.js new file mode 100644 index 00000000..ab61582f --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/si.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","si",{button:{title:"බොත්තම් ගුණ",text:"වගන්තිය(වටිනාකම)",type:"වර්ගය",typeBtn:"බොත්තම",typeSbm:"යොමුකරනවා",typeRst:"නැවත ආරම්භකතත්වයට පත් කරනවා"},checkboxAndRadio:{checkboxTitle:"ලකුණු කිරීමේ කොටුවේ ලක්ෂණ",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"පෝරමයේ ",menu:"පෝරමයේ ගුණ/",action:"ගන්නා පියවර",method:"ක්‍රමය",encoding:"කේතීකරණය"},hidden:{title:"සැඟවුණු ප්‍රදේශයේ ",name:"නම",value:"Value"},select:{title:"තේරීම් ප්‍රදේශයේ ", +selectInfo:"විස්තර තෝරන්න",opAvail:"ඉතුරුවී ඇති වීකල්ප",value:"Value",size:"විශාලත්වය",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"මකා දැම්ම"},textarea:{title:"Textarea Properties",cols:"සිරස් ",rows:"Rows"},textfield:{title:"Text Field Properties",name:"නම",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"වර්ගය",typeText:"Text", +typePass:"Password",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/sk.js b/src/lib/ckeditor/plugins/forms/lang/sk.js new file mode 100644 index 00000000..218b6274 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sk",{button:{title:"Vlastnosti tlačidla",text:"Text (Hodnota)",type:"Typ",typeBtn:"Tlačidlo",typeSbm:"Odoslať",typeRst:"Resetovať"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacieho políčka",radioTitle:"Vlastnosti prepínača (radio button)",value:"Hodnota",selected:"Vybrané (selected)"},form:{title:"Vlastnosti formulára",menu:"Vlastnosti formulára",action:"Akcia (action)",method:"Metóda (method)",encoding:"Kódovanie (encoding)"},hidden:{title:"Vlastnosti skrytého poľa", +name:"Názov (name)",value:"Hodnota"},select:{title:"Vlastnosti rozbaľovacieho zoznamu",selectInfo:"Informácie o výbere",opAvail:"Dostupné možnosti",value:"Hodnota",size:"Veľkosť",lines:"riadkov",chkMulti:"Povoliť viacnásobný výber",opText:"Text",opValue:"Hodnota",btnAdd:"Pridať",btnModify:"Upraviť",btnUp:"Hore",btnDown:"Dole",btnSetValue:"Nastaviť ako vybranú hodnotu",btnDelete:"Vymazať"},textarea:{title:"Vlastnosti textovej oblasti (textarea)",cols:"Stĺpcov",rows:"Riadkov"},textfield:{title:"Vlastnosti textového poľa", +name:"Názov (name)",value:"Hodnota",charWidth:"Šírka poľa (podľa znakov)",maxChars:"Maximálny počet znakov",type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hľadať",typeTel:"Telefónne číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/sl.js b/src/lib/ckeditor/plugins/forms/lang/sl.js new file mode 100644 index 00000000..ad3bc43f --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sl",{button:{title:"Lastnosti gumba",text:"Besedilo (Vrednost)",type:"Tip",typeBtn:"Gumb",typeSbm:"Potrdi",typeRst:"Ponastavi"},checkboxAndRadio:{checkboxTitle:"Lastnosti potrditvenega polja",radioTitle:"Lastnosti izbirnega polja",value:"Vrednost",selected:"Izbrano"},form:{title:"Lastnosti obrazca",menu:"Lastnosti obrazca",action:"Akcija",method:"Metoda",encoding:"Kodiranje znakov"},hidden:{title:"Lastnosti skritega polja",name:"Ime",value:"Vrednost"},select:{title:"Lastnosti spustnega seznama", +selectInfo:"Podatki",opAvail:"Razpoložljive izbire",value:"Vrednost",size:"Velikost",lines:"vrstic",chkMulti:"Dovoli izbor večih vrstic",opText:"Besedilo",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Spremeni",btnUp:"Gor",btnDown:"Dol",btnSetValue:"Postavi kot privzeto izbiro",btnDelete:"Izbriši"},textarea:{title:"Lastnosti vnosnega območja",cols:"Stolpcev",rows:"Vrstic"},textfield:{title:"Lastnosti vnosnega polja",name:"Ime",value:"Vrednost",charWidth:"Dolžina",maxChars:"Največje število znakov", +type:"Tip",typeText:"Besedilo",typePass:"Geslo",typeEmail:"E-pošta",typeSearch:"Iskanje",typeTel:"Telefonska Številka",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/sq.js b/src/lib/ckeditor/plugins/forms/lang/sq.js new file mode 100644 index 00000000..a8c45b47 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sq",{button:{title:"Rekuizitat e Pullës",text:"Teskti (Vlera)",type:"LLoji",typeBtn:"Buton",typeSbm:"Dërgo",typeRst:"Rikthe"},checkboxAndRadio:{checkboxTitle:"Rekuizitat e Kutizë Përzgjedhëse",radioTitle:"Rekuizitat e Pullës",value:"Vlera",selected:"Përzgjedhur"},form:{title:"Rekuizitat e Formës",menu:"Rekuizitat e Formës",action:"Veprim",method:"Metoda",encoding:"Kodimi"},hidden:{title:"Rekuizitat e Fushës së Fshehur",name:"Emër",value:"Vlera"},select:{title:"Rekuizitat e Fushës së Përzgjedhur", +selectInfo:"Përzgjidh Informacionin",opAvail:"Opsionet e Mundshme",value:"Vlera",size:"Madhësia",lines:"rreshtat",chkMulti:"Lejo përzgjidhje të shumëfishta",opText:"Teksti",opValue:"Vlera",btnAdd:"Vendos",btnModify:"Ndrysho",btnUp:"Sipër",btnDown:"Poshtë",btnSetValue:"Bëje si vlerë të përzgjedhur",btnDelete:"Grise"},textarea:{title:"Rekuzitat e Fushës së Tekstit",cols:"Kolonat",rows:"Rreshtat"},textfield:{title:"Rekuizitat e Fushës së Tekstit",name:"Emër",value:"Vlera",charWidth:"Gjerësia e Karakterit", +maxChars:"Numri maksimal i karaktereve",type:"LLoji",typeText:"Teksti",typePass:"Fjalëkalimi",typeEmail:"Posta Elektronike",typeSearch:"Kërko",typeTel:"Numri i Telefonit",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/sr-latn.js b/src/lib/ckeditor/plugins/forms/lang/sr-latn.js new file mode 100644 index 00000000..af31d088 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr-latn",{button:{title:"Osobine dugmeta",text:"Tekst (vrednost)",type:"Tip",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Osobine polja za potvrdu",radioTitle:"Osobine radio-dugmeta",value:"Vrednost",selected:"Označeno"},form:{title:"Osobine forme",menu:"Osobine forme",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Osobine skrivenog polja",name:"Naziv",value:"Vrednost"},select:{title:"Osobine izbornog polja", +selectInfo:"Info",opAvail:"Dostupne opcije",value:"Vrednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruku selekciju",opText:"Tekst",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Izmeni",btnUp:"Gore",btnDown:"Dole",btnSetValue:"Podesi kao označenu vrednost",btnDelete:"Obriši"},textarea:{title:"Osobine zone teksta",cols:"Broj kolona",rows:"Broj redova"},textfield:{title:"Osobine tekstualnog polja",name:"Naziv",value:"Vrednost",charWidth:"Širina (karaktera)",maxChars:"Maksimalno karaktera", +type:"Tip",typeText:"Tekst",typePass:"Lozinka",typeEmail:"Email",typeSearch:"Pretraži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/sr.js b/src/lib/ckeditor/plugins/forms/lang/sr.js new file mode 100644 index 00000000..74d46b2d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr",{button:{title:"Особине дугмета",text:"Текст (вредност)",type:"Tип",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Особине поља за потврду",radioTitle:"Особине радио-дугмета",value:"Вредност",selected:"Означено"},form:{title:"Особине форме",menu:"Особине форме",action:"Aкција",method:"Mетода",encoding:"Encoding"},hidden:{title:"Особине скривеног поља",name:"Назив",value:"Вредност"},select:{title:"Особине изборног поља",selectInfo:"Инфо", +opAvail:"Доступне опције",value:"Вредност",size:"Величина",lines:"линија",chkMulti:"Дозволи вишеструку селекцију",opText:"Текст",opValue:"Вредност",btnAdd:"Додај",btnModify:"Измени",btnUp:"Горе",btnDown:"Доле",btnSetValue:"Подеси као означену вредност",btnDelete:"Обриши"},textarea:{title:"Особине зоне текста",cols:"Број колона",rows:"Број редова"},textfield:{title:"Особине текстуалног поља",name:"Назив",value:"Вредност",charWidth:"Ширина (карактера)",maxChars:"Максимално карактера",type:"Тип",typeText:"Текст", +typePass:"Лозинка",typeEmail:"Е-пошта",typeSearch:"Претрага",typeTel:"Број телефона",typeUrl:"УРЛ"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/sv.js b/src/lib/ckeditor/plugins/forms/lang/sv.js new file mode 100644 index 00000000..b03b381d --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sv",{button:{title:"Egenskaper för knapp",text:"Text (värde)",type:"Typ",typeBtn:"Knapp",typeSbm:"Skicka",typeRst:"Återställ"},checkboxAndRadio:{checkboxTitle:"Egenskaper för kryssruta",radioTitle:"Egenskaper för alternativknapp",value:"Värde",selected:"Vald"},form:{title:"Egenskaper för formulär",menu:"Egenskaper för formulär",action:"Funktion",method:"Metod",encoding:"Kodning"},hidden:{title:"Egenskaper för dolt fält",name:"Namn",value:"Värde"},select:{title:"Egenskaper för flervalslista", +selectInfo:"Information",opAvail:"Befintliga val",value:"Värde",size:"Storlek",lines:"Linjer",chkMulti:"Tillåt flerval",opText:"Text",opValue:"Värde",btnAdd:"Lägg till",btnModify:"Redigera",btnUp:"Upp",btnDown:"Ner",btnSetValue:"Markera som valt värde",btnDelete:"Radera"},textarea:{title:"Egenskaper för textruta",cols:"Kolumner",rows:"Rader"},textfield:{title:"Egenskaper för textfält",name:"Namn",value:"Värde",charWidth:"Teckenbredd",maxChars:"Max antal tecken",type:"Typ",typeText:"Text",typePass:"Lösenord", +typeEmail:"E-post",typeSearch:"Sök",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/th.js b/src/lib/ckeditor/plugins/forms/lang/th.js new file mode 100644 index 00000000..e9337498 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","th",{button:{title:"รายละเอียดของ ปุ่ม",text:"ข้อความ (ค่าตัวแปร)",type:"ข้อความ",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"คุณสมบัติของ เช็คบ๊อก",radioTitle:"คุณสมบัติของ เรดิโอบัตตอน",value:"ค่าตัวแปร",selected:"เลือกเป็นค่าเริ่มต้น"},form:{title:"คุณสมบัติของ แบบฟอร์ม",menu:"คุณสมบัติของ แบบฟอร์ม",action:"แอคชั่น",method:"เมธอด",encoding:"Encoding"},hidden:{title:"คุณสมบัติของ ฮิดเดนฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร"}, +select:{title:"คุณสมบัติของ แถบตัวเลือก",selectInfo:"อินโฟ",opAvail:"รายการตัวเลือก",value:"ค่าตัวแปร",size:"ขนาด",lines:"บรรทัด",chkMulti:"เลือกหลายค่าได้",opText:"ข้อความ",opValue:"ค่าตัวแปร",btnAdd:"เพิ่ม",btnModify:"แก้ไข",btnUp:"บน",btnDown:"ล่าง",btnSetValue:"เลือกเป็นค่าเริ่มต้น",btnDelete:"ลบ"},textarea:{title:"คุณสมบัติของ เท็กแอเรีย",cols:"สดมภ์",rows:"แถว"},textfield:{title:"คุณสมบัติของ เท็กซ์ฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร",charWidth:"ความกว้าง",maxChars:"จำนวนตัวอักษรสูงสุด",type:"ชนิด", +typeText:"ข้อความ",typePass:"รหัสผ่าน",typeEmail:"อีเมล",typeSearch:"ค้นหาก",typeTel:"หมายเลขโทรศัพท์",typeUrl:"ที่อยู่อ้างอิง URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/tr.js b/src/lib/ckeditor/plugins/forms/lang/tr.js new file mode 100644 index 00000000..3710d318 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tr",{button:{title:"Düğme Özellikleri",text:"Metin (Değer)",type:"Tip",typeBtn:"Düğme",typeSbm:"Gönder",typeRst:"Sıfırla"},checkboxAndRadio:{checkboxTitle:"Onay Kutusu Özellikleri",radioTitle:"Seçenek Düğmesi Özellikleri",value:"Değer",selected:"Seçili"},form:{title:"Form Özellikleri",menu:"Form Özellikleri",action:"İşlem",method:"Yöntem",encoding:"Kodlama"},hidden:{title:"Gizli Veri Özellikleri",name:"Ad",value:"Değer"},select:{title:"Seçim Menüsü Özellikleri",selectInfo:"Bilgi", +opAvail:"Mevcut Seçenekler",value:"Değer",size:"Boyut",lines:"satır",chkMulti:"Çoklu seçime izin ver",opText:"Metin",opValue:"Değer",btnAdd:"Ekle",btnModify:"Düzenle",btnUp:"Yukarı",btnDown:"Aşağı",btnSetValue:"Seçili değer olarak ata",btnDelete:"Sil"},textarea:{title:"Çok Satırlı Metin Özellikleri",cols:"Sütunlar",rows:"Satırlar"},textfield:{title:"Metin Girişi Özellikleri",name:"Ad",value:"Değer",charWidth:"Karakter Genişliği",maxChars:"En Fazla Karakter",type:"Tür",typeText:"Metin",typePass:"Şifre", +typeEmail:"E-posta",typeSearch:"Ara",typeTel:"Telefon Numarası",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/tt.js b/src/lib/ckeditor/plugins/forms/lang/tt.js new file mode 100644 index 00000000..2242a407 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tt",{button:{title:"Төймә үзлекләре",text:"Text (Value)",type:"Төр",typeBtn:"Төймә",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Сайланган"},form:{title:"Форма үзлекләре",menu:"Форма үзлекләре",action:"Гамәл",method:"Ысул",encoding:"Кодировка"},hidden:{title:"Яшерен кыр үзлекләре",name:"Исем",value:"Күләм"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Күләм",size:"Зурлык",lines:"юллар",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Күләм",btnAdd:"Кушу",btnModify:"Үзгәртү",btnUp:"Өскә",btnDown:"Аска",btnSetValue:"Set as selected value",btnDelete:"Бетерү"},textarea:{title:"Текст мәйданы үзлекләре",cols:"Баганалар",rows:"Юллар"},textfield:{title:"Текст кыры үзлекләре",name:"Исем",value:"Күләм",charWidth:"Символлар киңлеге",maxChars:"Maximum Characters",type:"Төр",typeText:"Текст",typePass:"Сер сүз", +typeEmail:"Эл. почта",typeSearch:"Эзләү",typeTel:"Телефон номеры",typeUrl:"Сылталама"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/ug.js b/src/lib/ckeditor/plugins/forms/lang/ug.js new file mode 100644 index 00000000..9ff3eeeb --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ug",{button:{title:"توپچا خاسلىقى",text:"بەلگە (قىممەت)",type:"تىپى",typeBtn:"توپچا",typeSbm:"تاپشۇر",typeRst:"ئەسلىگە قايتۇر"},checkboxAndRadio:{checkboxTitle:"كۆپ تاللاش خاسلىقى",radioTitle:"تاق تاللاش توپچا خاسلىقى",value:"تاللىغان قىممەت",selected:"تاللانغان"},form:{title:"جەدۋەل خاسلىقى",menu:"جەدۋەل خاسلىقى",action:"مەشغۇلات",method:"ئۇسۇل",encoding:"جەدۋەل كودلىنىشى"},hidden:{title:"يوشۇرۇن دائىرە خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى"},select:{title:"جەدۋەل/تىزىم خاسلىقى", +selectInfo:"ئۇچۇر تاللاڭ",opAvail:"تاللاش تۈرلىرى",value:"قىممەت",size:"ئېگىزلىكى",lines:"قۇر",chkMulti:"كۆپ تاللاشچان",opText:"تاللانما تېكىستى",opValue:"تاللانما قىممىتى",btnAdd:"قوش",btnModify:"ئۆزگەرت",btnUp:"ئۈستىگە",btnDown:"ئاستىغا",btnSetValue:"دەسلەپكى تاللانما قىممىتىگە تەڭشە",btnDelete:"ئۆچۈر"},textarea:{title:" كۆپ قۇرلۇق تېكىست خاسلىقى",cols:"ھەرپ كەڭلىكى",rows:"قۇر سانى"},textfield:{title:"تاق قۇرلۇق تېكىست خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى",charWidth:"ھەرپ كەڭلىكى",maxChars:"ئەڭ كۆپ ھەرپ سانى", +type:"تىپى",typeText:"تېكىست",typePass:"ئىم",typeEmail:"تورخەت",typeSearch:"ئىزدە",typeTel:"تېلېفون نومۇر",typeUrl:"ئادرېس"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/uk.js b/src/lib/ckeditor/plugins/forms/lang/uk.js new file mode 100644 index 00000000..317d57f5 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","uk",{button:{title:"Властивості кнопки",text:"Значення",type:"Тип",typeBtn:"Кнопка (button)",typeSbm:"Надіслати (submit)",typeRst:"Очистити (reset)"},checkboxAndRadio:{checkboxTitle:"Властивості галочки",radioTitle:"Властивості кнопки вибору",value:"Значення",selected:"Обрана"},form:{title:"Властивості форми",menu:"Властивості форми",action:"Дія",method:"Метод",encoding:"Кодування"},hidden:{title:"Властивості прихованого поля",name:"Ім'я",value:"Значення"},select:{title:"Властивості списку", +selectInfo:"Інфо",opAvail:"Доступні варіанти",value:"Значення",size:"Кількість",lines:"видимих позицій у списку",chkMulti:"Список з мультивибором",opText:"Текст",opValue:"Значення",btnAdd:"Добавити",btnModify:"Змінити",btnUp:"Вгору",btnDown:"Вниз",btnSetValue:"Встановити як обране значення",btnDelete:"Видалити"},textarea:{title:"Властивості текстової області",cols:"Стовбці",rows:"Рядки"},textfield:{title:"Властивості текстового поля",name:"Ім'я",value:"Значення",charWidth:"Ширина",maxChars:"Макс. к-ть символів", +type:"Тип",typeText:"Текст",typePass:"Пароль",typeEmail:"Пошта",typeSearch:"Пошук",typeTel:"Мобільний",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/vi.js b/src/lib/ckeditor/plugins/forms/lang/vi.js new file mode 100644 index 00000000..a02d09c7 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","vi",{button:{title:"Thuộc tính của nút",text:"Chuỗi hiển thị (giá trị)",type:"Kiểu",typeBtn:"Nút bấm",typeSbm:"Nút gửi",typeRst:"Nút nhập lại"},checkboxAndRadio:{checkboxTitle:"Thuộc tính nút kiểm",radioTitle:"Thuộc tính nút chọn",value:"Giá trị",selected:"Được chọn"},form:{title:"Thuộc tính biểu mẫu",menu:"Thuộc tính biểu mẫu",action:"Hành động",method:"Phương thức",encoding:"Bảng mã"},hidden:{title:"Thuộc tính trường ẩn",name:"Tên",value:"Giá trị"},select:{title:"Thuộc tính ô chọn", +selectInfo:"Thông tin",opAvail:"Các tùy chọn có thể sử dụng",value:"Giá trị",size:"Kích cỡ",lines:"dòng",chkMulti:"Cho phép chọn nhiều",opText:"Văn bản",opValue:"Giá trị",btnAdd:"Thêm",btnModify:"Thay đổi",btnUp:"Lên",btnDown:"Xuống",btnSetValue:"Giá trị được chọn",btnDelete:"Nút xoá"},textarea:{title:"Thuộc tính vùng văn bản",cols:"Số cột",rows:"Số hàng"},textfield:{title:"Thuộc tính trường văn bản",name:"Tên",value:"Giá trị",charWidth:"Độ rộng của ký tự",maxChars:"Số ký tự tối đa",type:"Kiểu",typeText:"Ký tự", +typePass:"Mật khẩu",typeEmail:"Email",typeSearch:"Tìm kiếm",typeTel:"Số điện thoại",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/zh-cn.js b/src/lib/ckeditor/plugins/forms/lang/zh-cn.js new file mode 100644 index 00000000..3c7ea105 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh-cn",{button:{title:"按钮属性",text:"标签(值)",type:"类型",typeBtn:"按钮",typeSbm:"提交",typeRst:"重设"},checkboxAndRadio:{checkboxTitle:"复选框属性",radioTitle:"单选按钮属性",value:"选定值",selected:"已勾选"},form:{title:"表单属性",menu:"表单属性",action:"动作",method:"方法",encoding:"表单编码"},hidden:{title:"隐藏域属性",name:"名称",value:"初始值"},select:{title:"菜单/列表属性",selectInfo:"选择信息",opAvail:"可选项",value:"值",size:"高度",lines:"行",chkMulti:"允许多选",opText:"选项文本",opValue:"选项值",btnAdd:"添加",btnModify:"修改",btnUp:"上移",btnDown:"下移", +btnSetValue:"设为初始选定",btnDelete:"删除"},textarea:{title:"多行文本属性",cols:"字符宽度",rows:"行数"},textfield:{title:"单行文本属性",name:"名称",value:"初始值",charWidth:"字符宽度",maxChars:"最多字符数",type:"类型",typeText:"文本",typePass:"密码",typeEmail:"Email",typeSearch:"搜索",typeTel:"电话号码",typeUrl:"地址"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/lang/zh.js b/src/lib/ckeditor/plugins/forms/lang/zh.js new file mode 100644 index 00000000..4eec674e --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh",{button:{title:"按鈕內容",text:"顯示文字 (值)",type:"類型",typeBtn:"按鈕",typeSbm:"送出",typeRst:"重設"},checkboxAndRadio:{checkboxTitle:"核取方塊內容",radioTitle:"選項按鈕內容",value:"數值",selected:"已選"},form:{title:"表單內容",menu:"表單內容",action:"動作",method:"方式",encoding:"編碼"},hidden:{title:"隱藏欄位內容",name:"名稱",value:"數值"},select:{title:"選取欄位內容",selectInfo:"選擇資訊",opAvail:"可用選項",value:"數值",size:"大小",lines:"行數",chkMulti:"允許多選",opText:"文字",opValue:"數值",btnAdd:"新增",btnModify:"修改",btnUp:"向上",btnDown:"向下", +btnSetValue:"設為已選",btnDelete:"刪除"},textarea:{title:"文字區域內容",cols:"列",rows:"行"},textfield:{title:"文字欄位內容",name:"名字",value:"數值",charWidth:"字元寬度",maxChars:"最大字元數",type:"類型",typeText:"文字",typePass:"密碼",typeEmail:"電子郵件",typeSearch:"搜尋",typeTel:"電話號碼",typeUrl:"URL"}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/forms/plugin.js b/src/lib/ckeditor/plugins/forms/plugin.js new file mode 100644 index 00000000..5a1ffae7 --- /dev/null +++ b/src/lib/ckeditor/plugins/forms/plugin.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"button,checkbox,form,hiddenfield,imagebutton,radio,select,select-rtl,textarea,textarea-rtl,textfield",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n"); +CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(a){var b=a.lang,g=0,h={email:1,password:1,search:1,tel:1,text:1,url:1},j={checkbox:"input[type,name,checked]",radio:"input[type,name,checked]",textfield:"input[type,name,value,size,maxlength]",textarea:"textarea[cols,rows,name]",select:"select[name,size,multiple]; option[value,selected]", +button:"input[type,name,value]",form:"form[action,name,id,enctype,target,method]",hiddenfield:"input[type,name,value]",imagebutton:"input[type,alt,src]{width,height,border,border-width,border-style,margin,float}"},k={checkbox:"input",radio:"input",textfield:"input",textarea:"textarea",select:"select",button:"input",form:"form",hiddenfield:"input",imagebutton:"input"},e=function(d,c,e){var h={allowedContent:j[c],requiredContent:k[c]};"form"==c&&(h.context="form");a.addCommand(c,new CKEDITOR.dialogCommand(c, +h));a.ui.addButton&&a.ui.addButton(d,{label:b.common[d.charAt(0).toLowerCase()+d.slice(1)],command:c,toolbar:"forms,"+(g+=10)});CKEDITOR.dialog.add(c,e)},f=this.path+"dialogs/";!a.blockless&&e("Form","form",f+"form.js");e("Checkbox","checkbox",f+"checkbox.js");e("Radio","radio",f+"radio.js");e("TextField","textfield",f+"textfield.js");e("Textarea","textarea",f+"textarea.js");e("Select","select",f+"select.js");e("Button","button",f+"button.js");var i=a.plugins.image;i&&!a.plugins.image2&&e("ImageButton", +"imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");e("HiddenField","hiddenfield",f+"hiddenfield.js");a.addMenuItems&&(e={checkbox:{label:b.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:b.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:b.forms.textfield.title,command:"textfield",group:"textfield"},hiddenfield:{label:b.forms.hidden.title,command:"hiddenfield",group:"hiddenfield"},button:{label:b.forms.button.title, +command:"button",group:"button"},select:{label:b.forms.select.title,command:"select",group:"select"},textarea:{label:b.forms.textarea.title,command:"textarea",group:"textarea"}},i&&(e.imagebutton={label:b.image.titleButton,command:"imagebutton",group:"imagebutton"}),!a.blockless&&(e.form={label:b.forms.form.menu,command:"form",group:"form"}),a.addMenuItems(e));a.contextMenu&&(!a.blockless&&a.contextMenu.addListener(function(d,c,a){if((d=a.contains("form",1))&&!d.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}), +a.contextMenu.addListener(function(d){if(d&&!d.isReadOnly()){var c=d.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var a=d.getAttribute("type")||"text";switch(a){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};case "radio":return{radio:CKEDITOR.TRISTATE_OFF};case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[a])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c== +"img"&&d.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));a.on("doubleclick",function(d){var c=d.data.element;if(!a.blockless&&c.is("form"))d.data.dialog="form";else if(c.is("select"))d.data.dialog="select";else if(c.is("textarea"))d.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")=="hiddenfield")d.data.dialog="hiddenfield";else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":d.data.dialog= +"button";break;case "checkbox":d.data.dialog="checkbox";break;case "radio":d.data.dialog="radio";break;case "image":d.data.dialog="imagebutton"}if(h[c])d.data.dialog="textfield"}})},afterInit:function(a){var b=a.dataProcessor,g=b&&b.htmlFilter,b=b&&b.dataFilter;CKEDITOR.env.ie&&g&&g.addRules({elements:{input:function(a){var a=a.attributes,b=a.type;b||(a.type="text");("checkbox"==b||"radio"==b)&&"on"==a.value&&delete a.value}}},{applyToAll:!0});b&&b.addRules({elements:{input:function(b){if("hidden"== +b.attributes.type)return a.createFakeParserElement(b,"cke_hidden","hiddenfield")}}},{applyToAll:!0})}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/icons.png b/src/lib/ckeditor/plugins/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/src/lib/ckeditor/plugins/icons.png differ diff --git a/src/lib/ckeditor/plugins/icons_hidpi.png b/src/lib/ckeditor/plugins/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/src/lib/ckeditor/plugins/icons_hidpi.png differ diff --git a/src/lib/ckeditor/plugins/iframe/dialogs/iframe.js b/src/lib/ckeditor/plugins/iframe/dialogs/iframe.js new file mode 100644 index 00000000..dba1e930 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/dialogs/iframe.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}}; +CKEDITOR.dialog.add("iframe",function(b){var f=b.lang.iframe,a=b.lang.common,e=b.plugins.dialogadvtab;return{title:f.title,minWidth:350,minHeight:260,onShow:function(){this.fakeImage=this.iframeNode=null;var a=this.getSelectedElement();a&&(a.data("cke-real-element-type")&&"iframe"==a.data("cke-real-element-type"))&&(this.fakeImage=a,this.iframeNode=a=b.restoreRealElement(a),this.setupContent(a))},onOk:function(){var a;a=this.fakeImage?this.iframeNode:new CKEDITOR.dom.element("iframe");var c={},d= +{};this.commitContent(a,c,d);a=b.createFakeElement(a,"cke_iframe","iframe",!0);a.setAttributes(d);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),b.getSelection().selectElement(a)):b.insertElement(a)},contents:[{id:"info",label:a.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{id:"src",type:"text",label:a.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(f.noUrl),setup:c,commit:d}]},{type:"hbox",children:[{id:"width",type:"text",requiredContent:"iframe[width]", +style:"width:100%",labelLayout:"vertical",label:a.width,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.width)),setup:c,commit:d},{id:"height",type:"text",requiredContent:"iframe[height]",style:"width:100%",labelLayout:"vertical",label:a.height,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.height)),setup:c,commit:d},{id:"align",type:"select",requiredContent:"iframe[align]","default":"",items:[[a.notSet,""],[a.alignLeft,"left"],[a.alignRight, +"right"],[a.alignTop,"top"],[a.alignMiddle,"middle"],[a.alignBottom,"bottom"]],style:"width:100%",labelLayout:"vertical",label:a.align,setup:function(a,b){c.apply(this,arguments);if(b){var d=b.getAttribute("align");this.setValue(d&&d.toLowerCase()||"")}},commit:function(a,b,c){d.apply(this,arguments);this.getValue()&&(c.align=this.getValue())}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"scrolling",type:"checkbox",requiredContent:"iframe[scrolling]",label:f.scrolling,setup:c,commit:d},{id:"frameborder", +type:"checkbox",requiredContent:"iframe[frameborder]",label:f.border,setup:c,commit:d}]},{type:"hbox",widths:["50%","50%"],children:[{id:"name",type:"text",requiredContent:"iframe[name]",label:a.name,setup:c,commit:d},{id:"title",type:"text",requiredContent:"iframe[title]",label:a.advisoryTitle,setup:c,commit:d}]},{id:"longdesc",type:"text",requiredContent:"iframe[longdesc]",label:a.longDescr,setup:c,commit:d}]},e&&e.createAdvancedTab(b,{id:1,classes:1,styles:1},"iframe")]}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png b/src/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png new file mode 100644 index 00000000..ff17604d Binary files /dev/null and b/src/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png differ diff --git a/src/lib/ckeditor/plugins/iframe/icons/iframe.png b/src/lib/ckeditor/plugins/iframe/icons/iframe.png new file mode 100644 index 00000000..f72d1915 Binary files /dev/null and b/src/lib/ckeditor/plugins/iframe/icons/iframe.png differ diff --git a/src/lib/ckeditor/plugins/iframe/images/placeholder.png b/src/lib/ckeditor/plugins/iframe/images/placeholder.png new file mode 100644 index 00000000..4af09565 Binary files /dev/null and b/src/lib/ckeditor/plugins/iframe/images/placeholder.png differ diff --git a/src/lib/ckeditor/plugins/iframe/lang/af.js b/src/lib/ckeditor/plugins/iframe/lang/af.js new file mode 100644 index 00000000..71eb910a --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","af",{border:"Wys rand van raam",noUrl:"Gee die iframe URL",scrolling:"Skuifbalke aan",title:"IFrame Eienskappe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ar.js b/src/lib/ckeditor/plugins/iframe/lang/ar.js new file mode 100644 index 00000000..8b90f6c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ar",{border:"إظهار حدود الإطار",noUrl:"فضلا أكتب رابط الـ iframe",scrolling:"تفعيل أشرطة الإنتقال",title:"خصائص iframe",toolbar:"iframe"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/bg.js b/src/lib/ckeditor/plugins/iframe/lang/bg.js new file mode 100644 index 00000000..23b9a7bc --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bg",{border:"Показва рамка на карето",noUrl:"Моля въведете URL за iFrame",scrolling:"Вкл. скролбаровете",title:"IFrame настройки",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/bn.js b/src/lib/ckeditor/plugins/iframe/lang/bn.js new file mode 100644 index 00000000..a7a9ee05 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/bs.js b/src/lib/ckeditor/plugins/iframe/lang/bs.js new file mode 100644 index 00000000..f37043c6 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bs",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ca.js b/src/lib/ckeditor/plugins/iframe/lang/ca.js new file mode 100644 index 00000000..18bddf5b --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ca",{border:"Mostra la vora del marc",noUrl:"Si us plau, introdueixi la URL de l'iframe",scrolling:"Activa les barres de desplaçament",title:"Propietats de l'IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/cs.js b/src/lib/ckeditor/plugins/iframe/lang/cs.js new file mode 100644 index 00000000..37b25fb6 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cs",{border:"Zobrazit okraj",noUrl:"Zadejte prosím URL obsahu pro IFrame",scrolling:"Zapnout posuvníky",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/cy.js b/src/lib/ckeditor/plugins/iframe/lang/cy.js new file mode 100644 index 00000000..f8db6041 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cy",{border:"Dangos ymyl y ffrâm",noUrl:"Rhowch URL yr iframe",scrolling:"Galluogi bariau sgrolio",title:"Priodweddau IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/da.js b/src/lib/ckeditor/plugins/iframe/lang/da.js new file mode 100644 index 00000000..54115330 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","da",{border:"Vis kant på rammen",noUrl:"Venligst indsæt URL på iframen",scrolling:"Aktiver scrollbars",title:"Iframe egenskaber",toolbar:"Iframe"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/de.js b/src/lib/ckeditor/plugins/iframe/lang/de.js new file mode 100644 index 00000000..2556d571 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","de",{border:"Rahmen anzeigen",noUrl:"Bitte geben Sie die IFrame-URL an",scrolling:"Rollbalken anzeigen",title:"IFrame-Eigenschaften",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/el.js b/src/lib/ckeditor/plugins/iframe/lang/el.js new file mode 100644 index 00000000..cecba9bd --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","el",{border:"Προβολή περιγράμματος πλαισίου",noUrl:"Παρακαλούμε εισάγεται το URL του iframe",scrolling:"Ενεργοποίηση μπαρών κύλισης",title:"Ιδιότητες IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/en-au.js b/src/lib/ckeditor/plugins/iframe/lang/en-au.js new file mode 100644 index 00000000..8e2821f8 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-au",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/en-ca.js b/src/lib/ckeditor/plugins/iframe/lang/en-ca.js new file mode 100644 index 00000000..c25669ed --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-ca",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/en-gb.js b/src/lib/ckeditor/plugins/iframe/lang/en-gb.js new file mode 100644 index 00000000..214388d1 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-gb",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/en.js b/src/lib/ckeditor/plugins/iframe/lang/en.js new file mode 100644 index 00000000..8d1407e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/eo.js b/src/lib/ckeditor/plugins/iframe/lang/eo.js new file mode 100644 index 00000000..a1855070 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eo",{border:"Montri borderon de kadro (frame)",noUrl:"Bonvolu entajpi la retadreson de la ligilo al la enlinia kadro (IFrame)",scrolling:"Ebligi rulumskalon",title:"Atributoj de la enlinia kadro (IFrame)",toolbar:"Enlinia kadro (IFrame)"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/es.js b/src/lib/ckeditor/plugins/iframe/lang/es.js new file mode 100644 index 00000000..89e38510 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","es",{border:"Mostrar borde del marco",noUrl:"Por favor, escriba la dirección del iframe",scrolling:"Activar barras de desplazamiento",title:"Propiedades de iframe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/et.js b/src/lib/ckeditor/plugins/iframe/lang/et.js new file mode 100644 index 00000000..7cd5ec0d --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","et",{border:"Raami äärise näitamine",noUrl:"Vali iframe URLi liik",scrolling:"Kerimisribade lubamine",title:"IFrame omadused",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/eu.js b/src/lib/ckeditor/plugins/iframe/lang/eu.js new file mode 100644 index 00000000..f8b1cff1 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eu",{border:"Markoaren ertza ikusi",noUrl:"iframe-aren URLa idatzi, mesedez.",scrolling:"Korritze barrak gaitu",title:"IFrame-aren Propietateak",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/fa.js b/src/lib/ckeditor/plugins/iframe/lang/fa.js new file mode 100644 index 00000000..a6bd7ee6 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fa",{border:"نمایش خطوط frame",noUrl:"لطفا مسیر URL iframe را درج کنید",scrolling:"نمایش خطکشها",title:"ویژگیهای IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/fi.js b/src/lib/ckeditor/plugins/iframe/lang/fi.js new file mode 100644 index 00000000..2813efb0 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fi",{border:"Näytä kehyksen reunat",noUrl:"Anna IFrame-kehykselle lähdeosoite (src)",scrolling:"Näytä vierityspalkit",title:"IFrame-kehyksen ominaisuudet",toolbar:"IFrame-kehys"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/fo.js b/src/lib/ckeditor/plugins/iframe/lang/fo.js new file mode 100644 index 00000000..3ec97a07 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fo",{border:"Vís frame kant",noUrl:"Vinarliga skriva URL til iframe",scrolling:"Loyv scrollbars",title:"Møguleikar fyri IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/fr-ca.js b/src/lib/ckeditor/plugins/iframe/lang/fr-ca.js new file mode 100644 index 00000000..1a43ea6e --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr-ca",{border:"Afficher la bordure du cadre",noUrl:"Veuillez entre l'URL du IFrame",scrolling:"Activer les barres de défilement",title:"Propriétés du IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/fr.js b/src/lib/ckeditor/plugins/iframe/lang/fr.js new file mode 100644 index 00000000..c5bc58cb --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr",{border:"Afficher une bordure de la IFrame",noUrl:"Veuillez entrer l'adresse du lien de la IFrame",scrolling:"Permettre à la barre de défilement",title:"Propriétés de la IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/gl.js b/src/lib/ckeditor/plugins/iframe/lang/gl.js new file mode 100644 index 00000000..5326e33f --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gl",{border:"Amosar o bordo do marco",noUrl:"Escriba o enderezo do iframe",scrolling:"Activar as barras de desprazamento",title:"Propiedades do iFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/gu.js b/src/lib/ckeditor/plugins/iframe/lang/gu.js new file mode 100644 index 00000000..0c6aed93 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gu",{border:"ફ્રેમ બોર્ડેર બતાવવી",noUrl:"iframe URL ટાઈપ્ કરો",scrolling:"સ્ક્રોલબાર ચાલુ કરવા",title:"IFrame વિકલ્પો",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/he.js b/src/lib/ckeditor/plugins/iframe/lang/he.js new file mode 100644 index 00000000..4c227775 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","he",{border:"הראה מסגרת לחלון",noUrl:"יש להכניס כתובת לחלון.",scrolling:"אפשר פסי גלילה",title:"מאפייני חלון פנימי (iframe)",toolbar:"חלון פנימי (iframe)"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/hi.js b/src/lib/ckeditor/plugins/iframe/lang/hi.js new file mode 100644 index 00000000..8699b826 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hi",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/hr.js b/src/lib/ckeditor/plugins/iframe/lang/hr.js new file mode 100644 index 00000000..6cf8b838 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hr",{border:"Prikaži okvir IFrame-a",noUrl:"Unesite URL iframe-a",scrolling:"Omogući trake za skrolanje",title:"IFrame svojstva",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/hu.js b/src/lib/ckeditor/plugins/iframe/lang/hu.js new file mode 100644 index 00000000..94bdf85e --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hu",{border:"Legyen keret",noUrl:"Kérem írja be a iframe URL-t",scrolling:"Gördítősáv bekapcsolása",title:"IFrame Tulajdonságok",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/id.js b/src/lib/ckeditor/plugins/iframe/lang/id.js new file mode 100644 index 00000000..0db9a8ee --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","id",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/is.js b/src/lib/ckeditor/plugins/iframe/lang/is.js new file mode 100644 index 00000000..bb669e8a --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","is",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/it.js b/src/lib/ckeditor/plugins/iframe/lang/it.js new file mode 100644 index 00000000..54f33bec --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","it",{border:"Mostra il bordo",noUrl:"Inserire l'URL del campo IFrame",scrolling:"Abilita scrollbar",title:"Proprietà IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ja.js b/src/lib/ckeditor/plugins/iframe/lang/ja.js new file mode 100644 index 00000000..039c5788 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ja",{border:"フレームの枠を表示",noUrl:"iframeのURLを入力してください。",scrolling:"スクロールバーの表示を許可",title:"iFrameのプロパティ",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ka.js b/src/lib/ckeditor/plugins/iframe/lang/ka.js new file mode 100644 index 00000000..e8388990 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ka",{border:"ჩარჩოს გამოჩენა",noUrl:"აკრიფეთ iframe-ის URL",scrolling:"გადახვევის ზოლების დაშვება",title:"IFrame-ის პარამეტრები",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/km.js b/src/lib/ckeditor/plugins/iframe/lang/km.js new file mode 100644 index 00000000..629c7831 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","km",{border:"បង្ហាញ​បន្ទាត់​ស៊ុម",noUrl:"សូម​បញ្ចូល URL របស់ iframe",scrolling:"ប្រើ​របារ​រំកិល",title:"លក្ខណៈ​សម្បត្តិ IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ko.js b/src/lib/ckeditor/plugins/iframe/lang/ko.js new file mode 100644 index 00000000..fa6bc741 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ko",{border:"프레임 테두리 표시",noUrl:"iframe 대응 URL을 입력해주세요.",scrolling:"스크롤바 사용",title:"IFrame 속성",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ku.js b/src/lib/ckeditor/plugins/iframe/lang/ku.js new file mode 100644 index 00000000..bc1ae360 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ku",{border:"نیشاندانی لاکێشه بە چوواردەوری چووارچێوە",noUrl:"تکایه ناونیشانی بەستەر بنووسه بۆ چووارچێوه",scrolling:"چالاککردنی هاتووچۆپێکردن",title:"دیالۆگی چووارچێوه",toolbar:"چووارچێوه"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/lt.js b/src/lib/ckeditor/plugins/iframe/lang/lt.js new file mode 100644 index 00000000..20dee016 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lt",{border:"Rodyti rėmelį",noUrl:"Nurodykite iframe nuorodą",scrolling:"Įjungti slankiklius",title:"IFrame nustatymai",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/lv.js b/src/lib/ckeditor/plugins/iframe/lang/lv.js new file mode 100644 index 00000000..b9db9432 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lv",{border:"Rādīt rāmi",noUrl:"Norādiet iframe adresi",scrolling:"Atļaut ritjoslas",title:"IFrame uzstādījumi",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/mk.js b/src/lib/ckeditor/plugins/iframe/lang/mk.js new file mode 100644 index 00000000..a4dbb236 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mk",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/mn.js b/src/lib/ckeditor/plugins/iframe/lang/mn.js new file mode 100644 index 00000000..f45cf054 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ms.js b/src/lib/ckeditor/plugins/iframe/lang/ms.js new file mode 100644 index 00000000..8ff5bc1b --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ms",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/nb.js b/src/lib/ckeditor/plugins/iframe/lang/nb.js new file mode 100644 index 00000000..ec65e337 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nb",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/nl.js b/src/lib/ckeditor/plugins/iframe/lang/nl.js new file mode 100644 index 00000000..348ee0ec --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nl",{border:"Framerand tonen",noUrl:"Vul de IFrame URL in",scrolling:"Scrollbalken inschakelen",title:"IFrame-eigenschappen",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/no.js b/src/lib/ckeditor/plugins/iframe/lang/no.js new file mode 100644 index 00000000..04a9241d --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","no",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/pl.js b/src/lib/ckeditor/plugins/iframe/lang/pl.js new file mode 100644 index 00000000..d0859990 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pl",{border:"Pokaż obramowanie obiektu IFrame",noUrl:"Podaj adres URL elementu IFrame",scrolling:"Włącz paski przewijania",title:"Właściwości elementu IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/pt-br.js b/src/lib/ckeditor/plugins/iframe/lang/pt-br.js new file mode 100644 index 00000000..67100264 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt-br",{border:"Mostra borda do iframe",noUrl:"Insira a URL do iframe",scrolling:"Abilita scrollbars",title:"Propriedade do IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/pt.js b/src/lib/ckeditor/plugins/iframe/lang/pt.js new file mode 100644 index 00000000..4ac51c5b --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt",{border:"Mostrar a borda da Frame",noUrl:"Por favor, digite o URL da iframe",scrolling:"Ativar barras de deslocamento",title:"Propriedades da IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ro.js b/src/lib/ckeditor/plugins/iframe/lang/ro.js new file mode 100644 index 00000000..d2ca21fb --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ro",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ru.js b/src/lib/ckeditor/plugins/iframe/lang/ru.js new file mode 100644 index 00000000..8691613d --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ru",{border:"Показать границы фрейма",noUrl:"Пожалуйста, введите ссылку фрейма",scrolling:"Отображать полосы прокрутки",title:"Свойства iFrame",toolbar:"iFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/si.js b/src/lib/ckeditor/plugins/iframe/lang/si.js new file mode 100644 index 00000000..a0b2c1e3 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","si",{border:"සැකිල්ලේ කඩයිම් ",noUrl:"කරුණාකර රුපයේ URL ලියන්න",scrolling:"සක්ක්‍රිය කරන්න",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/sk.js b/src/lib/ckeditor/plugins/iframe/lang/sk.js new file mode 100644 index 00000000..7685e8bf --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sk",{border:"Zobraziť rám frame-u",noUrl:"Prosím, vložte URL iframe",scrolling:"Povoliť skrolovanie",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/sl.js b/src/lib/ckeditor/plugins/iframe/lang/sl.js new file mode 100644 index 00000000..7b79a792 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sl",{border:"Pokaži mejo okvira",noUrl:"Prosimo, vnesite iframe URL",scrolling:"Omogoči scrollbars",title:"IFrame Lastnosti",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/sq.js b/src/lib/ckeditor/plugins/iframe/lang/sq.js new file mode 100644 index 00000000..4c66e350 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sq",{border:"Shfaq kufirin e kornizës",noUrl:"Ju lutemi shkruani URL-në e iframe-it",scrolling:"Lejo shiritët zvarritës",title:"Karakteristikat e IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/sr-latn.js b/src/lib/ckeditor/plugins/iframe/lang/sr-latn.js new file mode 100644 index 00000000..3d279456 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr-latn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/sr.js b/src/lib/ckeditor/plugins/iframe/lang/sr.js new file mode 100644 index 00000000..e7d1c535 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/sv.js b/src/lib/ckeditor/plugins/iframe/lang/sv.js new file mode 100644 index 00000000..c8adee27 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sv",{border:"Visa ramkant",noUrl:"Skriv in URL för iFrame",scrolling:"Aktivera rullningslister",title:"iFrame Egenskaper",toolbar:"iFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/th.js b/src/lib/ckeditor/plugins/iframe/lang/th.js new file mode 100644 index 00000000..6d876edf --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","th",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/tr.js b/src/lib/ckeditor/plugins/iframe/lang/tr.js new file mode 100644 index 00000000..9096f663 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tr",{border:"Çerceve sınırlarını göster",noUrl:"Lütfen IFrame köprü (URL) bağlantısını yazın",scrolling:"Kaydırma çubuklarını aktif et",title:"IFrame Özellikleri",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/tt.js b/src/lib/ckeditor/plugins/iframe/lang/tt.js new file mode 100644 index 00000000..586d3ae3 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tt",{border:"Frame чикләрен күрсәтү",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame үзлекләре",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/ug.js b/src/lib/ckeditor/plugins/iframe/lang/ug.js new file mode 100644 index 00000000..156b972a --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ug",{border:"كاندۇك گىرۋەكلىرىنى كۆرسەت",noUrl:"كاندۇكنىڭ ئادرېسى(Url)نى كىرگۈزۈڭ",scrolling:"دومىلىما سۈرگۈچكە يول قوي",title:"IFrame خاسلىق",toolbar:"IFrame "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/uk.js b/src/lib/ckeditor/plugins/iframe/lang/uk.js new file mode 100644 index 00000000..fe6660c3 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","uk",{border:"Показати рамки фрейму",noUrl:"Будь ласка введіть посилання для IFrame",scrolling:"Увімкнути прокрутку",title:"Налаштування для IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/vi.js b/src/lib/ckeditor/plugins/iframe/lang/vi.js new file mode 100644 index 00000000..70340226 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","vi",{border:"Hiển thị viền khung",noUrl:"Vui lòng nhập địa chỉ iframe",scrolling:"Kích hoạt thanh cuộn",title:"Thuộc tính iframe",toolbar:"Iframe"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/zh-cn.js b/src/lib/ckeditor/plugins/iframe/lang/zh-cn.js new file mode 100644 index 00000000..876c196b --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh-cn",{border:"显示框架边框",noUrl:"请输入框架的 URL",scrolling:"允许滚动条",title:"IFrame 属性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/lang/zh.js b/src/lib/ckeditor/plugins/iframe/lang/zh.js new file mode 100644 index 00000000..5fdd10fa --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh",{border:"顯示框架框線",noUrl:"請輸入 iframe URL",scrolling:"啟用捲軸列",title:"IFrame 屬性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframe/plugin.js b/src/lib/ckeditor/plugins/iframe/plugin.js new file mode 100644 index 00000000..eefa85c4 --- /dev/null +++ b/src/lib/ckeditor/plugins/iframe/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"iframe",hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")}, +init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b= +a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe", +!0)}}})}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/iframedialog/plugin.js b/src/lib/ckeditor/plugins/iframedialog/plugin.js new file mode 100644 index 00000000..1d6addbd --- /dev/null +++ b/src/lib/ckeditor/plugins/iframedialog/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("iframedialog",{requires:"dialog",onLoad:function(){CKEDITOR.dialog.addIframe=function(e,d,a,j,f,l,g){a={type:"iframe",src:a,width:"100%",height:"100%"};a.onContentLoad="function"==typeof l?l:function(){var a=this.getElement().$.contentWindow;if(a.onDialogEvent){var b=this.getDialog(),c=function(b){return a.onDialogEvent(b)};b.on("ok",c);b.on("cancel",c);b.on("resize",c);b.on("hide",function(a){b.removeListener("ok",c);b.removeListener("cancel",c);b.removeListener("resize",c); +a.removeListener()});a.onDialogEvent({name:"load",sender:this,editor:b._.editor})}};var h={title:d,minWidth:j,minHeight:f,contents:[{id:"iframe",label:d,expand:!0,elements:[a],style:"width:"+a.width+";height:"+a.height}]},i;for(i in g)h[i]=g[i];this.add(e,function(){return h})};(function(){var e=function(d,a,j){if(!(3>arguments.length)){var f=this._||(this._={}),e=a.onContentLoad&&CKEDITOR.tools.bind(a.onContentLoad,this),g=CKEDITOR.tools.cssLength(a.width),h=CKEDITOR.tools.cssLength(a.height);f.frameId= +CKEDITOR.tools.getNextId()+"_iframe";d.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().setStyles({width:g,height:h})});var i={src:"%2",id:f.frameId,frameborder:0,allowtransparency:!0},k=[];"function"==typeof a.onContentLoad&&(i.onload="CKEDITOR.tools.callFunction(%1);");CKEDITOR.ui.dialog.uiElement.call(this,d,a,k,"iframe",{width:g,height:h},i,"");j.push('<div style="width:'+g+";height:"+h+';" id="'+this.domId+'"></div>');k=k.join("");d.on("show",function(){var b=CKEDITOR.document.getById(f.frameId).getParent(), +c=CKEDITOR.tools.addFunction(e),c=k.replace("%1",c).replace("%2",CKEDITOR.tools.htmlEncode(a.src));b.setHtml(c)})}};e.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.dialog.addUIElement("iframe",{build:function(d,a,j){return new e(d,a,j)}})})()}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image/dialogs/image.js b/src/lib/ckeditor/plugins/image/dialogs/image.js new file mode 100644 index 00000000..c84ecdc3 --- /dev/null +++ b/src/lib/ckeditor/plugins/image/dialogs/image.js @@ -0,0 +1,43 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var r=function(c,j){function r(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){this.commit(f,d);for(var a=[].concat(a),e=a.length,c,g=0;g<e;g++)(c=b.getContentElement.apply(b,a[g].split(":")))&&c.setup(f,d)}s=0}}var f=1,k=/^\s*(\d+)((px)|\%)?\s*$/i,v=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,o=/^\d+px$/, +w=function(){var a=this.getValue(),b=this.getDialog(),d=a.match(k);d&&("%"==d[2]&&l(b,!1),a=d[1]);b.lockRatio&&(d=b.originalElement,"true"==d.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(d.$.width*(a/d.$.height))),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(d.$.height*(a/d.$.width))),isNaN(a)||b.setValueOf("info","txtHeight",a))));g(b)},g=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},s,l=function(a, +b){if(!a.getContentElement("info","ratioLock"))return null;var d=a.originalElement;if(!d)return null;if("check"==b){if(!a.userlockRatio&&"true"==d.getCustomData("isReady")){var e=a.getValueOf("info","txtWidth"),c=a.getValueOf("info","txtHeight"),d=1E3*d.$.width/d.$.height,f=1E3*e/c;a.lockRatio=!1;!e&&!c?a.lockRatio=!0:!isNaN(d)&&!isNaN(f)&&Math.round(d)==Math.round(f)&&(a.lockRatio=!0)}}else void 0!=b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);e=CKEDITOR.document.getById(p);a.lockRatio? +e.removeClass("cke_btn_unlocked"):e.addClass("cke_btn_unlocked");e.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&e.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},x=function(a){var b=a.originalElement;if("true"==b.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),e=a.getContentElement("info","txtHeight");d&&d.setValue(b.$.width);e&&e.setValue(b.$.height)}g(a)},y=function(a,b){function d(a,b){var d=a.match(k);return d? +("%"==d[2]&&(d[1]+="%",l(e,!1)),d[1]):b}if(a==f){var e=this.getDialog(),c="",g="txtWidth"==this.id?"width":"height",h=b.getAttribute(g);h&&(c=d(h,c));c=d(b.getStyle(g),c);this.setValue(c)}},t,q=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.setCustomData("isReady","true");a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||x(this);this.firstLoad&&CKEDITOR.tools.setTimeout(function(){l(this,"check")}, +0,this);this.dontResetSize=this.firstLoad=!1},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");l(this,!1)},n=function(a){return CKEDITOR.tools.getNextId()+"_"+a},p=n("btnLockSizes"),u=n("btnResetSize"),m=n("ImagePreviewLoader"),A=n("previewLink"), +z=n("previewImage");return{title:c.lang.image["image"==j?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),d=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1),c=CKEDITOR.document.getById(m);c&&c.setStyle("display","none");t=new CKEDITOR.dom.element("img", +a.document);this.preview=CKEDITOR.document.getById(z);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");if(d){this.linkElement=d;this.linkEditMode=!0;c=d.getChildren();if(1==c.count()){var g=c.getItem(0).getName();if("img"==g||"input"==g)this.imageElement=c.getItem(0),"img"==this.imageElement.getName()?this.imageEditMode="img":"input"==this.imageElement.getName()&&(this.imageEditMode="input")}"image"== +j&&this.setupContent(2,d)}if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode?(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(f,this.imageElement)):this.imageElement=a.document.createElement("img"); +l(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==j&&"input"==a&&confirm(c.lang.image.button2Img)?(this.imageElement=c.document.createElement("img"),this.imageElement.setAttribute("alt",""),c.insertElement(this.imageElement)):"image"!=j&&"img"==a&&confirm(c.lang.image.img2Button)?(this.imageElement=c.document.createElement("input"), +this.imageElement.setAttributes({type:"image",alt:""}),c.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==j?this.imageElement=c.document.createElement("img"):(this.imageElement=c.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=c.document.createElement("a"));this.commitContent(f,this.imageElement);this.commitContent(2,this.linkElement); +this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(c.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(c.getSelection().selectElement(this.linkElement),c.insertElement(this.imageElement)):this.addLink?this.linkEditMode?c.insertElement(this.imageElement):(c.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):c.insertElement(this.imageElement)}, +onLoad:function(){"image"!=j&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(u),5),this.addFocusable(a.getById(p),5));this.commitContent=r},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",q),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement= +!1);delete this.imageElement},contents:[{id:"info",label:c.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:c.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),d=a.originalElement;a.preview&&a.preview.removeStyle("display");d.setCustomData("isReady","false");var c=CKEDITOR.document.getById(m);c&&c.setStyle("display", +"");d.on("load",q,a);d.on("error",h,a);d.on("abort",h,a);d.setAttribute("src",b);a.preview&&(t.setAttribute("src",b),a.preview.setAttribute("src",t.$.src),g(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(a==f){var d=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(d);this.setInitValue()}},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()), +b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:c.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:c.lang.image.alt,accessKey:"T","default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("alt"))}, +commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:c.lang.common.width,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a= +this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidWidth);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(e)):b.removeStyle("width"),!d&&b.removeAttribute("width")):4==a?e.match(k)?b.setStyle("width",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("width",a.$.width+"px")):8==a&&(b.removeAttribute("width"), +b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:c.lang.common.height,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidHeight);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(e)):b.removeStyle("height"),!d&&b.removeAttribute("height")): +4==a?e.match(k)?b.setStyle("height",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("height",a.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(u),b=CKEDITOR.document.getById(p);a&&(a.on("click",function(a){x(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover", +function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){l(this);var b=this.originalElement,c=this.getValueOf("info","txtWidth");if(b.getCustomData("isReady")=="true"&&c){b=b.$.height/b.$.width*c;if(!isNaN(b)){this.setValueOf("info","txtHeight",Math.round(b));g(this)}}a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")}, +b))},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.lockRatio+'" class="cke_btn_locked" id="'+p+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+c.lang.image.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.resetSize+'" class="cke_btn_reset" id="'+u+'" role="button"><span class="cke_label">'+c.lang.image.resetSize+"</span></a></div>"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}", +width:"60px",label:c.lang.image.border,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder),setup:function(a,b){if(a==f){var d;d=(d=(d=b.getStyle("border-width"))&&d.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(d[1],10);isNaN(parseInt(d,10))&&(d=b.getAttribute("border"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&& +this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),!d&&a==f&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:c.lang.image.hSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this, +"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),setup:function(a,b){if(a==f){var d,c;d=b.getStyle("margin-left");c=b.getStyle("margin-right");d=d&&d.match(o);c=c&&c.match(o);d=parseInt(d,10);c=parseInt(c,10);d=d==c&&d;isNaN(parseInt(d,10))&&(d=b.getAttribute("hspace"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")): +(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),!d&&a==f&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:c.lang.image.vSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace), +setup:function(a,b){if(a==f){var c,e;c=b.getStyle("margin-top");e=b.getStyle("margin-bottom");c=c&&c.match(o);e=e&&e.match(o);c=parseInt(c,10);e=parseInt(e,10);c=c==e&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(e))), +!c&&a==f&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:c.lang.common.align,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.alignLeft,"left"],[c.lang.common.alignRight,"right"]],onChange:function(){g(this.getDialog());i.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(a==f){var c=b.getStyle("float"); +switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b,c){var e=this.getValue();if(a==f||4==a){if(e?b.setStyle("float",e):b.removeStyle("float"),!c&&a==f)switch(e=(b.getAttribute("align")||"").toLowerCase(),e){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"<div>"+CKEDITOR.tools.htmlEncode(c.lang.common.preview)+ +'<br><div id="'+m+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'"><img id="'+z+'" alt="" /></a>'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+ +"</td></tr></table></div></div>"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=this.getValue();b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink= +!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")|| +"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"], +children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle, +"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a, +b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}}; +CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image/images/noimage.png b/src/lib/ckeditor/plugins/image/images/noimage.png new file mode 100644 index 00000000..15981130 Binary files /dev/null and b/src/lib/ckeditor/plugins/image/images/noimage.png differ diff --git a/src/lib/ckeditor/plugins/image2/dialogs/image2.js b/src/lib/ckeditor/plugins/image2/dialogs/image2.js new file mode 100644 index 00000000..9b9b9028 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/dialogs/image2.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("image2",function(j){function z(){var a=this.getValue().match(A);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c["invalid"+CKEDITOR.tools.capitalize(this.id)]);return a}function K(){function a(a,b){d.push(i.once(a,function(a){for(var i;i=d.pop();)i.removeListener();b(a)}))}var i=p.createElement("img"),d=[];return function(d,b,c){a("load",function(){var a=B(i);b.call(c,i,a.width,a.height)});a("error",function(){b(null)});a("abort",function(){b(null)});i.setAttribute("src",(t.baseHref|| +"")+d+"?"+Math.random().toString(16).substring(2))}}function C(){var a=this.getValue();q(!1);a!==u.data.src?(D(a,function(a,d,b){q(!0);if(!a)return k(!1);g.setValue(d);h.setValue(b);r=d;s=b;k(E.checkHasNaturalRatio(a))}),l=!0):l?(q(!0),g.setValue(m),h.setValue(n),l=!1):q(!0)}function F(){if(e){var a=this.getValue();if(a&&(a.match(A)||k(!1),"0"!==a)){var b="width"==this.id,d=m||r,c=n||s,a=b?Math.round(c*(a/d)):Math.round(d*(a/c));isNaN(a)||(b?h:g).setValue(a)}}}function k(a){if(f){if("boolean"==typeof a){if(v)return; +e=a}else if(a=g.getValue(),v=!0,(e=!e)&&a)a*=n/m,isNaN(a)||h.setValue(Math.round(a));f[e?"removeClass":"addClass"]("cke_btn_unlocked");f.setAttribute("aria-checked",e);CKEDITOR.env.hc&&f.getChild(0).setHtml(e?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢")}}function q(a){a=a?"enable":"disable";g[a]();h[a]()}var A=/(^\s*(\d+)(px)?\s*$)|^$/i,G=CKEDITOR.tools.getNextId(),H=CKEDITOR.tools.getNextId(),b=j.lang.image2,c=j.lang.common,L=(new CKEDITOR.template('<div><a href="javascript:void(0)" tabindex="-1" title="'+ +b.lockRatio+'" class="cke_btn_locked" id="{lockButtonId}" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+b.resetSize+'" class="cke_btn_reset" id="{resetButtonId}" role="button"><span class="cke_label">'+b.resetSize+"</span></a></div>")).output({lockButtonId:G,resetButtonId:H}),E=CKEDITOR.plugins.image2,t=j.config,w=j.widgets.registered.image.features,B=E.getNatural,p,u,I,D,m,n,r,s,l,e,v,f,o,g,h,x, +y=!(!t.filebrowserImageBrowseUrl&&!t.filebrowserBrowseUrl),J=[{id:"src",type:"text",label:c.url,onKeyup:C,onChange:C,setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())},validate:CKEDITOR.dialog.validate.notEmpty(b.urlMissing)}];y&&J.push({type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:j.lang.common.browseServer,hidden:!0,filebrowser:"info:src"});return{title:b.title,minWidth:250,minHeight:100,onLoad:function(){p= +this._.element.getDocument();D=K()},onShow:function(){u=this.widget;I=u.parts.image;l=v=e=!1;x=B(I);r=m=x.width;s=n=x.height},contents:[{id:"info",label:b.infoTab,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["100%"],children:J}]},{id:"alt",type:"text",label:b.alt,setup:function(a){this.setValue(a.data.alt)},commit:function(a){a.setData("alt",this.getValue())}},{type:"hbox",widths:["25%","25%","50%"],requiredContent:w.dimension.requiredContent,children:[{type:"text",width:"45px", +id:"width",label:c.width,validate:z,onKeyUp:F,onLoad:function(){g=this},setup:function(a){this.setValue(a.data.width)},commit:function(a){a.setData("width",this.getValue())}},{type:"text",id:"height",width:"45px",label:c.height,validate:z,onKeyUp:F,onLoad:function(){h=this},setup:function(a){this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}},{id:"lock",type:"html",style:"margin-top:18px;width:40px;height:20px;",onLoad:function(){function a(a){a.on("mouseover",function(){this.addClass("cke_btn_over")}, +a);a.on("mouseout",function(){this.removeClass("cke_btn_over")},a)}var b=this.getDialog();f=p.getById(G);o=p.getById(H);f&&(b.addFocusable(f,4+y),f.on("click",function(a){k();a.data&&a.data.preventDefault()},this.getDialog()),a(f));o&&(b.addFocusable(o,5+y),o.on("click",function(a){if(l){g.setValue(r);h.setValue(s)}else{g.setValue(m);h.setValue(n)}a.data&&a.data.preventDefault()},this),a(o))},setup:function(a){k(a.data.lock)},commit:function(a){a.setData("lock",e)},html:L}]},{type:"hbox",id:"alignment", +requiredContent:w.align.requiredContent,children:[{id:"align",type:"radio",items:[[c.alignNone,"none"],[c.alignLeft,"left"],[c.alignCenter,"center"],[c.alignRight,"right"]],label:c.align,setup:function(a){this.setValue(a.data.align)},commit:function(a){a.setData("align",this.getValue())}}]},{id:"hasCaption",type:"checkbox",label:b.captioned,requiredContent:w.caption.requiredContent,setup:function(a){this.setValue(a.data.hasCaption)},commit:function(a){a.setData("hasCaption",this.getValue())}}]},{id:"Upload", +hidden:!0,filebrowser:"uploadButton",label:b.uploadTab,elements:[{type:"file",id:"upload",label:b.btnUpload,style:"height:40px"},{type:"fileButton",id:"uploadButton",filebrowser:"info:src",label:b.btnUpload,"for":["Upload","upload"]}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/icons/hidpi/image.png b/src/lib/ckeditor/plugins/image2/icons/hidpi/image.png new file mode 100644 index 00000000..b3c7ade5 Binary files /dev/null and b/src/lib/ckeditor/plugins/image2/icons/hidpi/image.png differ diff --git a/src/lib/ckeditor/plugins/image2/icons/image.png b/src/lib/ckeditor/plugins/image2/icons/image.png new file mode 100644 index 00000000..fcf61b5f Binary files /dev/null and b/src/lib/ckeditor/plugins/image2/icons/image.png differ diff --git a/src/lib/ckeditor/plugins/image2/lang/af.js b/src/lib/ckeditor/plugins/image2/lang/af.js new file mode 100644 index 00000000..d5ef4619 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","af",{alt:"Alternatiewe teks",btnUpload:"Stuur na bediener",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Afbeelding informasie",lockRatio:"Vaste proporsie",menu:"Afbeelding eienskappe",pathName:"image",pathNameCaption:"caption",resetSize:"Herstel grootte",resizer:"Click and drag to resize",title:"Afbeelding eienskappe",uploadTab:"Oplaai",urlMissing:"Die URL na die afbeelding ontbreek."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ar.js b/src/lib/ckeditor/plugins/image2/lang/ar.js new file mode 100644 index 00000000..435544b2 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ar",{alt:"عنوان الصورة",btnUpload:"أرسلها للخادم",captioned:"صورة ذات اسم",captionPlaceholder:"تسمية",infoTab:"معلومات الصورة",lockRatio:"تناسق الحجم",menu:"خصائص الصورة",pathName:"صورة",pathNameCaption:"تسمية",resetSize:"إستعادة الحجم الأصلي",resizer:"انقر ثم اسحب للتحجيم",title:"خصائص الصورة",uploadTab:"رفع",urlMissing:"عنوان مصدر الصورة مفقود"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/bg.js b/src/lib/ckeditor/plugins/image2/lang/bg.js new file mode 100644 index 00000000..a97a26e6 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bg",{alt:"Алтернативен текст",btnUpload:"Изпрати я на сървъра",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо за снимка",lockRatio:"Заключване на съотношението",menu:"Настройки за снимка",pathName:"image",pathNameCaption:"caption",resetSize:"Нулиране на размер",resizer:"Click and drag to resize",title:"Настройки за снимка",uploadTab:"Качване",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/bn.js b/src/lib/ckeditor/plugins/image2/lang/bn.js new file mode 100644 index 00000000..93618a02 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bn",{alt:"বিকল্প টেক্সট",btnUpload:"ইহাকে সার্ভারে প্রেরন কর",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ছবির তথ্য",lockRatio:"অনুপাত লক কর",menu:"ছবির প্রোপার্টি",pathName:"image",pathNameCaption:"caption",resetSize:"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও",resizer:"Click and drag to resize",title:"ছবির প্রোপার্টি",uploadTab:"আপলোড",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/bs.js b/src/lib/ckeditor/plugins/image2/lang/bs.js new file mode 100644 index 00000000..ff4ae297 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bs",{alt:"Tekst na slici",btnUpload:"Šalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zakljuèaj odnos",menu:"Svojstva slike",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj dimenzije",resizer:"Click and drag to resize",title:"Svojstva slike",uploadTab:"Šalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ca.js b/src/lib/ckeditor/plugins/image2/lang/ca.js new file mode 100644 index 00000000..6e73ef35 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ca",{alt:"Text alternatiu",btnUpload:"Envia-la al servidor",captioned:"Imatge amb subtítol",captionPlaceholder:"Títol",infoTab:"Informació de la imatge",lockRatio:"Bloqueja les proporcions",menu:"Propietats de la imatge",pathName:"imatge",pathNameCaption:"subtítol",resetSize:"Restaura la mida",resizer:"Clicar i arrossegar per redimensionar",title:"Propietats de la imatge",uploadTab:"Puja",urlMissing:"Falta la URL de la imatge."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/cs.js b/src/lib/ckeditor/plugins/image2/lang/cs.js new file mode 100644 index 00000000..d148641d --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cs",{alt:"Alternativní text",btnUpload:"Odeslat na server",captioned:"Obrázek s popisem",captionPlaceholder:"Popis",infoTab:"Informace o obrázku",lockRatio:"Zámek",menu:"Vlastnosti obrázku",pathName:"Obrázek",pathNameCaption:"Popis",resetSize:"Původní velikost",resizer:"Klepněte a táhněte pro změnu velikosti",title:"Vlastnosti obrázku",uploadTab:"Odeslat",urlMissing:"Zadané URL zdroje obrázku nebylo nalezeno."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/cy.js b/src/lib/ckeditor/plugins/image2/lang/cy.js new file mode 100644 index 00000000..031ba7ef --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cy",{alt:"Testun Amgen",btnUpload:"Anfon i'r Gweinydd",captioned:"Delwedd â phennawd",captionPlaceholder:"Caption",infoTab:"Gwyb Delwedd",lockRatio:"Cloi Cymhareb",menu:"Priodweddau Delwedd",pathName:"delwedd",pathNameCaption:"pennawd",resetSize:"Ailosod Maint",resizer:"Clicio a llusgo i ail-meintio",title:"Priodweddau Delwedd",uploadTab:"Lanlwytho",urlMissing:"URL gwreiddiol y ddelwedd ar goll."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/da.js b/src/lib/ckeditor/plugins/image2/lang/da.js new file mode 100644 index 00000000..b5412c41 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","da",{alt:"Alternativ tekst",btnUpload:"Upload fil til serveren",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Generelt",lockRatio:"Lås størrelsesforhold",menu:"Egenskaber for billede",pathName:"image",pathNameCaption:"caption",resetSize:"Nulstil størrelse",resizer:"Click and drag to resize",title:"Egenskaber for billede",uploadTab:"Upload",urlMissing:"Kilde på billed-URL mangler"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/de.js b/src/lib/ckeditor/plugins/image2/lang/de.js new file mode 100644 index 00000000..de90c18d --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","de",{alt:"Alternativer Text",btnUpload:"Zum Server senden",captioned:"Bild mit Überschrift",captionPlaceholder:"Überschrift",infoTab:"Bild-Info",lockRatio:"Größenverhältnis beibehalten",menu:"Bild-Eigenschaften",pathName:"Bild",pathNameCaption:"Überschrift",resetSize:"Größe zurücksetzen",resizer:"Zum vergrößern anwählen und ziehen",title:"Bild-Eigenschaften",uploadTab:"Hochladen",urlMissing:"Imagequelle URL fehlt."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/el.js b/src/lib/ckeditor/plugins/image2/lang/el.js new file mode 100644 index 00000000..65307e3d --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","el",{alt:"Εναλλακτικό Κείμενο",btnUpload:"Αποστολή στον Διακομιστή",captioned:"Εικόνα με λεζάντα",captionPlaceholder:"Λεζάντα",infoTab:"Πληροφορίες Εικόνας",lockRatio:"Κλείδωμα Αναλογίας",menu:"Ιδιότητες Εικόνας",pathName:"εικόνα",pathNameCaption:"λεζάντα",resetSize:"Επαναφορά Αρχικού Μεγέθους",resizer:"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος",title:"Ιδιότητες Εικόνας",uploadTab:"Αποστολή",urlMissing:"Λείπει το πηγαίο URL της εικόνας."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/en-au.js b/src/lib/ckeditor/plugins/image2/lang/en-au.js new file mode 100644 index 00000000..caab219c --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-au",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/en-ca.js b/src/lib/ckeditor/plugins/image2/lang/en-ca.js new file mode 100644 index 00000000..ec19b8f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-ca",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/en-gb.js b/src/lib/ckeditor/plugins/image2/lang/en-gb.js new file mode 100644 index 00000000..d5a9406a --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-gb",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/en.js b/src/lib/ckeditor/plugins/image2/lang/en.js new file mode 100644 index 00000000..524e0a2a --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/eo.js b/src/lib/ckeditor/plugins/image2/lang/eo.js new file mode 100644 index 00000000..26587e03 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eo",{alt:"Anstataŭiga Teksto",btnUpload:"Sendu al Servilo",captioned:"Bildo kun apudskribo",captionPlaceholder:"Apudskribo",infoTab:"Informoj pri Bildo",lockRatio:"Konservi Proporcion",menu:"Atributoj de Bildo",pathName:"bildo",pathNameCaption:"apudskribo",resetSize:"Origina Grando",resizer:"Kliki kaj treni por ŝanĝi la grandon",title:"Atributoj de Bildo",uploadTab:"Alŝuti",urlMissing:"La fontretadreso de la bildo mankas."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/es.js b/src/lib/ckeditor/plugins/image2/lang/es.js new file mode 100644 index 00000000..c68c9162 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","es",{alt:"Texto Alternativo",btnUpload:"Enviar al Servidor",captioned:"Imagen subtitulada",captionPlaceholder:"Caption",infoTab:"Información de Imagen",lockRatio:"Proporcional",menu:"Propiedades de Imagen",pathName:"image",pathNameCaption:"subtítulo",resetSize:"Tamaño Original",resizer:"Dar clic y arrastrar para cambiar tamaño",title:"Propiedades de Imagen",uploadTab:"Cargar",urlMissing:"Debe indicar la URL de la imagen."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/et.js b/src/lib/ckeditor/plugins/image2/lang/et.js new file mode 100644 index 00000000..b8571dbf --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","et",{alt:"Alternatiivne tekst",btnUpload:"Saada serverisse",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Pildi info",lockRatio:"Lukusta kuvasuhe",menu:"Pildi omadused",pathName:"image",pathNameCaption:"caption",resetSize:"Lähtesta suurus",resizer:"Click and drag to resize",title:"Pildi omadused",uploadTab:"Lae üles",urlMissing:"Pildi lähte-URL on puudu."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/eu.js b/src/lib/ckeditor/plugins/image2/lang/eu.js new file mode 100644 index 00000000..dadf5a3a --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eu",{alt:"Ordezko Testua",btnUpload:"Zerbitzarira bidalia",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Irudi informazioa",lockRatio:"Erlazioa Blokeatu",menu:"Irudi Ezaugarriak",pathName:"image",pathNameCaption:"caption",resetSize:"Tamaina Berrezarri",resizer:"Click and drag to resize",title:"Irudi Ezaugarriak",uploadTab:"Gora kargatu",urlMissing:"Irudiaren iturburu URL-a falta da."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/fa.js b/src/lib/ckeditor/plugins/image2/lang/fa.js new file mode 100644 index 00000000..6600e16e --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fa",{alt:"متن جایگزین",btnUpload:"به سرور بفرست",captioned:"تصویر زیرنویس شده",captionPlaceholder:"عنوان",infoTab:"اطلاعات تصویر",lockRatio:"قفل کردن نسبت",menu:"ویژگی​های تصویر",pathName:"تصویر",pathNameCaption:"عنوان",resetSize:"بازنشانی اندازه",resizer:"کلیک و کشیدن برای تغییر اندازه",title:"ویژگی​های تصویر",uploadTab:"بالاگذاری",urlMissing:"آدرس URL اصلی تصویر یافت نشد."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/fi.js b/src/lib/ckeditor/plugins/image2/lang/fi.js new file mode 100644 index 00000000..e4a104e8 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fi",{alt:"Vaihtoehtoinen teksti",btnUpload:"Lähetä palvelimelle",captioned:"Kuva kuvatekstillä",captionPlaceholder:"Kuvateksti",infoTab:"Kuvan tiedot",lockRatio:"Lukitse suhteet",menu:"Kuvan ominaisuudet",pathName:"kuva",pathNameCaption:"kuvateksti",resetSize:"Alkuperäinen koko",resizer:"Klikkaa ja raahaa muuttaaksesi kokoa",title:"Kuvan ominaisuudet",uploadTab:"Lisää tiedosto",urlMissing:"Kuvan lähdeosoite puuttuu."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/fo.js b/src/lib/ckeditor/plugins/image2/lang/fo.js new file mode 100644 index 00000000..a2bbfae9 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fo",{alt:"Alternativur tekstur",btnUpload:"Send til ambætaran",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Myndaupplýsingar",lockRatio:"Læs lutfallið",menu:"Myndaeginleikar",pathName:"image",pathNameCaption:"caption",resetSize:"Upprunastødd",resizer:"Click and drag to resize",title:"Myndaeginleikar",uploadTab:"Send til ambætaran",urlMissing:"URL til mynd manglar."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/fr-ca.js b/src/lib/ckeditor/plugins/image2/lang/fr-ca.js new file mode 100644 index 00000000..30cd9e98 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr-ca",{alt:"Texte alternatif",btnUpload:"Envoyer sur le serveur",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informations sur l'image2",lockRatio:"Verrouiller les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"caption",resetSize:"Taille originale",resizer:"Click and drag to resize",title:"Propriétés de l'image2",uploadTab:"Téléverser",urlMissing:"L'URL de la source de l'image est manquant."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/fr.js b/src/lib/ckeditor/plugins/image2/lang/fr.js new file mode 100644 index 00000000..2c7ed973 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr",{alt:"Texte de remplacement",btnUpload:"Envoyer sur le serveur",captioned:"Image légendée",captionPlaceholder:"Légende",infoTab:"Informations sur l'image2",lockRatio:"Conserver les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"légende",resetSize:"Taille d'origine",resizer:"Cliquer et glisser pour redimensionner",title:"Propriétés de l'image2",uploadTab:"Envoyer",urlMissing:"L'adresse source de l'image est manquante."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/gl.js b/src/lib/ckeditor/plugins/image2/lang/gl.js new file mode 100644 index 00000000..f030c9e4 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gl",{alt:"Texto alternativo",btnUpload:"Enviar ao servidor",captioned:"Imaxe subtitulada ",captionPlaceholder:"Caption",infoTab:"Información da imaxe",lockRatio:"Proporcional",menu:"Propiedades da imaxe",pathName:"Imaxe",pathNameCaption:"subtítulo",resetSize:"Tamaño orixinal",resizer:"Prema e arrastre para axustar o tamaño",title:"Propiedades da imaxe",uploadTab:"Cargar",urlMissing:"Non se atopa o URL da imaxe."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/gu.js b/src/lib/ckeditor/plugins/image2/lang/gu.js new file mode 100644 index 00000000..4e83249d --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gu",{alt:"ઑલ્ટર્નટ ટેક્સ્ટ",btnUpload:"આ સર્વરને મોકલવું",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ચિત્ર ની જાણકારી",lockRatio:"લૉક ગુણોત્તર",menu:"ચિત્રના ગુણ",pathName:"image",pathNameCaption:"caption",resetSize:"રીસેટ સાઇઝ",resizer:"Click and drag to resize",title:"ચિત્રના ગુણ",uploadTab:"અપલોડ",urlMissing:"ઈમેજની મૂળ URL છે નહી."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/he.js b/src/lib/ckeditor/plugins/image2/lang/he.js new file mode 100644 index 00000000..4787142e --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","he",{alt:"טקסט חלופי",btnUpload:"שליחה לשרת",captioned:"כותרת תמונה",captionPlaceholder:"Caption",infoTab:"מידע על התמונה",lockRatio:"נעילת היחס",menu:"תכונות התמונה",pathName:"תמונה",pathNameCaption:"כותרת",resetSize:"איפוס הגודל",resizer:"לחץ וגרור לשינוי הגודל",title:"מאפייני התמונה",uploadTab:"העלאה",urlMissing:"כתובת התמונה חסרה."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/hi.js b/src/lib/ckeditor/plugins/image2/lang/hi.js new file mode 100644 index 00000000..ec9225d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hi",{alt:"वैकल्पिक टेक्स्ट",btnUpload:"इसे सर्वर को भेजें",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"तस्वीर की जानकारी",lockRatio:"लॉक अनुपात",menu:"तस्वीर प्रॉपर्टीज़",pathName:"image",pathNameCaption:"caption",resetSize:"रीसॅट साइज़",resizer:"Click and drag to resize",title:"तस्वीर प्रॉपर्टीज़",uploadTab:"अपलोड",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/hr.js b/src/lib/ckeditor/plugins/image2/lang/hr.js new file mode 100644 index 00000000..812813c5 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hr",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Svojstva slika",pathName:"image",pathNameCaption:"caption",resetSize:"Obriši veličinu",resizer:"Click and drag to resize",title:"Svojstva slika",uploadTab:"Pošalji",urlMissing:"Nedostaje URL slike."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/hu.js b/src/lib/ckeditor/plugins/image2/lang/hu.js new file mode 100644 index 00000000..bffa8b81 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hu",{alt:"Buborék szöveg",btnUpload:"Küldés a szerverre",captioned:"Feliratozott kép",captionPlaceholder:"Képfelirat",infoTab:"Alaptulajdonságok",lockRatio:"Arány megtartása",menu:"Kép tulajdonságai",pathName:"kép",pathNameCaption:"felirat",resetSize:"Eredeti méret",resizer:"Kattints és húzz az átméretezéshez",title:"Kép tulajdonságai",uploadTab:"Feltöltés",urlMissing:"Hiányzik a kép URL-je"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/id.js b/src/lib/ckeditor/plugins/image2/lang/id.js new file mode 100644 index 00000000..a238cab5 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","id",{alt:"Teks alternatif",btnUpload:"Kirim ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Gambar",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Unggah",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/is.js b/src/lib/ckeditor/plugins/image2/lang/is.js new file mode 100644 index 00000000..196c68dc --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","is",{alt:"Baklægur texti",btnUpload:"Hlaða upp",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Almennt",lockRatio:"Festa stærðarhlutfall",menu:"Eigindi myndar",pathName:"image",pathNameCaption:"caption",resetSize:"Reikna stærð",resizer:"Click and drag to resize",title:"Eigindi myndar",uploadTab:"Senda upp",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/it.js b/src/lib/ckeditor/plugins/image2/lang/it.js new file mode 100644 index 00000000..d65b4549 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","it",{alt:"Testo alternativo",btnUpload:"Invia al server",captioned:"Immagine con didascalia",captionPlaceholder:"Didascalia",infoTab:"Informazioni immagine",lockRatio:"Blocca rapporto",menu:"Proprietà immagine",pathName:"immagine",pathNameCaption:"didascalia",resetSize:"Reimposta dimensione",resizer:"Fare clic e trascinare per ridimensionare",title:"Proprietà immagine",uploadTab:"Carica",urlMissing:"Manca l'URL dell'immagine."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ja.js b/src/lib/ckeditor/plugins/image2/lang/ja.js new file mode 100644 index 00000000..b4457fd7 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ja",{alt:"代替テキスト",btnUpload:"サーバーに送信",captioned:"キャプションを付ける",captionPlaceholder:"キャプション",infoTab:"画像情報",lockRatio:"比率を固定",menu:"画像のプロパティ",pathName:"image",pathNameCaption:"caption",resetSize:"サイズをリセット",resizer:"ドラッグしてリサイズ",title:"画像のプロパティ",uploadTab:"アップロード",urlMissing:"画像のURLを入力してください。"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ka.js b/src/lib/ckeditor/plugins/image2/lang/ka.js new file mode 100644 index 00000000..88407289 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ka",{alt:"სანაცვლო ტექსტი",btnUpload:"სერვერისთვის გაგზავნა",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"სურათის ინფორმცია",lockRatio:"პროპორციის შენარჩუნება",menu:"სურათის პარამეტრები",pathName:"image",pathNameCaption:"caption",resetSize:"ზომის დაბრუნება",resizer:"Click and drag to resize",title:"სურათის პარამეტრები",uploadTab:"აქაჩვა",urlMissing:"სურათის URL არაა შევსებული."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/km.js b/src/lib/ckeditor/plugins/image2/lang/km.js new file mode 100644 index 00000000..993429cd --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","km",{alt:"អត្ថបទជំនួស",btnUpload:"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",captioned:"រូប​ដែល​មាន​ចំណង​ជើង",captionPlaceholder:"Caption",infoTab:"ពត៌មានអំពីរូបភាព",lockRatio:"ចាក់​សោ​ផល​ធៀប",menu:"លក្ខណៈ​សម្បត្តិ​រូប​ភាព",pathName:"រូបភាព",pathNameCaption:"ចំណងជើង",resetSize:"កំណត់ទំហំឡើងវិញ",resizer:"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ",title:"លក្ខណៈ​សម្បត្តិ​រូប​ភាប",uploadTab:"ផ្ទុក​ឡើង",urlMissing:"ខ្វះ URL ប្រភព​រូប​ភាព។"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ko.js b/src/lib/ckeditor/plugins/image2/lang/ko.js new file mode 100644 index 00000000..90726a2a --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ko",{alt:"이미지 설명",btnUpload:"서버로 전송",captioned:"이미지 설명 넣기",captionPlaceholder:"Caption",infoTab:"이미지 정보",lockRatio:"비율 유지",menu:"이미지 설정",pathName:"이미지",pathNameCaption:"이미지 설명",resetSize:"원래 크기로",resizer:"크기를 조절하려면 클릭 후 드래그 하세요",title:"이미지 설정",uploadTab:"업로드",urlMissing:"이미지 소스 URL이 없습니다."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ku.js b/src/lib/ckeditor/plugins/image2/lang/ku.js new file mode 100644 index 00000000..6ec1c93f --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ku",{alt:"جێگرەوەی دەق",btnUpload:"ناردنی بۆ ڕاژه",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"زانیاری وێنه",lockRatio:"داخستنی ڕێژه",menu:"خاسیەتی وێنه",pathName:"image",pathNameCaption:"caption",resetSize:"ڕێکخستنەوەی قەباره",resizer:"Click and drag to resize",title:"خاسیەتی وێنه",uploadTab:"بارکردن",urlMissing:"سەرچاوەی بەستەری وێنه بزره"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/lt.js b/src/lib/ckeditor/plugins/image2/lang/lt.js new file mode 100644 index 00000000..47b883d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lt",{alt:"Alternatyvus Tekstas",btnUpload:"Siųsti į serverį",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Vaizdo informacija",lockRatio:"Išlaikyti proporciją",menu:"Vaizdo savybės",pathName:"image",pathNameCaption:"caption",resetSize:"Atstatyti dydį",resizer:"Click and drag to resize",title:"Vaizdo savybės",uploadTab:"Siųsti",urlMissing:"Paveiksliuko nuorodos nėra."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/lv.js b/src/lib/ckeditor/plugins/image2/lang/lv.js new file mode 100644 index 00000000..069595db --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lv",{alt:"Alternatīvais teksts",btnUpload:"Nosūtīt serverim",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informācija par attēlu",lockRatio:"Nemainīga Augstuma/Platuma attiecība",menu:"Attēla īpašības",pathName:"image",pathNameCaption:"caption",resetSize:"Atjaunot sākotnējo izmēru",resizer:"Click and drag to resize",title:"Attēla īpašības",uploadTab:"Augšupielādēt",urlMissing:"Trūkst attēla atrašanās adrese."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/mk.js b/src/lib/ckeditor/plugins/image2/lang/mk.js new file mode 100644 index 00000000..0d5b35e5 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mk",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/mn.js b/src/lib/ckeditor/plugins/image2/lang/mn.js new file mode 100644 index 00000000..f2d437f5 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mn",{alt:"Зургийг орлох бичвэр",btnUpload:"Үүнийг сервэррүү илгээ",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Зурагны мэдээлэл",lockRatio:"Радио түгжих",menu:"Зураг",pathName:"image",pathNameCaption:"caption",resetSize:"хэмжээ дахин оноох",resizer:"Click and drag to resize",title:"Зураг",uploadTab:"Илгээж ачаалах",urlMissing:"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ms.js b/src/lib/ckeditor/plugins/image2/lang/ms.js new file mode 100644 index 00000000..8d1d6652 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ms",{alt:"Text Alternatif",btnUpload:"Hantar ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Imej",lockRatio:"Tetapkan Nisbah",menu:"Ciri-ciri Imej",pathName:"image",pathNameCaption:"caption",resetSize:"Saiz Set Semula",resizer:"Click and drag to resize",title:"Ciri-ciri Imej",uploadTab:"Muat Naik",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/nb.js b/src/lib/ckeditor/plugins/image2/lang/nb.js new file mode 100644 index 00000000..2f237a60 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nb",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Bildetekst",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/nl.js b/src/lib/ckeditor/plugins/image2/lang/nl.js new file mode 100644 index 00000000..f032d845 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nl",{alt:"Alternatieve tekst",btnUpload:"Naar server verzenden",captioned:"Afbeelding met onderschrift",captionPlaceholder:"Onderschrift",infoTab:"Afbeeldingsinformatie",lockRatio:"Verhouding vergrendelen",menu:"Eigenschappen afbeelding",pathName:"afbeelding",pathNameCaption:"onderschrift",resetSize:"Afmetingen herstellen",resizer:"Klik en sleep om te herschalen",title:"Afbeeldingseigenschappen",uploadTab:"Uploaden",urlMissing:"De URL naar de afbeelding ontbreekt."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/no.js b/src/lib/ckeditor/plugins/image2/lang/no.js new file mode 100644 index 00000000..11bffbbc --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","no",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Caption",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/pl.js b/src/lib/ckeditor/plugins/image2/lang/pl.js new file mode 100644 index 00000000..09e19e37 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pl",{alt:"Tekst zastępczy",btnUpload:"Wyślij",captioned:"Obrazek z podpisem",captionPlaceholder:"Podpis",infoTab:"Informacje o obrazku",lockRatio:"Zablokuj proporcje",menu:"Właściwości obrazka",pathName:"obrazek",pathNameCaption:"podpis",resetSize:"Przywróć rozmiar",resizer:"Kliknij i przeciągnij, by zmienić rozmiar.",title:"Właściwości obrazka",uploadTab:"Wyślij",urlMissing:"Podaj adres URL obrazka."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/pt-br.js b/src/lib/ckeditor/plugins/image2/lang/pt-br.js new file mode 100644 index 00000000..82c42e85 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt-br",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Legenda da Imagem",captionPlaceholder:"Legenda",infoTab:"Informações da Imagem",lockRatio:"Travar Proporções",menu:"Formatar Imagem",pathName:"Imagem",pathNameCaption:"Legenda",resetSize:"Redefinir para o Tamanho Original",resizer:"Click e arraste para redimensionar",title:"Formatar Imagem",uploadTab:"Enviar ao Servidor",urlMissing:"URL da imagem está faltando."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/pt.js b/src/lib/ckeditor/plugins/image2/lang/pt.js new file mode 100644 index 00000000..d46507bb --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Imagem Legendada",captionPlaceholder:"Caption",infoTab:"Informação da Imagem",lockRatio:"Proporcional",menu:"Propriedades da Imagem",pathName:"imagem",pathNameCaption:"legenda",resetSize:"Tamanho Original",resizer:"Clique e arraste para redimensionar",title:"Propriedades da Imagem",uploadTab:"Enviar",urlMissing:"O URL da fonte da imagem está em falta."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ro.js b/src/lib/ckeditor/plugins/image2/lang/ro.js new file mode 100644 index 00000000..8f860894 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ro",{alt:"Text alternativ",btnUpload:"Trimite la server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informaţii despre imagine",lockRatio:"Păstrează proporţiile",menu:"Proprietăţile imaginii",pathName:"image",pathNameCaption:"caption",resetSize:"Resetează mărimea",resizer:"Click and drag to resize",title:"Proprietăţile imaginii",uploadTab:"Încarcă",urlMissing:"Sursa URL a imaginii lipsește."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ru.js b/src/lib/ckeditor/plugins/image2/lang/ru.js new file mode 100644 index 00000000..eda93cb0 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ru",{alt:"Альтернативный текст",btnUpload:"Загрузить на сервер",captioned:"Захваченное изображение",captionPlaceholder:"Название",infoTab:"Данные об изображении",lockRatio:"Сохранять пропорции",menu:"Свойства изображения",pathName:"изображение",pathNameCaption:"захват",resetSize:"Вернуть обычные размеры",resizer:"Нажмите и растяните",title:"Свойства изображения",uploadTab:"Загрузка файла",urlMissing:"Не указана ссылка на изображение."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/si.js b/src/lib/ckeditor/plugins/image2/lang/si.js new file mode 100644 index 00000000..5ab518c1 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","si",{alt:"විකල්ප ",btnUpload:"සේවාදායකය වෙත යොමුකිරිම",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"රුපයේ තොරතුරු",lockRatio:"නවතන අනුපාතය ",menu:"රුපයේ ගුණ",pathName:"image",pathNameCaption:"caption",resetSize:"නැවතත් විශාලත්වය වෙනස් කිරීම",resizer:"Click and drag to resize",title:"රුපයේ ",uploadTab:"උඩුගතකිරීම",urlMissing:"රුප මුලාශ්‍ර URL නැත."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/sk.js b/src/lib/ckeditor/plugins/image2/lang/sk.js new file mode 100644 index 00000000..18778843 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sk",{alt:"Alternatívny text",btnUpload:"Odoslať to na server",captioned:"Opísaný obrázok",captionPlaceholder:"Popis",infoTab:"Informácie o obrázku",lockRatio:"Pomer zámky",menu:"Vlastnosti obrázka",pathName:"obrázok",pathNameCaption:"popis",resetSize:"Pôvodná veľkosť",resizer:"Kliknite a potiahnite pre zmenu veľkosti",title:"Vlastnosti obrázka",uploadTab:"Nahrať",urlMissing:"Chýba URL zdroja obrázka."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/sl.js b/src/lib/ckeditor/plugins/image2/lang/sl.js new file mode 100644 index 00000000..aced917a --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sl",{alt:"Nadomestno besedilo",btnUpload:"Pošlji na strežnik",captioned:"Podnaslovljena slika",captionPlaceholder:"Napis",infoTab:"Podatki o sliki",lockRatio:"Zakleni razmerje",menu:"Lastnosti slike",pathName:"slika",pathNameCaption:"napis",resetSize:"Ponastavi velikost",resizer:"Kliknite in povlecite, da spremeniti velikost",title:"Lastnosti slike",uploadTab:"Naloži",urlMissing:"Manjka vir (URL) slike."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/sq.js b/src/lib/ckeditor/plugins/image2/lang/sq.js new file mode 100644 index 00000000..8232aef2 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sq",{alt:"Tekst Alternativ",btnUpload:"Dërgo në server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informacione mbi Fotografinë",lockRatio:"Mbyll Racionin",menu:"Karakteristikat e Fotografisë",pathName:"image",pathNameCaption:"caption",resetSize:"Rikthe Madhësinë",resizer:"Click and drag to resize",title:"Karakteristikat e Fotografisë",uploadTab:"Ngarko",urlMissing:"Mungon URL e burimit të fotografisë."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/sr-latn.js b/src/lib/ckeditor/plugins/image2/lang/sr-latn.js new file mode 100644 index 00000000..287f0265 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr-latn",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Osobine slika",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj veličinu",resizer:"Click and drag to resize",title:"Osobine slika",uploadTab:"Pošalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/sr.js b/src/lib/ckeditor/plugins/image2/lang/sr.js new file mode 100644 index 00000000..18857fb7 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr",{alt:"Алтернативни текст",btnUpload:"Пошаљи на сервер",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо слике",lockRatio:"Закључај однос",menu:"Особине слика",pathName:"image",pathNameCaption:"caption",resetSize:"Ресетуј величину",resizer:"Click and drag to resize",title:"Особине слика",uploadTab:"Пошаљи",urlMissing:"Недостаје УРЛ слике."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/sv.js b/src/lib/ckeditor/plugins/image2/lang/sv.js new file mode 100644 index 00000000..2c5ed3f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sv",{alt:"Alternativ text",btnUpload:"Skicka till server",captioned:"Rubricerad bild",captionPlaceholder:"Bildtext",infoTab:"Bildinformation",lockRatio:"Lås höjd/bredd förhållanden",menu:"Bildegenskaper",pathName:"bild",pathNameCaption:"rubrik",resetSize:"Återställ storlek",resizer:"Klicka och drag för att ändra storlek",title:"Bildegenskaper",uploadTab:"Ladda upp",urlMissing:"Bildkällans URL saknas."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/th.js b/src/lib/ckeditor/plugins/image2/lang/th.js new file mode 100644 index 00000000..636814d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","th",{alt:"คำประกอบรูปภาพ",btnUpload:"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ข้อมูลของรูปภาพ",lockRatio:"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่",menu:"คุณสมบัติของ รูปภาพ",pathName:"image",pathNameCaption:"caption",resetSize:"กำหนดรูปเท่าขนาดจริง",resizer:"Click and drag to resize",title:"คุณสมบัติของ รูปภาพ",uploadTab:"อัพโหลดไฟล์",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/tr.js b/src/lib/ckeditor/plugins/image2/lang/tr.js new file mode 100644 index 00000000..305d1b39 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tr",{alt:"Alternatif Yazı",btnUpload:"Sunucuya Yolla",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Resim Bilgisi",lockRatio:"Oranı Kilitle",menu:"Resim Özellikleri",pathName:"Resim",pathNameCaption:"caption",resetSize:"Boyutu Başa Döndür",resizer:"Boyutlandırmak için, tıklayın ve sürükleyin",title:"Resim Özellikleri",uploadTab:"Karşıya Yükle",urlMissing:"Resmin URL kaynağı bulunamadı."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/tt.js b/src/lib/ckeditor/plugins/image2/lang/tt.js new file mode 100644 index 00000000..2133d73b --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tt",{alt:"Альтернатив текст",btnUpload:"Серверга җибәрү",captioned:"Исеме куелган рәсем",captionPlaceholder:"Исем",infoTab:"Рәсем тасвирламасы",lockRatio:"Lock Ratio",menu:"Рәсем үзлекләре",pathName:"рәсем",pathNameCaption:"исем",resetSize:"Баштагы зурлык",resizer:"Күчереп куер өчен басып шудырыгыз",title:"Рәсем үзлекләре",uploadTab:"Йөкләү",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/ug.js b/src/lib/ckeditor/plugins/image2/lang/ug.js new file mode 100644 index 00000000..7913ee9f --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ug",{alt:"تېكىست ئالماشتۇر",btnUpload:"مۇلازىمېتىرغا يۈكلە",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"سۈرەت",lockRatio:"نىسبەتنى قۇلۇپلا",menu:"سۈرەت خاسلىقى",pathName:"image",pathNameCaption:"caption",resetSize:"ئەسلى چوڭلۇق",resizer:"Click and drag to resize",title:"سۈرەت خاسلىقى",uploadTab:"يۈكلە",urlMissing:"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/uk.js b/src/lib/ckeditor/plugins/image2/lang/uk.js new file mode 100644 index 00000000..989eb551 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","uk",{alt:"Альтернативний текст",btnUpload:"Надіслати на сервер",captioned:"Підписане зображення",captionPlaceholder:"Caption",infoTab:"Інформація про зображення",lockRatio:"Зберегти пропорції",menu:"Властивості зображення",pathName:"Зображення",pathNameCaption:"заголовок",resetSize:"Очистити поля розмірів",resizer:"Клікніть та потягніть для зміни розмірів",title:"Властивості зображення",uploadTab:"Надіслати",urlMissing:"Вкажіть URL зображення."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/vi.js b/src/lib/ckeditor/plugins/image2/lang/vi.js new file mode 100644 index 00000000..863c40d1 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","vi",{alt:"Chú thích ảnh",btnUpload:"Tải lên máy chủ",captioned:"Ảnh có chú thích",captionPlaceholder:"Nhãn",infoTab:"Thông tin của ảnh",lockRatio:"Giữ nguyên tỷ lệ",menu:"Thuộc tính của ảnh",pathName:"ảnh",pathNameCaption:"chú thích",resetSize:"Kích thước gốc",resizer:"Kéo rê để thay đổi kích cỡ",title:"Thuộc tính của ảnh",uploadTab:"Tải lên",urlMissing:"Thiếu đường dẫn hình ảnh"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/zh-cn.js b/src/lib/ckeditor/plugins/image2/lang/zh-cn.js new file mode 100644 index 00000000..3209b92f --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh-cn",{alt:"替换文本",btnUpload:"上传到服务器",captioned:"带标题图像",captionPlaceholder:"标题",infoTab:"图像信息",lockRatio:"锁定比例",menu:"图像属性",pathName:"图像",pathNameCaption:"标题",resetSize:"原始尺寸",resizer:"点击并拖拽以改变尺寸",title:"图像属性",uploadTab:"上传",urlMissing:"缺少图像源文件地址"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/lang/zh.js b/src/lib/ckeditor/plugins/image2/lang/zh.js new file mode 100644 index 00000000..f9489af4 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh",{alt:"替代文字",btnUpload:"傳送至伺服器",captioned:"已加標題之圖片",captionPlaceholder:"Caption",infoTab:"影像資訊",lockRatio:"固定比例",menu:"影像屬性",pathName:"圖片",pathNameCaption:"標題",resetSize:"重設大小",resizer:"拖曳以改變大小",title:"影像屬性",uploadTab:"上傳",urlMissing:"遺失圖片來源之 URL "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/image2/plugin.js b/src/lib/ckeditor/plugins/image2/plugin.js new file mode 100644 index 00000000..37195045 --- /dev/null +++ b/src/lib/ckeditor/plugins/image2/plugin.js @@ -0,0 +1,30 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function A(a){function b(){this.deflated||(a.widgets.focused==this.widget&&(this.focused=!0),a.widgets.destroy(this.widget),this.deflated=!0)}function e(){var d=a.editable(),c=a.document;if(this.deflated)this.widget=a.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!(new CKEDITOR.dom.elementPath(this.widget.wrapper,d)).block&&(d=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),d.replace(this.widget.wrapper),this.widget.wrapper.move(d)),this.focused&& +(this.widget.focus(),delete this.focused),delete this.deflated;else{var b=this.widget,d=f,c=b.wrapper,e=b.data.align,b=b.data.hasCaption;if(d){for(var j=3;j--;)c.removeClass(d[j]);"center"==e?b&&c.addClass(d[1]):"none"!=e&&c.addClass(d[n[e]])}else"center"==e?(b?c.setStyle("text-align","center"):c.removeStyle("text-align"),c.removeStyle("float")):("none"==e?c.removeStyle("float"):c.setStyle("float",e),c.removeStyle("text-align"))}}var f=a.config.image2_alignClasses,g=a.config.image2_captionedClass; +return{allowedContent:B(a),requiredContent:"img[src,alt]",features:C(a),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href]"}},parts:{image:"img",caption:"figcaption"},dialog:"image2",template:z,data:function(){var d=this.features;this.data.hasCaption&&!a.filter.checkFeature(d.caption)&&(this.data.hasCaption=!1);"none"!=this.data.align&&!a.filter.checkFeature(d.align)&& +(this.data.align="none");this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:b,inflate:e});this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link;this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt});if(this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var c in this.data.classes)this.parts.image.removeClass(c);if(a.filter.checkFeature(d.dimension)){d= +this.data;d={width:d.width,height:d.height};c=this.parts.image;for(var f in d)d[f]?c.setAttribute(f,d[f]):c.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,c=this.parts.image,e={hasCaption:!!this.parts.caption,src:c.getAttribute("src"),alt:c.getAttribute("alt")||"",width:c.getAttribute("width")||"",height:c.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(c):!0},g=c.getAscendant("a");g&&this.wrapper.contains(g)&&(this.parts.link= +g);e.align||(f?(this.element.hasClass(f[0])?e.align="left":this.element.hasClass(f[2])&&(e.align="right"),e.align?this.element.removeClass(f[n[e.align]]):e.align="none"):(e.align=this.element.getStyle("float")||c.getStyle("float")||"none",this.element.removeStyle("float"),c.removeStyle("float")));if(a.plugins.link&&this.parts.link&&(e.link=CKEDITOR.plugins.link.parseLinkAttributes(a,this.parts.link),(c=e.link.advanced)&&c.advCSSClasses))c.advCSSClasses=CKEDITOR.tools.trim(c.advCSSClasses.replace(/cke_\S+/, +""));this.wrapper[(e.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption");this.setData(e);a.filter.checkFeature(this.features.dimension)&&D(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF});this.on("dialog",function(a){a.data.widget=this},this)},addClass:function(a){k(this).addClass(a)},hasClass:function(a){return k(this).hasClass(a)}, +removeClass:function(a){k(this).removeClass(a)},getClasses:function(){var a=RegExp("^("+[].concat(g,f).join("|")+")$");return function(){var b=this.repository.parseElementClasses(k(this).getAttribute("class")),e;for(e in b)a.test(e)&&delete b[e];return b}}(),upcast:E(a),downcast:F(a)}}function E(a){var b=l(a),e=a.config.image2_captionedClass;return function(a,g){var d={width:1,height:1},c=a.name,h;if(!a.attributes["data-cke-realelement"]){if(b(a)){if("div"==c&&(h=a.getFirst("figure")))a.replaceWith(h), +a=h;g.align="center";h=a.getFirst("img")||a.getFirst("a").getFirst("img")}else"figure"==c&&a.hasClass(e)?h=a.getFirst("img")||a.getFirst("a").getFirst("img"):o(a)&&(h="a"==a.name?a.children[0]:a);if(h){for(var y in d)(c=h.attributes[y])&&c.match(G)&&delete h.attributes[y];return a}}}}function F(a){var b=a.config.image2_alignClasses;return function(a){var f="a"==a.name?a.getFirst():a,g=f.attributes,d=this.data.align;if(!this.inline){var c=a.getFirst("span");c&&c.replaceWith(c.getFirst({img:1,a:1}))}d&& +"none"!=d&&(c=CKEDITOR.tools.parseCssText(g.style||""),"center"==d&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):d in{left:1,right:1}&&(b?f.addClass(b[n[d]]):c["float"]=d),!b&&!CKEDITOR.tools.isEmpty(c)&&(g.style=CKEDITOR.tools.writeCssText(c)));return a}}function l(a){var b=a.config.image2_captionedClass,e=a.config.image2_alignClasses,f={figure:1,a:1,img:1};return function(g){if(!(g.name in{div:1,p:1}))return!1;var d=g.children; +if(1!==d.length)return!1;d=d[0];if(!(d.name in f))return!1;if("p"==g.name){if(!o(d))return!1}else if("figure"==d.name){if(!d.hasClass(b))return!1}else if(a.enterMode==CKEDITOR.ENTER_P||!o(d))return!1;return(e?g.hasClass(e[1]):"center"==CKEDITOR.tools.parseCssText(g.attributes.style||"",!0)["text-align"])?!0:!1}}function o(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function D(a){var b=a.editor,e=b.editable(),f=b.document,g=a.resizer=f.createElement("span");g.addClass("cke_image_resizer"); +g.setAttribute("title",b.lang.image2.resizer);g.append(new CKEDITOR.dom.text("​",f));if(a.inline)a.wrapper.append(g);else{var d=a.parts.link||a.parts.image,c=d.getParent(),h=f.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(d);h.append(g);a.element.append(h,!0);c.is("span")&&c.remove()}g.on("mousedown",function(c){function j(a,b,c){var d=CKEDITOR.document,j=[];f.equals(d)||j.push(d.on(a,b));j.push(f.on(a,b));if(c)for(a=j.length;a--;)c.push(j.pop())}function d(){p=k+w*t;q=Math.round(p/ +r)}function s(){q=n-m;p=Math.round(q*r)}var h=a.parts.image,w="right"==a.data.align?-1:1,i=c.data.$.screenX,H=c.data.$.screenY,k=h.$.clientWidth,n=h.$.clientHeight,r=k/n,l=[],o="cke_image_s"+(!~w?"w":"e"),x,p,q,v,t,m,u;b.fire("saveSnapshot");j("mousemove",function(a){x=a.data.$;t=x.screenX-i;m=H-x.screenY;u=Math.abs(t/m);1==w?0>=t?0>=m?d():u>=r?d():s():0>=m?u>=r?s():d():s():0>=t?0>=m?u>=r?s():d():s():0>=m?d():u>=r?d():s();15<=p&&15<=q?(h.setAttributes({width:p,height:q}),v=!0):v=!1},l);j("mouseup", +function(){for(var c;c=l.pop();)c.removeListener();e.removeClass(o);g.removeClass("cke_image_resizing");v&&(a.setData({width:p,height:q}),b.fire("saveSnapshot"));v=!1},l);e.addClass(o);g.addClass("cke_image_resizing")});a.on("data",function(){g["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function I(a){var b=[],e;return function(f){var g=a.getCommand("justify"+f);if(g){b.push(function(){g.refresh(a,a.elementPath())});if(f in{right:1,left:1,center:1})g.on("exec",function(d){var c= +i(a);if(c){c.setData("align",f);for(c=b.length;c--;)b[c]();d.cancel()}});g.on("refresh",function(b){var c=i(a),g={right:1,left:1,center:1};c&&(void 0==e&&(e=a.filter.checkFeature(a.widgets.registered.image.features.align)),e?this.setState(c.data.align==f?CKEDITOR.TRISTATE_ON:f in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function J(a){a.plugins.link&&(CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){var b=b.definition, +e=b.onShow,f=b.onOk;b.onShow=function(){var b=i(a);b&&(b.inline?!b.wrapper.getAscendant("a"):1)?this.setupContent(b.data.link||{}):e.apply(this,arguments)};b.onOk=function(){var b=i(a);if(b&&(b.inline?!b.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);b.setData("link",d)}else f.apply(this,arguments)}}}),a.getCommand("unlink").on("exec",function(b){var e=i(a);e&&e.parts.link&&(e.setData("link",null),this.refresh(a,a.elementPath()),b.cancel())}),a.getCommand("unlink").on("refresh",function(b){var e= +i(a);e&&(this.setState(e.data.link||e.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),b.cancel())}))}function i(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function B(a){var b=a.config.image2_alignClasses,a={div:{match:l(a)},p:{match:l(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+a.config.image2_captionedClass},figcaption:!0};b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+a.img.classes):(a.div.styles= +"text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function C(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function k(a){return a.data.hasCaption?a.element:a.parts.image}var z='<img alt="" src="" />',K=new CKEDITOR.template('<figure class="{captionedClass}">'+z+"<figcaption>{captionPlaceholder}</figcaption></figure>"), +n={left:0,center:1,right:2},G=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")}, +init:function(a){var b=a.config,e=a.lang.image2,f=A(a);b.filebrowserImage2BrowseUrl=b.filebrowserImageBrowseUrl;b.filebrowserImage2UploadUrl=b.filebrowserImageUploadUrl;f.pathName=e.pathName;f.editables.caption.pathName=e.pathNameCaption;a.widgets.add("image",f);a.ui.addButton&&a.ui.addButton("Image",{label:a.lang.common.image,command:"image",toolbar:"insert,10"});a.contextMenu&&(a.addMenuGroup("image",10),a.addMenuItem("image",{label:e.menu,command:"image",group:"image"}));CKEDITOR.dialog.add("image2", +this.path+"dialogs/image2.js")},afterInit:function(a){var b={left:1,right:1,center:1,block:1},e=I(a),f;for(f in b)e(f);J(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,b){var c={};g?c.attributes={"class":g[1]}:c.styles={"text-align":"center"};c=f.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",c);e(c,b);b.move(c);return c}function e(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();c.insertElementIntoRange(b, +e)}else b.replace(d)}var f=a.document,g=a.config.image2_alignClasses,d=a.config.image2_captionedClass,c=a.editable(),h=["hasCaption","align","link"],i={align:function(c,d,e){var f=c.element;if(c.changed.align){if(!c.newData.hasCaption&&("center"==e&&(c.deflate(),c.element=b(a,f)),!c.changed.hasCaption&&"center"==d&&"center"!=e))c.deflate(),d=f.findOne("a,img"),d.replace(f),c.element=d}else"center"==e&&(c.changed.hasCaption&&!c.newData.hasCaption)&&(c.deflate(),c.element=b(a,f));!g&&f.is("figure")&& +("center"==e?f.setStyle("display","inline-block"):f.removeStyle("display"))},hasCaption:function(b,c,g){b.changed.hasCaption&&(c=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(K.output({captionedClass:d,captionPlaceholder:a.lang.image2.captionPlaceholder}),f),e(g,b.element),c.replace(g.findOne("img")),b.element=g):(c.replace(b.element),b.element=c))},link:function(b,c,d){if(b.changed.link){var e=b.element.is("img")?b.element:b.element.findOne("img"), +g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!d||b.element.is("img")&&d,i;h&&b.deflate();d?(c||(i=f.createElement("a",{attributes:{href:b.newData.link.url}}),i.replace(e),e.move(i)),d=CKEDITOR.plugins.link.getLinkAttributes(a,d),CKEDITOR.tools.isEmpty(d.set)||(i||g).setAttributes(d.set),d.removed.length&&(i||g).removeAttributes(d.removed)):(d=g.findOne("img"),d.replace(g),i=d);h&&(b.element=i)}}};return function(a){var b,c;a.changed={};for(c=0;c<h.length;c++)b=h[c],a.changed[b]= +a.oldData?a.oldData[b]!==a.newData[b]:!1;for(c=0;c<h.length;c++)b=h[c],i[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$,a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=a.getAttribute("src");a={width:b.width,height:b.height}}return a}}})(); +CKEDITOR.config.image2_captionedClass="image"; \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/indentblock/plugin.js b/src/lib/ckeditor/plugins/indentblock/plugin.js new file mode 100644 index 00000000..ab69d14c --- /dev/null +++ b/src/lib/ckeditor/plugins/indentblock/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,f=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=f?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{var c=i(b,a),a=parseInt(b.getStyle(c),10),g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(f?1:-1)*g;if(0>a)return;a=Math.max(a, +0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function i(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var j=CKEDITOR.dtd.$listItem,l=CKEDITOR.dtd.$list,f=CKEDITOR.TRISTATE_DISABLED,k=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(b,c){a.specificDefinition.apply(this, +arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:!d?"margin-left,margin-right":null,classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(e.is(j))e=e.getParent();else if(e.getAscendant(j))return f;if(!this.enterBr&&!this.getContext(b))return f;if(d){var c;c=d;var e=e.$.className.match(this.classNameRegex), +g=this.isIndent;c=e?g?e[1]!=c.slice(-1):true:g;return c?k:f}return this.isIndent?k:e?CKEDITOR[(parseInt(e.getStyle(i(e)),10)||0)<=0?"TRISTATE_DISABLED":"TRISTATE_OFF"]:f},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(l))h.call(this,c,d);else{b=b.createIterator();a=a.config.enterMode;b.enforceRealBlocks=true;for(b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||h.call(this,c,d)}return true}}}}var a= +CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?RegExp("(?:^|\\s+)("+d.join("|")+")(?=$|\\s)"):null})}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png new file mode 100644 index 00000000..7209fd41 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png new file mode 100644 index 00000000..365e3205 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png new file mode 100644 index 00000000..75308c12 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png new file mode 100644 index 00000000..de7c3d45 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/justifyblock.png b/src/lib/ckeditor/plugins/justify/icons/justifyblock.png new file mode 100644 index 00000000..a507be1b Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/justifyblock.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/justifycenter.png b/src/lib/ckeditor/plugins/justify/icons/justifycenter.png new file mode 100644 index 00000000..f758bc42 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/justifycenter.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/justifyleft.png b/src/lib/ckeditor/plugins/justify/icons/justifyleft.png new file mode 100644 index 00000000..542ddee3 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/justifyleft.png differ diff --git a/src/lib/ckeditor/plugins/justify/icons/justifyright.png b/src/lib/ckeditor/plugins/justify/icons/justifyright.png new file mode 100644 index 00000000..71a983c9 Binary files /dev/null and b/src/lib/ckeditor/plugins/justify/icons/justifyright.png differ diff --git a/src/lib/ckeditor/plugins/justify/lang/af.js b/src/lib/ckeditor/plugins/justify/lang/af.js new file mode 100644 index 00000000..b3bd6aeb --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","af",{block:"Uitvul",center:"Sentreer",left:"Links oplyn",right:"Regs oplyn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ar.js b/src/lib/ckeditor/plugins/justify/lang/ar.js new file mode 100644 index 00000000..39f7a34f --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ar",{block:"ضبط",center:"توسيط",left:"محاذاة إلى اليسار",right:"محاذاة إلى اليمين"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/bg.js b/src/lib/ckeditor/plugins/justify/lang/bg.js new file mode 100644 index 00000000..d4a30cba --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bg",{block:"Двустранно подравняване",center:"Център",left:"Подравни в ляво",right:"Подравни в дясно"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/bn.js b/src/lib/ckeditor/plugins/justify/lang/bn.js new file mode 100644 index 00000000..c58ead92 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bn",{block:"ব্লক জাস্টিফাই",center:"মাঝ বরাবর ঘেষা",left:"বা দিকে ঘেঁষা",right:"ডান দিকে ঘেঁষা"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/bs.js b/src/lib/ckeditor/plugins/justify/lang/bs.js new file mode 100644 index 00000000..9b8553c5 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bs",{block:"Puno poravnanje",center:"Centralno poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ca.js b/src/lib/ckeditor/plugins/justify/lang/ca.js new file mode 100644 index 00000000..b97f2a6b --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ca",{block:"Justificat",center:"Centrat",left:"Alinea a l'esquerra",right:"Alinea a la dreta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/cs.js b/src/lib/ckeditor/plugins/justify/lang/cs.js new file mode 100644 index 00000000..4c9bbb0d --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cs",{block:"Zarovnat do bloku",center:"Zarovnat na střed",left:"Zarovnat vlevo",right:"Zarovnat vpravo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/cy.js b/src/lib/ckeditor/plugins/justify/lang/cy.js new file mode 100644 index 00000000..0a6b4ff7 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cy",{block:"Unioni",center:"Alinio i'r Canol",left:"Alinio i'r Chwith",right:"Alinio i'r Dde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/da.js b/src/lib/ckeditor/plugins/justify/lang/da.js new file mode 100644 index 00000000..0da8f69e --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","da",{block:"Lige margener",center:"Centreret",left:"Venstrestillet",right:"Højrestillet"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/de.js b/src/lib/ckeditor/plugins/justify/lang/de.js new file mode 100644 index 00000000..97fe58cc --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","de",{block:"Blocksatz",center:"Zentriert",left:"Linksbündig",right:"Rechtsbündig"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/el.js b/src/lib/ckeditor/plugins/justify/lang/el.js new file mode 100644 index 00000000..9941eb60 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","el",{block:"Πλήρης Στοίχιση",center:"Στο Κέντρο",left:"Στοίχιση Αριστερά",right:"Στοίχιση Δεξιά"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/en-au.js b/src/lib/ckeditor/plugins/justify/lang/en-au.js new file mode 100644 index 00000000..bb4e7c5c --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-au",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/en-ca.js b/src/lib/ckeditor/plugins/justify/lang/en-ca.js new file mode 100644 index 00000000..46a2d72d --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-ca",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/en-gb.js b/src/lib/ckeditor/plugins/justify/lang/en-gb.js new file mode 100644 index 00000000..9ebe888b --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-gb",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/en.js b/src/lib/ckeditor/plugins/justify/lang/en.js new file mode 100644 index 00000000..20b7ff5e --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/eo.js b/src/lib/ckeditor/plugins/justify/lang/eo.js new file mode 100644 index 00000000..17c15c0d --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eo",{block:"Ĝisrandigi Ambaŭflanke",center:"Centrigi",left:"Ĝisrandigi maldekstren",right:"Ĝisrandigi dekstren"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/es.js b/src/lib/ckeditor/plugins/justify/lang/es.js new file mode 100644 index 00000000..287fa690 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","es",{block:"Justificado",center:"Centrar",left:"Alinear a Izquierda",right:"Alinear a Derecha"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/et.js b/src/lib/ckeditor/plugins/justify/lang/et.js new file mode 100644 index 00000000..5e2eeecc --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","et",{block:"Rööpjoondus",center:"Keskjoondus",left:"Vasakjoondus",right:"Paremjoondus"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/eu.js b/src/lib/ckeditor/plugins/justify/lang/eu.js new file mode 100644 index 00000000..3f4f3493 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eu",{block:"Justifikatu",center:"Lerrokatu Erdian",left:"Lerrokatu Ezkerrean",right:"Lerrokatu Eskuman"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/fa.js b/src/lib/ckeditor/plugins/justify/lang/fa.js new file mode 100644 index 00000000..6a027abe --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fa",{block:"بلوک چین",center:"میان چین",left:"چپ چین",right:"راست چین"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/fi.js b/src/lib/ckeditor/plugins/justify/lang/fi.js new file mode 100644 index 00000000..c309b712 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fi",{block:"Tasaa molemmat reunat",center:"Keskitä",left:"Tasaa vasemmat reunat",right:"Tasaa oikeat reunat"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/fo.js b/src/lib/ckeditor/plugins/justify/lang/fo.js new file mode 100644 index 00000000..cd960d1c --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fo",{block:"Javnir tekstkantar",center:"Miðsett",left:"Vinstrasett",right:"Høgrasett"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/fr-ca.js b/src/lib/ckeditor/plugins/justify/lang/fr-ca.js new file mode 100644 index 00000000..6abd477d --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr-ca",{block:"Justifié",center:"Centré",left:"Aligner à gauche",right:"Aligner à Droite"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/fr.js b/src/lib/ckeditor/plugins/justify/lang/fr.js new file mode 100644 index 00000000..41d84c06 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr",{block:"Justifier",center:"Centrer",left:"Aligner à gauche",right:"Aligner à droite"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/gl.js b/src/lib/ckeditor/plugins/justify/lang/gl.js new file mode 100644 index 00000000..1d06021e --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gl",{block:"Xustificado",center:"Centrado",left:"Aliñar á esquerda",right:"Aliñar á dereita"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/gu.js b/src/lib/ckeditor/plugins/justify/lang/gu.js new file mode 100644 index 00000000..10ec3045 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gu",{block:"બ્લૉક, અંતરાય જસ્ટિફાઇ",center:"સંકેંદ્રણ/સેંટરિંગ",left:"ડાબી બાજુએ/બાજુ તરફ",right:"જમણી બાજુએ/બાજુ તરફ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/he.js b/src/lib/ckeditor/plugins/justify/lang/he.js new file mode 100644 index 00000000..93e075d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","he",{block:"יישור לשוליים",center:"מרכוז",left:"יישור לשמאל",right:"יישור לימין"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/hi.js b/src/lib/ckeditor/plugins/justify/lang/hi.js new file mode 100644 index 00000000..5e7f955e --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hi",{block:"ब्लॉक जस्टीफ़ाई",center:"बीच में",left:"बायीं तरफ",right:"दायीं तरफ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/hr.js b/src/lib/ckeditor/plugins/justify/lang/hr.js new file mode 100644 index 00000000..a9100975 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hr",{block:"Blok poravnanje",center:"Središnje poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/hu.js b/src/lib/ckeditor/plugins/justify/lang/hu.js new file mode 100644 index 00000000..00069c6f --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hu",{block:"Sorkizárt",center:"Középre",left:"Balra",right:"Jobbra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/id.js b/src/lib/ckeditor/plugins/justify/lang/id.js new file mode 100644 index 00000000..f1aa2e86 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","id",{block:"Rata kiri-kanan",center:"Pusat",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/is.js b/src/lib/ckeditor/plugins/justify/lang/is.js new file mode 100644 index 00000000..f5f891e9 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","is",{block:"Jafna báðum megin",center:"Miðja texta",left:"Vinstrijöfnun",right:"Hægrijöfnun"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/it.js b/src/lib/ckeditor/plugins/justify/lang/it.js new file mode 100644 index 00000000..188a0f81 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","it",{block:"Giustifica",center:"Centra",left:"Allinea a sinistra",right:"Allinea a destra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ja.js b/src/lib/ckeditor/plugins/justify/lang/ja.js new file mode 100644 index 00000000..24552e0f --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ja",{block:"両端揃え",center:"中央揃え",left:"左揃え",right:"右揃え"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ka.js b/src/lib/ckeditor/plugins/justify/lang/ka.js new file mode 100644 index 00000000..8ddd27e9 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ka",{block:"გადასწორება",center:"შუაში სწორება",left:"მარცხნივ სწორება",right:"მარჯვნივ სწორება"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/km.js b/src/lib/ckeditor/plugins/justify/lang/km.js new file mode 100644 index 00000000..62a049bb --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","km",{block:"តម្រឹម​ពេញ",center:"កណ្ដាល",left:"តម្រឹម​ឆ្វេង",right:"តម្រឹម​ស្ដាំ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ko.js b/src/lib/ckeditor/plugins/justify/lang/ko.js new file mode 100644 index 00000000..bfcbaf02 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ko",{block:"양쪽 맞춤",center:"가운데 정렬",left:"왼쪽 정렬",right:"오른쪽 정렬"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ku.js b/src/lib/ckeditor/plugins/justify/lang/ku.js new file mode 100644 index 00000000..a27e9e13 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ku",{block:"هاوستوونی",center:"ناوەڕاست",left:"بەهێڵ کردنی چەپ",right:"بەهێڵ کردنی ڕاست"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/lt.js b/src/lib/ckeditor/plugins/justify/lang/lt.js new file mode 100644 index 00000000..d9731e46 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lt",{block:"Lygiuoti abi puses",center:"Centruoti",left:"Lygiuoti kairę",right:"Lygiuoti dešinę"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/lv.js b/src/lib/ckeditor/plugins/justify/lang/lv.js new file mode 100644 index 00000000..7a49b357 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lv",{block:"Izlīdzināt malas",center:"Izlīdzināt pret centru",left:"Izlīdzināt pa kreisi",right:"Izlīdzināt pa labi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/mk.js b/src/lib/ckeditor/plugins/justify/lang/mk.js new file mode 100644 index 00000000..aabf8ca2 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mk",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/mn.js b/src/lib/ckeditor/plugins/justify/lang/mn.js new file mode 100644 index 00000000..2eb717ce --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mn",{block:"Тэгшлэх",center:"Голлуулах",left:"Зүүн талд тулгах",right:"Баруун талд тулгах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ms.js b/src/lib/ckeditor/plugins/justify/lang/ms.js new file mode 100644 index 00000000..fb6d5ea1 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ms",{block:"Jajaran Blok",center:"Jajaran Tengah",left:"Jajaran Kiri",right:"Jajaran Kanan"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/nb.js b/src/lib/ckeditor/plugins/justify/lang/nb.js new file mode 100644 index 00000000..9b8ed082 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nb",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/nl.js b/src/lib/ckeditor/plugins/justify/lang/nl.js new file mode 100644 index 00000000..1b0f8ae3 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nl",{block:"Uitvullen",center:"Centreren",left:"Links uitlijnen",right:"Rechts uitlijnen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/no.js b/src/lib/ckeditor/plugins/justify/lang/no.js new file mode 100644 index 00000000..49f6c800 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","no",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/pl.js b/src/lib/ckeditor/plugins/justify/lang/pl.js new file mode 100644 index 00000000..104c04f5 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pl",{block:"Wyjustuj",center:"Wyśrodkuj",left:"Wyrównaj do lewej",right:"Wyrównaj do prawej"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/pt-br.js b/src/lib/ckeditor/plugins/justify/lang/pt-br.js new file mode 100644 index 00000000..05e293e2 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt-br",{block:"Justificado",center:"Centralizar",left:"Alinhar Esquerda",right:"Alinhar Direita"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/pt.js b/src/lib/ckeditor/plugins/justify/lang/pt.js new file mode 100644 index 00000000..e641019f --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt",{block:"Justificado",center:"Alinhar ao Centro",left:"Alinhar à Esquerda",right:"Alinhar à Direita"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ro.js b/src/lib/ckeditor/plugins/justify/lang/ro.js new file mode 100644 index 00000000..d1da4cc9 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ro",{block:"Aliniere în bloc (Block Justify)",center:"Aliniere centrală",left:"Aliniere la stânga",right:"Aliniere la dreapta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ru.js b/src/lib/ckeditor/plugins/justify/lang/ru.js new file mode 100644 index 00000000..4dfc2e40 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ru",{block:"По ширине",center:"По центру",left:"По левому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/si.js b/src/lib/ckeditor/plugins/justify/lang/si.js new file mode 100644 index 00000000..8d85db57 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","si",{block:"Justify",center:"මධ්‍ය",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/sk.js b/src/lib/ckeditor/plugins/justify/lang/sk.js new file mode 100644 index 00000000..6d4de70f --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sk",{block:"Zarovnať do bloku",center:"Zarovnať na stred",left:"Zarovnať vľavo",right:"Zarovnať vpravo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/sl.js b/src/lib/ckeditor/plugins/justify/lang/sl.js new file mode 100644 index 00000000..cda22d1c --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sl",{block:"Obojestranska poravnava",center:"Sredinska poravnava",left:"Leva poravnava",right:"Desna poravnava"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/sq.js b/src/lib/ckeditor/plugins/justify/lang/sq.js new file mode 100644 index 00000000..5ec58c62 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sq",{block:"Zgjero",center:"Qendër",left:"Rreshto majtas",right:"Rreshto Djathtas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/sr-latn.js b/src/lib/ckeditor/plugins/justify/lang/sr-latn.js new file mode 100644 index 00000000..320d6972 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr-latn",{block:"Obostrano ravnanje",center:"Centriran tekst",left:"Levo ravnanje",right:"Desno ravnanje"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/sr.js b/src/lib/ckeditor/plugins/justify/lang/sr.js new file mode 100644 index 00000000..f6654964 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr",{block:"Обострано равнање",center:"Центриран текст",left:"Лево равнање",right:"Десно равнање"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/sv.js b/src/lib/ckeditor/plugins/justify/lang/sv.js new file mode 100644 index 00000000..9054d4f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sv",{block:"Justera till marginaler",center:"Centrera",left:"Vänsterjustera",right:"Högerjustera"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/th.js b/src/lib/ckeditor/plugins/justify/lang/th.js new file mode 100644 index 00000000..fb1d15f9 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","th",{block:"จัดพอดีหน้ากระดาษ",center:"จัดกึ่งกลาง",left:"จัดชิดซ้าย",right:"จัดชิดขวา"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/tr.js b/src/lib/ckeditor/plugins/justify/lang/tr.js new file mode 100644 index 00000000..177d9add --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tr",{block:"İki Kenara Yaslanmış",center:"Ortalanmış",left:"Sola Dayalı",right:"Sağa Dayalı"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/tt.js b/src/lib/ckeditor/plugins/justify/lang/tt.js new file mode 100644 index 00000000..b0999da7 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tt",{block:"Киңлеккә карап тигезләү",center:"Үзәккә тигезләү",left:"Сул як кырыйдан тигезләү",right:"Уң як кырыйдан тигезләү"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/ug.js b/src/lib/ckeditor/plugins/justify/lang/ug.js new file mode 100644 index 00000000..a1112522 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ug",{block:"ئىككى تەرەپتىن توغرىلا",center:"ئوتتۇرىغا توغرىلا",left:"سولغا توغرىلا",right:"ئوڭغا توغرىلا"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/uk.js b/src/lib/ckeditor/plugins/justify/lang/uk.js new file mode 100644 index 00000000..ba2baba0 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","uk",{block:"По ширині",center:"По центру",left:"По лівому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/vi.js b/src/lib/ckeditor/plugins/justify/lang/vi.js new file mode 100644 index 00000000..30395d21 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","vi",{block:"Canh đều",center:"Canh giữa",left:"Canh trái",right:"Canh phải"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/zh-cn.js b/src/lib/ckeditor/plugins/justify/lang/zh-cn.js new file mode 100644 index 00000000..9132cf5e --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh-cn",{block:"两端对齐",center:"居中",left:"左对齐",right:"右对齐"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/lang/zh.js b/src/lib/ckeditor/plugins/justify/lang/zh.js new file mode 100644 index 00000000..405907b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh",{block:"左右對齊",center:"置中",left:"靠左對齊",right:"靠右對齊"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/justify/plugin.js b/src/lib/ckeditor/plugins/justify/plugin.js new file mode 100644 index 00000000..82fe3301 --- /dev/null +++ b/src/lib/ckeditor/plugins/justify/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function g(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";var c=a.config.justifyClasses,h=a.config.enterMode== +CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?=$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName|| +null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0]))); +e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}g.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,g,f,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){g=d[k].createIterator();for(g.enlargeBr=b!=CKEDITOR.ENTER_BR;f=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!f.isReadOnly()){f.removeAttribute("align");f.removeStyle("text-align"); +var j=e&&(f.$.className=CKEDITOR.tools.ltrim(f.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(f,!0)!=this.value);e?m?f.addClass(e):j||f.removeAttribute("class"):m&&f.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify", +{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"justifyblock,justifycenter,justifyleft,justifyright",hidpi:!0,init:function(a){if(!a.blockless){var c=new g(a,"justifyleft","left"),b=new g(a,"justifycenter","center"),h=new g(a,"justifyright","right"),d=new g(a,"justifyblock","justify");a.addCommand("justifyleft", +c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock", +toolbar:"align,40"}));a.on("dirChanged",j)}}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/icons/hidpi/language.png b/src/lib/ckeditor/plugins/language/icons/hidpi/language.png new file mode 100644 index 00000000..3908a6ae Binary files /dev/null and b/src/lib/ckeditor/plugins/language/icons/hidpi/language.png differ diff --git a/src/lib/ckeditor/plugins/language/icons/language.png b/src/lib/ckeditor/plugins/language/icons/language.png new file mode 100644 index 00000000..eb680d42 Binary files /dev/null and b/src/lib/ckeditor/plugins/language/icons/language.png differ diff --git a/src/lib/ckeditor/plugins/language/lang/ar.js b/src/lib/ckeditor/plugins/language/lang/ar.js new file mode 100644 index 00000000..781a80b4 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ar",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/ca.js b/src/lib/ckeditor/plugins/language/lang/ca.js new file mode 100644 index 00000000..b954027f --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ca",{button:"Definir l'idioma",remove:"Eliminar idioma"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/cs.js b/src/lib/ckeditor/plugins/language/lang/cs.js new file mode 100644 index 00000000..672a1a68 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cs",{button:"Nastavit jazyk",remove:"Odstranit jazyk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/cy.js b/src/lib/ckeditor/plugins/language/lang/cy.js new file mode 100644 index 00000000..79d8d0e5 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cy",{button:"Gosod iaith",remove:"Tynnu iaith"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/de.js b/src/lib/ckeditor/plugins/language/lang/de.js new file mode 100644 index 00000000..5adda832 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","de",{button:"Sprache stellen",remove:"Sprache entfernen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/el.js b/src/lib/ckeditor/plugins/language/lang/el.js new file mode 100644 index 00000000..2b0c17aa --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","el",{button:"Θέση γλώσσας",remove:"Αφαίρεση γλώσσας"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/en-gb.js b/src/lib/ckeditor/plugins/language/lang/en-gb.js new file mode 100644 index 00000000..73cd1a5d --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en-gb",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/en.js b/src/lib/ckeditor/plugins/language/lang/en.js new file mode 100644 index 00000000..acb83453 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/eo.js b/src/lib/ckeditor/plugins/language/lang/eo.js new file mode 100644 index 00000000..49335695 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","eo",{button:"Instali lingvon",remove:"Forigi lingvon"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/es.js b/src/lib/ckeditor/plugins/language/lang/es.js new file mode 100644 index 00000000..cd91eff8 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","es",{button:"Fijar lenguaje",remove:"Quitar lenguaje"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/fa.js b/src/lib/ckeditor/plugins/language/lang/fa.js new file mode 100644 index 00000000..572f4c64 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fa",{button:"تعیین زبان",remove:"حذف زبان"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/fi.js b/src/lib/ckeditor/plugins/language/lang/fi.js new file mode 100644 index 00000000..f0276d16 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fi",{button:"Aseta kieli",remove:"Poista kieli"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/fr.js b/src/lib/ckeditor/plugins/language/lang/fr.js new file mode 100644 index 00000000..0b8602a0 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fr",{button:"Définir la langue",remove:"Supprimer la langue"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/gl.js b/src/lib/ckeditor/plugins/language/lang/gl.js new file mode 100644 index 00000000..58ce1323 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","gl",{button:"Estabelezer o idioma",remove:"Retirar o idioma"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/he.js b/src/lib/ckeditor/plugins/language/lang/he.js new file mode 100644 index 00000000..334788e9 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","he",{button:"צור שפה",remove:"הסר שפה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/hr.js b/src/lib/ckeditor/plugins/language/lang/hr.js new file mode 100644 index 00000000..911103dd --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hr",{button:"Namjesti jezik",remove:"Makni jezik"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/hu.js b/src/lib/ckeditor/plugins/language/lang/hu.js new file mode 100644 index 00000000..92cc653c --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hu",{button:"Nyelv beállítása",remove:"Nyelv eltávolítása"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/it.js b/src/lib/ckeditor/plugins/language/lang/it.js new file mode 100644 index 00000000..32e54319 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","it",{button:"Imposta lingua",remove:"Rimuovi lingua"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/ja.js b/src/lib/ckeditor/plugins/language/lang/ja.js new file mode 100644 index 00000000..e00999d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ja",{button:"言語を設定",remove:"言語を削除"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/km.js b/src/lib/ckeditor/plugins/language/lang/km.js new file mode 100644 index 00000000..f146a6fd --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","km",{button:"កំណត់​ភាសា",remove:"លុប​ភាសា"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/nb.js b/src/lib/ckeditor/plugins/language/lang/nb.js new file mode 100644 index 00000000..a0ed5b12 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nb",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/nl.js b/src/lib/ckeditor/plugins/language/lang/nl.js new file mode 100644 index 00000000..49c7d1ae --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nl",{button:"Taal instellen",remove:"Taal verwijderen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/no.js b/src/lib/ckeditor/plugins/language/lang/no.js new file mode 100644 index 00000000..87b4e066 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","no",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/pl.js b/src/lib/ckeditor/plugins/language/lang/pl.js new file mode 100644 index 00000000..6de4bc48 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pl",{button:"Ustaw język",remove:"Usuń język"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/pt-br.js b/src/lib/ckeditor/plugins/language/lang/pt-br.js new file mode 100644 index 00000000..fbb3df1e --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt-br",{button:"Configure o Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/pt.js b/src/lib/ckeditor/plugins/language/lang/pt.js new file mode 100644 index 00000000..d63076b6 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt",{button:"Definir Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/ru.js b/src/lib/ckeditor/plugins/language/lang/ru.js new file mode 100644 index 00000000..60316fe7 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ru",{button:"Установка языка",remove:"Удалить язык"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/sk.js b/src/lib/ckeditor/plugins/language/lang/sk.js new file mode 100644 index 00000000..2a6896ae --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sk",{button:"Nastaviť jazyk",remove:"Odstrániť jazyk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/sl.js b/src/lib/ckeditor/plugins/language/lang/sl.js new file mode 100644 index 00000000..3d0c585e --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sl",{button:"Nastavi jezik",remove:"Odstrani jezik"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/sv.js b/src/lib/ckeditor/plugins/language/lang/sv.js new file mode 100644 index 00000000..061b5b75 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sv",{button:"Sätt språk",remove:"Ta bort språk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/tr.js b/src/lib/ckeditor/plugins/language/lang/tr.js new file mode 100644 index 00000000..ae38d58c --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tr",{button:"Dili seç",remove:"Dili kaldır"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/tt.js b/src/lib/ckeditor/plugins/language/lang/tt.js new file mode 100644 index 00000000..a651f7bb --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tt",{button:"Тел сайлау",remove:"Телне бетерү"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/uk.js b/src/lib/ckeditor/plugins/language/lang/uk.js new file mode 100644 index 00000000..15a7cf06 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","uk",{button:"Установити мову",remove:"Вилучити мову"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/vi.js b/src/lib/ckeditor/plugins/language/lang/vi.js new file mode 100644 index 00000000..631df086 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","vi",{button:"Thiết lập ngôn ngữ",remove:"Loại bỏ ngôn ngữ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/zh-cn.js b/src/lib/ckeditor/plugins/language/lang/zh-cn.js new file mode 100644 index 00000000..a03c73a8 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh-cn",{button:"设置语言",remove:"移除语言"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/lang/zh.js b/src/lib/ckeditor/plugins/language/lang/zh.js new file mode 100644 index 00000000..6676d954 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh",{button:"設定語言",remove:"移除語言"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/language/plugin.js b/src/lib/ckeditor/plugins/language/plugin.js new file mode 100644 index 00000000..fe302883 --- /dev/null +++ b/src/lib/ckeditor/plugins/language/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("language",{requires:"menubutton",lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",icons:"language",hidpi:!0,init:function(a){var b=a.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],c=this,d=a.lang.language,e={},g,h,i,f;a.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(a,b){var c=e["language_"+b];if(c)a[c.style.checkActive(a.elementPath(), +a)?"removeStyle":"applyStyle"](c.style)},refresh:function(a){this.setState(c.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(f=0;f<b.length;f++)g=b[f].split(":"),h=g[0],i="language_"+h,e[i]={label:g[1],langId:h,group:"language",order:f,ltr:"rtl"!=(""+g[2]).toLowerCase(),onClick:function(){a.execCommand("language",this.langId)},role:"menuitemcheckbox"},e[i].style=new CKEDITOR.style({element:"span",attributes:{lang:h,dir:e[i].ltr?"ltr":"rtl"}});e.language_remove={label:d.remove, +group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,order:e.length,onClick:function(){var b=c.getCurrentLangElement(a);b&&a.execCommand("language",b.getAttribute("lang"))}};a.addMenuGroup("language",1);a.addMenuGroup("language_remove");a.addMenuItems(e);a.ui.add("Language",CKEDITOR.UI_MENUBUTTON,{label:d.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var b={},d=c.getCurrentLangElement(a),f;for(f in e)b[f]=CKEDITOR.TRISTATE_OFF; +b.language_remove=d?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;d&&(b["language_"+d.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return b}})},getCurrentLangElement:function(a){var b=a.elementPath(),a=b&&b.elements,c;if(b)for(var d=0;d<a.length;d++)b=a[d],!c&&("span"==b.getName()&&b.hasAttribute("dir")&&b.hasAttribute("lang"))&&(c=b);return c}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/lineutils/plugin.js b/src/lib/ckeditor/plugins/lineutils/plugin.js new file mode 100644 index 00000000..aa93527f --- /dev/null +++ b/src/lib/ckeditor/plugins/lineutils/plugin.js @@ -0,0 +1,21 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function k(a,d){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},d,!0);this.frame=this.win.getFrame();this.inline=this.editable.isInline();this.target=this[this.inline?"editable":"doc"]}function l(a,d){CKEDITOR.tools.extend(this,d,{editor:a},!0)}function m(a,d){var b=a.editable();CKEDITOR.tools.extend(this,{editor:a,editable:b,doc:a.document,win:a.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},d,!0);this.hidden= +{};this.visible={};this.inline=b.isInline();this.inline||(this.frame=this.win.getFrame());this.queryViewport();var c=CKEDITOR.tools.bind(this.queryViewport,this),e=CKEDITOR.tools.bind(this.hideVisible,this),g=CKEDITOR.tools.bind(this.removeAll,this);b.attachListener(this.winTop,"resize",c);b.attachListener(this.winTop,"scroll",c);b.attachListener(this.winTop,"resize",e);b.attachListener(this.win,"scroll",e);b.attachListener(this.inline?b:this.frame,"mouseout",function(a){var c=a.data.$.clientX,a= +a.data.$.clientY;this.queryViewport();(c<=this.rect.left||c>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(c<=0||c>=this.winTopPane.width||a<=0||a>=this.winTopPane.height)&&this.hideVisible()},this);b.attachListener(a,"resize",c);b.attachListener(a,"mode",g);a.on("destroy",g);this.lineTpl=(new CKEDITOR.template(p)).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({}, +n,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},n,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function i(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&!(o[a.getComputedStyle("float")]||o[a.getAttribute("align")])&&!r[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1; +CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;k.prototype={start:function(a){var d=this,b=this.editor,c=this.doc,e,g,f,h=CKEDITOR.tools.eventsBuffer(50,function(){b.readOnly||"wysiwyg"!=b.mode||(d.relations={},e=new CKEDITOR.dom.element(c.$.elementFromPoint(g,f)),d.traverseSearch(e),isNaN(g+f)||d.pixelSearch(e,g,f),a&&a(d.relations,g,f))});this.listener=this.editable.attachListener(this.target,"mousemove",function(a){g=a.data.$.clientX;f=a.data.$.clientY;h.input()});this.editable.attachListener(this.inline? +this.editable:this.frame,"mouseout",function(){h.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(d){var b=this.editor.createRange();b.moveToPosition(this.relations[d.uid].element,a[d.type]);return b}}(),store:function(){function a(a,b,c){var e=a.getUniqueId(); +e in c?c[e].type|=b:c[e]={element:a,type:b}}return function(d,b){var c;if(b&CKEDITOR.LINEUTILS_AFTER&&i(c=d.getNext())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_AFTER;if(b&CKEDITOR.LINEUTILS_INSIDE&&i(c=d.getFirst())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_INSIDE;a(d,b,this.relations)}}(),traverseSearch:function(a){var d,b,c;do if(c=a.$["data-cke-expando"],!(c&&c in this.relations)){if(a.equals(this.editable))break; +if(i(a))for(d in this.lookups)(b=this.lookups[d](a))&&this.store(a,b)}while(!(a&&a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(a,c,e,g,f){for(var h=0,j;f(e);){e+=g;if(25==++h)break;if(j=this.doc.$.elementFromPoint(c,e))if(j==a)h=0;else if(d(a,j)&&(h=0,i(j=new CKEDITOR.dom.element(j))))return j}}var d=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,c){return a.contains(c)}:function(a,c){return!!(a.compareDocumentPosition(c)& +16)};return function(b,c,d){var g=this.win.getViewPaneSize().height,f=a.call(this,b.$,c,d,-1,function(a){return 0<a}),c=a.call(this,b.$,c,d,1,function(a){return a<g});if(f)for(this.traverseSearch(f);!f.getParent().equals(b);)f=f.getParent();if(c)for(this.traverseSearch(c);!c.getParent().equals(b);)c=c.getParent();for(;f||c;){f&&(f=f.getNext(i));if(!f||f.equals(c))break;this.traverseSearch(f);c&&(c=c.getPrevious(i));if(!c||c.equals(f))break;this.traverseSearch(c)}}}(),greedySearch:function(){this.relations= +{};for(var a=this.editable.getElementsByTag("*"),d=0,b,c,e;b=a.getItem(d++);)if(!b.equals(this.editable)&&(b.hasAttribute("contenteditable")||!b.isReadOnly())&&i(b)&&b.isVisible())for(e in this.lookups)(c=this.lookups[e](b))&&this.store(b,c);return this.relations}};l.prototype={locate:function(){function a(a,b){var d=a.element[b===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return d&&i(d)?(a.siblingRect=d.getClientRect(),b==CKEDITOR.LINEUTILS_BEFORE?(a.siblingRect.bottom+a.elementRect.top)/ +2:(a.elementRect.bottom+a.siblingRect.top)/2):b==CKEDITOR.LINEUTILS_BEFORE?a.elementRect.top:a.elementRect.bottom}var d,b;return function(c){this.locations={};for(b in c)d=c[b],d.elementRect=d.element.getClientRect(),d.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(b,CKEDITOR.LINEUTILS_BEFORE,a(d,CKEDITOR.LINEUTILS_BEFORE)),d.type&CKEDITOR.LINEUTILS_AFTER&&this.store(b,CKEDITOR.LINEUTILS_AFTER,a(d,CKEDITOR.LINEUTILS_AFTER)),d.type&CKEDITOR.LINEUTILS_INSIDE&&this.store(b,CKEDITOR.LINEUTILS_INSIDE,(d.elementRect.top+ +d.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,d,b,c,e,g;return function(f,h){a=this.locations;d=[];for(c in a)for(e in a[c])if(b=Math.abs(f-a[c][e]),d.length){for(g=0;g<d.length;g++)if(b<d[g].dist){d.splice(g,0,{uid:+c,type:e,dist:b});break}g==d.length&&d.push({uid:+c,type:e,dist:b})}else d.push({uid:+c,type:e,dist:b});return"undefined"!=typeof h?d.slice(0,h):d}}(),store:function(a,d,b){this.locations[a]||(this.locations[a]={});this.locations[a][d]=b}};var n={display:"block", +width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},q={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999},p='<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}"><span style="{tipLeftStyle}"> </span><span style="{tipRightStyle}"> </span></div>';m.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(), +delete this.visible[a]},hideLine:function(a){var d=a.getUniqueId();a.hide();this.hidden[d]=a;delete this.visible[d]},showLine:function(a){var d=a.getUniqueId();a.show();this.visible[d]=a;delete this.hidden[d]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,d){var b,c,e;if(b=this.getStyle(a.uid,a.type)){for(e in this.visible)if(this.visible[e].getCustomData("hash")!==this.hash){c=this.visible[e];break}if(!c)for(e in this.hidden)if(this.hidden[e].getCustomData("hash")!== +this.hash){this.showLine(c=this.hidden[e]);break}c||this.showLine(c=this.addLine());c.setCustomData("hash",this.hash);this.visible[c.getUniqueId()]=c;c.setStyles(b);d&&d(c)}},getStyle:function(a,d){var b=this.relations[a],c=this.locations[a][d],e={};e.width=b.siblingRect?Math.max(b.siblingRect.width,b.elementRect.width):b.elementRect.width;e.top=this.inline?c+this.winTopScroll.y:this.rect.top+this.winTopScroll.y+c;if(e.top-this.winTopScroll.y<this.rect.top||e.top-this.winTopScroll.y>this.rect.bottom)return!1; +if(this.inline)e.left=b.elementRect.left;else if(0<b.elementRect.left?e.left=this.rect.left+b.elementRect.left:(e.width+=b.elementRect.left,e.left=this.rect.left),0<(b=e.left+e.width-(this.rect.left+this.winPane.width)))e.width-=b;e.left+=this.winTopScroll.x;for(var g in e)e[g]=CKEDITOR.tools.cssLength(e[g]);return e},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,d){this.relations=a;this.locations=d;this.hash=Math.random()}, +cleanup:function(){var a,d;for(d in this.visible)a=this.visible[d],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.inline?this.editable.getClientRect():this.frame.getClientRect()}};var o={left:1,right:1,center:1},r={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:k,locator:l,liner:m}})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/link/dialogs/anchor.js b/src/lib/ckeditor/plugins/link/dialogs/anchor.js new file mode 100644 index 00000000..e0192b27 --- /dev/null +++ b/src/lib/ckeditor/plugins/link/dialogs/anchor.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)): +this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c); +e&&(this._.selectedElement=e,this.setValueOf("info","txtName",e.data("cke-saved-name")||""),!d&&a.selectElement(e),b&&(this._.selectedElement=b));this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/link/dialogs/link.js b/src/lib/ckeditor/plugins/link/dialogs/link.js new file mode 100644 index 00000000..312fb7bc --- /dev/null +++ b/src/lib/ckeditor/plugins/link/dialogs/link.js @@ -0,0 +1,26 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.dialog.add("link",function(g){var l=CKEDITOR.plugins.link,m=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),k=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),k){case "frame":a.setLabel(g.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(g.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(k),a.getElement().hide()}}, +f=function(a){a.target&&this.setValue(a.target[this.id]||"")},h=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},i=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},j=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},c=g.lang.common,b=g.lang.link,d;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"], +[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],k=this.getValue(),e=a.definition.getContents("upload"),e=e&&e.hidden;"url"==k?(g.config.linkShowTargetTab&&a.showPage("target"),e||a.showPage("upload")):(a.hidePage("target"),e||a.hidePage("upload"));for(e=0;e<b.length;e++){var c=a.getContentElement("info",b[e]);c&&(c=c.getElement().getParent().getParent(),b[e]==k+"Options"?c.show():c.hide())}a.layout()},setup:function(a){this.setValue(a.type|| +"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:c.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:c.url,required:!0,onLoad:function(){this.allowOnChange= +!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),k=/^((javascript:)|[#\/\.\?])/i,c=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);c?(this.setValue(b.substr(c[0].length)),a.setValue(c[0].toLowerCase())):k.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")? +!0:!g.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(c.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button", +id:"browse",hidden:"true",filebrowser:"info:url",label:c.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(){d=l.getEditorAnchors(g);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b= +0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor|| +(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"</div>",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress", +label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return!a.getContentElement("info","linkType")||"email"!=a.getValueOf("info","linkType")?!0:CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this)},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject, +setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target, +elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:c.target,"default":"notSet",style:"width : 100%;",items:[[c.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[c.targetNew,"_blank"],[c.targetTop,"_top"],[c.targetSelf,"_self"],[c.targetParent,"_parent"]],onChange:m,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");m.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName", +label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/\W/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:f,commit:i},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:f,commit:i}]},{type:"hbox", +children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:f,commit:i},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:f,commit:i},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:f,commit:i},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:f,commit:i}]},{type:"hbox", +children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:c.width,id:"width",setup:f,commit:i},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:f,commit:i}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:c.height,id:"height",setup:f,commit:i},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:f,commit:i}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0, +filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:c.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:c.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:h,commit:j},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir, +"default":"",style:"width:110px",items:[[c.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:h,commit:j},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:h,commit:j}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:h,commit:j},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:h,commit:j},{type:"text", +label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:h,commit:j}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:h,commit:j},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)", +"default":"",id:"advCSSClasses",setup:h,commit:j},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:h,commit:j},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(g.lang.common.invalidInlineStyle),setup:h,commit:j}]}]}]}],onShow:function(){var a= +this.getParentEditor(),b=a.getSelection(),c=null;(c=l.getSelectedLink(a))&&c.hasAttribute("href")?b.getSelectedElement()||b.selectElement(c):c=null;a=l.parseLinkAttributes(a,c);this._.selectedElement=c;this.setupContent(a)},onOk:function(){var a={};this.commitContent(a);var b=g.getSelection(),c=l.getLinkAttributes(g,a);if(this._.selectedElement){var e=this._.selectedElement,d=e.data("cke-saved-href"),f=e.getHtml();e.setAttributes(c.set);e.removeAttributes(c.removed);if(d==f||"email"==a.type&&-1!= +f.indexOf("@"))e.setHtml("email"==a.type?a.email.address:c.set["data-cke-saved-href"]),b.selectElement(e);delete this._.selectedElement}else b=b.getRanges()[0],b.collapsed&&(a=new CKEDITOR.dom.text("email"==a.type?a.email.address:c.set["data-cke-saved-href"],g.document),b.insertNode(a),b.selectNodeContents(a)),c=new CKEDITOR.style({element:"a",attributes:c.set}),c.type=CKEDITOR.STYLE_INLINE,c.applyToRange(b,g),b.select()},onLoad:function(){g.config.linkShowAdvancedTab||this.hidePage("advanced");g.config.linkShowTargetTab|| +this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/link/images/anchor.png b/src/lib/ckeditor/plugins/link/images/anchor.png new file mode 100644 index 00000000..6d861a0e Binary files /dev/null and b/src/lib/ckeditor/plugins/link/images/anchor.png differ diff --git a/src/lib/ckeditor/plugins/link/images/hidpi/anchor.png b/src/lib/ckeditor/plugins/link/images/hidpi/anchor.png new file mode 100644 index 00000000..f5048430 Binary files /dev/null and b/src/lib/ckeditor/plugins/link/images/hidpi/anchor.png differ diff --git a/src/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js b/src/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js new file mode 100644 index 00000000..2b130e71 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){this.setValue(a.getStyle("list-style-type")|| +h[a.getAttribute("type")]||a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.commitContent(a)}};if("numberedListStyle"==e){var g=[[b.notset,""],[b.lowerRoman,"lower-roman"],[b.upperRoman,"upper-roman"],[b.lowerAlpha,"lower-alpha"],[b.upperAlpha,"upper-alpha"], +[b.decimal,"decimal"]];(!CKEDITOR.env.ie||7<CKEDITOR.env.version)&&g.concat([[b.armenian,"armenian"],[b.decimalLeadingZero,"decimal-leading-zero"],[b.georgian,"georgian"],[b.lowerGreek,"lower-greek"]]);return{title:b.numberedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"hbox",widths:["25%","75%"],children:[{label:b.start,type:"text",id:"start",validate:CKEDITOR.dialog.validate.integer(b.validateStartNumber),setup:function(a){this.setValue(a.getFirst(f).getAttribute("value")|| +a.getAttribute("start")||1)},commit:function(a){var b=a.getFirst(f),c=b.getAttribute("value")||a.getAttribute("start")||1;a.getFirst(f).removeAttribute("value");var d=parseInt(this.getValue(),10);isNaN(d)?a.removeAttribute("start"):a.setAttribute("start",d);a=b;b=c;for(d=isNaN(d)?1:d;(a=a.getNext(f))&&b++;)a.getAttribute("value")==b&&a.setAttribute("value",d+b-c)}},{type:"select",label:b.type,id:"type",style:"width: 100%;",items:g,setup:function(a){this.setValue(a.getStyle("list-style-type")||h[a.getAttribute("type")]|| +a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.commitContent(a)}}}}var f=function(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")},h={a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman",1:"decimal",disc:"disc",circle:"circle",square:"square"}; +CKEDITOR.dialog.add("numberedListStyle",function(c){return e(c,"numberedListStyle")});CKEDITOR.dialog.add("bulletedListStyle",function(c){return e(c,"bulletedListStyle")})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/af.js b/src/lib/ckeditor/plugins/liststyle/lang/af.js new file mode 100644 index 00000000..972e936b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","af",{armenian:"Armeense nommering",bulletedTitle:"Eienskappe van ongenommerde lys",circle:"Sirkel",decimal:"Desimale syfers (1, 2, 3, ens.)",decimalLeadingZero:"Desimale syfers met voorloopnul (01, 02, 03, ens.)",disc:"Skyf",georgian:"Georgiese nommering (an, ban, gan, ens.)",lowerAlpha:"Kleinletters (a, b, c, d, e, ens.)",lowerGreek:"Griekse kleinletters (alpha, beta, gamma, ens.)",lowerRoman:"Romeinse kleinletters (i, ii, iii, iv, v, ens.)",none:"Geen",notset:"<nie ingestel nie>", +numberedTitle:"Eienskappe van genommerde lys",square:"Vierkant",start:"Begin",type:"Tipe",upperAlpha:"Hoofletters (A, B, C, D, E, ens.)",upperRoman:"Romeinse hoofletters (I, II, III, IV, V, ens.)",validateStartNumber:"Beginnommer van lys moet 'n heelgetal wees."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ar.js b/src/lib/ckeditor/plugins/liststyle/lang/ar.js new file mode 100644 index 00000000..72b9f52a --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ar",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/bg.js b/src/lib/ckeditor/plugins/liststyle/lang/bg.js new file mode 100644 index 00000000..5cc312a2 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/bg.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bg",{armenian:"Арменско номериране",bulletedTitle:"Bulleted List Properties",circle:"Кръг",decimal:"Числа (1, 2, 3 и др.)",decimalLeadingZero:"Числа с водеща нула (01, 02, 03 и т.н.)",disc:"Диск",georgian:"Грузинско номериране (an, ban, gan, и т.н.)",lowerAlpha:"Малки букви (а, б, в, г, д и т.н.)",lowerGreek:"Малки гръцки букви (алфа, бета, гама и т.н.)",lowerRoman:"Малки римски числа (i, ii, iii, iv, v и т.н.)",none:"Няма",notset:"<не е указано>",numberedTitle:"Numbered List Properties", +square:"Квадрат",start:"Старт",type:"Тип",upperAlpha:"Големи букви (А, Б, В, Г, Д и т.н.)",upperRoman:"Големи римски числа (I, II, III, IV, V и т.н.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/bn.js b/src/lib/ckeditor/plugins/liststyle/lang/bn.js new file mode 100644 index 00000000..d002bafc --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/bs.js b/src/lib/ckeditor/plugins/liststyle/lang/bs.js new file mode 100644 index 00000000..af72e359 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bs",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ca.js b/src/lib/ckeditor/plugins/liststyle/lang/ca.js new file mode 100644 index 00000000..42455a34 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/cs.js b/src/lib/ckeditor/plugins/liststyle/lang/cs.js new file mode 100644 index 00000000..d3abb5c8 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/cs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cs",{armenian:"Arménské",bulletedTitle:"Vlastnosti odrážek",circle:"Kroužky",decimal:"Arabská čísla (1, 2, 3, atd.)",decimalLeadingZero:"Arabská čísla uvozená nulou (01, 02, 03, atd.)",disc:"Kolečka",georgian:"Gruzínské (an, ban, gan, atd.)",lowerAlpha:"Malá latinka (a, b, c, d, e, atd.)",lowerGreek:"Malé řecké (alpha, beta, gamma, atd.)",lowerRoman:"Malé římské (i, ii, iii, iv, v, atd.)",none:"Nic",notset:"<nenastaveno>",numberedTitle:"Vlastnosti číslování", +square:"Čtverce",start:"Počátek",type:"Typ",upperAlpha:"Velká latinka (A, B, C, D, E, atd.)",upperRoman:"Velké římské (I, II, III, IV, V, atd.)",validateStartNumber:"Číslování musí začínat celým číslem."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/cy.js b/src/lib/ckeditor/plugins/liststyle/lang/cy.js new file mode 100644 index 00000000..a5d6cc5f --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cy",{armenian:"Rhifo Armeneg",bulletedTitle:"Priodweddau Rhestr Fwled",circle:"Cylch",decimal:"Degol (1, 2, 3, ayyb.)",decimalLeadingZero:"Degol â sero arweiniol (01, 02, 03, ayyb.)",disc:"Disg",georgian:"Rhifau Sioraidd (an, ban, gan, ayyb.)",lowerAlpha:"Alffa Is (a, b, c, d, e, ayyb.)",lowerGreek:"Groeg Is (alpha, beta, gamma, ayyb.)",lowerRoman:"Rhufeinig Is (i, ii, iii, iv, v, ayyb.)",none:"Dim",notset:"<heb osod>",numberedTitle:"Priodweddau Rhestr Rifol", +square:"Sgwâr",start:"Dechrau",type:"Math",upperAlpha:"Alffa Uwch (A, B, C, D, E, ayyb.)",upperRoman:"Rhufeinig Uwch (I, II, III, IV, V, ayyb.)",validateStartNumber:"Rhaid bod y rhif cychwynnol yn gyfanrif."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/da.js b/src/lib/ckeditor/plugins/liststyle/lang/da.js new file mode 100644 index 00000000..d09c455e --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/da.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","da",{armenian:"Armensk nummering",bulletedTitle:"Værdier for cirkelpunktopstilling",circle:"Cirkel",decimal:"Decimal (1, 2, 3, osv.)",decimalLeadingZero:"Decimaler med 0 først (01, 02, 03, etc.)",disc:"Værdier for diskpunktopstilling",georgian:"Georgiansk nummering (an, ban, gan, etc.)",lowerAlpha:"Små alfabet (a, b, c, d, e, etc.)",lowerGreek:"Små græsk (alpha, beta, gamma, etc.)",lowerRoman:"Små romerske (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ikke defineret>", +numberedTitle:"Egenskaber for nummereret liste",square:"Firkant",start:"Start",type:"Type",upperAlpha:"Store alfabet (A, B, C, D, E, etc.)",upperRoman:"Store romerske (I, II, III, IV, V, etc.)",validateStartNumber:"Den nummererede liste skal starte med et rundt nummer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/de.js b/src/lib/ckeditor/plugins/liststyle/lang/de.js new file mode 100644 index 00000000..30038e82 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/de.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","de",{armenian:"Armenisch Nummerierung",bulletedTitle:"Listen-Eigenschaften",circle:"Ring",decimal:"Dezimal (1, 2, 3, etc.)",decimalLeadingZero:"Dezimal mit führende Null (01, 02, 03, etc.)",disc:"Kreis",georgian:"Georgisch Nummerierung (an, ban, gan, etc.)",lowerAlpha:"Klein alpha (a, b, c, d, e, etc.)",lowerGreek:"Klein griechisch (alpha, beta, gamma, etc.)",lowerRoman:"Klein römisch (i, ii, iii, iv, v, etc.)",none:"Keine",notset:"<nicht gesetzt>",numberedTitle:"Nummerierte Listen-Eigenschaften", +square:"Quadrat",start:"Start",type:"Typ",upperAlpha:"Groß alpha (A, B, C, D, E, etc.)",upperRoman:"Groß römisch (I, II, III, IV, V, etc.)",validateStartNumber:"List Startnummer muss eine ganze Zahl sein."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/el.js b/src/lib/ckeditor/plugins/liststyle/lang/el.js new file mode 100644 index 00000000..d077c8e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/el.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","el",{armenian:"Αρμενική αρίθμηση",bulletedTitle:"Ιδιότητες Λίστας Σημείων",circle:"Κύκλος",decimal:"Δεκαδική (1, 2, 3, κτλ)",decimalLeadingZero:"Δεκαδική με αρχικό μηδεν (01, 02, 03, κτλ)",disc:"Δίσκος",georgian:"Γεωργιανή αρίθμηση (ა, ბ, გ, κτλ)",lowerAlpha:"Μικρά Λατινικά (a, b, c, d, e, κτλ.)",lowerGreek:"Μικρά Ελληνικά (α, β, γ, κτλ)",lowerRoman:"Μικρά Ρωμαϊκά (i, ii, iii, iv, v, κτλ)",none:"Καμία",notset:"<δεν έχει οριστεί>",numberedTitle:"Ιδιότητες Αριθμημένης Λίστας ", +square:"Τετράγωνο",start:"Εκκίνηση",type:"Τύπος",upperAlpha:"Κεφαλαία Λατινικά (A, B, C, D, E, κτλ)",upperRoman:"Κεφαλαία Ρωμαϊκά (I, II, III, IV, V, κτλ)",validateStartNumber:"Ο αριθμός εκκίνησης της αρίθμησης πρέπει να είναι ακέραιος αριθμός."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/en-au.js b/src/lib/ckeditor/plugins/liststyle/lang/en-au.js new file mode 100644 index 00000000..41e685fa --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-au",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/en-ca.js b/src/lib/ckeditor/plugins/liststyle/lang/en-ca.js new file mode 100644 index 00000000..633ecd9b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/en-gb.js b/src/lib/ckeditor/plugins/liststyle/lang/en-gb.js new file mode 100644 index 00000000..6f1ca2a5 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-gb",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/en.js b/src/lib/ckeditor/plugins/liststyle/lang/en.js new file mode 100644 index 00000000..6bba5a29 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/eo.js b/src/lib/ckeditor/plugins/liststyle/lang/eo.js new file mode 100644 index 00000000..6ef97acc --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/eo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eo",{armenian:"Armena nombrado",bulletedTitle:"Atributoj de Bula Listo",circle:"Cirklo",decimal:"Dekumaj Nombroj (1, 2, 3, ktp.)",decimalLeadingZero:"Dekumaj Nombroj malantaŭ nulo (01, 02, 03, ktp.)",disc:"Disko",georgian:"Gruza nombrado (an, ban, gan, ktp.)",lowerAlpha:"Minusklaj Literoj (a, b, c, d, e, ktp.)",lowerGreek:"Grekaj Minusklaj Literoj (alpha, beta, gamma, ktp.)",lowerRoman:"Minusklaj Romanaj Nombroj (i, ii, iii, iv, v, ktp.)",none:"Neniu",notset:"<Defaŭlta>", +numberedTitle:"Atributoj de Numera Listo",square:"kvadrato",start:"Komenco",type:"Tipo",upperAlpha:"Majusklaj Literoj (A, B, C, D, E, ktp.)",upperRoman:"Majusklaj Romanaj Nombroj (I, II, III, IV, V, ktp.)",validateStartNumber:"La unua listero devas esti entjera nombro."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/es.js b/src/lib/ckeditor/plugins/liststyle/lang/es.js new file mode 100644 index 00000000..06ed01a5 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","es",{armenian:"Numeración armenia",bulletedTitle:"Propiedades de viñetas",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero inicial (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeración georgiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Letras griegas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ninguno",notset:"<sin establecer>", +numberedTitle:"Propiedades de lista numerada",square:"Cuadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en mayúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en mayúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"El Inicio debe ser un número entero."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/et.js b/src/lib/ckeditor/plugins/liststyle/lang/et.js new file mode 100644 index 00000000..9212207b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/et.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","et",{armenian:"Armeenia numbrid",bulletedTitle:"Punktloendi omadused",circle:"Ring",decimal:"Numbrid (1, 2, 3, jne)",decimalLeadingZero:"Numbrid algusnulliga (01, 02, 03, jne)",disc:"Täpp",georgian:"Gruusia numbrid (an, ban, gan, jne)",lowerAlpha:"Väiketähed (a, b, c, d, e, jne)",lowerGreek:"Kreeka väiketähed (alpha, beta, gamma, jne)",lowerRoman:"Väiksed rooma numbrid (i, ii, iii, iv, v, jne)",none:"Puudub",notset:"<pole määratud>",numberedTitle:"Numberloendi omadused", +square:"Ruut",start:"Algus",type:"Liik",upperAlpha:"Suurtähed (A, B, C, D, E, jne)",upperRoman:"Suured rooma numbrid (I, II, III, IV, V, jne)",validateStartNumber:"Loendi algusnumber peab olema täisarv."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/eu.js b/src/lib/ckeditor/plugins/liststyle/lang/eu.js new file mode 100644 index 00000000..dc0d63a7 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/eu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eu",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/fa.js b/src/lib/ckeditor/plugins/liststyle/lang/fa.js new file mode 100644 index 00000000..5a588c04 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fa",{armenian:"شماره‌گذاری ارمنی",bulletedTitle:"خصوصیات فهرست نقطه‌ای",circle:"دایره",decimal:"ده‌دهی (۱، ۲، ۳، ...)",decimalLeadingZero:"دهدهی همراه با صفر (۰۱، ۰۲، ۰۳، ...)",disc:"صفحه گرد",georgian:"شمارهگذاری گریگورین (an, ban, gan, etc.)",lowerAlpha:"پانویس الفبایی (a, b, c, d, e, etc.)",lowerGreek:"پانویس یونانی (alpha, beta, gamma, etc.)",lowerRoman:"پانویس رومی (i, ii, iii, iv, v, etc.)",none:"هیچ",notset:"<تنظیم نشده>",numberedTitle:"ویژگیهای فهرست شمارهدار", +square:"چهارگوش",start:"شروع",type:"نوع",upperAlpha:"بالانویس الفبایی (A, B, C, D, E, etc.)",upperRoman:"بالانویس رومی (I, II, III, IV, V, etc.)",validateStartNumber:"فهرست شماره شروع باید یک عدد صحیح باشد."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/fi.js b/src/lib/ckeditor/plugins/liststyle/lang/fi.js new file mode 100644 index 00000000..2e55ab99 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/fi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fi",{armenian:"Armeenialainen numerointi",bulletedTitle:"Numeroimattoman listan ominaisuudet",circle:"Ympyrä",decimal:"Desimaalit (1, 2, 3, jne.)",decimalLeadingZero:"Desimaalit, alussa nolla (01, 02, 03, jne.)",disc:"Levy",georgian:"Georgialainen numerointi (an, ban, gan, etc.)",lowerAlpha:"Pienet aakkoset (a, b, c, d, e, jne.)",lowerGreek:"Pienet kreikkalaiset (alpha, beta, gamma, jne.)",lowerRoman:"Pienet roomalaiset (i, ii, iii, iv, v, jne.)",none:"Ei mikään", +notset:"<ei asetettu>",numberedTitle:"Numeroidun listan ominaisuudet",square:"Neliö",start:"Alku",type:"Tyyppi",upperAlpha:"Isot aakkoset (A, B, C, D, E, jne.)",upperRoman:"Isot roomalaiset (I, II, III, IV, V, jne.)",validateStartNumber:"Listan ensimmäisen numeron tulee olla kokonaisluku."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/fo.js b/src/lib/ckeditor/plugins/liststyle/lang/fo.js new file mode 100644 index 00000000..c7861be7 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/fo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fo",{armenian:"Armensk talskipan",bulletedTitle:"Eginleikar fyri lista við prikkum",circle:"Sirkul",decimal:"Vanlig tøl (1, 2, 3, etc.)",decimalLeadingZero:"Tøl við null frammanfyri (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgisk talskipan (an, ban, gan, osv.)",lowerAlpha:"Lítlir bókstavir (a, b, c, d, e, etc.)",lowerGreek:"Grikskt við lítlum (alpha, beta, gamma, etc.)",lowerRoman:"Lítil rómaratøl (i, ii, iii, iv, v, etc.)",none:"Einki",notset:"<ikki sett>", +numberedTitle:"Eginleikar fyri lista við tølum",square:"Fýrkantur",start:"Byrjan",type:"Slag",upperAlpha:"Stórir bókstavir (A, B, C, D, E, etc.)",upperRoman:"Stór rómaratøl (I, II, III, IV, V, etc.)",validateStartNumber:"Byrjunartalið fyri lista má vera eitt heiltal."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/fr-ca.js b/src/lib/ckeditor/plugins/liststyle/lang/fr-ca.js new file mode 100644 index 00000000..1c2925a8 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/fr-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr-ca",{armenian:"Numération arménienne",bulletedTitle:"Propriété de liste à puce",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal avec zéro (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscule (a, b, c, d, e, etc.)",lowerGreek:"Grecque minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Romain minuscule (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<non défini>", +numberedTitle:"Propriété de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscule (A, B, C, D, E, etc.)",upperRoman:"Romain Majuscule (I, II, III, IV, V, etc.)",validateStartNumber:"Le numéro de début de liste doit être un entier."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/fr.js b/src/lib/ckeditor/plugins/liststyle/lang/fr.js new file mode 100644 index 00000000..a787f638 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/fr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr",{armenian:"Numération arménienne",bulletedTitle:"Propriétés de la liste à puces",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal précédé par un 0 (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscules (a, b, c, d, e, etc.)",lowerGreek:"Grec minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Nombres romains minuscules (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<Non défini>", +numberedTitle:"Propriétés de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscules (A, B, C, D, E, etc.)",upperRoman:"Nombres romains majuscules (I, II, III, IV, V, etc.)",validateStartNumber:"Le premier élément de la liste doit être un nombre entier."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/gl.js b/src/lib/ckeditor/plugins/liststyle/lang/gl.js new file mode 100644 index 00000000..f4e986fa --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/gl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gl",{armenian:"Numeración armenia",bulletedTitle:"Propiedades da lista viñeteada",circle:"Circulo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero á esquerda (01, 02, 03, etc.)",disc:"Disc",georgian:"Numeración xeorxiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Grego en minúsculas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ningún", +notset:"<sen estabelecer>",numberedTitle:"Propiedades da lista numerada",square:"Cadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en maiúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en maiúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"O número de inicio da lista debe ser un número enteiro."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/gu.js b/src/lib/ckeditor/plugins/liststyle/lang/gu.js new file mode 100644 index 00000000..48995fbc --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gu",{armenian:"અરમેનિયન આંકડા પદ્ધતિ",bulletedTitle:"બુલેટેડ લીસ્ટના ગુણ",circle:"વર્તુળ",decimal:"આંકડા (1, 2, 3, etc.)",decimalLeadingZero:"સુન્ય આગળ આંકડા (01, 02, 03, etc.)",disc:"ડિસ્ક",georgian:"ગેઓર્ગિયન આંકડા પદ્ધતિ (an, ban, gan, etc.)",lowerAlpha:"આલ્ફા નાના (a, b, c, d, e, etc.)",lowerGreek:"ગ્રીક નાના (alpha, beta, gamma, etc.)",lowerRoman:"રોમન નાના (i, ii, iii, iv, v, etc.)",none:"કસુ ",notset:"<સેટ નથી>",numberedTitle:"આંકડાના લીસ્ટના ગુણ",square:"ચોરસ", +start:"શરુ કરવું",type:"પ્રકાર",upperAlpha:"આલ્ફા મોટા (A, B, C, D, E, etc.)",upperRoman:"રોમન મોટા (I, II, III, IV, V, etc.)",validateStartNumber:"લીસ્ટના સરુઆતનો આંકડો પુરો હોવો જોઈએ."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/he.js b/src/lib/ckeditor/plugins/liststyle/lang/he.js new file mode 100644 index 00000000..ba746516 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","he",{armenian:"ספרות ארמניות",bulletedTitle:"תכונות רשימת תבליטים",circle:"עיגול ריק",decimal:"ספרות (1, 2, 3 וכו')",decimalLeadingZero:"ספרות עם 0 בהתחלה (01, 02, 03 וכו')",disc:"עיגול מלא",georgian:"ספרות גיאורגיות (an, ban, gan וכו')",lowerAlpha:"אותיות אנגליות קטנות (a, b, c, d, e וכו')",lowerGreek:"אותיות יווניות קטנות (alpha, beta, gamma וכו')",lowerRoman:"ספירה רומית באותיות קטנות (i, ii, iii, iv, v וכו')",none:"ללא",notset:"<לא נקבע>",numberedTitle:"תכונות רשימה ממוספרת", +square:"ריבוע",start:"תחילת מספור",type:"סוג",upperAlpha:"אותיות אנגליות גדולות (A, B, C, D, E וכו')",upperRoman:"ספירה רומיות באותיות גדולות (I, II, III, IV, V וכו')",validateStartNumber:"שדה תחילת המספור חייב להכיל מספר שלם."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/hi.js b/src/lib/ckeditor/plugins/liststyle/lang/hi.js new file mode 100644 index 00000000..23e5affe --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hi",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/hr.js b/src/lib/ckeditor/plugins/liststyle/lang/hr.js new file mode 100644 index 00000000..66a47962 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hr",{armenian:"Armenijska numeracija",bulletedTitle:"Svojstva liste",circle:"Krug",decimal:"Decimalna numeracija (1, 2, 3, itd.)",decimalLeadingZero:"Decimalna s vodećom nulom (01, 02, 03, itd)",disc:"Disk",georgian:"Gruzijska numeracija(an, ban, gan, etc.)",lowerAlpha:"Znakovi mala slova (a, b, c, d, e, itd.)",lowerGreek:"Grčka numeracija mala slova (alfa, beta, gama, itd).",lowerRoman:"Romanska numeracija mala slova (i, ii, iii, iv, v, itd.)",none:"Bez",notset:"<nije određen>", +numberedTitle:"Svojstva brojčane liste",square:"Kvadrat",start:"Početak",type:"Vrsta",upperAlpha:"Znakovi velika slova (A, B, C, D, E, itd.)",upperRoman:"Romanska numeracija velika slova (I, II, III, IV, V, itd.)",validateStartNumber:"Početak brojčane liste mora biti cijeli broj."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/hu.js b/src/lib/ckeditor/plugins/liststyle/lang/hu.js new file mode 100644 index 00000000..d37d441f --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/hu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hu",{armenian:"Örmény számozás",bulletedTitle:"Pontozott lista tulajdonságai",circle:"Kör",decimal:"Arab számozás (1, 2, 3, stb.)",decimalLeadingZero:"Számozás bevezető nullákkal (01, 02, 03, stb.)",disc:"Korong",georgian:"Grúz számozás (an, ban, gan, stb.)",lowerAlpha:"Kisbetűs (a, b, c, d, e, stb.)",lowerGreek:"Görög (alpha, beta, gamma, stb.)",lowerRoman:"Római kisbetűs (i, ii, iii, iv, v, stb.)",none:"Nincs",notset:"<Nincs beállítva>",numberedTitle:"Sorszámozott lista tulajdonságai", +square:"Négyzet",start:"Kezdőszám",type:"Típus",upperAlpha:"Nagybetűs (A, B, C, D, E, stb.)",upperRoman:"Római nagybetűs (I, II, III, IV, V, stb.)",validateStartNumber:"A kezdőszám nem lehet tört érték."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/id.js b/src/lib/ckeditor/plugins/liststyle/lang/id.js new file mode 100644 index 00000000..65d48510 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","id",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Lingkaran",decimal:"Desimal (1, 2, 3, dst.)",decimalLeadingZero:"Desimal diawali angka nol (01, 02, 03, dst.)",disc:"Cakram",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Huruf Kecil (a, b, c, d, e, dst.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Angka Romawi (i, ii, iii, iv, v, dst.)",none:"Tidak ada",notset:"<tidak diatur>",numberedTitle:"Numbered List Properties", +square:"Persegi",start:"Mulai",type:"Tipe",upperAlpha:"Huruf Besar (A, B, C, D, E, dst.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/is.js b/src/lib/ckeditor/plugins/liststyle/lang/is.js new file mode 100644 index 00000000..3f8cd1a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","is",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/it.js b/src/lib/ckeditor/plugins/liststyle/lang/it.js new file mode 100644 index 00000000..674c5e1b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/it.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","it",{armenian:"Numerazione Armena",bulletedTitle:"Proprietà liste puntate",circle:"Cerchio",decimal:"Decimale (1, 2, 3, ecc.)",decimalLeadingZero:"Decimale preceduto da 0 (01, 02, 03, ecc.)",disc:"Disco",georgian:"Numerazione Georgiana (an, ban, gan, ecc.)",lowerAlpha:"Alfabetico minuscolo (a, b, c, d, e, ecc.)",lowerGreek:"Greco minuscolo (alpha, beta, gamma, ecc.)",lowerRoman:"Numerazione Romana minuscola (i, ii, iii, iv, v, ecc.)",none:"Nessuno",notset:"<non impostato>", +numberedTitle:"Proprietà liste numerate",square:"Quadrato",start:"Inizio",type:"Tipo",upperAlpha:"Alfabetico maiuscolo (A, B, C, D, E, ecc.)",upperRoman:"Numerazione Romana maiuscola (I, II, III, IV, V, ecc.)",validateStartNumber:"Il numero di inizio di una lista numerata deve essere un numero intero."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ja.js b/src/lib/ckeditor/plugins/liststyle/lang/ja.js new file mode 100644 index 00000000..934cc98c --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ja",{armenian:"アルメニア数字",bulletedTitle:"箇条書きのプロパティ",circle:"白丸",decimal:"数字 (1, 2, 3, etc.)",decimalLeadingZero:"0付きの数字 (01, 02, 03, etc.)",disc:"黒丸",georgian:"グルジア数字 (an, ban, gan, etc.)",lowerAlpha:"小文字アルファベット (a, b, c, d, e, etc.)",lowerGreek:"小文字ギリシャ文字 (alpha, beta, gamma, etc.)",lowerRoman:"小文字ローマ数字 (i, ii, iii, iv, v, etc.)",none:"なし",notset:"<なし>",numberedTitle:"番号付きリストのプロパティ",square:"四角",start:"開始",type:"種類",upperAlpha:"大文字アルファベット (A, B, C, D, E, etc.)", +upperRoman:"大文字ローマ数字 (I, II, III, IV, V, etc.)",validateStartNumber:"リストの開始番号は数値で入力してください。"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ka.js b/src/lib/ckeditor/plugins/liststyle/lang/ka.js new file mode 100644 index 00000000..f820e66a --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ka.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ka",{armenian:"სომხური გადანომრვა",bulletedTitle:"ღილებიანი სიის პარამეტრები",circle:"წრეწირი",decimal:"რიცხვებით (1, 2, 3, ..)",decimalLeadingZero:"ნულით დაწყებული რიცხვებით (01, 02, 03, ..)",disc:"წრე",georgian:"ქართული გადანომრვა (ან, ბან, გან, ..)",lowerAlpha:"პატარა ლათინური ასოებით (a, b, c, d, e, ..)",lowerGreek:"პატარა ბერძნული ასოებით (ალფა, ბეტა, გამა, ..)",lowerRoman:"რომაული გადანომრვცა პატარა ციფრებით (i, ii, iii, iv, v, ..)",none:"არაფერი",notset:"<არაფერი>", +numberedTitle:"გადანომრილი სიის პარამეტრები",square:"კვადრატი",start:"საწყისი",type:"ტიპი",upperAlpha:"დიდი ლათინური ასოებით (A, B, C, D, E, ..)",upperRoman:"რომაული გადანომრვა დიდი ციფრებით (I, II, III, IV, V, etc.)",validateStartNumber:"სიის საწყისი მთელი რიცხვი უნდა იყოს."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/km.js b/src/lib/ckeditor/plugins/liststyle/lang/km.js new file mode 100644 index 00000000..181efe3d --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","km",{armenian:"លេខ​អារមេនី",bulletedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​ចំណុច",circle:"រង្វង់​មូល",decimal:"លេខ​ទសភាគ (1, 2, 3, ...)",decimalLeadingZero:"ទសភាគ​ចាប់​ផ្ដើម​ពី​សូន្យ (01, 02, 03, ...)",disc:"ថាស",georgian:"លេខ​ចចជា (an, ban, gan, ...)",lowerAlpha:"ព្យញ្ជនៈ​តូច (a, b, c, d, e, ...)",lowerGreek:"លេខ​ក្រិក​តូច (alpha, beta, gamma, ...)",lowerRoman:"លេខ​រ៉ូម៉ាំង​តូច (i, ii, iii, iv, v, ...)",none:"គ្មាន",notset:"<not set>",numberedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​លេខ", +square:"ការេ",start:"ចាប់​ផ្ដើម",type:"ប្រភេទ",upperAlpha:"អក្សរ​ធំ (A, B, C, D, E, ...)",upperRoman:"លេខ​រ៉ូម៉ាំង​ធំ (I, II, III, IV, V, ...)",validateStartNumber:"លេខ​ចាប់​ផ្ដើម​បញ្ជី ត្រូវ​តែ​ជា​តួ​លេខ​ពិត​ប្រាកដ។"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ko.js b/src/lib/ckeditor/plugins/liststyle/lang/ko.js new file mode 100644 index 00000000..1be0697f --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ko",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ku.js b/src/lib/ckeditor/plugins/liststyle/lang/ku.js new file mode 100644 index 00000000..ccb7e195 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ku.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ku",{armenian:"ئاراستەی ژمارەی ئەرمەنی",bulletedTitle:"خاسیەتی لیستی خاڵی",circle:"بازنه",decimal:"ژمارە (1, 2, 3, وە هیتر.)",decimalLeadingZero:"ژمارە سفڕی لەپێشەوه (01, 02, 03, وە هیتر.)",disc:"پەپکە",georgian:"ئاراستەی ژمارەی جۆڕجی (an, ban, gan, وە هیتر.)",lowerAlpha:"ئەلفابێی بچووك (a, b, c, d, e, وە هیتر.)",lowerGreek:"یۆنانی بچووك (alpha, beta, gamma, وە هیتر.)",lowerRoman:"ژمارەی ڕۆمی بچووك (i, ii, iii, iv, v, وە هیتر.)",none:"هیچ",notset:"<دانەندراوه>", +numberedTitle:"خاسیەتی لیستی ژمارەیی",square:"چووراگۆشە",start:"دەستپێکردن",type:"جۆر",upperAlpha:"ئەلفابێی گەوره (A, B, C, D, E, وە هیتر.)",upperRoman:"ژمارەی ڕۆمی گەوره (I, II, III, IV, V, وە هیتر.)",validateStartNumber:"دەستپێکەری لیستی ژمارەیی دەبێت تەنها ژمارە بێت."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/lt.js b/src/lib/ckeditor/plugins/liststyle/lang/lt.js new file mode 100644 index 00000000..c563c96d --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/lt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lt",{armenian:"Armėniški skaitmenys",bulletedTitle:"Ženklelinio sąrašo nustatymai",circle:"Apskritimas",decimal:"Dešimtainis (1, 2, 3, t.t)",decimalLeadingZero:"Dešimtainis su nuliu priekyje (01, 02, 03, t.t)",disc:"Diskas",georgian:"Gruziniški skaitmenys (an, ban, gan, t.t)",lowerAlpha:"Mažosios Alpha (a, b, c, d, e, t.t)",lowerGreek:"Mažosios Graikų (alpha, beta, gamma, t.t)",lowerRoman:"Mažosios Romėnų (i, ii, iii, iv, v, t.t)",none:"Niekas",notset:"<nenurodytas>", +numberedTitle:"Skaitmeninio sąrašo nustatymai",square:"Kvadratas",start:"Pradžia",type:"Rūšis",upperAlpha:"Didžiosios Alpha (A, B, C, D, E, t.t)",upperRoman:"Didžiosios Romėnų (I, II, III, IV, V, t.t)",validateStartNumber:"Sąrašo pradžios skaitmuo turi būti sveikas skaičius."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/lv.js b/src/lib/ckeditor/plugins/liststyle/lang/lv.js new file mode 100644 index 00000000..94c41888 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/lv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lv",{armenian:"Armēņu skaitļi",bulletedTitle:"Vienkārša saraksta uzstādījumi",circle:"Aplis",decimal:"Decimālie (1, 2, 3, utt)",decimalLeadingZero:"Decimālie ar nulli (01, 02, 03, utt)",disc:"Disks",georgian:"Gruzīņu skaitļi (an, ban, gan, utt)",lowerAlpha:"Mazie alfabēta (a, b, c, d, e, utt)",lowerGreek:"Mazie grieķu (alfa, beta, gamma, utt)",lowerRoman:"Mazie romāņu (i, ii, iii, iv, v, utt)",none:"Nekas",notset:"<nav norādīts>",numberedTitle:"Numurēta saraksta uzstādījumi", +square:"Kvadrāts",start:"Sākt",type:"Tips",upperAlpha:"Lielie alfabēta (A, B, C, D, E, utt)",upperRoman:"Lielie romāņu (I, II, III, IV, V, utt)",validateStartNumber:"Saraksta sākuma numuram jābūt veselam skaitlim"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/mk.js b/src/lib/ckeditor/plugins/liststyle/lang/mk.js new file mode 100644 index 00000000..36966219 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mk",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/mn.js b/src/lib/ckeditor/plugins/liststyle/lang/mn.js new file mode 100644 index 00000000..895d754e --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Төрөл",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ms.js b/src/lib/ckeditor/plugins/liststyle/lang/ms.js new file mode 100644 index 00000000..ffe91b8b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ms",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/nb.js b/src/lib/ckeditor/plugins/liststyle/lang/nb.js new file mode 100644 index 00000000..cd9b38db --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nb",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/nl.js b/src/lib/ckeditor/plugins/liststyle/lang/nl.js new file mode 100644 index 00000000..4fc950ab --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/nl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nl",{armenian:"Armeense nummering",bulletedTitle:"Eigenschappen lijst met opsommingstekens",circle:"Cirkel",decimal:"Cijfers (1, 2, 3, etc.)",decimalLeadingZero:"Cijfers beginnen met nul (01, 02, 03, etc.)",disc:"Schijf",georgian:"Georgische nummering (an, ban, gan, etc.)",lowerAlpha:"Kleine letters (a, b, c, d, e, etc.)",lowerGreek:"Grieks kleine letters (alpha, beta, gamma, etc.)",lowerRoman:"Romeins kleine letters (i, ii, iii, iv, v, etc.)",none:"Geen",notset:"<niet gezet>", +numberedTitle:"Eigenschappen genummerde lijst",square:"Vierkant",start:"Start",type:"Type",upperAlpha:"Hoofdletters (A, B, C, D, E, etc.)",upperRoman:"Romeinse hoofdletters (I, II, III, IV, V, etc.)",validateStartNumber:"Startnummer van de lijst moet een heel nummer zijn."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/no.js b/src/lib/ckeditor/plugins/liststyle/lang/no.js new file mode 100644 index 00000000..f753bd6b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","no",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/pl.js b/src/lib/ckeditor/plugins/liststyle/lang/pl.js new file mode 100644 index 00000000..85da585d --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/pl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pl",{armenian:"Numerowanie armeńskie",bulletedTitle:"Właściwości list wypunktowanych",circle:"Koło",decimal:"Liczby (1, 2, 3 itd.)",decimalLeadingZero:"Liczby z początkowym zerem (01, 02, 03 itd.)",disc:"Okrąg",georgian:"Numerowanie gruzińskie (an, ban, gan itd.)",lowerAlpha:"Małe litery (a, b, c, d, e itd.)",lowerGreek:"Małe litery greckie (alpha, beta, gamma itd.)",lowerRoman:"Małe cyfry rzymskie (i, ii, iii, iv, v itd.)",none:"Brak",notset:"<nie ustawiono>", +numberedTitle:"Właściwości list numerowanych",square:"Kwadrat",start:"Początek",type:"Typ punktora",upperAlpha:"Duże litery (A, B, C, D, E itd.)",upperRoman:"Duże cyfry rzymskie (I, II, III, IV, V itd.)",validateStartNumber:"Listę musi rozpoczynać liczba całkowita."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/pt-br.js b/src/lib/ckeditor/plugins/liststyle/lang/pt-br.js new file mode 100644 index 00000000..190c8937 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/pt-br.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt-br",{armenian:"Numeração Armêna",bulletedTitle:"Propriedades da Lista sem Numeros",circle:"Círculo",decimal:"Numeração Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Numeração Decimal com zeros (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeração da Geórgia (an, ban, gan, etc.)",lowerAlpha:"Numeração Alfabética minúscula (a, b, c, d, e, etc.)",lowerGreek:"Numeração Grega minúscula (alpha, beta, gamma, etc.)",lowerRoman:"Numeração Romana minúscula (i, ii, iii, iv, v, etc.)", +none:"Nenhum",notset:"<não definido>",numberedTitle:"Propriedades da Lista Numerada",square:"Quadrado",start:"Início",type:"Tipo",upperAlpha:"Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)",upperRoman:"Numeração Romana maiúscula (I, II, III, IV, V, etc.)",validateStartNumber:"O número inicial da lista deve ser um número inteiro."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/pt.js b/src/lib/ckeditor/plugins/liststyle/lang/pt.js new file mode 100644 index 00000000..2b0f85a2 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/pt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt",{armenian:"Numeração armênia",bulletedTitle:"Bulleted List Properties",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disco",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Nenhum",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Quadrado",start:"Iniciar",type:"Tipo",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ro.js b/src/lib/ckeditor/plugins/liststyle/lang/ro.js new file mode 100644 index 00000000..d76923bf --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ro.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ro",{armenian:"Numerotare armeniană",bulletedTitle:"Proprietățile listei cu simboluri",circle:"Cerc",decimal:"Decimale (1, 2, 3, etc.)",decimalLeadingZero:"Decimale cu zero în față (01, 02, 03, etc.)",disc:"Disc",georgian:"Numerotare georgiană (an, ban, gan, etc.)",lowerAlpha:"Litere mici (a, b, c, d, e, etc.)",lowerGreek:"Litere grecești mici (alpha, beta, gamma, etc.)",lowerRoman:"Cifre romane mici (i, ii, iii, iv, v, etc.)",none:"Nimic",notset:"<nesetat>", +numberedTitle:"Proprietățile listei numerotate",square:"Pătrat",start:"Start",type:"Tip",upperAlpha:"Litere mari (A, B, C, D, E, etc.)",upperRoman:"Cifre romane mari (I, II, III, IV, V, etc.)",validateStartNumber:"Începutul listei trebuie să fie un număr întreg."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ru.js b/src/lib/ckeditor/plugins/liststyle/lang/ru.js new file mode 100644 index 00000000..421fd606 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ru.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ru",{armenian:"Армянская нумерация",bulletedTitle:"Свойства маркированного списка",circle:"Круг",decimal:"Десятичные (1, 2, 3, и т.д.)",decimalLeadingZero:"Десятичные с ведущим нулём (01, 02, 03, и т.д.)",disc:"Окружность",georgian:"Грузинская нумерация (ани, бани, гани, и т.д.)",lowerAlpha:"Строчные латинские (a, b, c, d, e, и т.д.)",lowerGreek:"Строчные греческие (альфа, бета, гамма, и т.д.)",lowerRoman:"Строчные римские (i, ii, iii, iv, v, и т.д.)",none:"Нет", +notset:"<не указано>",numberedTitle:"Свойства нумерованного списка",square:"Квадрат",start:"Начиная с",type:"Тип",upperAlpha:"Заглавные латинские (A, B, C, D, E, и т.д.)",upperRoman:"Заглавные римские (I, II, III, IV, V, и т.д.)",validateStartNumber:"Первый номер списка должен быть задан обычным целым числом."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/si.js b/src/lib/ckeditor/plugins/liststyle/lang/si.js new file mode 100644 index 00000000..c2253a52 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","si",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"කිසිවක්ම නොවේ",notset:"<යොදා >",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"වර්ගය",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/sk.js b/src/lib/ckeditor/plugins/liststyle/lang/sk.js new file mode 100644 index 00000000..817dab04 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/sk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sk",{armenian:"Arménske číslovanie",bulletedTitle:"Vlastnosti odrážkového zoznamu",circle:"Kruh",decimal:"Číselné (1, 2, 3, atď.)",decimalLeadingZero:"Číselné s nulou (01, 02, 03, atď.)",disc:"Disk",georgian:"Gregoriánske číslovanie (an, ban, gan, atď.)",lowerAlpha:"Malé latinské (a, b, c, d, e, atď.)",lowerGreek:"Malé grécke (alfa, beta, gama, atď.)",lowerRoman:"Malé rímske (i, ii, iii, iv, v, atď.)",none:"Nič",notset:"<nenastavené>",numberedTitle:"Vlastnosti číselného zoznamu", +square:"Štvorec",start:"Začiatok",type:"Typ",upperAlpha:"Veľké latinské (A, B, C, D, E, atď.)",upperRoman:"Veľké rímske (I, II, III, IV, V, atď.)",validateStartNumber:"Začiatočné číslo číselného zoznamu musí byť celé číslo."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/sl.js b/src/lib/ckeditor/plugins/liststyle/lang/sl.js new file mode 100644 index 00000000..f147fe2e --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/sl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sl",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/sq.js b/src/lib/ckeditor/plugins/liststyle/lang/sq.js new file mode 100644 index 00000000..586b7d40 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/sq.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sq",{armenian:"Numërim armenian",bulletedTitle:"Karakteristikat e Listës me Pulla",circle:"Rreth",decimal:"Decimal (1, 2, 3, etj.)",decimalLeadingZero:"Decimal me zerro udhëheqëse (01, 02, 03, etj.)",disc:"Disk",georgian:"Numërim gjeorgjian (an, ban, gan, etj.)",lowerAlpha:"Të vogla alfa (a, b, c, d, e, etj.)",lowerGreek:"Të vogla greke (alpha, beta, gamma, etj.)",lowerRoman:"Të vogla romake (i, ii, iii, iv, v, etj.)",none:"Asnjë",notset:"<e pazgjedhur>",numberedTitle:"Karakteristikat e Listës me Numra", +square:"Katror",start:"Fillimi",type:"LLoji",upperAlpha:"Të mëdha alfa (A, B, C, D, E, etj.)",upperRoman:"Të mëdha romake (I, II, III, IV, V, etj.)",validateStartNumber:"Numri i fillimit të listës duhet të është numër i plotë."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/sr-latn.js b/src/lib/ckeditor/plugins/liststyle/lang/sr-latn.js new file mode 100644 index 00000000..df10d830 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr-latn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/sr.js b/src/lib/ckeditor/plugins/liststyle/lang/sr.js new file mode 100644 index 00000000..1864935a --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/sv.js b/src/lib/ckeditor/plugins/liststyle/lang/sv.js new file mode 100644 index 00000000..8a5f9392 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sv",{armenian:"Armenisk numrering",bulletedTitle:"Egenskaper för punktlista",circle:"Cirkel",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal nolla (01, 02, 03, etc.)",disc:"Disk",georgian:"Georgisk numrering (an, ban, gan, etc.)",lowerAlpha:"Alpha gemener (a, b, c, d, e, etc.)",lowerGreek:"Grekiska gemener (alpha, beta, gamma, etc.)",lowerRoman:"Romerska gemener (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ej angiven>",numberedTitle:"Egenskaper för punktlista", +square:"Fyrkant",start:"Start",type:"Typ",upperAlpha:"Alpha versaler (A, B, C, D, E, etc.)",upperRoman:"Romerska versaler (I, II, III, IV, V, etc.)",validateStartNumber:"Listans startnummer måste vara ett heltal."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/th.js b/src/lib/ckeditor/plugins/liststyle/lang/th.js new file mode 100644 index 00000000..7ffb3ebd --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/th.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","th",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/tr.js b/src/lib/ckeditor/plugins/liststyle/lang/tr.js new file mode 100644 index 00000000..a19f7c73 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tr",{armenian:"Ermenice sayılandırma",bulletedTitle:"Simgeli Liste Özellikleri",circle:"Daire",decimal:"Ondalık (1, 2, 3, vs.)",decimalLeadingZero:"Başı sıfırlı ondalık (01, 02, 03, vs.)",disc:"Disk",georgian:"Gürcüce numaralandırma (an, ban, gan, vs.)",lowerAlpha:"Küçük Alpha (a, b, c, d, e, vs.)",lowerGreek:"Küçük Greek (alpha, beta, gamma, vs.)",lowerRoman:"Küçük Roman (i, ii, iii, iv, v, vs.)",none:"Yok",notset:"<ayarlanmamış>",numberedTitle:"Sayılandırılmış Liste Özellikleri", +square:"Kare",start:"Başla",type:"Tipi",upperAlpha:"Büyük Alpha (A, B, C, D, E, vs.)",upperRoman:"Büyük Roman (I, II, III, IV, V, vs.)",validateStartNumber:"Liste başlangıcı tam sayı olmalıdır."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/tt.js b/src/lib/ckeditor/plugins/liststyle/lang/tt.js new file mode 100644 index 00000000..07fadad3 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tt",{armenian:"Armenian numbering",bulletedTitle:"Маркерлы тезмә үзлекләре",circle:"Түгәрәк",decimal:"Унарлы (1, 2, 3, ...)",decimalLeadingZero:"Ноль белән башланган унарлы (01, 02, 03, ...)",disc:"Диск",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Һичбер",notset:"<билгеләнмәгән>",numberedTitle:"Numbered List Properties", +square:"Шакмак",start:"Башлау",type:"Төр",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/ug.js b/src/lib/ckeditor/plugins/liststyle/lang/ug.js new file mode 100644 index 00000000..d278f60d --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/ug.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ug",{armenian:"قەدىمكى ئەرمىنىيە تەرتىپ نومۇرى شەكلى",bulletedTitle:"تۈر بەلگە تىزىم خاسلىقى",circle:"بوش چەمبەر",decimal:"سان (1, 2, 3 قاتارلىق)",decimalLeadingZero:"نۆلدىن باشلانغان سان بەلگە (01, 02, 03 قاتارلىق)",disc:"تولدۇرۇلغان چەمبەر",georgian:"قەدىمكى جورجىيە تەرتىپ نومۇرى شەكلى (an, ban, gan قاتارلىق)",lowerAlpha:"ئىنگلىزچە كىچىك ھەرپ (a, b, c, d, e قاتارلىق)",lowerGreek:"گرېكچە كىچىك ھەرپ (alpha, beta, gamma قاتارلىق)",lowerRoman:"كىچىك ھەرپلىك رىم رەقىمى (i, ii, iii, iv, v قاتارلىق)", +none:"بەلگە يوق",notset:"‹تەڭشەلمىگەن›",numberedTitle:"تەرتىپ نومۇر تىزىم خاسلىقى",square:"تولدۇرۇلغان تۆت چاسا",start:"باشلىنىش نومۇرى",type:"بەلگە تىپى",upperAlpha:"ئىنگلىزچە چوڭ ھەرپ (A, B, C, D, E قاتارلىق)",upperRoman:"چوڭ ھەرپلىك رىم رەقىمى (I, II, III, IV, V قاتارلىق)",validateStartNumber:"تىزىم باشلىنىش تەرتىپ نومۇرى چوقۇم پۈتۈن سان پىچىمىدا بولۇشى لازىم"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/uk.js b/src/lib/ckeditor/plugins/liststyle/lang/uk.js new file mode 100644 index 00000000..de577116 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/uk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","uk",{armenian:"Вірменська нумерація",bulletedTitle:"Опції маркованого списку",circle:"Кільце",decimal:"Десяткові (1, 2, 3 і т.д.)",decimalLeadingZero:"Десяткові з нулем (01, 02, 03 і т.д.)",disc:"Кружечок",georgian:"Грузинська нумерація (an, ban, gan і т.д.)",lowerAlpha:"Малі лат. букви (a, b, c, d, e і т.д.)",lowerGreek:"Малі гр. букви (альфа, бета, гамма і т.д.)",lowerRoman:"Малі римські (i, ii, iii, iv, v і т.д.)",none:"Нема",notset:"<не вказано>",numberedTitle:"Опції нумерованого списку", +square:"Квадратик",start:"Почати з...",type:"Тип",upperAlpha:"Великі лат. букви (A, B, C, D, E і т.д.)",upperRoman:"Великі римські (I, II, III, IV, V і т.д.)",validateStartNumber:"Початковий номер списку повинен бути цілим числом."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/vi.js b/src/lib/ckeditor/plugins/liststyle/lang/vi.js new file mode 100644 index 00000000..bd56db2b --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/vi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","vi",{armenian:"Số theo kiểu Armenian",bulletedTitle:"Thuộc tính danh sách không thứ tự",circle:"Khuyên tròn",decimal:"Kiểu số (1, 2, 3 ...)",decimalLeadingZero:"Kiểu số (01, 02, 03...)",disc:"Hình đĩa",georgian:"Số theo kiểu Georgian (an, ban, gan...)",lowerAlpha:"Kiểu abc thường (a, b, c, d, e...)",lowerGreek:"Kiểu Hy Lạp (alpha, beta, gamma...)",lowerRoman:"Số La Mã kiểu thường (i, ii, iii, iv, v...)",none:"Không gì cả",notset:"<không thiết lập>",numberedTitle:"Thuộc tính danh sách có thứ tự", +square:"Hình vuông",start:"Bắt đầu",type:"Kiểu loại",upperAlpha:"Kiểu ABC HOA (A, B, C, D, E...)",upperRoman:"Số La Mã kiểu HOA (I, II, III, IV, V...)",validateStartNumber:"Số bắt đầu danh sách phải là một số nguyên."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/zh-cn.js b/src/lib/ckeditor/plugins/liststyle/lang/zh-cn.js new file mode 100644 index 00000000..a27132cf --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh-cn",{armenian:"传统的亚美尼亚编号方式",bulletedTitle:"项目列表属性",circle:"空心圆",decimal:"数字 (1, 2, 3, 等)",decimalLeadingZero:"0开头的数字标记(01, 02, 03, 等)",disc:"实心圆",georgian:"传统的乔治亚编号方式(an, ban, gan, 等)",lowerAlpha:"小写英文字母(a, b, c, d, e, 等)",lowerGreek:"小写希腊字母(alpha, beta, gamma, 等)",lowerRoman:"小写罗马数字(i, ii, iii, iv, v, 等)",none:"无标记",notset:"<没有设置>",numberedTitle:"编号列表属性",square:"实心方块",start:"开始序号",type:"标记类型",upperAlpha:"大写英文字母(A, B, C, D, E, 等)",upperRoman:"大写罗马数字(I, II, III, IV, V, 等)", +validateStartNumber:"列表开始序号必须为整数格式"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/lang/zh.js b/src/lib/ckeditor/plugins/liststyle/lang/zh.js new file mode 100644 index 00000000..566f075e --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh",{armenian:"亞美尼亞數字",bulletedTitle:"項目符號清單屬性",circle:"圓圈",decimal:"小數點 (1, 2, 3, etc.)",decimalLeadingZero:"前綴 0 十位數字 (01, 02, 03, 等)",disc:"圓點",georgian:"喬治王時代數字 (an, ban, gan, 等)",lowerAlpha:"小寫字母 (a, b, c, d, e 等)",lowerGreek:"小寫希臘字母 (alpha, beta, gamma, 等)",lowerRoman:"小寫羅馬數字 (i, ii, iii, iv, v 等)",none:"無",notset:"<未設定>",numberedTitle:"編號清單屬性",square:"方塊",start:"開始",type:"類型",upperAlpha:"大寫字母 (A, B, C, D, E 等)",upperRoman:"大寫羅馬數字 (I, II, III, IV, V 等)", +validateStartNumber:"清單起始號碼須為一完整數字。"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/liststyle/plugin.js b/src/lib/ckeditor/plugins/liststyle/plugin.js new file mode 100644 index 00000000..22087218 --- /dev/null +++ b/src/lib/ckeditor/plugins/liststyle/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b); +CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list", +command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png b/src/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png new file mode 100644 index 00000000..4a8d2bfd Binary files /dev/null and b/src/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png differ diff --git a/src/lib/ckeditor/plugins/magicline/images/hidpi/icon.png b/src/lib/ckeditor/plugins/magicline/images/hidpi/icon.png new file mode 100644 index 00000000..b981bb5c Binary files /dev/null and b/src/lib/ckeditor/plugins/magicline/images/hidpi/icon.png differ diff --git a/src/lib/ckeditor/plugins/magicline/images/icon-rtl.png b/src/lib/ckeditor/plugins/magicline/images/icon-rtl.png new file mode 100644 index 00000000..55b5b5f9 Binary files /dev/null and b/src/lib/ckeditor/plugins/magicline/images/icon-rtl.png differ diff --git a/src/lib/ckeditor/plugins/magicline/images/icon.png b/src/lib/ckeditor/plugins/magicline/images/icon.png new file mode 100644 index 00000000..e0634336 Binary files /dev/null and b/src/lib/ckeditor/plugins/magicline/images/icon.png differ diff --git a/src/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js b/src/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js new file mode 100644 index 00000000..25c3dff2 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("mathjax",function(d){var c,b=d.lang.mathjax;return{title:b.title,minWidth:350,minHeight:100,contents:[{id:"info",elements:[{id:"equation",type:"textarea",label:b.dialogInput,onLoad:function(){var a=this;if(!(CKEDITOR.env.ie&&8==CKEDITOR.env.version))this.getInputElement().on("keyup",function(){c.setValue("\\("+a.getInputElement().getValue()+"\\)")})},setup:function(a){this.setValue(CKEDITOR.plugins.mathjax.trim(a.data.math))},commit:function(a){a.setData("math","\\("+this.getValue()+ +"\\)")}},{id:"documentation",type:"html",html:'<div style="width:100%;text-align:right;margin:-8px 0 10px"><a class="cke_mathjax_doc" href="'+b.docUrl+'" target="_black" style="cursor:pointer;color:#00B2CE;text-decoration:underline">'+b.docLabel+"</a></div>"},!(CKEDITOR.env.ie&&8==CKEDITOR.env.version)&&{id:"preview",type:"html",html:'<div style="width:100%;text-align:center;"><iframe style="border:0;width:0;height:0;font-size:20px" scrolling="no" frameborder="0" allowTransparency="true" src="'+CKEDITOR.plugins.mathjax.fixSrc+ +'"></iframe></div>',onLoad:function(){var a=CKEDITOR.document.getById(this.domId).getChild(0);c=new CKEDITOR.plugins.mathjax.frameWrapper(a,d)},setup:function(a){c.setValue(a.data.math)}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png b/src/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png new file mode 100644 index 00000000..85b8e11d Binary files /dev/null and b/src/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png differ diff --git a/src/lib/ckeditor/plugins/mathjax/icons/mathjax.png b/src/lib/ckeditor/plugins/mathjax/icons/mathjax.png new file mode 100644 index 00000000..d25081be Binary files /dev/null and b/src/lib/ckeditor/plugins/mathjax/icons/mathjax.png differ diff --git a/src/lib/ckeditor/plugins/mathjax/images/loader.gif b/src/lib/ckeditor/plugins/mathjax/images/loader.gif new file mode 100644 index 00000000..3ffb1811 Binary files /dev/null and b/src/lib/ckeditor/plugins/mathjax/images/loader.gif differ diff --git a/src/lib/ckeditor/plugins/mathjax/lang/ar.js b/src/lib/ckeditor/plugins/mathjax/lang/ar.js new file mode 100644 index 00000000..64212f69 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ar",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"تحميل",pathName:"math"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/ca.js b/src/lib/ckeditor/plugins/mathjax/lang/ca.js new file mode 100644 index 00000000..33a353dc --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ca",{title:"Matemàtiques a TeX",button:"Matemàtiques",dialogInput:"Escriu el TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentació TeX",loading:"carregant...",pathName:"matemàtiques"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/cs.js b/src/lib/ckeditor/plugins/mathjax/lang/cs.js new file mode 100644 index 00000000..e2e0b510 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cs",{title:"Matematika v TeXu",button:"Matematika",dialogInput:"Zde napište TeXový kód",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentace k TeXu",loading:"Nahrává se...",pathName:"Matematika"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/cy.js b/src/lib/ckeditor/plugins/mathjax/lang/cy.js new file mode 100644 index 00000000..bd919ba0 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cy",{title:"Mathemateg mewn TeX",button:"Math",dialogInput:"Ysgrifennwch eich TeX yma",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dogfennaeth TeX",loading:"llwytho...",pathName:"math"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/de.js b/src/lib/ckeditor/plugins/mathjax/lang/de.js new file mode 100644 index 00000000..5cf71687 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","de",{title:"Mathematik in Tex",button:"Rechnung",dialogInput:"Schreiben Sie hier in Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tex Dokumentation",loading:"lädt...",pathName:"rechnen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/el.js b/src/lib/ckeditor/plugins/mathjax/lang/el.js new file mode 100644 index 00000000..affcd0e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","el",{title:"Μαθηματικά με τη γλώσσα TeX",button:"Μαθηματικά",dialogInput:"Γράψτε κώδικα TeX εδώ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Τεκμηρίωση TeX",loading:"γίνεται φόρτωση...",pathName:"μαθηματικά"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/en-gb.js b/src/lib/ckeditor/plugins/mathjax/lang/en-gb.js new file mode 100644 index 00000000..d9f0cbde --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en-gb",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write you TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/en.js b/src/lib/ckeditor/plugins/mathjax/lang/en.js new file mode 100644 index 00000000..9e66c845 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/eo.js b/src/lib/ckeditor/plugins/mathjax/lang/eo.js new file mode 100644 index 00000000..4aa7cb49 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","eo",{title:"Matematiko en TeX",button:"Matematiko",dialogInput:"Skribu vian TeX tien",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentado",loading:"estas ŝarganta",pathName:"matematiko"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/es.js b/src/lib/ckeditor/plugins/mathjax/lang/es.js new file mode 100644 index 00000000..6ec9e4dc --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","es",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escribe tu TeX aquí",docUrl:"http://es.wikipedia.org/wiki/TeX",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/fa.js b/src/lib/ckeditor/plugins/mathjax/lang/fa.js new file mode 100644 index 00000000..d638a840 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fa",{title:"ریاضیات در تک",button:"ریاضی",dialogInput:"فرمول خود را اینجا بنویسید",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"مستندسازی فرمول نویسی",loading:"بارگیری",pathName:"ریاضی"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/fi.js b/src/lib/ckeditor/plugins/mathjax/lang/fi.js new file mode 100644 index 00000000..bd5140c1 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fi",{title:"Matematiikkaa TeX:llä",button:"Matematiikka",dialogInput:"Kirjoita TeX:iä tähän",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentaatio",loading:"lataa...",pathName:"matematiikka"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/fr.js b/src/lib/ckeditor/plugins/mathjax/lang/fr.js new file mode 100644 index 00000000..bf1cb479 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fr",{title:"Mathématiques au format TeX",button:"Math",dialogInput:"Saisir la formule TeX ici",docUrl:"http://fr.wikibooks.org/wiki/LaTeX/Math%C3%A9matiques",docLabel:"Documentation du format TeX",loading:"chargement...",pathName:"math"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/gl.js b/src/lib/ckeditor/plugins/mathjax/lang/gl.js new file mode 100644 index 00000000..0657f1f9 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","gl",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escriba o seu TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/he.js b/src/lib/ckeditor/plugins/mathjax/lang/he.js new file mode 100644 index 00000000..9e5c21dc --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","he",{title:"מתמטיקה בTeX",button:"מתמטיקה",dialogInput:"כתוב את הTeX שלך כאן",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"תיעוד TeX",loading:"טוען...",pathName:"מתמטיקה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/hr.js b/src/lib/ckeditor/plugins/mathjax/lang/hr.js new file mode 100644 index 00000000..6e90bd5b --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hr",{title:"Matematika u TeXu",button:"Matematika",dialogInput:"Napiši svoj TeX ovdje",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"učitavanje...",pathName:"matematika"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/hu.js b/src/lib/ckeditor/plugins/mathjax/lang/hu.js new file mode 100644 index 00000000..3ab4b748 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hu",{title:"Matematika a TeX-ben",button:"Matek",dialogInput:"Írd a TeX-ed ide",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentáció",loading:"töltés...",pathName:"matek"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/it.js b/src/lib/ckeditor/plugins/mathjax/lang/it.js new file mode 100644 index 00000000..a91094a0 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","it",{title:"Formule in TeX",button:"Formule",dialogInput:"Scrivere qui il proprio TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentazione TeX",loading:"caricamento…",pathName:"formula"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/ja.js b/src/lib/ckeditor/plugins/mathjax/lang/ja.js new file mode 100644 index 00000000..0141ecd7 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ja",{title:"TeX形式の数式",button:"数式",dialogInput:"TeX形式の数式を入力してください",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeXの解説",loading:"読み込み中…",pathName:"math"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/km.js b/src/lib/ckeditor/plugins/mathjax/lang/km.js new file mode 100644 index 00000000..d68d998f --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","km",{title:"គណិត​វិទ្យា​ក្នុង TeX",button:"គណិត",dialogInput:"សរសេរ TeX របស់​អ្នក​នៅ​ទីនេះ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"ឯកសារ​អត្ថបទ​ពី ​TeX",loading:"កំពុង​ផ្ទុក..",pathName:"គណិត"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/nb.js b/src/lib/ckeditor/plugins/mathjax/lang/nb.js new file mode 100644 index 00000000..7b3588e2 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nb",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/nl.js b/src/lib/ckeditor/plugins/mathjax/lang/nl.js new file mode 100644 index 00000000..fe9cf316 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nl",{title:"Wiskunde in TeX",button:"Wiskunde",dialogInput:"Typ hier uw TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentatie",loading:"laden...",pathName:"wiskunde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/no.js b/src/lib/ckeditor/plugins/mathjax/lang/no.js new file mode 100644 index 00000000..33e87aba --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","no",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/pl.js b/src/lib/ckeditor/plugins/mathjax/lang/pl.js new file mode 100644 index 00000000..70f2be53 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pl",{title:"Wzory matematyczne w TeX",button:"Wzory matematyczne",dialogInput:"Wpisz wyrażenie w TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentacja TeX",loading:"ładowanie...",pathName:"matematyka"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/pt-br.js b/src/lib/ckeditor/plugins/mathjax/lang/pt-br.js new file mode 100644 index 00000000..6b9620d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt-br",{title:"Matemática em TeX",button:"Matemática",dialogInput:"Escreva seu TeX aqui",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"carregando...",pathName:"Matemática"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/pt.js b/src/lib/ckeditor/plugins/mathjax/lang/pt.js new file mode 100644 index 00000000..1f83fefa --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt",{title:"Matemáticas em TeX",button:"Matemática",dialogInput:"Escreva aqui o seu Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"a carregar ...",pathName:"matemática"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/ro.js b/src/lib/ckeditor/plugins/mathjax/lang/ro.js new file mode 100644 index 00000000..72c606cb --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ro",{title:"Matematici in TeX",button:"Matematici",dialogInput:"Scrie TeX-ul aici",docUrl:"http://ro.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentatie TeX",loading:"încarcă...",pathName:"matematici"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/ru.js b/src/lib/ckeditor/plugins/mathjax/lang/ru.js new file mode 100644 index 00000000..a48da75f --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ru",{title:"Математика в TeX-системе",button:"Математика",dialogInput:"Введите здесь TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX документация",loading:"загрузка...",pathName:"мат."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/sk.js b/src/lib/ckeditor/plugins/mathjax/lang/sk.js new file mode 100644 index 00000000..1a54159d --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sk",{title:"Matematika v TeX",button:"Matika",dialogInput:"Napíšte svoj TeX sem",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentácia TeX",loading:"načítavanie...",pathName:"matika"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/sl.js b/src/lib/ckeditor/plugins/mathjax/lang/sl.js new file mode 100644 index 00000000..c8df95b5 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sl",{title:"Matematika v TeX",button:"Matematika",dialogInput:"Napišite svoj TeX tukaj",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"nalaganje...",pathName:"matematika"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/sv.js b/src/lib/ckeditor/plugins/mathjax/lang/sv.js new file mode 100644 index 00000000..7508fef7 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sv",{title:"Mattematik i TeX",button:"Matte",dialogInput:"Skriv din TeX här",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentation",loading:"laddar",pathName:"matte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/tr.js b/src/lib/ckeditor/plugins/mathjax/lang/tr.js new file mode 100644 index 00000000..a2925f17 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tr",{title:"TeX ile Matematik",button:"Matematik",dialogInput:"TeX kodunuzu buraya yazın",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX yardım dökümanı",loading:"yükleniyor...",pathName:"matematik"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/tt.js b/src/lib/ckeditor/plugins/mathjax/lang/tt.js new file mode 100644 index 00000000..44003bdc --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tt",{title:"TeX'та математика",button:"Математика",dialogInput:"Биредә TeX форматында аңлатмагызны языгыз",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX турыдна документлар",loading:"йөкләнә...",pathName:"математика"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/uk.js b/src/lib/ckeditor/plugins/mathjax/lang/uk.js new file mode 100644 index 00000000..77875f4e --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","uk",{title:"Математика у TeX",button:"Математика",dialogInput:"Наберіть тут на TeX'у",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Документація про TeX",loading:"завантажується…",pathName:"математика"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/vi.js b/src/lib/ckeditor/plugins/mathjax/lang/vi.js new file mode 100644 index 00000000..66961038 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","vi",{title:"Toán học bằng TeX",button:"Toán",dialogInput:"Nhập mã TeX ở đây",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tài liệu TeX",loading:"đang nạp...",pathName:"toán"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/zh-cn.js b/src/lib/ckeditor/plugins/mathjax/lang/zh-cn.js new file mode 100644 index 00000000..ea9ad35e --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh-cn",{title:"TeX 语法的数学公式编辑器",button:"数学公式",dialogInput:"在此编写您的 TeX 指令",docUrl:"http://zh.wikipedia.org/wiki/TeX",docLabel:"TeX 语法(可以参考维基百科自身关于数学公式显示方式的帮助)",loading:"正在加载...",pathName:"数字公式"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/lang/zh.js b/src/lib/ckeditor/plugins/mathjax/lang/zh.js new file mode 100644 index 00000000..84cdab1c --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh",{title:"以 TeX 表示數學",button:"數學",dialogInput:"請輸入 TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX 說明文件",loading:"載入中…",pathName:"數學"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/mathjax/plugin.js b/src/lib/ckeditor/plugins/mathjax/plugin.js new file mode 100644 index 00000000..44964b88 --- /dev/null +++ b/src/lib/ckeditor/plugins/mathjax/plugin.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h="http://cdn.mathjax.org/mathjax/2.2-latest/MathJax.js?config=TeX-AMS_HTML";CKEDITOR.plugins.add("mathjax",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ro,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"mathjax",hidpi:!0,init:function(b){var c=b.config.mathJaxClass||"math-tex";b.widgets.add("mathjax",{inline:!0,dialog:"mathjax",button:b.lang.mathjax.button,mask:!0,allowedContent:"span(!"+c+")",styleToAllowedContentRules:function(a){a= +a.getClassesArray();if(!a)return null;a.push("!"+c);return"span("+a.join(",")+")"},pathName:b.lang.mathjax.pathName,template:'<span class="'+c+'" style="display:inline-block" data-cke-survive=1></span>',parts:{span:"span"},defaults:{math:"\\(x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}\\)"},init:function(){var a=this.parts.span.getChild(0);if(!a||a.type!=CKEDITOR.NODE_ELEMENT||!a.is("iframe"))a=new CKEDITOR.dom.element("iframe"),a.setAttributes({style:"border:0;width:0;height:0",scrolling:"no",frameborder:0, +allowTransparency:!0,src:CKEDITOR.plugins.mathjax.fixSrc}),this.parts.span.append(a);this.once("ready",function(){CKEDITOR.env.ie&&a.setAttribute("src",CKEDITOR.plugins.mathjax.fixSrc);this.frameWrapper=new CKEDITOR.plugins.mathjax.frameWrapper(a,b);this.frameWrapper.setValue(this.data.math)})},data:function(){this.frameWrapper&&this.frameWrapper.setValue(this.data.math)},upcast:function(a,b){if("span"==a.name&&a.hasClass(c)&&!(1<a.children.length||a.children[0].type!=CKEDITOR.NODE_TEXT)){b.math= +CKEDITOR.tools.htmlDecode(a.children[0].value);var d=a.attributes;d.style=d.style?d.style+";display:inline-block":"display:inline-block";d["data-cke-survive"]=1;a.children[0].remove();return a}},downcast:function(a){a.children[0].replaceWith(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.math)));var b=a.attributes;b.style=b.style.replace(/display:\s?inline-block;?\s?/,"");""===b.style&&delete b.style;return a}});CKEDITOR.dialog.add("mathjax",this.path+"dialogs/mathjax.js");b.on("contentPreview", +function(a){a.data.dataValue=a.data.dataValue.replace(/<\/head>/,'<script src="'+(b.config.mathJaxLib?CKEDITOR.getUrl(b.config.mathJaxLib):h)+'"><\/script></head>')});b.on("paste",function(a){a.data.dataValue=a.data.dataValue.replace(RegExp("<span[^>]*?"+c+".*?</span>","ig"),function(a){return a.replace(/(<iframe.*?\/iframe>)/i,"")})})}});CKEDITOR.plugins.mathjax={};CKEDITOR.plugins.mathjax.fixSrc=CKEDITOR.env.gecko?"javascript:true":CKEDITOR.env.ie?"javascript:void((function(){"+encodeURIComponent("document.open();("+ +CKEDITOR.tools.fixDomain+")();document.close();")+"})())":"javascript:void(0)";CKEDITOR.plugins.mathjax.loadingIcon=CKEDITOR.plugins.get("mathjax").path+"images/loader.gif";CKEDITOR.plugins.mathjax.copyStyles=function(b,c){for(var a="color font-family font-style font-weight font-variant font-size".split(" "),e=0;e<a.length;e++){var d=a[e],g=b.getComputedStyle(d);g&&c.setStyle(d,g)}};CKEDITOR.plugins.mathjax.trim=function(b){var c=b.indexOf("\\(")+2,a=b.lastIndexOf("\\)");return b.substring(c,a)}; +CKEDITOR.plugins.mathjax.frameWrapper=CKEDITOR.env.ie&&8==CKEDITOR.env.version?function(b,c){b.getFrameDocument().write('<!DOCTYPE html><html><head><meta charset="utf-8"></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span style="white-space:nowrap;" id="tex"></span></body></html>');return{setValue:function(a){var e=b.getFrameDocument(),d=e.getById("tex");d.setHtml(CKEDITOR.plugins.mathjax.trim(CKEDITOR.tools.htmlEncode(a)));CKEDITOR.plugins.mathjax.copyStyles(b,d); +c.fire("lockSnapshot");b.setStyles({width:Math.min(250,d.$.offsetWidth)+"px",height:e.$.body.offsetHeight+"px",display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot")}}}:function(b,c){function a(){f=b.getFrameDocument();f.getById("preview")||(CKEDITOR.env.ie&&b.removeAttribute("src"),f.write('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="text/x-mathjax-config">MathJax.Hub.Config( {showMathMenu: false,messageStyle: "none"} );function getCKE() {if ( typeof window.parent.CKEDITOR == \'object\' ) {return window.parent.CKEDITOR;} else {return window.parent.parent.CKEDITOR;}}function update() {MathJax.Hub.Queue([ \'Typeset\', MathJax.Hub, this.buffer ],function() {getCKE().tools.callFunction( '+ +m+" );});}MathJax.Hub.Queue( function() {getCKE().tools.callFunction("+n+');} );<\/script><script src="'+(c.config.mathJaxLib||h)+'"><\/script></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span id="preview"></span><span id="buffer" style="display:none"></span></body></html>'))}function e(){k=!0;i=j;c.fire("lockSnapshot");d.setHtml(i);g.setHtml("<img src="+CKEDITOR.plugins.mathjax.loadingIcon+" alt="+c.lang.mathjax.loading+">");b.setStyles({height:"16px",width:"16px", +display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot");f.getWindow().$.update(i)}var d,g,i,j,f=b.getFrameDocument(),l=!1,k=!1,n=CKEDITOR.tools.addFunction(function(){g=f.getById("preview");d=f.getById("buffer");l=!0;j&&e();CKEDITOR.fire("mathJaxLoaded",b)}),m=CKEDITOR.tools.addFunction(function(){CKEDITOR.plugins.mathjax.copyStyles(b,g);g.setHtml(d.getHtml());c.fire("lockSnapshot");b.setStyles({height:0,width:0});var a=Math.max(f.$.body.offsetHeight,f.$.documentElement.offsetHeight), +h=Math.max(g.$.offsetWidth,f.$.body.scrollWidth);b.setStyles({height:a+"px",width:h+"px"});c.fire("unlockSnapshot");CKEDITOR.fire("mathJaxUpdateDone",b);i!=j?e():k=!1});b.on("load",a);a();return{setValue:function(a){j=CKEDITOR.tools.htmlEncode(a);l&&!k&&e()}}}})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png b/src/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png new file mode 100644 index 00000000..1a7551c2 Binary files /dev/null and b/src/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png differ diff --git a/src/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png b/src/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png new file mode 100644 index 00000000..8cbe2230 Binary files /dev/null and b/src/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png differ diff --git a/src/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png b/src/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png new file mode 100644 index 00000000..2c8ef7fe Binary files /dev/null and b/src/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png differ diff --git a/src/lib/ckeditor/plugins/newpage/icons/newpage.png b/src/lib/ckeditor/plugins/newpage/icons/newpage.png new file mode 100644 index 00000000..8e18c8a2 Binary files /dev/null and b/src/lib/ckeditor/plugins/newpage/icons/newpage.png differ diff --git a/src/lib/ckeditor/plugins/newpage/lang/af.js b/src/lib/ckeditor/plugins/newpage/lang/af.js new file mode 100644 index 00000000..2fd4a604 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","af",{toolbar:"Nuwe bladsy"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ar.js b/src/lib/ckeditor/plugins/newpage/lang/ar.js new file mode 100644 index 00000000..04f45c5c --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ar",{toolbar:"صفحة جديدة"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/bg.js b/src/lib/ckeditor/plugins/newpage/lang/bg.js new file mode 100644 index 00000000..b40fbf54 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bg",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/bn.js b/src/lib/ckeditor/plugins/newpage/lang/bn.js new file mode 100644 index 00000000..aaedacbe --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bn",{toolbar:"নতুন পেজ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/bs.js b/src/lib/ckeditor/plugins/newpage/lang/bs.js new file mode 100644 index 00000000..f8a0c44e --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bs",{toolbar:"Novi dokument"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ca.js b/src/lib/ckeditor/plugins/newpage/lang/ca.js new file mode 100644 index 00000000..4efb6079 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ca",{toolbar:"Nova pàgina"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/cs.js b/src/lib/ckeditor/plugins/newpage/lang/cs.js new file mode 100644 index 00000000..02960680 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cs",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/cy.js b/src/lib/ckeditor/plugins/newpage/lang/cy.js new file mode 100644 index 00000000..09e8b6fa --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cy",{toolbar:"Tudalen Newydd"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/da.js b/src/lib/ckeditor/plugins/newpage/lang/da.js new file mode 100644 index 00000000..22d0d6b1 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","da",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/de.js b/src/lib/ckeditor/plugins/newpage/lang/de.js new file mode 100644 index 00000000..8d323f87 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","de",{toolbar:"Neue Seite"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/el.js b/src/lib/ckeditor/plugins/newpage/lang/el.js new file mode 100644 index 00000000..7f989b1a --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","el",{toolbar:"Νέα Σελίδα"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/en-au.js b/src/lib/ckeditor/plugins/newpage/lang/en-au.js new file mode 100644 index 00000000..6e38a28b --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-au",{toolbar:"New Page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/en-ca.js b/src/lib/ckeditor/plugins/newpage/lang/en-ca.js new file mode 100644 index 00000000..327aa5d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-ca",{toolbar:"New Page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/en-gb.js b/src/lib/ckeditor/plugins/newpage/lang/en-gb.js new file mode 100644 index 00000000..3f7ab3e9 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-gb",{toolbar:"New Page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/en.js b/src/lib/ckeditor/plugins/newpage/lang/en.js new file mode 100644 index 00000000..4402b73d --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en",{toolbar:"New Page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/eo.js b/src/lib/ckeditor/plugins/newpage/lang/eo.js new file mode 100644 index 00000000..671a107d --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eo",{toolbar:"Nova Paĝo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/es.js b/src/lib/ckeditor/plugins/newpage/lang/es.js new file mode 100644 index 00000000..ca54ae0d --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","es",{toolbar:"Nueva Página"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/et.js b/src/lib/ckeditor/plugins/newpage/lang/et.js new file mode 100644 index 00000000..59a58061 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","et",{toolbar:"Uus leht"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/eu.js b/src/lib/ckeditor/plugins/newpage/lang/eu.js new file mode 100644 index 00000000..82808efd --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eu",{toolbar:"Orrialde Berria"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/fa.js b/src/lib/ckeditor/plugins/newpage/lang/fa.js new file mode 100644 index 00000000..6986ba6d --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fa",{toolbar:"برگهٴ تازه"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/fi.js b/src/lib/ckeditor/plugins/newpage/lang/fi.js new file mode 100644 index 00000000..cc1e63df --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fi",{toolbar:"Tyhjennä"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/fo.js b/src/lib/ckeditor/plugins/newpage/lang/fo.js new file mode 100644 index 00000000..778091e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fo",{toolbar:"Nýggj síða"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/fr-ca.js b/src/lib/ckeditor/plugins/newpage/lang/fr-ca.js new file mode 100644 index 00000000..de7bb951 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr-ca",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/fr.js b/src/lib/ckeditor/plugins/newpage/lang/fr.js new file mode 100644 index 00000000..2de51702 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/gl.js b/src/lib/ckeditor/plugins/newpage/lang/gl.js new file mode 100644 index 00000000..96b7ea77 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gl",{toolbar:"Páxina nova"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/gu.js b/src/lib/ckeditor/plugins/newpage/lang/gu.js new file mode 100644 index 00000000..f4c3306c --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gu",{toolbar:"નવુ પાનું"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/he.js b/src/lib/ckeditor/plugins/newpage/lang/he.js new file mode 100644 index 00000000..460262b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","he",{toolbar:"דף חדש"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/hi.js b/src/lib/ckeditor/plugins/newpage/lang/hi.js new file mode 100644 index 00000000..afed2e28 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hi",{toolbar:"नया पेज"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/hr.js b/src/lib/ckeditor/plugins/newpage/lang/hr.js new file mode 100644 index 00000000..fc09d5af --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hr",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/hu.js b/src/lib/ckeditor/plugins/newpage/lang/hu.js new file mode 100644 index 00000000..6053528b --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hu",{toolbar:"Új oldal"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/id.js b/src/lib/ckeditor/plugins/newpage/lang/id.js new file mode 100644 index 00000000..391bdad6 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","id",{toolbar:"Halaman Baru"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/is.js b/src/lib/ckeditor/plugins/newpage/lang/is.js new file mode 100644 index 00000000..cee7f357 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","is",{toolbar:"Ný síða"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/it.js b/src/lib/ckeditor/plugins/newpage/lang/it.js new file mode 100644 index 00000000..d484977e --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","it",{toolbar:"Nuova pagina"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ja.js b/src/lib/ckeditor/plugins/newpage/lang/ja.js new file mode 100644 index 00000000..3954e55b --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ja",{toolbar:"新しいページ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ka.js b/src/lib/ckeditor/plugins/newpage/lang/ka.js new file mode 100644 index 00000000..ee1bd799 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ka",{toolbar:"ახალი გვერდი"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/km.js b/src/lib/ckeditor/plugins/newpage/lang/km.js new file mode 100644 index 00000000..0dcae481 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","km",{toolbar:"ទំព័រ​ថ្មី"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ko.js b/src/lib/ckeditor/plugins/newpage/lang/ko.js new file mode 100644 index 00000000..3ac6b6b6 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ko",{toolbar:"새 문서"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ku.js b/src/lib/ckeditor/plugins/newpage/lang/ku.js new file mode 100644 index 00000000..b5d99596 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ku",{toolbar:"پەڕەیەکی نوێ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/lt.js b/src/lib/ckeditor/plugins/newpage/lang/lt.js new file mode 100644 index 00000000..a9572d6f --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lt",{toolbar:"Naujas puslapis"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/lv.js b/src/lib/ckeditor/plugins/newpage/lang/lv.js new file mode 100644 index 00000000..d05d3900 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lv",{toolbar:"Jauna lapa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/mk.js b/src/lib/ckeditor/plugins/newpage/lang/mk.js new file mode 100644 index 00000000..0b4261c7 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mk",{toolbar:"New Page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/mn.js b/src/lib/ckeditor/plugins/newpage/lang/mn.js new file mode 100644 index 00000000..7ea8f845 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mn",{toolbar:"Шинэ хуудас"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ms.js b/src/lib/ckeditor/plugins/newpage/lang/ms.js new file mode 100644 index 00000000..a6544940 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ms",{toolbar:"Helaian Baru"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/nb.js b/src/lib/ckeditor/plugins/newpage/lang/nb.js new file mode 100644 index 00000000..7d8addd9 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nb",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/nl.js b/src/lib/ckeditor/plugins/newpage/lang/nl.js new file mode 100644 index 00000000..20ab5057 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nl",{toolbar:"Nieuwe pagina"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/no.js b/src/lib/ckeditor/plugins/newpage/lang/no.js new file mode 100644 index 00000000..551cb365 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","no",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/pl.js b/src/lib/ckeditor/plugins/newpage/lang/pl.js new file mode 100644 index 00000000..c2dd7686 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pl",{toolbar:"Nowa strona"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/pt-br.js b/src/lib/ckeditor/plugins/newpage/lang/pt-br.js new file mode 100644 index 00000000..31120f06 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt-br",{toolbar:"Novo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/pt.js b/src/lib/ckeditor/plugins/newpage/lang/pt.js new file mode 100644 index 00000000..556a89b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt",{toolbar:"Nova Página"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ro.js b/src/lib/ckeditor/plugins/newpage/lang/ro.js new file mode 100644 index 00000000..87336458 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ro",{toolbar:"Pagină nouă"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ru.js b/src/lib/ckeditor/plugins/newpage/lang/ru.js new file mode 100644 index 00000000..bdac86ef --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ru",{toolbar:"Новая страница"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/si.js b/src/lib/ckeditor/plugins/newpage/lang/si.js new file mode 100644 index 00000000..166e5505 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","si",{toolbar:"නව පිටුවක්"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/sk.js b/src/lib/ckeditor/plugins/newpage/lang/sk.js new file mode 100644 index 00000000..2ff850fd --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sk",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/sl.js b/src/lib/ckeditor/plugins/newpage/lang/sl.js new file mode 100644 index 00000000..b8bdbdb3 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sl",{toolbar:"Nova stran"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/sq.js b/src/lib/ckeditor/plugins/newpage/lang/sq.js new file mode 100644 index 00000000..eb508027 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sq",{toolbar:"Faqe e Re"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/sr-latn.js b/src/lib/ckeditor/plugins/newpage/lang/sr-latn.js new file mode 100644 index 00000000..1758d5c4 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr-latn",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/sr.js b/src/lib/ckeditor/plugins/newpage/lang/sr.js new file mode 100644 index 00000000..9289d01f --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/sv.js b/src/lib/ckeditor/plugins/newpage/lang/sv.js new file mode 100644 index 00000000..ce4099d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sv",{toolbar:"Ny sida"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/th.js b/src/lib/ckeditor/plugins/newpage/lang/th.js new file mode 100644 index 00000000..f1647f27 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","th",{toolbar:"สร้างหน้าเอกสารใหม่"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/tr.js b/src/lib/ckeditor/plugins/newpage/lang/tr.js new file mode 100644 index 00000000..afba1bd6 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tr",{toolbar:"Yeni Sayfa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/tt.js b/src/lib/ckeditor/plugins/newpage/lang/tt.js new file mode 100644 index 00000000..2c9e06ab --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tt",{toolbar:"Яңа бит"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/ug.js b/src/lib/ckeditor/plugins/newpage/lang/ug.js new file mode 100644 index 00000000..739429ab --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ug",{toolbar:"يېڭى بەت"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/uk.js b/src/lib/ckeditor/plugins/newpage/lang/uk.js new file mode 100644 index 00000000..518a63ac --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","uk",{toolbar:"Нова сторінка"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/vi.js b/src/lib/ckeditor/plugins/newpage/lang/vi.js new file mode 100644 index 00000000..16dffe6b --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","vi",{toolbar:"Trang mới"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/zh-cn.js b/src/lib/ckeditor/plugins/newpage/lang/zh-cn.js new file mode 100644 index 00000000..9868d6b1 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh-cn",{toolbar:"新建"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/lang/zh.js b/src/lib/ckeditor/plugins/newpage/lang/zh.js new file mode 100644 index 00000000..cd365f40 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh",{toolbar:"新增網頁"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/newpage/plugin.js b/src/lib/ckeditor/plugins/newpage/plugin.js new file mode 100644 index 00000000..c5d88b96 --- /dev/null +++ b/src/lib/ckeditor/plugins/newpage/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("newpage",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"newpage,newpage-rtl",hidpi:!0,init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage", +command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png b/src/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png new file mode 100644 index 00000000..4a5418cb Binary files /dev/null and b/src/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png differ diff --git a/src/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png b/src/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png new file mode 100644 index 00000000..8d3930bb Binary files /dev/null and b/src/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png differ diff --git a/src/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png b/src/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png new file mode 100644 index 00000000..b5b342b0 Binary files /dev/null and b/src/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png differ diff --git a/src/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png b/src/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png new file mode 100644 index 00000000..5280a6e9 Binary files /dev/null and b/src/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png differ diff --git a/src/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif b/src/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif new file mode 100644 index 00000000..8d1cffd6 Binary files /dev/null and b/src/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif differ diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/af.js b/src/lib/ckeditor/plugins/pagebreak/lang/af.js new file mode 100644 index 00000000..3db5e2e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","af",{alt:"Bladsy-einde",toolbar:"Bladsy-einde invoeg"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ar.js b/src/lib/ckeditor/plugins/pagebreak/lang/ar.js new file mode 100644 index 00000000..6c795815 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ar",{alt:"فاصل الصفحة",toolbar:"إدخال صفحة جديدة"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/bg.js b/src/lib/ckeditor/plugins/pagebreak/lang/bg.js new file mode 100644 index 00000000..32ea86b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bg",{alt:"Разделяне на страници",toolbar:"Вмъкване на нова страница при печат"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/bn.js b/src/lib/ckeditor/plugins/pagebreak/lang/bn.js new file mode 100644 index 00000000..69bcc5d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bn",{alt:"Page Break",toolbar:"পেজ ব্রেক"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/bs.js b/src/lib/ckeditor/plugins/pagebreak/lang/bs.js new file mode 100644 index 00000000..e33eb612 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bs",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ca.js b/src/lib/ckeditor/plugins/pagebreak/lang/ca.js new file mode 100644 index 00000000..8d1732ce --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ca",{alt:"Salt de pàgina",toolbar:"Insereix salt de pàgina"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/cs.js b/src/lib/ckeditor/plugins/pagebreak/lang/cs.js new file mode 100644 index 00000000..c2753103 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cs",{alt:"Konec stránky",toolbar:"Vložit konec stránky"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/cy.js b/src/lib/ckeditor/plugins/pagebreak/lang/cy.js new file mode 100644 index 00000000..b3f86a44 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cy",{alt:"Toriad Tudalen",toolbar:"Mewnosod Toriad Tudalen i Argraffu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/da.js b/src/lib/ckeditor/plugins/pagebreak/lang/da.js new file mode 100644 index 00000000..206f3a63 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","da",{alt:"Sideskift",toolbar:"Indsæt sideskift"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/de.js b/src/lib/ckeditor/plugins/pagebreak/lang/de.js new file mode 100644 index 00000000..06449421 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","de",{alt:"Seitenumbruch einfügen",toolbar:"Seitenumbruch einfügen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/el.js b/src/lib/ckeditor/plugins/pagebreak/lang/el.js new file mode 100644 index 00000000..1b9c8728 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","el",{alt:"Αλλαγή Σελίδας",toolbar:"Εισαγωγή Τέλους Σελίδας για Εκτύπωση"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/en-au.js b/src/lib/ckeditor/plugins/pagebreak/lang/en-au.js new file mode 100644 index 00000000..ca24e8e9 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-au",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/en-ca.js b/src/lib/ckeditor/plugins/pagebreak/lang/en-ca.js new file mode 100644 index 00000000..d4731567 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-ca",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/en-gb.js b/src/lib/ckeditor/plugins/pagebreak/lang/en-gb.js new file mode 100644 index 00000000..d17f8b0f --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-gb",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/en.js b/src/lib/ckeditor/plugins/pagebreak/lang/en.js new file mode 100644 index 00000000..4b680ef1 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/eo.js b/src/lib/ckeditor/plugins/pagebreak/lang/eo.js new file mode 100644 index 00000000..cb664749 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eo",{alt:"Paĝavanco",toolbar:"Enmeti Paĝavancon por Presado"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/es.js b/src/lib/ckeditor/plugins/pagebreak/lang/es.js new file mode 100644 index 00000000..17379550 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","es",{alt:"Salto de página",toolbar:"Insertar Salto de Página"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/et.js b/src/lib/ckeditor/plugins/pagebreak/lang/et.js new file mode 100644 index 00000000..463b200d --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","et",{alt:"Lehevahetuskoht",toolbar:"Lehevahetuskoha sisestamine"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/eu.js b/src/lib/ckeditor/plugins/pagebreak/lang/eu.js new file mode 100644 index 00000000..42c24112 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eu",{alt:"Orrialde-jauzia",toolbar:"Txertatu Orrialde-jauzia Inprimatzean"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/fa.js b/src/lib/ckeditor/plugins/pagebreak/lang/fa.js new file mode 100644 index 00000000..c8b8e186 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fa",{alt:"شکستن صفحه",toolbar:"گنجاندن شکستگی پایان برگه"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/fi.js b/src/lib/ckeditor/plugins/pagebreak/lang/fi.js new file mode 100644 index 00000000..5dc52bd6 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fi",{alt:"Sivunvaihto",toolbar:"Lisää sivunvaihto"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/fo.js b/src/lib/ckeditor/plugins/pagebreak/lang/fo.js new file mode 100644 index 00000000..ba9b9dca --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fo",{alt:"Síðuskift",toolbar:"Ger síðuskift"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js b/src/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js new file mode 100644 index 00000000..e5ec2329 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr-ca",{alt:"Saut de page",toolbar:"Insérer un saut de page à l'impression"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/fr.js b/src/lib/ckeditor/plugins/pagebreak/lang/fr.js new file mode 100644 index 00000000..941c0b16 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr",{alt:"Saut de page",toolbar:"Saut de page"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/gl.js b/src/lib/ckeditor/plugins/pagebreak/lang/gl.js new file mode 100644 index 00000000..fd239f3f --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gl",{alt:"Quebra de páxina",toolbar:"Inserir quebra de páxina"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/gu.js b/src/lib/ckeditor/plugins/pagebreak/lang/gu.js new file mode 100644 index 00000000..cd6a24e4 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gu",{alt:"નવું પાનું",toolbar:"ઇન્સર્ટ પેજબ્રેક/પાનાને અલગ કરવું/દાખલ કરવું"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/he.js b/src/lib/ckeditor/plugins/pagebreak/lang/he.js new file mode 100644 index 00000000..e5b8124e --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","he",{alt:"שבירת דף",toolbar:"הוספת שבירת דף"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/hi.js b/src/lib/ckeditor/plugins/pagebreak/lang/hi.js new file mode 100644 index 00000000..940a28fe --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hi",{alt:"पेज ब्रेक",toolbar:"पेज ब्रेक इन्सर्ट् करें"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/hr.js b/src/lib/ckeditor/plugins/pagebreak/lang/hr.js new file mode 100644 index 00000000..6f86601d --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hr",{alt:"Prijelom stranice",toolbar:"Ubaci prijelom stranice"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/hu.js b/src/lib/ckeditor/plugins/pagebreak/lang/hu.js new file mode 100644 index 00000000..6b9fd0e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hu",{alt:"Oldaltörés",toolbar:"Oldaltörés beillesztése"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/id.js b/src/lib/ckeditor/plugins/pagebreak/lang/id.js new file mode 100644 index 00000000..71865adb --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","id",{alt:"Halaman Istirahat",toolbar:"Sisip Halaman Istirahat untuk Pencetakan "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/is.js b/src/lib/ckeditor/plugins/pagebreak/lang/is.js new file mode 100644 index 00000000..27f20878 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","is",{alt:"Page Break",toolbar:"Setja inn síðuskil"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/it.js b/src/lib/ckeditor/plugins/pagebreak/lang/it.js new file mode 100644 index 00000000..1308ec6b --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","it",{alt:"Interruzione di pagina",toolbar:"Inserisci interruzione di pagina per la stampa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ja.js b/src/lib/ckeditor/plugins/pagebreak/lang/ja.js new file mode 100644 index 00000000..cc1574f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ja",{alt:"改ページ",toolbar:"印刷の為に改ページ挿入"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ka.js b/src/lib/ckeditor/plugins/pagebreak/lang/ka.js new file mode 100644 index 00000000..6c999ff4 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ka",{alt:"გვერდის წყვეტა",toolbar:"გვერდის წყვეტა ბეჭდვისთვის"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/km.js b/src/lib/ckeditor/plugins/pagebreak/lang/km.js new file mode 100644 index 00000000..ab157e3d --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","km",{alt:"បំបែក​ទំព័រ",toolbar:"បន្ថែម​ការ​បំបែក​ទំព័រ​មុន​បោះពុម្ព"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ko.js b/src/lib/ckeditor/plugins/pagebreak/lang/ko.js new file mode 100644 index 00000000..c83c5e63 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ko",{alt:"패이지 나누기",toolbar:"인쇄시 페이지 나누기 삽입"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ku.js b/src/lib/ckeditor/plugins/pagebreak/lang/ku.js new file mode 100644 index 00000000..d9897842 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ku",{alt:"پشووی پەڕە",toolbar:"دانانی پشووی پەڕە بۆ چاپکردن"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/lt.js b/src/lib/ckeditor/plugins/pagebreak/lang/lt.js new file mode 100644 index 00000000..5879e3ca --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lt",{alt:"Puslapio skirtukas",toolbar:"Įterpti puslapių skirtuką"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/lv.js b/src/lib/ckeditor/plugins/pagebreak/lang/lv.js new file mode 100644 index 00000000..d594489b --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lv",{alt:"Lapas pārnesums",toolbar:"Ievietot lapas pārtraukumu drukai"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/mk.js b/src/lib/ckeditor/plugins/pagebreak/lang/mk.js new file mode 100644 index 00000000..5fdce2f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mk",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/mn.js b/src/lib/ckeditor/plugins/pagebreak/lang/mn.js new file mode 100644 index 00000000..272ffaf7 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mn",{alt:"Page Break",toolbar:"Хуудас тусгаарлагч оруулах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ms.js b/src/lib/ckeditor/plugins/pagebreak/lang/ms.js new file mode 100644 index 00000000..e0988eec --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ms",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/nb.js b/src/lib/ckeditor/plugins/pagebreak/lang/nb.js new file mode 100644 index 00000000..15f45eeb --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nb",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/nl.js b/src/lib/ckeditor/plugins/pagebreak/lang/nl.js new file mode 100644 index 00000000..5c05b168 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nl",{alt:"Pagina-einde",toolbar:"Pagina-einde invoegen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/no.js b/src/lib/ckeditor/plugins/pagebreak/lang/no.js new file mode 100644 index 00000000..ec64c6bc --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","no",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/pl.js b/src/lib/ckeditor/plugins/pagebreak/lang/pl.js new file mode 100644 index 00000000..79861f98 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pl",{alt:"Wstaw podział strony",toolbar:"Wstaw podział strony"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/pt-br.js b/src/lib/ckeditor/plugins/pagebreak/lang/pt-br.js new file mode 100644 index 00000000..31d256d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt-br",{alt:"Quebra de Página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/pt.js b/src/lib/ckeditor/plugins/pagebreak/lang/pt.js new file mode 100644 index 00000000..17ed211a --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt",{alt:"Quebra de página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ro.js b/src/lib/ckeditor/plugins/pagebreak/lang/ro.js new file mode 100644 index 00000000..91833bac --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ro",{alt:"Page Break",toolbar:"Inserează separator de pagină (Page Break)"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ru.js b/src/lib/ckeditor/plugins/pagebreak/lang/ru.js new file mode 100644 index 00000000..621682c1 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ru",{alt:"Разрыв страницы",toolbar:"Вставить разрыв страницы для печати"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/si.js b/src/lib/ckeditor/plugins/pagebreak/lang/si.js new file mode 100644 index 00000000..a232df64 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","si",{alt:"පිටු බිදුම",toolbar:"මුද්‍රණය සඳහා පිටු බිදුමක් ඇතුලත් කරන්න"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/sk.js b/src/lib/ckeditor/plugins/pagebreak/lang/sk.js new file mode 100644 index 00000000..b465e98f --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sk",{alt:"Zalomenie strany",toolbar:"Vložiť oddeľovač stránky pre tlač"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/sl.js b/src/lib/ckeditor/plugins/pagebreak/lang/sl.js new file mode 100644 index 00000000..d07e9040 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sl",{alt:"Prelom Strani",toolbar:"Vstavi prelom strani"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/sq.js b/src/lib/ckeditor/plugins/pagebreak/lang/sq.js new file mode 100644 index 00000000..3b570e03 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sq",{alt:"Thyerja e Faqes",toolbar:"Vendos Thyerje Faqeje për Shtyp"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js b/src/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js new file mode 100644 index 00000000..55877bac --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr-latn",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/sr.js b/src/lib/ckeditor/plugins/pagebreak/lang/sr.js new file mode 100644 index 00000000..9c6d9aff --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/sv.js b/src/lib/ckeditor/plugins/pagebreak/lang/sv.js new file mode 100644 index 00000000..a2210ceb --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sv",{alt:"Sidbrytning",toolbar:"Infoga sidbrytning för utskrift"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/th.js b/src/lib/ckeditor/plugins/pagebreak/lang/th.js new file mode 100644 index 00000000..55a25317 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","th",{alt:"ตัวแบ่งหน้า",toolbar:"แทรกตัวแบ่งหน้า Page Break"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/tr.js b/src/lib/ckeditor/plugins/pagebreak/lang/tr.js new file mode 100644 index 00000000..d5e64a52 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tr",{alt:"Sayfa Sonu",toolbar:"Sayfa Sonu Ekle"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/tt.js b/src/lib/ckeditor/plugins/pagebreak/lang/tt.js new file mode 100644 index 00000000..df0ae8fb --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tt",{alt:"Бит бүлгече",toolbar:"Бастыру өчен бит бүлгечен өстәү"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/ug.js b/src/lib/ckeditor/plugins/pagebreak/lang/ug.js new file mode 100644 index 00000000..10404349 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ug",{alt:"بەت ئايرىغۇچ",toolbar:"بەت ئايرىغۇچ قىستۇر"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/uk.js b/src/lib/ckeditor/plugins/pagebreak/lang/uk.js new file mode 100644 index 00000000..0abba674 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","uk",{alt:"Розрив Сторінки",toolbar:"Вставити розрив сторінки"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/vi.js b/src/lib/ckeditor/plugins/pagebreak/lang/vi.js new file mode 100644 index 00000000..5787cb65 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","vi",{alt:"Ngắt trang",toolbar:"Chèn ngắt trang"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js b/src/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js new file mode 100644 index 00000000..39ec7add --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh-cn",{alt:"分页符",toolbar:"插入打印分页符"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/lang/zh.js b/src/lib/ckeditor/plugins/pagebreak/lang/zh.js new file mode 100644 index 00000000..9b5a14c6 --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh",{alt:"換頁",toolbar:"插入換頁符號以便列印"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pagebreak/plugin.js b/src/lib/ckeditor/plugins/pagebreak/plugin.js new file mode 100644 index 00000000..f9a7c3df --- /dev/null +++ b/src/lib/ckeditor/plugins/pagebreak/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(a){return{"aria-label":a,"class":"cke_pagebreak",contenteditable:"false","data-cke-display-name":"pagebreak","data-cke-pagebreak":1,style:"page-break-after: always",title:a}}CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"pagebreak,pagebreak-rtl", +hidpi:!0,onLoad:function(){var a=("background:url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;clear:both;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;padding:0;height:5px;cursor:default;").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak{"+a+"}")},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak", +toolbar:"insert,70"}),CKEDITOR.env.webkit&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){function b(f){CKEDITOR.tools.extend(f.attributes,e(a.lang.pagebreak.alt),!0);f.children.length=0}var c=a.dataProcessor,g=c&&c.dataFilter,c=c&&c.htmlFilter,h=/page-break-after\s*:\s*always/i,i=/display\s*:\s*none/i;c&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak", +"");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>').children[0];b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},{applyToAll:!0,priority:5});g&&g.addRules({elements:{div:function(a){if(a.attributes["data-cke-pagebreak"])b(a);else if(h.test(a.attributes.style)){var c=a.children[0];c&&("span"==c.name&&i.test(c.attributes.style))&&b(a)}}}})}});CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b= +a.document.createElement("div",{attributes:e(a.lang.pagebreak.alt)});a.insertElement(b)},context:"div",allowedContent:{div:{styles:"!page-break-after"},span:{match:function(a){return(a=a.parent)&&"div"==a.name&&a.styles&&a.styles["page-break-after"]},styles:"display"}},requiredContent:"div{page-break-after}"}})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/panelbutton/plugin.js b/src/lib/ckeditor/plugins/panelbutton/plugin.js new file mode 100644 index 00000000..18adde8c --- /dev/null +++ b/src/lib/ckeditor/plugins/panelbutton/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated= +!0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()}; +d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}}); +CKEDITOR.UI_PANELBUTTON="panelbutton"; \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/pastefromword/filter/default.js b/src/lib/ckeditor/plugins/pastefromword/filter/default.js new file mode 100644 index 00000000..899ed21b --- /dev/null +++ b/src/lib/ckeditor/plugins/pastefromword/filter/default.js @@ -0,0 +1,31 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(a){for(var a=a.toUpperCase(),c=z.length,b=0,f=0;f<c;++f)for(var d=z[f],e=d[1].length;a.substr(0,e)==d[1];a=a.substr(e))b+=d[0];return b}function A(a){for(var a=a.toUpperCase(),c=B.length,b=1,f=1;0<a.length;f*=c)b+=B.indexOf(a.charAt(a.length-1))*f,a=a.substr(0,a.length-1);return b}var C=CKEDITOR.htmlParser.fragment.prototype,o=CKEDITOR.htmlParser.element.prototype;C.onlyChild=o.onlyChild=function(){var a=this.children;return 1==a.length&&a[0]||null};o.removeAnyChildWithName= +function(a){for(var c=this.children,b=[],f,d=0;d<c.length;d++)f=c[d],f.name&&(f.name==a&&(b.push(f),c.splice(d--,1)),b=b.concat(f.removeAnyChildWithName(a)));return b};o.getAncestor=function(a){for(var c=this.parent;c&&(!c.name||!c.name.match(a));)c=c.parent;return c};C.firstChild=o.firstChild=function(a){for(var c,b=0;b<this.children.length;b++)if(c=this.children[b],a(c)||c.name&&(c=c.firstChild(a)))return c;return null};o.addStyle=function(a,c,b){var f="";if("string"==typeof c)f+=a+":"+c+";";else{if("object"== +typeof a)for(var d in a)a.hasOwnProperty(d)&&(f+=d+":"+a[d]+";");else f+=a;b=c}this.attributes||(this.attributes={});a=this.attributes.style||"";a=(b?[f,a]:[a,f]).join(";");this.attributes.style=a.replace(/^;+|;(?=;)/g,"")};o.getStyle=function(a){var c=this.attributes.style;if(c)return c=CKEDITOR.tools.parseCssText(c,1),c[a]};CKEDITOR.dtd.parentOf=function(a){var c={},b;for(b in this)-1==b.indexOf("$")&&this[b][a]&&(c[b]=1);return c};var H=/^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i, +D=/^(?:\b0[^\s]*\s*){1,4}$/,x={ol:{decimal:/\d+/,"lower-roman":/^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/,"upper-roman":/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"lower-alpha":/^[a-z]+$/,"upper-alpha":/^[A-Z]+$/},ul:{disc:/[l\u00B7\u2002]/,circle:/[\u006F\u00D8]/,square:/[\u006E\u25C6]/}},z=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],B="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=0,t=null,w,E=CKEDITOR.plugins.pastefromword= +{utils:{createListBulletMarker:function(a,c){var b=new CKEDITOR.htmlParser.element("cke:listbullet");b.attributes={"cke:listsymbol":a[0]};b.add(new CKEDITOR.htmlParser.text(c));return b},isListBulletIndicator:function(a){if(/mso-list\s*:\s*Ignore/i.test(a.attributes&&a.attributes.style))return!0},isContainingOnlySpaces:function(a){var c;return(c=a.onlyChild())&&/^(:?\s| )+$/.test(c.value)},resolveList:function(a){var c=a.attributes,b;if((b=a.removeAnyChildWithName("cke:listbullet"))&&b.length&& +(b=b[0]))return a.name="cke:li",c.style&&(c.style=E.filters.stylesFilter([["text-indent"],["line-height"],[/^margin(:?-left)?$/,null,function(a){a=a.split(" ");a=CKEDITOR.tools.convertToPx(a[3]||a[1]||a[0]);!s&&(null!==t&&a>t)&&(s=a-t);t=a;c["cke:indent"]=s&&Math.ceil(a/s)+1||1}],[/^mso-list$/,null,function(a){var a=a.split(" "),b=Number(a[0].match(/\d+/)),a=Number(a[1].match(/\d+/));1==a&&(b!==w&&(c["cke:reset"]=1),w=b);c["cke:indent"]=a}]])(c.style,a)||""),c["cke:indent"]||(t=0,c["cke:indent"]= +1),CKEDITOR.tools.extend(c,b.attributes),!0;w=t=s=null;return!1},getStyleComponents:function(){var a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(a);return function(c,b,f){a.setStyle(c,b);for(var c={},b=f.length,d=0;d<b;d++)c[f[d]]=a.getStyle(f[d]);return c}}(),listDtdParents:CKEDITOR.dtd.parentOf("ol")},filters:{flattenList:function(a,c){var c="number"==typeof c?c:1,b=a.attributes,f;switch(b.type){case "a":f= +"lower-alpha";break;case "1":f="decimal"}for(var d=a.children,e,h=0;h<d.length;h++)if(e=d[h],e.name in CKEDITOR.dtd.$listItem){var j=e.attributes,g=e.children,m=g[g.length-1];m.name in CKEDITOR.dtd.$list&&(a.add(m,h+1),--g.length||d.splice(h--,1));e.name="cke:li";b.start&&!h&&(j.value=b.start);E.filters.stylesFilter([["tab-stops",null,function(a){(a=a.split(" ")[1].match(H))&&(t=CKEDITOR.tools.convertToPx(a[0]))}],1==c?["mso-list",null,function(a){a=a.split(" ");a=Number(a[0].match(/\d+/));a!==w&& +(j["cke:reset"]=1);w=a}]:null])(j.style);j["cke:indent"]=c;j["cke:listtype"]=a.name;j["cke:list-style-type"]=f}else if(e.name in CKEDITOR.dtd.$list){arguments.callee.apply(this,[e,c+1]);d=d.slice(0,h).concat(e.children).concat(d.slice(h+1));a.children=[];e=0;for(g=d.length;e<g;e++)a.add(d[e]);d=a.children}delete a.name;b["cke:list"]=1},assembleList:function(a){for(var c=a.children,b,f,d,e,h,j,a=[],g,m,i,l,k,p,n=0;n<c.length;n++)if(b=c[n],"cke:li"==b.name)if(b.name="li",f=b.attributes,i=(i=f["cke:listsymbol"])&& +i.match(/^(?:[(]?)([^\s]+?)([.)]?)$/),l=k=p=null,f["cke:ignored"])c.splice(n--,1);else{f["cke:reset"]&&(j=e=h=null);d=Number(f["cke:indent"]);d!=e&&(m=g=null);if(i){if(m&&x[m][g].test(i[1]))l=m,k=g;else for(var q in x)for(var u in x[q])if(x[q][u].test(i[1]))if("ol"==q&&/alpha|roman/.test(u)){if(g=/roman/.test(u)?y(i[1]):A(i[1]),!p||g<p)p=g,l=q,k=u}else{l=q;k=u;break}!l&&(l=i[2]?"ol":"ul")}else l=f["cke:listtype"]||"ol",k=f["cke:list-style-type"];m=l;g=k||("ol"==l?"decimal":"disc");k&&k!=("ol"==l? +"decimal":"disc")&&b.addStyle("list-style-type",k);if("ol"==l&&i){switch(k){case "decimal":p=Number(i[1]);break;case "lower-roman":case "upper-roman":p=y(i[1]);break;case "lower-alpha":case "upper-alpha":p=A(i[1])}b.attributes.value=p}if(j){if(d>e)a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),h.add(j);else{if(d<e){e-=d;for(var r;e--&&(r=j.parent);)j=r.parent}j.add(b)}c.splice(n--,1)}else a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),c[n]=j;h=b;e=d}else j&&(j=e=h=null);for(n=0;n<a.length;n++)if(j= +a[n],q=j.children,g=g=void 0,u=j.children.length,r=g=void 0,c=/list-style-type:(.*?)(?:;|$)/,e=CKEDITOR.plugins.pastefromword.filters.stylesFilter,g=j.attributes,!c.exec(g.style)){for(h=0;h<u;h++)if(g=q[h],g.attributes.value&&Number(g.attributes.value)==h+1&&delete g.attributes.value,g=c.exec(g.attributes.style))if(g[1]==r||!r)r=g[1];else{r=null;break}if(r){for(h=0;h<u;h++)g=q[h].attributes,g.style&&(g.style=e([["list-style-type"]])(g.style)||"");j.addStyle("list-style-type",r)}}w=t=s=null},falsyFilter:function(){return!1}, +stylesFilter:function(a,c){return function(b,f){var d=[];(b||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(b,e,g){e=e.toLowerCase();"font-family"==e&&(g=g.replace(/["']/g,""));for(var m,i,l,k=0;k<a.length;k++)if(a[k]&&(b=a[k][0],m=a[k][1],i=a[k][2],l=a[k][3],e.match(b)&&(!m||g.match(m)))){e=l||e;c&&(i=i||g);"function"==typeof i&&(i=i(g,f,e));i&&i.push&&(e=i[0],i=i[1]);"string"==typeof i&&d.push([e,i]);return}!c&&d.push([e,g])});for(var e=0;e<d.length;e++)d[e]= +d[e].join(":");return d.length?d.join(";")+";":!1}},elementMigrateFilter:function(a,c){return a?function(b){var f=c?(new CKEDITOR.style(a,c))._.definition:a;b.name=f.element;CKEDITOR.tools.extend(b.attributes,CKEDITOR.tools.clone(f.attributes));b.addStyle(CKEDITOR.style.getStyleText(f))}:function(){}},styleMigrateFilter:function(a,c){var b=this.elementMigrateFilter;return a?function(f,d){var e=new CKEDITOR.htmlParser.element(null),h={};h[c]=f;b(a,h)(e);e.children=d.children;d.children=[e];e.filter= +function(){};e.parent=d}:function(){}},bogusAttrFilter:function(a,c){if(-1==c.name.indexOf("cke:"))return!1},applyStyleFilter:null},getRules:function(a,c){var b=CKEDITOR.dtd,f=CKEDITOR.tools.extend({},b.$block,b.$listItem,b.$tableContent),d=a.config,e=this.filters,h=e.falsyFilter,j=e.stylesFilter,g=e.elementMigrateFilter,m=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),i=this.utils.createListBulletMarker,l=e.flattenList,k=e.assembleList,p=this.utils.isListBulletIndicator,n=this.utils.isContainingOnlySpaces, +q=this.utils.resolveList,u=function(a){a=CKEDITOR.tools.convertToPx(a);return isNaN(a)?a:a+"px"},r=this.utils.getStyleComponents,t=this.utils.listDtdParents,o=!1!==d.pasteFromWordRemoveFontStyles,s=!1!==d.pasteFromWordRemoveStyles;return{elementNames:[[/meta|link|script/,""]],root:function(a){a.filterChildren(c);k(a)},elements:{"^":function(a){var c;CKEDITOR.env.gecko&&(c=e.applyStyleFilter)&&c(a)},$:function(a){var v=a.name||"",e=a.attributes;v in f&&e.style&&(e.style=j([[/^(:?width|height)$/,null, +u]])(e.style)||"");if(v.match(/h\d/)){a.filterChildren(c);if(q(a))return;g(d["format_"+v])(a)}else if(v in b.$inline)a.filterChildren(c),n(a)&&delete a.name;else if(-1!=v.indexOf(":")&&-1==v.indexOf("cke")){a.filterChildren(c);if("v:imagedata"==v){if(v=a.attributes["o:href"])a.attributes.src=v;a.name="img";return}delete a.name}v in t&&(a.filterChildren(c),k(a))},style:function(a){if(CKEDITOR.env.gecko){var a=(a=a.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/))&&a[1],c={};a&& +(a.replace(/[\n\r]/g,"").replace(/(.+?)\{(.+?)\}/g,function(a,b,F){for(var b=b.split(","),a=b.length,d=0;d<a;d++)CKEDITOR.tools.trim(b[d]).replace(/^(\w+)(\.[\w-]+)?$/g,function(a,b,d){b=b||"*";d=d.substring(1,d.length);d.match(/MsoNormal/)||(c[b]||(c[b]={}),d?c[b][d]=F:c[b]=F)})}),e.applyStyleFilter=function(a){var b=c["*"]?"*":a.name,d=a.attributes&&a.attributes["class"];b in c&&(b=c[b],"object"==typeof b&&(b=b[d]),b&&a.addStyle(b,!0))})}return!1},p:function(a){if(/MsoListParagraph/i.exec(a.attributes["class"])|| +a.getStyle("mso-list")){var b=a.firstChild(function(a){return a.type==CKEDITOR.NODE_TEXT&&!n(a.parent)});(b=b&&b.parent)&&b.addStyle("mso-list","Ignore")}a.filterChildren(c);q(a)||(d.enterMode==CKEDITOR.ENTER_BR?(delete a.name,a.add(new CKEDITOR.htmlParser.element("br"))):g(d["format_"+(d.enterMode==CKEDITOR.ENTER_P?"p":"div")])(a))},div:function(a){var c=a.onlyChild();if(c&&"table"==c.name){var b=a.attributes;c.attributes=CKEDITOR.tools.extend(c.attributes,b);b.style&&c.addStyle(b.style);c=new CKEDITOR.htmlParser.element("div"); +c.addStyle("clear","both");a.add(c);delete a.name}},td:function(a){a.getAncestor("thead")&&(a.name="th")},ol:l,ul:l,dl:l,font:function(a){if(p(a.parent))delete a.name;else{a.filterChildren(c);var b=a.attributes,d=b.style,e=a.parent;"font"==e.name?(CKEDITOR.tools.extend(e.attributes,a.attributes),d&&e.addStyle(d),delete a.name):(d=(d||"").split(";"),b.color&&("#000000"!=b.color&&d.push("color:"+b.color),delete b.color),b.face&&(d.push("font-family:"+b.face),delete b.face),b.size&&(d.push("font-size:"+ +(3<b.size?"large":3>b.size?"small":"medium")),delete b.size),a.name="span",a.addStyle(d.join(";")))}},span:function(a){if(p(a.parent))return!1;a.filterChildren(c);if(n(a))return delete a.name,null;if(p(a)){var b=a.firstChild(function(a){return a.value||"img"==a.name}),e=(b=b&&(b.value||"l."))&&b.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);if(e)return b=i(e,b),(a=a.getAncestor("span"))&&/ mso-hide:\s*all|display:\s*none /.test(a.attributes.style)&&(b.attributes["cke:ignored"]=1),b}if(e=(b=a.attributes)&&b.style)b.style= +j([["line-height"],[/^font-family$/,null,!o?m(d.font_style,"family"):null],[/^font-size$/,null,!o?m(d.fontSize_style,"size"):null],[/^color$/,null,!o?m(d.colorButton_foreStyle,"color"):null],[/^background-color$/,null,!o?m(d.colorButton_backStyle,"color"):null]])(e,a)||"";b.style||delete b.style;CKEDITOR.tools.isEmpty(b)&&delete a.name;return null},b:g(d.coreStyles_bold),i:g(d.coreStyles_italic),u:g(d.coreStyles_underline),s:g(d.coreStyles_strike),sup:g(d.coreStyles_superscript),sub:g(d.coreStyles_subscript), +a:function(a){a=a.attributes;a.href&&a.href.match(/^file:\/\/\/[\S]+#/i)&&(a.href=a.href.replace(/^file:\/\/\/[^#]+/i,""))},"cke:listbullet":function(a){a.getAncestor(/h\d/)&&!d.pasteFromWordNumberedHeadingToList&&delete a.name}},attributeNames:[[/^onmouse(:?out|over)/,""],[/^onload$/,""],[/(?:v|o):\w+/,""],[/^lang/,""]],attributes:{style:j(s?[[/^list-style-type$/,null],[/^margin$|^margin-(?!bottom|top)/,null,function(a,b,c){if(b.name in{p:1,div:1}){b="ltr"==d.contentsLangDirection?"margin-left": +"margin-right";if("margin"==c)a=r(c,a,[b])[b];else if(c!=b)return null;if(a&&!D.test(a))return[b,a]}return null}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(a,b){if("img"==b.name)return a}],[/^width|height$/,null,function(a,b){if(b.name in{table:1,td:1,th:1,img:1})return a}]]:[[/^mso-/],[/-color$/,null,function(a){if("transparent"==a)return!1;if(CKEDITOR.env.gecko)return a.replace(/-moz-use-text-color/g,"transparent")}],[/^margin$/,D],["text-indent","0cm"],["page-break-before"], +["tab-stops"],["display","none"],o?[/font-?/]:null],s),width:function(a,c){if(c.name in b.$tableContent)return!1},border:function(a,c){if(c.name in b.$tableContent)return!1},"class":h,bgcolor:h,valign:s?h:function(a,b){b.addStyle("vertical-align",a);return!1}},comment:!CKEDITOR.env.ie?function(a,b){var c=a.match(/<img.*?>/),d=a.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);return d?(d=(c=d[1]||c&&"l.")&&c.match(/>(?:[(]?)([^\s]+?)([.)]?)</),i(d,c)):CKEDITOR.env.gecko&&c?(c=CKEDITOR.htmlParser.fragment.fromHtml(c[0]).children[0], +(d=(d=(d=b.previous)&&d.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/))&&d[1])&&(c.attributes.src=d),c):!1}:h}}},G=function(){this.dataFilter=new CKEDITOR.htmlParser.filter};G.prototype={toHtml:function(a){var a=CKEDITOR.htmlParser.fragment.fromHtml(a),c=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(c,this.dataFilter);return c.getHtml(!0)}};CKEDITOR.cleanWord=function(a,c){CKEDITOR.env.gecko&&(a=a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi,"$1$2$3"));CKEDITOR.env.webkit&& +(a=a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi,"$1<span>$2</span>$3"));var b=new G,f=b.dataFilter;f.addRules(CKEDITOR.plugins.pastefromword.getRules(c,f));c.fire("beforeCleanWord",{filter:f});try{a=b.toHtml(a)}catch(d){alert(c.lang.pastefromword.error)}a=a.replace(/cke:.*?".*?"/g,"");a=a.replace(/style=""/g,"");return a=a.replace(/<span>/g,"")}})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js b/src/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js new file mode 100644 index 00000000..f41e86d1 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("placeholder",function(a){var b=a.lang.placeholder,a=a.lang.common.generalTab;return{title:b.title,minWidth:300,minHeight:80,contents:[{id:"info",label:a,title:a,elements:[{id:"name",type:"text",style:"width: 100%;",label:b.name,"default":"",required:!0,validate:CKEDITOR.dialog.validate.regex(/^[^\[\]\<\>]+$/,b.invalidName),setup:function(a){this.setValue(a.data.name)},commit:function(a){a.setData("name",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png b/src/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png new file mode 100644 index 00000000..0b7abcec Binary files /dev/null and b/src/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png differ diff --git a/src/lib/ckeditor/plugins/placeholder/icons/placeholder.png b/src/lib/ckeditor/plugins/placeholder/icons/placeholder.png new file mode 100644 index 00000000..cb12b481 Binary files /dev/null and b/src/lib/ckeditor/plugins/placeholder/icons/placeholder.png differ diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ar.js b/src/lib/ckeditor/plugins/placeholder/lang/ar.js new file mode 100644 index 00000000..2ca7673e --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ar",{title:"خصائص الربط الموضعي",toolbar:"الربط الموضعي",name:"اسم الربط الموضعي",invalidName:"لا يمكن ترك الربط الموضعي فارغا و لا أن يحتوي على الرموز التالية [, ], <, >",pathName:"الربط الموضعي"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/bg.js b/src/lib/ckeditor/plugins/placeholder/lang/bg.js new file mode 100644 index 00000000..78bd6649 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","bg",{title:"Настройки на контейнера",toolbar:"Нов контейнер",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ca.js b/src/lib/ckeditor/plugins/placeholder/lang/ca.js new file mode 100644 index 00000000..f4115f16 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ca",{title:"Propietats del marcador de posició",toolbar:"Marcador de posició",name:"Nom del marcador de posició",invalidName:"El marcador de posició no pot estar en blanc ni pot contenir cap dels caràcters següents: [,],<,>",pathName:"marcador de posició"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/cs.js b/src/lib/ckeditor/plugins/placeholder/lang/cs.js new file mode 100644 index 00000000..3c24a677 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cs",{title:"Vlastnosti vyhrazeného prostoru",toolbar:"Vytvořit vyhrazený prostor",name:"Název vyhrazeného prostoru",invalidName:"Vyhrazený prostor nesmí být prázdný či obsahovat následující znaky: [, ], <, >",pathName:"Vyhrazený prostor"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/cy.js b/src/lib/ckeditor/plugins/placeholder/lang/cy.js new file mode 100644 index 00000000..55022779 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cy",{title:"Priodweddau'r Daliwr Geiriau",toolbar:"Daliwr Geiriau",name:"Enw'r Daliwr Geiriau",invalidName:"Dyw'r daliwr geiriau methu â bod yn wag ac na all gynnyws y nodau [, ], <, > ",pathName:"daliwr geiriau"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/da.js b/src/lib/ckeditor/plugins/placeholder/lang/da.js new file mode 100644 index 00000000..dcbee5b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","da",{title:"Egenskaber for pladsholder",toolbar:"Opret pladsholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/de.js b/src/lib/ckeditor/plugins/placeholder/lang/de.js new file mode 100644 index 00000000..be828cda --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","de",{title:"Platzhalter Einstellungen",toolbar:"Platzhalter erstellen",name:"Platzhalter Name",invalidName:"Der Platzhalter darf nicht leer sein und folgende Zeichen nicht enthalten: [, ], <, >",pathName:"Platzhalter"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/el.js b/src/lib/ckeditor/plugins/placeholder/lang/el.js new file mode 100644 index 00000000..af6b7526 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","el",{title:"Ιδιότητες Υποκαθιστόμενου Κειμένου",toolbar:"Δημιουργία Υποκαθιστόμενου Κειμένου",name:"Όνομα Υποκαθιστόμενου Κειμένου",invalidName:"Το υποκαθιστόμενου κειμένο πρέπει να μην είναι κενό και να μην έχει κανέναν από τους ακόλουθους χαρακτήρες: [, ], <, >",pathName:"υποκαθιστόμενο κείμενο"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/en-gb.js b/src/lib/ckeditor/plugins/placeholder/lang/en-gb.js new file mode 100644 index 00000000..38006937 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en-gb",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of the following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/en.js b/src/lib/ckeditor/plugins/placeholder/lang/en.js new file mode 100644 index 00000000..d91d35e0 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/eo.js b/src/lib/ckeditor/plugins/placeholder/lang/eo.js new file mode 100644 index 00000000..7027a1ed --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eo",{title:"Atributoj de la rezervita spaco",toolbar:"Rezervita Spaco",name:"Nomo de la rezervita spaco",invalidName:"La rezervita spaco ne povas esti malplena kaj ne povas enteni la sekvajn signojn : [, ], <, >",pathName:"rezervita spaco"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/es.js b/src/lib/ckeditor/plugins/placeholder/lang/es.js new file mode 100644 index 00000000..1a9162d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","es",{title:"Propiedades del Marcador de Posición",toolbar:"Crear Marcador de Posición",name:"Nombre del Marcador de Posición",invalidName:"El marcador de posición no puede estar vacío y no puede contener ninguno de los siguientes caracteres: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/et.js b/src/lib/ckeditor/plugins/placeholder/lang/et.js new file mode 100644 index 00000000..f6f3dac6 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","et",{title:"Kohahoidja omadused",toolbar:"Kohahoidja loomine",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/eu.js b/src/lib/ckeditor/plugins/placeholder/lang/eu.js new file mode 100644 index 00000000..663ac7a3 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eu",{title:"Leku-marka Aukerak",toolbar:"Leku-marka sortu",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/fa.js b/src/lib/ckeditor/plugins/placeholder/lang/fa.js new file mode 100644 index 00000000..967e55d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fa",{title:"ویژگی‌های محل نگهداری",toolbar:"ایجاد یک محل نگهداری",name:"نام مکان نگهداری",invalidName:"مکان نگهداری نمی‌تواند خالی باشد و همچنین نمی‌تواند محتوی نویسه‌های مقابل باشد: [, ], <, >",pathName:"مکان نگهداری"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/fi.js b/src/lib/ckeditor/plugins/placeholder/lang/fi.js new file mode 100644 index 00000000..5c3e1562 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fi",{title:"Paikkamerkin ominaisuudet",toolbar:"Luo paikkamerkki",name:"Paikkamerkin nimi",invalidName:"Paikkamerkki ei voi olla tyhjä eikä sisältää seuraavia merkkejä: [, ], <, >",pathName:"paikkamerkki"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/fr-ca.js b/src/lib/ckeditor/plugins/placeholder/lang/fr-ca.js new file mode 100644 index 00000000..e803e71a --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr-ca",{title:"Propriétés de l'espace réservé",toolbar:"Créer un espace réservé",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/fr.js b/src/lib/ckeditor/plugins/placeholder/lang/fr.js new file mode 100644 index 00000000..b4c39c95 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr",{title:"Propriétés de l'Espace réservé",toolbar:"Créer l'Espace réservé",name:"Nom de l'espace réservé",invalidName:"L'espace réservé ne peut pas être vide ni contenir l'un de ses caractères : [, ], <, >",pathName:"espace réservé"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/gl.js b/src/lib/ckeditor/plugins/placeholder/lang/gl.js new file mode 100644 index 00000000..e4fff775 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","gl",{title:"Propiedades do marcador de posición",toolbar:"Crear un marcador de posición",name:"Nome do marcador de posición",invalidName:"O marcador de posición non pode estar baleiro e non pode conter ningún dos caracteres seguintes: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/he.js b/src/lib/ckeditor/plugins/placeholder/lang/he.js new file mode 100644 index 00000000..5202f509 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","he",{title:"מאפייני שומר מקום",toolbar:"צור שומר מקום",name:"שם שומר מקום",invalidName:"שומר מקום לא יכול להיות ריק ולא יכול להכיל את הסימנים: [, ], <, >",pathName:"שומר מקום"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/hr.js b/src/lib/ckeditor/plugins/placeholder/lang/hr.js new file mode 100644 index 00000000..866a110e --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hr",{title:"Svojstva rezerviranog mjesta",toolbar:"Napravi rezervirano mjesto",name:"Ime rezerviranog mjesta",invalidName:"Rezervirano mjesto ne može biti prazno niti može sadržavati ijedan od sljedećih znakova: [, ], <, >",pathName:"rezervirano mjesto"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/hu.js b/src/lib/ckeditor/plugins/placeholder/lang/hu.js new file mode 100644 index 00000000..a8e58e71 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hu",{title:"Helytartó beállítások",toolbar:"Helytartó készítése",name:"Helytartó neve",invalidName:"A helytartó nem lehet üres, és nem tartalmazhatja a következő karaktereket:[, ], <, > ",pathName:"helytartó"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/id.js b/src/lib/ckeditor/plugins/placeholder/lang/id.js new file mode 100644 index 00000000..c22f138e --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","id",{title:"Properti isian sementara",toolbar:"Buat isian sementara",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/it.js b/src/lib/ckeditor/plugins/placeholder/lang/it.js new file mode 100644 index 00000000..c4ade199 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","it",{title:"Proprietà segnaposto",toolbar:"Crea segnaposto",name:"Nome segnaposto",invalidName:"Il segnaposto non può essere vuoto e non può contenere nessuno dei seguenti caratteri: [, ], <, >",pathName:"segnaposto"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ja.js b/src/lib/ckeditor/plugins/placeholder/lang/ja.js new file mode 100644 index 00000000..c1ed5b5f --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ja",{title:"プレースホルダのプロパティ",toolbar:"プレースホルダを作成",name:"プレースホルダ名",invalidName:"プレースホルダは空欄にできません。また、[, ], <, > の文字は使用できません。",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/km.js b/src/lib/ckeditor/plugins/placeholder/lang/km.js new file mode 100644 index 00000000..0ae3e81b --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","km",{title:"លក្ខណៈ Placeholder",toolbar:"បង្កើត Placeholder",name:"ឈ្មោះ Placeholder",invalidName:"Placeholder មិន​អាច​ទទេរ ហើយក៏​មិន​អាច​មាន​តួ​អក្សរ​ទាំង​នេះ​ទេ៖ [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ko.js b/src/lib/ckeditor/plugins/placeholder/lang/ko.js new file mode 100644 index 00000000..2974ee2c --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ko",{title:"플레이스홀도 속성",toolbar:"플레이스홀더 생성",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ku.js b/src/lib/ckeditor/plugins/placeholder/lang/ku.js new file mode 100644 index 00000000..8f62811f --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ku",{title:"خاسیەتی شوێن هەڵگر",toolbar:"درووستکردنی شوێن هەڵگر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/lv.js b/src/lib/ckeditor/plugins/placeholder/lang/lv.js new file mode 100644 index 00000000..b2ba800e --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","lv",{title:"Viettura uzstādījumi",toolbar:"Izveidot vietturi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/nb.js b/src/lib/ckeditor/plugins/placeholder/lang/nb.js new file mode 100644 index 00000000..b379e52a --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nb",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/nl.js b/src/lib/ckeditor/plugins/placeholder/lang/nl.js new file mode 100644 index 00000000..2c743ed6 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nl",{title:"Eigenschappen placeholder",toolbar:"Placeholder aanmaken",name:"Naam placeholder",invalidName:"De placeholder mag niet leeg zijn, en mag niet een van de volgende tekens bevatten: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/no.js b/src/lib/ckeditor/plugins/placeholder/lang/no.js new file mode 100644 index 00000000..e2192cd8 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","no",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/pl.js b/src/lib/ckeditor/plugins/placeholder/lang/pl.js new file mode 100644 index 00000000..df0c3aee --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pl",{title:"Właściwości wypełniacza",toolbar:"Utwórz wypełniacz",name:"Nazwa wypełniacza",invalidName:"Wypełniacz nie może być pusty ani nie może zawierać żadnego z następujących znaków: [, ], < oraz >",pathName:"wypełniacz"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/pt-br.js b/src/lib/ckeditor/plugins/placeholder/lang/pt-br.js new file mode 100644 index 00000000..e438cc16 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt-br",{title:"Propriedades do Espaço Reservado",toolbar:"Criar Espaço Reservado",name:"Nome do Espaço Reservado",invalidName:"O espaço reservado não pode estar vazio e não pode conter nenhum dos seguintes caracteres: [, ], <, >",pathName:"Espaço Reservado"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/pt.js b/src/lib/ckeditor/plugins/placeholder/lang/pt.js new file mode 100644 index 00000000..b6dc1150 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt",{title:"Propriedades dos Símbolos",toolbar:"Símbolo",name:"Nome do Símbolo",invalidName:"O símbolo não pode estar em branco e não pode conter qualquer dos seguintes carateres: [, ], <, >",pathName:"símbolo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ru.js b/src/lib/ckeditor/plugins/placeholder/lang/ru.js new file mode 100644 index 00000000..11572b14 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ru",{title:"Свойства плейсхолдера",toolbar:"Создать плейсхолдер",name:"Имя плейсхолдера",invalidName:'Плейсхолдер не может быть пустым и содержать один из следующих символов: "[, ], <, >"',pathName:"плейсхолдер"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/si.js b/src/lib/ckeditor/plugins/placeholder/lang/si.js new file mode 100644 index 00000000..3fe4e3d1 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","si",{title:"ස්ථාන හීම්කරුගේ ",toolbar:"ස්ථාන හීම්කරු නිර්මාණය කිරීම",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/sk.js b/src/lib/ckeditor/plugins/placeholder/lang/sk.js new file mode 100644 index 00000000..88800a99 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sk",{title:"Vlastnosti placeholdera",toolbar:"Vytvoriť placeholder",name:"Názov placeholdera",invalidName:"Placeholder nemôže byť prázdny a nemôže obsahovať žiadny z nasledujúcich znakov: [,],<,>",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/sl.js b/src/lib/ckeditor/plugins/placeholder/lang/sl.js new file mode 100644 index 00000000..60114c35 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sl",{title:"Lastnosti Ograde",toolbar:"Ustvari Ogrado",name:"Placeholder Ime",invalidName:"Placeholder ne more biti prazen in ne sme vsebovati katerega od naslednjih znakov: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/sq.js b/src/lib/ckeditor/plugins/placeholder/lang/sq.js new file mode 100644 index 00000000..6f54e135 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sq",{title:"Karakteristikat e Mbajtësit të Vendit",toolbar:"Krijo Mabjtës Vendi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/sv.js b/src/lib/ckeditor/plugins/placeholder/lang/sv.js new file mode 100644 index 00000000..66a19562 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sv",{title:"Innehållsrutans egenskaper",toolbar:"Skapa innehållsruta",name:"Innehållsrutans namn",invalidName:"Innehållsrutan får inte vara tom och får inte innehålla någon av följande tecken: [,],<,>",pathName:"innehållsruta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/th.js b/src/lib/ckeditor/plugins/placeholder/lang/th.js new file mode 100644 index 00000000..41198f94 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/th.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","th",{title:"คุณสมบัติเกี่ยวกับตัวยึด",toolbar:"สร้างตัวยึด",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/tr.js b/src/lib/ckeditor/plugins/placeholder/lang/tr.js new file mode 100644 index 00000000..fc0d27dd --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tr",{title:"Yer tutucu özellikleri",toolbar:"Yer tutucu oluşturun",name:"Yer Tutucu Adı",invalidName:"Yer tutucu adı boş bırakılamaz ve şu karakterleri içeremez: [, ], <, >",pathName:"yertutucu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/tt.js b/src/lib/ckeditor/plugins/placeholder/lang/tt.js new file mode 100644 index 00000000..d636866f --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tt",{title:"Тутырма үзлекләре",toolbar:"Тутырма",name:"Тутырма исеме",invalidName:"Тутырма буш булмаска тиеш һәм эчендә алдагы символлар булмаска тиеш: [, ], <, >",pathName:"тутырма"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/ug.js b/src/lib/ckeditor/plugins/placeholder/lang/ug.js new file mode 100644 index 00000000..db0ad2ce --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ug",{title:"ئورۇن بەلگە خاسلىقى",toolbar:"ئورۇن بەلگە قۇر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/uk.js b/src/lib/ckeditor/plugins/placeholder/lang/uk.js new file mode 100644 index 00000000..015a82a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","uk",{title:"Налаштування Заповнювача",toolbar:"Створити Заповнювач",name:"Назва заповнювача",invalidName:"Заповнювач не може бути порожнім і не може містити наступні символи: [, ], <, >",pathName:"заповнювач"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/vi.js b/src/lib/ckeditor/plugins/placeholder/lang/vi.js new file mode 100644 index 00000000..5875e467 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","vi",{title:"Thuộc tính đặt chỗ",toolbar:"Tạo đặt chỗ",name:"Tên giữ chỗ",invalidName:"Giữ chỗ không thể để trống và không thể chứa bất kỳ ký tự sau: [,], <, >",pathName:"giữ chỗ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/zh-cn.js b/src/lib/ckeditor/plugins/placeholder/lang/zh-cn.js new file mode 100644 index 00000000..bd67dfa8 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh-cn",{title:"占位符属性",toolbar:"占位符",name:"占位符名称",invalidName:"占位符名称不能为空,并且不能包含以下字符:[、]、<、>",pathName:"占位符"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/lang/zh.js b/src/lib/ckeditor/plugins/placeholder/lang/zh.js new file mode 100644 index 00000000..c400c26d --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh",{title:"預留位置屬性",toolbar:"建立預留位置",name:"Placeholder 名稱",invalidName:"「預留位置」不可為空白且不可包含以下字元:[, ], <, >",pathName:"預留位置"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/placeholder/plugin.js b/src/lib/ckeditor/plugins/placeholder/plugin.js new file mode 100644 index 00000000..39dfb472 --- /dev/null +++ b/src/lib/ckeditor/plugins/placeholder/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("placeholder",{requires:"widget,dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"placeholder",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_placeholder{background-color:#ff0}")},init:function(a){var b=a.lang.placeholder;CKEDITOR.dialog.add("placeholder",this.path+"dialogs/placeholder.js");a.widgets.add("placeholder",{dialog:"placeholder", +pathName:b.pathName,template:'<span class="cke_placeholder">[[]]</span>',downcast:function(){return new CKEDITOR.htmlParser.text("[["+this.data.name+"]]")},init:function(){this.setData("name",this.element.getText().slice(2,-2))},data:function(){this.element.setText("[["+this.data.name+"]]")}});a.ui.addButton&&a.ui.addButton("CreatePlaceholder",{label:b.toolbar,command:"placeholder",toolbar:"insert,5",icon:"placeholder"})},afterInit:function(a){var b=/\[\[([^\[\]])+\]\]/g;a.dataProcessor.dataFilter.addRules({text:function(f, +d){var e=d.parent&&CKEDITOR.dtd[d.parent.name];if(!e||e.span)return f.replace(b,function(b){var c=null,c=new CKEDITOR.htmlParser.element("span",{"class":"cke_placeholder"});c.add(new CKEDITOR.htmlParser.text(b));c=a.widgets.wrapElement(c,"placeholder");return c.getOuterHtml()})}})}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png b/src/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png new file mode 100644 index 00000000..cd64e19a Binary files /dev/null and b/src/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png differ diff --git a/src/lib/ckeditor/plugins/preview/icons/hidpi/preview.png b/src/lib/ckeditor/plugins/preview/icons/hidpi/preview.png new file mode 100644 index 00000000..402db20e Binary files /dev/null and b/src/lib/ckeditor/plugins/preview/icons/hidpi/preview.png differ diff --git a/src/lib/ckeditor/plugins/preview/icons/preview-rtl.png b/src/lib/ckeditor/plugins/preview/icons/preview-rtl.png new file mode 100644 index 00000000..1c9d9787 Binary files /dev/null and b/src/lib/ckeditor/plugins/preview/icons/preview-rtl.png differ diff --git a/src/lib/ckeditor/plugins/preview/icons/preview.png b/src/lib/ckeditor/plugins/preview/icons/preview.png new file mode 100644 index 00000000..162b44b8 Binary files /dev/null and b/src/lib/ckeditor/plugins/preview/icons/preview.png differ diff --git a/src/lib/ckeditor/plugins/preview/lang/af.js b/src/lib/ckeditor/plugins/preview/lang/af.js new file mode 100644 index 00000000..97a16944 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","af",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ar.js b/src/lib/ckeditor/plugins/preview/lang/ar.js new file mode 100644 index 00000000..a128ad1b --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ar",{preview:"معاينة الصفحة"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/bg.js b/src/lib/ckeditor/plugins/preview/lang/bg.js new file mode 100644 index 00000000..5b88c365 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bg",{preview:"Преглед"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/bn.js b/src/lib/ckeditor/plugins/preview/lang/bn.js new file mode 100644 index 00000000..b95a1b55 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bn",{preview:"প্রিভিউ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/bs.js b/src/lib/ckeditor/plugins/preview/lang/bs.js new file mode 100644 index 00000000..1418f764 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bs",{preview:"Prikaži"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ca.js b/src/lib/ckeditor/plugins/preview/lang/ca.js new file mode 100644 index 00000000..73458dd2 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ca",{preview:"Visualització prèvia"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/cs.js b/src/lib/ckeditor/plugins/preview/lang/cs.js new file mode 100644 index 00000000..f00d6eee --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cs",{preview:"Náhled"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/cy.js b/src/lib/ckeditor/plugins/preview/lang/cy.js new file mode 100644 index 00000000..071c8d8d --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cy",{preview:"Rhagolwg"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/da.js b/src/lib/ckeditor/plugins/preview/lang/da.js new file mode 100644 index 00000000..01f18bc8 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","da",{preview:"Vis eksempel"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/de.js b/src/lib/ckeditor/plugins/preview/lang/de.js new file mode 100644 index 00000000..7c57cba3 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","de",{preview:"Vorschau"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/el.js b/src/lib/ckeditor/plugins/preview/lang/el.js new file mode 100644 index 00000000..4aaeeb4b --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","el",{preview:"Προεπισκόπιση"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/en-au.js b/src/lib/ckeditor/plugins/preview/lang/en-au.js new file mode 100644 index 00000000..f10aa05e --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-au",{preview:"Preview"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/en-ca.js b/src/lib/ckeditor/plugins/preview/lang/en-ca.js new file mode 100644 index 00000000..3a7244b2 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-ca",{preview:"Preview"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/en-gb.js b/src/lib/ckeditor/plugins/preview/lang/en-gb.js new file mode 100644 index 00000000..78d19abd --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-gb",{preview:"Preview"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/en.js b/src/lib/ckeditor/plugins/preview/lang/en.js new file mode 100644 index 00000000..c1901ef8 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en",{preview:"Preview"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/eo.js b/src/lib/ckeditor/plugins/preview/lang/eo.js new file mode 100644 index 00000000..5fa3dd6b --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eo",{preview:"Vidigi Aspekton"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/es.js b/src/lib/ckeditor/plugins/preview/lang/es.js new file mode 100644 index 00000000..d507847e --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","es",{preview:"Vista Previa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/et.js b/src/lib/ckeditor/plugins/preview/lang/et.js new file mode 100644 index 00000000..a47ea46c --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","et",{preview:"Eelvaade"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/eu.js b/src/lib/ckeditor/plugins/preview/lang/eu.js new file mode 100644 index 00000000..ac83687c --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eu",{preview:"Aurrebista"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/fa.js b/src/lib/ckeditor/plugins/preview/lang/fa.js new file mode 100644 index 00000000..ad85c381 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fa",{preview:"پیشنمایش"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/fi.js b/src/lib/ckeditor/plugins/preview/lang/fi.js new file mode 100644 index 00000000..6785c5b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fi",{preview:"Esikatsele"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/fo.js b/src/lib/ckeditor/plugins/preview/lang/fo.js new file mode 100644 index 00000000..779ef877 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fo",{preview:"Frumsýning"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/fr-ca.js b/src/lib/ckeditor/plugins/preview/lang/fr-ca.js new file mode 100644 index 00000000..3731a101 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr-ca",{preview:"Prévisualiser"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/fr.js b/src/lib/ckeditor/plugins/preview/lang/fr.js new file mode 100644 index 00000000..ca8852b4 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr",{preview:"Aperçu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/gl.js b/src/lib/ckeditor/plugins/preview/lang/gl.js new file mode 100644 index 00000000..ab8a82a2 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gl",{preview:"Vista previa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/gu.js b/src/lib/ckeditor/plugins/preview/lang/gu.js new file mode 100644 index 00000000..e7b298b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gu",{preview:"પૂર્વદર્શન"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/he.js b/src/lib/ckeditor/plugins/preview/lang/he.js new file mode 100644 index 00000000..420a9340 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","he",{preview:"תצוגה מקדימה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/hi.js b/src/lib/ckeditor/plugins/preview/lang/hi.js new file mode 100644 index 00000000..397d2786 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hi",{preview:"प्रीव्यू"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/hr.js b/src/lib/ckeditor/plugins/preview/lang/hr.js new file mode 100644 index 00000000..5a85fc9c --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hr",{preview:"Pregledaj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/hu.js b/src/lib/ckeditor/plugins/preview/lang/hu.js new file mode 100644 index 00000000..b96a4360 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hu",{preview:"Előnézet"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/id.js b/src/lib/ckeditor/plugins/preview/lang/id.js new file mode 100644 index 00000000..8c7819d2 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","id",{preview:"Pratinjau"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/is.js b/src/lib/ckeditor/plugins/preview/lang/is.js new file mode 100644 index 00000000..5fac3cd4 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","is",{preview:"Forskoða"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/it.js b/src/lib/ckeditor/plugins/preview/lang/it.js new file mode 100644 index 00000000..a9453f97 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","it",{preview:"Anteprima"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ja.js b/src/lib/ckeditor/plugins/preview/lang/ja.js new file mode 100644 index 00000000..6b7cd82f --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ja",{preview:"プレビュー"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ka.js b/src/lib/ckeditor/plugins/preview/lang/ka.js new file mode 100644 index 00000000..bc1590db --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ka",{preview:"გადახედვა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/km.js b/src/lib/ckeditor/plugins/preview/lang/km.js new file mode 100644 index 00000000..68ab55fa --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","km",{preview:"មើល​ជា​មុន"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ko.js b/src/lib/ckeditor/plugins/preview/lang/ko.js new file mode 100644 index 00000000..ac824da1 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ko",{preview:"미리보기"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ku.js b/src/lib/ckeditor/plugins/preview/lang/ku.js new file mode 100644 index 00000000..19594b66 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ku",{preview:"پێشبینین"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/lt.js b/src/lib/ckeditor/plugins/preview/lang/lt.js new file mode 100644 index 00000000..814a9213 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lt",{preview:"Peržiūra"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/lv.js b/src/lib/ckeditor/plugins/preview/lang/lv.js new file mode 100644 index 00000000..7a27eb2b --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lv",{preview:"Priekšskatīt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/mk.js b/src/lib/ckeditor/plugins/preview/lang/mk.js new file mode 100644 index 00000000..b0beed9c --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mk",{preview:"Preview"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/mn.js b/src/lib/ckeditor/plugins/preview/lang/mn.js new file mode 100644 index 00000000..6f2448c2 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mn",{preview:"Уридчлан харах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ms.js b/src/lib/ckeditor/plugins/preview/lang/ms.js new file mode 100644 index 00000000..f3c596ea --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ms",{preview:"Prebiu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/nb.js b/src/lib/ckeditor/plugins/preview/lang/nb.js new file mode 100644 index 00000000..ea20b380 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nb",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/nl.js b/src/lib/ckeditor/plugins/preview/lang/nl.js new file mode 100644 index 00000000..ed67f978 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nl",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/no.js b/src/lib/ckeditor/plugins/preview/lang/no.js new file mode 100644 index 00000000..0c13be89 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","no",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/pl.js b/src/lib/ckeditor/plugins/preview/lang/pl.js new file mode 100644 index 00000000..11f306e5 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pl",{preview:"Podgląd"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/pt-br.js b/src/lib/ckeditor/plugins/preview/lang/pt-br.js new file mode 100644 index 00000000..e7f58261 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt-br",{preview:"Visualizar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/pt.js b/src/lib/ckeditor/plugins/preview/lang/pt.js new file mode 100644 index 00000000..92e354db --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt",{preview:"Pré-visualizar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ro.js b/src/lib/ckeditor/plugins/preview/lang/ro.js new file mode 100644 index 00000000..646e2319 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ro",{preview:"Previzualizare"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ru.js b/src/lib/ckeditor/plugins/preview/lang/ru.js new file mode 100644 index 00000000..11c59a41 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ru",{preview:"Предварительный просмотр"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/si.js b/src/lib/ckeditor/plugins/preview/lang/si.js new file mode 100644 index 00000000..a205a154 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","si",{preview:"නැවත "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/sk.js b/src/lib/ckeditor/plugins/preview/lang/sk.js new file mode 100644 index 00000000..abee94b1 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sk",{preview:"Náhľad"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/sl.js b/src/lib/ckeditor/plugins/preview/lang/sl.js new file mode 100644 index 00000000..a5ba8ba7 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sl",{preview:"Predogled"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/sq.js b/src/lib/ckeditor/plugins/preview/lang/sq.js new file mode 100644 index 00000000..ef5e65b6 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sq",{preview:"Parashiko"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/sr-latn.js b/src/lib/ckeditor/plugins/preview/lang/sr-latn.js new file mode 100644 index 00000000..8c50b69d --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr-latn",{preview:"Izgled stranice"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/sr.js b/src/lib/ckeditor/plugins/preview/lang/sr.js new file mode 100644 index 00000000..c01f9362 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr",{preview:"Изглед странице"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/sv.js b/src/lib/ckeditor/plugins/preview/lang/sv.js new file mode 100644 index 00000000..f5a3f5aa --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sv",{preview:"Förhandsgranska"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/th.js b/src/lib/ckeditor/plugins/preview/lang/th.js new file mode 100644 index 00000000..047e25f1 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","th",{preview:"ดูหน้าเอกสารตัวอย่าง"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/tr.js b/src/lib/ckeditor/plugins/preview/lang/tr.js new file mode 100644 index 00000000..dd331bd1 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tr",{preview:"Ön İzleme"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/tt.js b/src/lib/ckeditor/plugins/preview/lang/tt.js new file mode 100644 index 00000000..9b5e62ce --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tt",{preview:"Карап алу"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/ug.js b/src/lib/ckeditor/plugins/preview/lang/ug.js new file mode 100644 index 00000000..06549fd1 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ug",{preview:"ئالدىن كۆزەت"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/uk.js b/src/lib/ckeditor/plugins/preview/lang/uk.js new file mode 100644 index 00000000..8d45b877 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","uk",{preview:"Попередній перегляд"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/vi.js b/src/lib/ckeditor/plugins/preview/lang/vi.js new file mode 100644 index 00000000..ba28bcc9 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","vi",{preview:"Xem trước"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/zh-cn.js b/src/lib/ckeditor/plugins/preview/lang/zh-cn.js new file mode 100644 index 00000000..69445d04 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh-cn",{preview:"预览"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/lang/zh.js b/src/lib/ckeditor/plugins/preview/lang/zh.js new file mode 100644 index 00000000..2ebf415a --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh",{preview:"預覽"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/plugin.js b/src/lib/ckeditor/plugins/preview/plugin.js new file mode 100644 index 00000000..a21212c8 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h,i={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var g,b=a.config,f=b.baseHref?'<base href="'+b.baseHref+'"/>':"";if(b.fullPage)g=a.getData().replace(/<head>/,"$&"+f).replace(/[^>]*(?=<\/title>)/,"$& — "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));g=a.config.docType+'<html dir="'+a.config.contentsLangDirection+ +'"><head>'+f+"<title>"+a.lang.preview.preview+""+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+""+(b+">")+a.getData()+""}f=640;b=420;d=80;try{var c=window.screen,f=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(i){}if(!1===a.fire("contentPreview",a={dataValue:g}))return!1;var c="",e;CKEDITOR.env.ie&&(window._cke_htmlToLoad=a.dataValue,e="javascript:void( (function(){document.open();"+("("+CKEDITOR.tools.fixDomain+")();").replace(/\/\/.*?\n/g, +"").replace(/parent\./g,"window.opener.")+"document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )",c="");CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a.dataValue,c=CKEDITOR.getUrl(h+"preview.html"));c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+f+",height="+b+",left="+d);CKEDITOR.env.ie&&c&&(c.location=e);!CKEDITOR.env.ie&&!CKEDITOR.env.gecko&&(e=c.document,e.open(),e.write(a.dataValue), +e.close());return!0}};CKEDITOR.plugins.add("preview",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"preview,preview-rtl",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(h=this.path,a.addCommand("preview",i),a.ui.addButton&&a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview", +toolbar:"document,40"}))}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/preview/preview.html b/src/lib/ckeditor/plugins/preview/preview.html new file mode 100644 index 00000000..8c028262 --- /dev/null +++ b/src/lib/ckeditor/plugins/preview/preview.html @@ -0,0 +1,13 @@ + diff --git a/src/lib/ckeditor/plugins/print/icons/hidpi/print.png b/src/lib/ckeditor/plugins/print/icons/hidpi/print.png new file mode 100644 index 00000000..4b72460d Binary files /dev/null and b/src/lib/ckeditor/plugins/print/icons/hidpi/print.png differ diff --git a/src/lib/ckeditor/plugins/print/icons/print.png b/src/lib/ckeditor/plugins/print/icons/print.png new file mode 100644 index 00000000..06f797dc Binary files /dev/null and b/src/lib/ckeditor/plugins/print/icons/print.png differ diff --git a/src/lib/ckeditor/plugins/print/lang/af.js b/src/lib/ckeditor/plugins/print/lang/af.js new file mode 100644 index 00000000..61185ef1 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","af",{toolbar:"Druk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ar.js b/src/lib/ckeditor/plugins/print/lang/ar.js new file mode 100644 index 00000000..b61c0946 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ar",{toolbar:"طباعة"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/bg.js b/src/lib/ckeditor/plugins/print/lang/bg.js new file mode 100644 index 00000000..6d929a8f --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bg",{toolbar:"Печат"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/bn.js b/src/lib/ckeditor/plugins/print/lang/bn.js new file mode 100644 index 00000000..005dfd28 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bn",{toolbar:"প্রিন্ট"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/bs.js b/src/lib/ckeditor/plugins/print/lang/bs.js new file mode 100644 index 00000000..a6399186 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bs",{toolbar:"Štampaj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ca.js b/src/lib/ckeditor/plugins/print/lang/ca.js new file mode 100644 index 00000000..76f7145f --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ca",{toolbar:"Imprimeix"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/cs.js b/src/lib/ckeditor/plugins/print/lang/cs.js new file mode 100644 index 00000000..8927afb8 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cs",{toolbar:"Tisk"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/cy.js b/src/lib/ckeditor/plugins/print/lang/cy.js new file mode 100644 index 00000000..173df74e --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cy",{toolbar:"Argraffu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/da.js b/src/lib/ckeditor/plugins/print/lang/da.js new file mode 100644 index 00000000..d816585f --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","da",{toolbar:"Udskriv"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/de.js b/src/lib/ckeditor/plugins/print/lang/de.js new file mode 100644 index 00000000..a429f6cd --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","de",{toolbar:"Drucken"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/el.js b/src/lib/ckeditor/plugins/print/lang/el.js new file mode 100644 index 00000000..d5623ebd --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","el",{toolbar:"Εκτύπωση"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/en-au.js b/src/lib/ckeditor/plugins/print/lang/en-au.js new file mode 100644 index 00000000..191384e6 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-au",{toolbar:"Print"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/en-ca.js b/src/lib/ckeditor/plugins/print/lang/en-ca.js new file mode 100644 index 00000000..aff5850e --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-ca",{toolbar:"Print"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/en-gb.js b/src/lib/ckeditor/plugins/print/lang/en-gb.js new file mode 100644 index 00000000..84a26bdf --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-gb",{toolbar:"Print"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/en.js b/src/lib/ckeditor/plugins/print/lang/en.js new file mode 100644 index 00000000..17461f29 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en",{toolbar:"Print"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/eo.js b/src/lib/ckeditor/plugins/print/lang/eo.js new file mode 100644 index 00000000..b0580c1c --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eo",{toolbar:"Presi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/es.js b/src/lib/ckeditor/plugins/print/lang/es.js new file mode 100644 index 00000000..5549ced6 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","es",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/et.js b/src/lib/ckeditor/plugins/print/lang/et.js new file mode 100644 index 00000000..cd192d60 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","et",{toolbar:"Printimine"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/eu.js b/src/lib/ckeditor/plugins/print/lang/eu.js new file mode 100644 index 00000000..6690c535 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eu",{toolbar:"Inprimatu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/fa.js b/src/lib/ckeditor/plugins/print/lang/fa.js new file mode 100644 index 00000000..2445e39e --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fa",{toolbar:"چاپ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/fi.js b/src/lib/ckeditor/plugins/print/lang/fi.js new file mode 100644 index 00000000..2547e349 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fi",{toolbar:"Tulosta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/fo.js b/src/lib/ckeditor/plugins/print/lang/fo.js new file mode 100644 index 00000000..1c93841a --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fo",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/fr-ca.js b/src/lib/ckeditor/plugins/print/lang/fr-ca.js new file mode 100644 index 00000000..ecedc161 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr-ca",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/fr.js b/src/lib/ckeditor/plugins/print/lang/fr.js new file mode 100644 index 00000000..1ae9a1d2 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/gl.js b/src/lib/ckeditor/plugins/print/lang/gl.js new file mode 100644 index 00000000..47ef182c --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gl",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/gu.js b/src/lib/ckeditor/plugins/print/lang/gu.js new file mode 100644 index 00000000..a6c1366f --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gu",{toolbar:"પ્રિન્ટ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/he.js b/src/lib/ckeditor/plugins/print/lang/he.js new file mode 100644 index 00000000..a9e047af --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","he",{toolbar:"הדפסה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/hi.js b/src/lib/ckeditor/plugins/print/lang/hi.js new file mode 100644 index 00000000..06ae5981 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hi",{toolbar:"प्रिन्ट"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/hr.js b/src/lib/ckeditor/plugins/print/lang/hr.js new file mode 100644 index 00000000..ffbd7f74 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hr",{toolbar:"Ispiši"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/hu.js b/src/lib/ckeditor/plugins/print/lang/hu.js new file mode 100644 index 00000000..1b1fb4e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hu",{toolbar:"Nyomtatás"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/id.js b/src/lib/ckeditor/plugins/print/lang/id.js new file mode 100644 index 00000000..4df05eb7 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","id",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/is.js b/src/lib/ckeditor/plugins/print/lang/is.js new file mode 100644 index 00000000..0fb61680 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","is",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/it.js b/src/lib/ckeditor/plugins/print/lang/it.js new file mode 100644 index 00000000..f8a79668 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","it",{toolbar:"Stampa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ja.js b/src/lib/ckeditor/plugins/print/lang/ja.js new file mode 100644 index 00000000..dbfd00bc --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ja",{toolbar:"印刷"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ka.js b/src/lib/ckeditor/plugins/print/lang/ka.js new file mode 100644 index 00000000..86dc40f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ka",{toolbar:"ბეჭდვა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/km.js b/src/lib/ckeditor/plugins/print/lang/km.js new file mode 100644 index 00000000..35450b4c --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","km",{toolbar:"បោះពុម្ព"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ko.js b/src/lib/ckeditor/plugins/print/lang/ko.js new file mode 100644 index 00000000..9657b437 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ko",{toolbar:"인쇄하기"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ku.js b/src/lib/ckeditor/plugins/print/lang/ku.js new file mode 100644 index 00000000..fce60ec7 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ku",{toolbar:"چاپکردن"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/lt.js b/src/lib/ckeditor/plugins/print/lang/lt.js new file mode 100644 index 00000000..1829455b --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lt",{toolbar:"Spausdinti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/lv.js b/src/lib/ckeditor/plugins/print/lang/lv.js new file mode 100644 index 00000000..e03d0b5d --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lv",{toolbar:"Drukāt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/mk.js b/src/lib/ckeditor/plugins/print/lang/mk.js new file mode 100644 index 00000000..63fd4d06 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mk",{toolbar:"Print"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/mn.js b/src/lib/ckeditor/plugins/print/lang/mn.js new file mode 100644 index 00000000..8df85cf9 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mn",{toolbar:"Хэвлэх"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ms.js b/src/lib/ckeditor/plugins/print/lang/ms.js new file mode 100644 index 00000000..ca8734bd --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ms",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/nb.js b/src/lib/ckeditor/plugins/print/lang/nb.js new file mode 100644 index 00000000..e65fcfd9 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nb",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/nl.js b/src/lib/ckeditor/plugins/print/lang/nl.js new file mode 100644 index 00000000..41ecffd4 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nl",{toolbar:"Afdrukken"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/no.js b/src/lib/ckeditor/plugins/print/lang/no.js new file mode 100644 index 00000000..afb031f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","no",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/pl.js b/src/lib/ckeditor/plugins/print/lang/pl.js new file mode 100644 index 00000000..1bdbdebb --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pl",{toolbar:"Drukuj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/pt-br.js b/src/lib/ckeditor/plugins/print/lang/pt-br.js new file mode 100644 index 00000000..9246c27d --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt-br",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/pt.js b/src/lib/ckeditor/plugins/print/lang/pt.js new file mode 100644 index 00000000..a72195ba --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ro.js b/src/lib/ckeditor/plugins/print/lang/ro.js new file mode 100644 index 00000000..2f331d22 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ro",{toolbar:"Printează"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ru.js b/src/lib/ckeditor/plugins/print/lang/ru.js new file mode 100644 index 00000000..458a9c14 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ru",{toolbar:"Печать"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/si.js b/src/lib/ckeditor/plugins/print/lang/si.js new file mode 100644 index 00000000..68d3f56d --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","si",{toolbar:"මුද්‍රණය කරන්න"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/sk.js b/src/lib/ckeditor/plugins/print/lang/sk.js new file mode 100644 index 00000000..7762bb2e --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sk",{toolbar:"Tlač"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/sl.js b/src/lib/ckeditor/plugins/print/lang/sl.js new file mode 100644 index 00000000..9f401ddb --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sl",{toolbar:"Natisni"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/sq.js b/src/lib/ckeditor/plugins/print/lang/sq.js new file mode 100644 index 00000000..bfb05a47 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sq",{toolbar:"Shtype"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/sr-latn.js b/src/lib/ckeditor/plugins/print/lang/sr-latn.js new file mode 100644 index 00000000..62cdc718 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr-latn",{toolbar:"Štampa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/sr.js b/src/lib/ckeditor/plugins/print/lang/sr.js new file mode 100644 index 00000000..74f6430e --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr",{toolbar:"Штампа"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/sv.js b/src/lib/ckeditor/plugins/print/lang/sv.js new file mode 100644 index 00000000..14181ba8 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sv",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/th.js b/src/lib/ckeditor/plugins/print/lang/th.js new file mode 100644 index 00000000..e87d3ac2 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","th",{toolbar:"สั่งพิมพ์"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/tr.js b/src/lib/ckeditor/plugins/print/lang/tr.js new file mode 100644 index 00000000..82f81f05 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tr",{toolbar:"Yazdır"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/tt.js b/src/lib/ckeditor/plugins/print/lang/tt.js new file mode 100644 index 00000000..db8ff025 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tt",{toolbar:"Бастыру"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/ug.js b/src/lib/ckeditor/plugins/print/lang/ug.js new file mode 100644 index 00000000..6c270318 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ug",{toolbar:"باس "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/uk.js b/src/lib/ckeditor/plugins/print/lang/uk.js new file mode 100644 index 00000000..dfde34dc --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","uk",{toolbar:"Друк"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/vi.js b/src/lib/ckeditor/plugins/print/lang/vi.js new file mode 100644 index 00000000..56573948 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","vi",{toolbar:"In"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/zh-cn.js b/src/lib/ckeditor/plugins/print/lang/zh-cn.js new file mode 100644 index 00000000..d7c2643d --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh-cn",{toolbar:"打印"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/lang/zh.js b/src/lib/ckeditor/plugins/print/lang/zh.js new file mode 100644 index 00000000..65b8840d --- /dev/null +++ b/src/lib/ckeditor/plugins/print/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh",{toolbar:"列印"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/print/plugin.js b/src/lib/ckeditor/plugins/print/plugin.js new file mode 100644 index 00000000..0b802e39 --- /dev/null +++ b/src/lib/ckeditor/plugins/print/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("print",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"print,",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}}); +CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print")},canUndo:!1,readOnly:1,modes:{wysiwyg:1}}; \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/icons/hidpi/save.png b/src/lib/ckeditor/plugins/save/icons/hidpi/save.png new file mode 100644 index 00000000..fc59f677 Binary files /dev/null and b/src/lib/ckeditor/plugins/save/icons/hidpi/save.png differ diff --git a/src/lib/ckeditor/plugins/save/icons/save.png b/src/lib/ckeditor/plugins/save/icons/save.png new file mode 100644 index 00000000..51b8f6ee Binary files /dev/null and b/src/lib/ckeditor/plugins/save/icons/save.png differ diff --git a/src/lib/ckeditor/plugins/save/lang/af.js b/src/lib/ckeditor/plugins/save/lang/af.js new file mode 100644 index 00000000..aa5b37e3 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","af",{toolbar:"Bewaar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ar.js b/src/lib/ckeditor/plugins/save/lang/ar.js new file mode 100644 index 00000000..eb09ee54 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ar",{toolbar:"حفظ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/bg.js b/src/lib/ckeditor/plugins/save/lang/bg.js new file mode 100644 index 00000000..ecdf23c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bg",{toolbar:"Запис"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/bn.js b/src/lib/ckeditor/plugins/save/lang/bn.js new file mode 100644 index 00000000..b4e2d6c8 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bn",{toolbar:"সংরক্ষন কর"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/bs.js b/src/lib/ckeditor/plugins/save/lang/bs.js new file mode 100644 index 00000000..d94efe89 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bs",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ca.js b/src/lib/ckeditor/plugins/save/lang/ca.js new file mode 100644 index 00000000..8704f585 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ca",{toolbar:"Desa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/cs.js b/src/lib/ckeditor/plugins/save/lang/cs.js new file mode 100644 index 00000000..e337b9e4 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cs",{toolbar:"Uložit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/cy.js b/src/lib/ckeditor/plugins/save/lang/cy.js new file mode 100644 index 00000000..1f8eb814 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cy",{toolbar:"Cadw"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/da.js b/src/lib/ckeditor/plugins/save/lang/da.js new file mode 100644 index 00000000..1ff06c69 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","da",{toolbar:"Gem"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/de.js b/src/lib/ckeditor/plugins/save/lang/de.js new file mode 100644 index 00000000..603359ba --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","de",{toolbar:"Speichern"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/el.js b/src/lib/ckeditor/plugins/save/lang/el.js new file mode 100644 index 00000000..1aaf9ef2 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","el",{toolbar:"Αποθήκευση"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/en-au.js b/src/lib/ckeditor/plugins/save/lang/en-au.js new file mode 100644 index 00000000..0ace64e5 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-au",{toolbar:"Save"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/en-ca.js b/src/lib/ckeditor/plugins/save/lang/en-ca.js new file mode 100644 index 00000000..993a86e4 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-ca",{toolbar:"Save"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/en-gb.js b/src/lib/ckeditor/plugins/save/lang/en-gb.js new file mode 100644 index 00000000..19c382db --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-gb",{toolbar:"Save"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/en.js b/src/lib/ckeditor/plugins/save/lang/en.js new file mode 100644 index 00000000..1ee67693 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en",{toolbar:"Save"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/eo.js b/src/lib/ckeditor/plugins/save/lang/eo.js new file mode 100644 index 00000000..dd7a1940 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eo",{toolbar:"Konservi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/es.js b/src/lib/ckeditor/plugins/save/lang/es.js new file mode 100644 index 00000000..b07eea63 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","es",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/et.js b/src/lib/ckeditor/plugins/save/lang/et.js new file mode 100644 index 00000000..5bfb76ca --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","et",{toolbar:"Salvestamine"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/eu.js b/src/lib/ckeditor/plugins/save/lang/eu.js new file mode 100644 index 00000000..fec1f853 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eu",{toolbar:"Gorde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/fa.js b/src/lib/ckeditor/plugins/save/lang/fa.js new file mode 100644 index 00000000..fb3f2a39 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fa",{toolbar:"ذخیره"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/fi.js b/src/lib/ckeditor/plugins/save/lang/fi.js new file mode 100644 index 00000000..93d4db54 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fi",{toolbar:"Tallenna"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/fo.js b/src/lib/ckeditor/plugins/save/lang/fo.js new file mode 100644 index 00000000..4b452683 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fo",{toolbar:"Goym"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/fr-ca.js b/src/lib/ckeditor/plugins/save/lang/fr-ca.js new file mode 100644 index 00000000..eacb6ea5 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr-ca",{toolbar:"Sauvegarder"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/fr.js b/src/lib/ckeditor/plugins/save/lang/fr.js new file mode 100644 index 00000000..8df018d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr",{toolbar:"Enregistrer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/gl.js b/src/lib/ckeditor/plugins/save/lang/gl.js new file mode 100644 index 00000000..1bd43328 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gl",{toolbar:"Gardar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/gu.js b/src/lib/ckeditor/plugins/save/lang/gu.js new file mode 100644 index 00000000..683842a8 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gu",{toolbar:"સેવ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/he.js b/src/lib/ckeditor/plugins/save/lang/he.js new file mode 100644 index 00000000..de52496b --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","he",{toolbar:"שמירה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/hi.js b/src/lib/ckeditor/plugins/save/lang/hi.js new file mode 100644 index 00000000..36e3a750 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hi",{toolbar:"सेव"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/hr.js b/src/lib/ckeditor/plugins/save/lang/hr.js new file mode 100644 index 00000000..cd0d6f42 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hr",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/hu.js b/src/lib/ckeditor/plugins/save/lang/hu.js new file mode 100644 index 00000000..e2de2005 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hu",{toolbar:"Mentés"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/id.js b/src/lib/ckeditor/plugins/save/lang/id.js new file mode 100644 index 00000000..7f1760b6 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","id",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/is.js b/src/lib/ckeditor/plugins/save/lang/is.js new file mode 100644 index 00000000..5f985898 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","is",{toolbar:"Vista"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/it.js b/src/lib/ckeditor/plugins/save/lang/it.js new file mode 100644 index 00000000..fdfe51a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","it",{toolbar:"Salva"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ja.js b/src/lib/ckeditor/plugins/save/lang/ja.js new file mode 100644 index 00000000..41801c4e --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ja",{toolbar:"保存"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ka.js b/src/lib/ckeditor/plugins/save/lang/ka.js new file mode 100644 index 00000000..d3d0456c --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ka",{toolbar:"ჩაწერა"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/km.js b/src/lib/ckeditor/plugins/save/lang/km.js new file mode 100644 index 00000000..82f44957 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","km",{toolbar:"រក្សាទុក"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ko.js b/src/lib/ckeditor/plugins/save/lang/ko.js new file mode 100644 index 00000000..f1a4191c --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ko",{toolbar:"저장하기"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ku.js b/src/lib/ckeditor/plugins/save/lang/ku.js new file mode 100644 index 00000000..649a8cc1 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ku",{toolbar:"پاشکەوتکردن"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/lt.js b/src/lib/ckeditor/plugins/save/lang/lt.js new file mode 100644 index 00000000..ea89ceee --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lt",{toolbar:"Išsaugoti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/lv.js b/src/lib/ckeditor/plugins/save/lang/lv.js new file mode 100644 index 00000000..6d8c0c83 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lv",{toolbar:"Saglabāt"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/mk.js b/src/lib/ckeditor/plugins/save/lang/mk.js new file mode 100644 index 00000000..0405ba87 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mk",{toolbar:"Save"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/mn.js b/src/lib/ckeditor/plugins/save/lang/mn.js new file mode 100644 index 00000000..ed1d40aa --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mn",{toolbar:"Хадгалах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ms.js b/src/lib/ckeditor/plugins/save/lang/ms.js new file mode 100644 index 00000000..8b557e7a --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ms",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/nb.js b/src/lib/ckeditor/plugins/save/lang/nb.js new file mode 100644 index 00000000..0bce93de --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nb",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/nl.js b/src/lib/ckeditor/plugins/save/lang/nl.js new file mode 100644 index 00000000..46110539 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nl",{toolbar:"Opslaan"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/no.js b/src/lib/ckeditor/plugins/save/lang/no.js new file mode 100644 index 00000000..d58f02e4 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","no",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/pl.js b/src/lib/ckeditor/plugins/save/lang/pl.js new file mode 100644 index 00000000..8214669e --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pl",{toolbar:"Zapisz"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/pt-br.js b/src/lib/ckeditor/plugins/save/lang/pt-br.js new file mode 100644 index 00000000..64c537a2 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt-br",{toolbar:"Salvar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/pt.js b/src/lib/ckeditor/plugins/save/lang/pt.js new file mode 100644 index 00000000..a30393be --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ro.js b/src/lib/ckeditor/plugins/save/lang/ro.js new file mode 100644 index 00000000..05329bcd --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ro",{toolbar:"Salvează"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ru.js b/src/lib/ckeditor/plugins/save/lang/ru.js new file mode 100644 index 00000000..9c755418 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ru",{toolbar:"Сохранить"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/si.js b/src/lib/ckeditor/plugins/save/lang/si.js new file mode 100644 index 00000000..6305fe65 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","si",{toolbar:"ආරක්ෂා කරන්න"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/sk.js b/src/lib/ckeditor/plugins/save/lang/sk.js new file mode 100644 index 00000000..f3ea59bd --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sk",{toolbar:"Uložiť"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/sl.js b/src/lib/ckeditor/plugins/save/lang/sl.js new file mode 100644 index 00000000..e8ff1758 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sl",{toolbar:"Shrani"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/sq.js b/src/lib/ckeditor/plugins/save/lang/sq.js new file mode 100644 index 00000000..493dca31 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sq",{toolbar:"Ruaje"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/sr-latn.js b/src/lib/ckeditor/plugins/save/lang/sr-latn.js new file mode 100644 index 00000000..fe27f2b8 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr-latn",{toolbar:"Sačuvaj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/sr.js b/src/lib/ckeditor/plugins/save/lang/sr.js new file mode 100644 index 00000000..3fa9e1ca --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr",{toolbar:"Сачувај"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/sv.js b/src/lib/ckeditor/plugins/save/lang/sv.js new file mode 100644 index 00000000..a2e40dda --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sv",{toolbar:"Spara"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/th.js b/src/lib/ckeditor/plugins/save/lang/th.js new file mode 100644 index 00000000..8e1c28dd --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","th",{toolbar:"บันทึก"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/tr.js b/src/lib/ckeditor/plugins/save/lang/tr.js new file mode 100644 index 00000000..bb638ac3 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tr",{toolbar:"Kaydet"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/tt.js b/src/lib/ckeditor/plugins/save/lang/tt.js new file mode 100644 index 00000000..757f3f71 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tt",{toolbar:"Саклау"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/ug.js b/src/lib/ckeditor/plugins/save/lang/ug.js new file mode 100644 index 00000000..27dbe124 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ug",{toolbar:"ساقلا"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/uk.js b/src/lib/ckeditor/plugins/save/lang/uk.js new file mode 100644 index 00000000..c1abf921 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","uk",{toolbar:"Зберегти"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/vi.js b/src/lib/ckeditor/plugins/save/lang/vi.js new file mode 100644 index 00000000..986883b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","vi",{toolbar:"Lưu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/zh-cn.js b/src/lib/ckeditor/plugins/save/lang/zh-cn.js new file mode 100644 index 00000000..a2de754d --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh-cn",{toolbar:"保存"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/lang/zh.js b/src/lib/ckeditor/plugins/save/lang/zh.js new file mode 100644 index 00000000..6e810611 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh",{toolbar:"儲存"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/save/plugin.js b/src/lib/ckeditor/plugins/save/plugin.js new file mode 100644 index 00000000..75f29058 --- /dev/null +++ b/src/lib/ckeditor/plugins/save/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var b={readOnly:1,exec:function(a){if(a.fire("save")&&(a=a.element.$.form))try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"save",hidpi:!0,init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save", +b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/scayt/LICENSE.md b/src/lib/ckeditor/plugins/scayt/LICENSE.md new file mode 100644 index 00000000..844ab4de --- /dev/null +++ b/src/lib/ckeditor/plugins/scayt/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor SCAYT Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/src/lib/ckeditor/plugins/scayt/dialogs/options.js b/src/lib/ckeditor/plugins/scayt/dialogs/options.js new file mode 100644 index 00000000..aec9a1c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/scayt/dialogs/options.js @@ -0,0 +1,17 @@ +CKEDITOR.dialog.add("scaytDialog",function(f){var g=f.scayt,k='

'+g.getLocal("version")+g.getVersion()+"

"+g.getLocal("text_copyrights")+"

",l=CKEDITOR.document,i={isChanged:function(){return null===this.newLang||this.currentLang===this.newLang?!1:!0},currentLang:g.getLang(),newLang:null,reset:function(){this.currentLang=g.getLang();this.newLang=null},id:"lang"},k=[{id:"options",label:g.getLocal("tab_options"),onShow:function(){},elements:[{type:"vbox", +id:"scaytOptions",children:function(){var a=g.getApplicationConfig(),e=[],b={"ignore-all-caps-words":"label_allCaps","ignore-domain-names":"label_ignoreDomainNames","ignore-words-with-mixed-cases":"label_mixedCase","ignore-words-with-numbers":"label_mixedWithDigits"},d;for(d in a){var c={type:"checkbox"};c.id=d;c.label=g.getLocal(b[d]);e.push(c)}return e}(),onShow:function(){this.getChild();for(var a=f.scayt,e=0;e
',onShow:function(){var a=f.scayt.getLang();l.getById("scaytLang_"+a).$.checked=!0}}]}]},{id:"dictionaries",label:g.getLocal("tab_dictionaries"), +elements:[{type:"vbox",id:"rightCol_col__left",children:[{type:"html",id:"dictionaryNote",html:""},{type:"text",id:"dictionaryName",label:g.getLocal("label_fieldNameDic")||"Dictionary name",onShow:function(a){var e=a.sender,b=f.scayt;setTimeout(function(){e.getContentElement("dictionaries","dictionaryNote").getElement().setText("");null!=b.getUserDictionaryName()&&""!=b.getUserDictionaryName()&&e.getContentElement("dictionaries","dictionaryName").setValue(b.getUserDictionaryName())},0)}},{type:"hbox", +id:"notExistDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"createDic",label:g.getLocal("btn_createDic"),title:g.getLocal("btn_createDic"),onClick:function(){var a=this.getDialog(),e=j,b=f.scayt,d=a.getContentElement("dictionaries","dictionaryName").getValue();b.createUserDictionary(d,function(c){c.error||e.toggleDictionaryButtons.call(a,!0);c.dialog=a;c.command="create";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="create"; +c.name=d;f.fire("scaytUserDictionaryActionError",c)})}},{type:"button",id:"restoreDic",label:g.getLocal("btn_restoreDic"),title:g.getLocal("btn_restoreDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName").getValue();e.restoreUserDictionary(d,function(c){c.dialog=a;c.error||b.toggleDictionaryButtons.call(a,!0);c.command="restore";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="restore";c.name=d;f.fire("scaytUserDictionaryActionError", +c)})}}]},{type:"hbox",id:"existDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"removeDic",label:g.getLocal("btn_deleteDic"),title:g.getLocal("btn_deleteDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName"),c=d.getValue();e.removeUserDictionary(c,function(e){d.setValue("");e.error||b.toggleDictionaryButtons.call(a,!1);e.dialog=a;e.command="remove";e.name=c;f.fire("scaytUserDictionaryAction",e)},function(b){b.dialog= +a;b.command="remove";b.name=c;f.fire("scaytUserDictionaryActionError",b)})}},{type:"button",id:"renameDic",label:g.getLocal("btn_renameDic"),title:g.getLocal("btn_renameDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=a.getContentElement("dictionaries","dictionaryName").getValue();e.renameUserDictionary(b,function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryAction",d)},function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryActionError",d)})}}]}, +{type:"html",id:"dicInfo",html:'
'+g.getLocal("text_descriptionDic")+"
"}]}]},{id:"about",label:g.getLocal("tab_about"),elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
'+k+"
"}]}];f.on("scaytUserDictionaryAction",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;void 0===a.data.error?(c=d.getLocal("message_success_"+ +a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c),SCAYT.$(b.$).css({color:"blue"})):(""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c)),SCAYT.$(b.$).css({color:"red"}),null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()):e.getContentElement("dictionaries","dictionaryName").setValue(""))}); +f.on("scaytUserDictionaryActionError",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c));SCAYT.$(b.$).css({color:"red"});null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()): +e.getContentElement("dictionaries","dictionaryName").setValue("")});var j={title:g.getLocal("text_title"),resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:340,minHeight:260,onLoad:function(){if(0!=f.config.scayt_uiTabs[1]){var a=j,e=a.getLangBoxes.call(this);e.getParent().setStyle("white-space","normal");a.renderLangList(e);this.definition.minWidth=this.getSize().width;this.resize(this.definition.minWidth,this.definition.minHeight)}},onCancel:function(){i.reset()},onHide:function(){f.unlockSelection()}, +onShow:function(){f.fire("scaytDialogShown",this);if(0!=f.config.scayt_uiTabs[2]){var a=f.scayt,e=this.getContentElement("dictionaries","dictionaryName"),b=this.getContentElement("dictionaries","existDic").getElement().getParent(),d=this.getContentElement("dictionaries","notExistDic").getElement().getParent();b.hide();d.hide();null!=a.getUserDictionaryName()&&""!=a.getUserDictionaryName()?(this.getContentElement("dictionaries","dictionaryName").setValue(a.getUserDictionaryName()),b.show()):(e.setValue(""), +d.show())}},onOk:function(){var a=j,e=f.scayt;this.getContentElement("options","scaytOptions");a=a.getChangedOption.call(this);e.commitOption({changedOptions:a})},toggleDictionaryButtons:function(a){var e=this.getContentElement("dictionaries","existDic").getElement().getParent(),b=this.getContentElement("dictionaries","notExistDic").getElement().getParent();a?(e.show(),b.hide()):(e.hide(),b.show())},getChangedOption:function(){var a={};if(1==f.config.scayt_uiTabs[0])for(var e=this.getContentElement("options", +"scaytOptions").getChild(),b=0;b'),g=new CKEDITOR.dom.element("label"),h=f.scayt;b.setStyles({"white-space":"normal",position:"relative"}); +c.on("click",function(a){i.newLang=a.sender.getValue()});g.appendText(a);g.setAttribute("for",d);b.append(c);b.append(g);e===h.getLang()&&(c.setAttribute("checked",!0),c.setAttribute("defaultChecked","defaultChecked"));return b},renderLangList:function(a){var e=a.find("#left-col-"+f.name).getItem(0),a=a.find("#right-col-"+f.name).getItem(0),b=g.getLangList(),d={},c=[],i=0,h;for(h in b.ltr)d[h]=b.ltr[h];for(h in b.rtl)d[h]=b.rtl[h];for(h in d)c.push([h,d[h]]);c.sort(function(a,b){var c=0;a[1]>b[1]? +c=1:a[1]
'); +CKEDITOR.plugins.add("sharedspace",{init:function(a){a.on("loaded",function(){var b=a.config.sharedSpaces;if(b)for(var c in b)f(a,c,b[c])},null,null,9)}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png b/src/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png new file mode 100644 index 00000000..c88abcb6 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png b/src/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png new file mode 100644 index 00000000..a776fcc1 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png b/src/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png new file mode 100644 index 00000000..cd87d3e2 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/icons/showblocks.png b/src/lib/ckeditor/plugins/showblocks/icons/showblocks.png new file mode 100644 index 00000000..41b5f346 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/icons/showblocks.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_address.png b/src/lib/ckeditor/plugins/showblocks/images/block_address.png new file mode 100644 index 00000000..5abdae12 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_address.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_blockquote.png b/src/lib/ckeditor/plugins/showblocks/images/block_blockquote.png new file mode 100644 index 00000000..a8f49735 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_blockquote.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_div.png b/src/lib/ckeditor/plugins/showblocks/images/block_div.png new file mode 100644 index 00000000..87b3c171 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_div.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_h1.png b/src/lib/ckeditor/plugins/showblocks/images/block_h1.png new file mode 100644 index 00000000..3933325c Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_h1.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_h2.png b/src/lib/ckeditor/plugins/showblocks/images/block_h2.png new file mode 100644 index 00000000..c99894c2 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_h2.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_h3.png b/src/lib/ckeditor/plugins/showblocks/images/block_h3.png new file mode 100644 index 00000000..cb73d679 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_h3.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_h4.png b/src/lib/ckeditor/plugins/showblocks/images/block_h4.png new file mode 100644 index 00000000..7af6bb49 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_h4.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_h5.png b/src/lib/ckeditor/plugins/showblocks/images/block_h5.png new file mode 100644 index 00000000..ce5bec16 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_h5.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_h6.png b/src/lib/ckeditor/plugins/showblocks/images/block_h6.png new file mode 100644 index 00000000..e67b9829 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_h6.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_p.png b/src/lib/ckeditor/plugins/showblocks/images/block_p.png new file mode 100644 index 00000000..63a58202 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_p.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/images/block_pre.png b/src/lib/ckeditor/plugins/showblocks/images/block_pre.png new file mode 100644 index 00000000..955a8689 Binary files /dev/null and b/src/lib/ckeditor/plugins/showblocks/images/block_pre.png differ diff --git a/src/lib/ckeditor/plugins/showblocks/lang/af.js b/src/lib/ckeditor/plugins/showblocks/lang/af.js new file mode 100644 index 00000000..f54ef175 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","af",{toolbar:"Toon blokke"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ar.js b/src/lib/ckeditor/plugins/showblocks/lang/ar.js new file mode 100644 index 00000000..a3b135a9 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ar",{toolbar:"مخطط تفصيلي"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/bg.js b/src/lib/ckeditor/plugins/showblocks/lang/bg.js new file mode 100644 index 00000000..ec8b4f9c --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bg",{toolbar:"Показва блокове"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/bn.js b/src/lib/ckeditor/plugins/showblocks/lang/bn.js new file mode 100644 index 00000000..8f38cf2c --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/bs.js b/src/lib/ckeditor/plugins/showblocks/lang/bs.js new file mode 100644 index 00000000..91d8620a --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bs",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ca.js b/src/lib/ckeditor/plugins/showblocks/lang/ca.js new file mode 100644 index 00000000..4a23bd67 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ca",{toolbar:"Mostra els blocs"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/cs.js b/src/lib/ckeditor/plugins/showblocks/lang/cs.js new file mode 100644 index 00000000..e935394c --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cs",{toolbar:"Ukázat bloky"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/cy.js b/src/lib/ckeditor/plugins/showblocks/lang/cy.js new file mode 100644 index 00000000..4fea60e5 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cy",{toolbar:"Dangos Blociau"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/da.js b/src/lib/ckeditor/plugins/showblocks/lang/da.js new file mode 100644 index 00000000..1c077f17 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","da",{toolbar:"Vis afsnitsmærker"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/de.js b/src/lib/ckeditor/plugins/showblocks/lang/de.js new file mode 100644 index 00000000..730add99 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","de",{toolbar:"Blöcke anzeigen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/el.js b/src/lib/ckeditor/plugins/showblocks/lang/el.js new file mode 100644 index 00000000..67fc843d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","el",{toolbar:"Προβολή Τμημάτων"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/en-au.js b/src/lib/ckeditor/plugins/showblocks/lang/en-au.js new file mode 100644 index 00000000..02fd8d37 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-au",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/en-ca.js b/src/lib/ckeditor/plugins/showblocks/lang/en-ca.js new file mode 100644 index 00000000..2ddff41c --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-ca",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/en-gb.js b/src/lib/ckeditor/plugins/showblocks/lang/en-gb.js new file mode 100644 index 00000000..6398feaa --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-gb",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/en.js b/src/lib/ckeditor/plugins/showblocks/lang/en.js new file mode 100644 index 00000000..2457fa4b --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/eo.js b/src/lib/ckeditor/plugins/showblocks/lang/eo.js new file mode 100644 index 00000000..42775ae7 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eo",{toolbar:"Montri la blokojn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/es.js b/src/lib/ckeditor/plugins/showblocks/lang/es.js new file mode 100644 index 00000000..eae41486 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","es",{toolbar:"Mostrar bloques"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/et.js b/src/lib/ckeditor/plugins/showblocks/lang/et.js new file mode 100644 index 00000000..18f1c0d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","et",{toolbar:"Blokkide näitamine"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/eu.js b/src/lib/ckeditor/plugins/showblocks/lang/eu.js new file mode 100644 index 00000000..0efa1bea --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eu",{toolbar:"Blokeak erakutsi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/fa.js b/src/lib/ckeditor/plugins/showblocks/lang/fa.js new file mode 100644 index 00000000..e290b63d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fa",{toolbar:"نمایش بلوک‌ها"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/fi.js b/src/lib/ckeditor/plugins/showblocks/lang/fi.js new file mode 100644 index 00000000..a2e20e26 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fi",{toolbar:"Näytä elementit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/fo.js b/src/lib/ckeditor/plugins/showblocks/lang/fo.js new file mode 100644 index 00000000..cea7058d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fo",{toolbar:"Vís blokkar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/fr-ca.js b/src/lib/ckeditor/plugins/showblocks/lang/fr-ca.js new file mode 100644 index 00000000..be37ca35 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr-ca",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/fr.js b/src/lib/ckeditor/plugins/showblocks/lang/fr.js new file mode 100644 index 00000000..49bf9394 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/gl.js b/src/lib/ckeditor/plugins/showblocks/lang/gl.js new file mode 100644 index 00000000..b9f240c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gl",{toolbar:"Amosar os bloques"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/gu.js b/src/lib/ckeditor/plugins/showblocks/lang/gu.js new file mode 100644 index 00000000..a8e7fd6c --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gu",{toolbar:"બ્લૉક બતાવવું"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/he.js b/src/lib/ckeditor/plugins/showblocks/lang/he.js new file mode 100644 index 00000000..7d128462 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","he",{toolbar:"הצגת בלוקים"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/hi.js b/src/lib/ckeditor/plugins/showblocks/lang/hi.js new file mode 100644 index 00000000..68904f2d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hi",{toolbar:"ब्लॉक दिखायें"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/hr.js b/src/lib/ckeditor/plugins/showblocks/lang/hr.js new file mode 100644 index 00000000..d6af592d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hr",{toolbar:"Prikaži blokove"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/hu.js b/src/lib/ckeditor/plugins/showblocks/lang/hu.js new file mode 100644 index 00000000..cda541b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hu",{toolbar:"Blokkok megjelenítése"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/id.js b/src/lib/ckeditor/plugins/showblocks/lang/id.js new file mode 100644 index 00000000..96c293cc --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","id",{toolbar:"Perlihatkan Blok"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/is.js b/src/lib/ckeditor/plugins/showblocks/lang/is.js new file mode 100644 index 00000000..88a3ff5a --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","is",{toolbar:"Sýna blokkir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/it.js b/src/lib/ckeditor/plugins/showblocks/lang/it.js new file mode 100644 index 00000000..38e578fd --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","it",{toolbar:"Visualizza Blocchi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ja.js b/src/lib/ckeditor/plugins/showblocks/lang/ja.js new file mode 100644 index 00000000..a9c9736a --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ja",{toolbar:"ブロック表示"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ka.js b/src/lib/ckeditor/plugins/showblocks/lang/ka.js new file mode 100644 index 00000000..908e8002 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ka",{toolbar:"არეების ჩვენება"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/km.js b/src/lib/ckeditor/plugins/showblocks/lang/km.js new file mode 100644 index 00000000..d6ca8298 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","km",{toolbar:"បង្ហាញ​ប្លក់"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ko.js b/src/lib/ckeditor/plugins/showblocks/lang/ko.js new file mode 100644 index 00000000..67187345 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ko",{toolbar:"블록 보기"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ku.js b/src/lib/ckeditor/plugins/showblocks/lang/ku.js new file mode 100644 index 00000000..2a3a1282 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ku",{toolbar:"نیشاندانی بەربەستەکان"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/lt.js b/src/lib/ckeditor/plugins/showblocks/lang/lt.js new file mode 100644 index 00000000..66368a41 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lt",{toolbar:"Rodyti blokus"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/lv.js b/src/lib/ckeditor/plugins/showblocks/lang/lv.js new file mode 100644 index 00000000..12c328c1 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lv",{toolbar:"Parādīt blokus"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/mk.js b/src/lib/ckeditor/plugins/showblocks/lang/mk.js new file mode 100644 index 00000000..a34e8a23 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mk",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/mn.js b/src/lib/ckeditor/plugins/showblocks/lang/mn.js new file mode 100644 index 00000000..778ad5d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mn",{toolbar:"Хавтангуудыг харуулах"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ms.js b/src/lib/ckeditor/plugins/showblocks/lang/ms.js new file mode 100644 index 00000000..c6ab5f2d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ms",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/nb.js b/src/lib/ckeditor/plugins/showblocks/lang/nb.js new file mode 100644 index 00000000..8bfdf0e1 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nb",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/nl.js b/src/lib/ckeditor/plugins/showblocks/lang/nl.js new file mode 100644 index 00000000..22190dbd --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nl",{toolbar:"Toon blokken"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/no.js b/src/lib/ckeditor/plugins/showblocks/lang/no.js new file mode 100644 index 00000000..75702788 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","no",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/pl.js b/src/lib/ckeditor/plugins/showblocks/lang/pl.js new file mode 100644 index 00000000..3168b3c5 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pl",{toolbar:"Pokaż bloki"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/pt-br.js b/src/lib/ckeditor/plugins/showblocks/lang/pt-br.js new file mode 100644 index 00000000..3ac0ef74 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt-br",{toolbar:"Mostrar blocos de código"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/pt.js b/src/lib/ckeditor/plugins/showblocks/lang/pt.js new file mode 100644 index 00000000..5afaf8e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt",{toolbar:"Exibir blocos"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ro.js b/src/lib/ckeditor/plugins/showblocks/lang/ro.js new file mode 100644 index 00000000..e4dadf0a --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ro",{toolbar:"Arată blocurile"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ru.js b/src/lib/ckeditor/plugins/showblocks/lang/ru.js new file mode 100644 index 00000000..9620b9d3 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ru",{toolbar:"Отображать блоки"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/si.js b/src/lib/ckeditor/plugins/showblocks/lang/si.js new file mode 100644 index 00000000..f67dff30 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","si",{toolbar:"කොටස පෙන්නන්න"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/sk.js b/src/lib/ckeditor/plugins/showblocks/lang/sk.js new file mode 100644 index 00000000..dee77c9a --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sk",{toolbar:"Ukázať bloky"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/sl.js b/src/lib/ckeditor/plugins/showblocks/lang/sl.js new file mode 100644 index 00000000..52fca0bb --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sl",{toolbar:"Prikaži ograde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/sq.js b/src/lib/ckeditor/plugins/showblocks/lang/sq.js new file mode 100644 index 00000000..88405f28 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sq",{toolbar:"Shfaq Blloqet"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/sr-latn.js b/src/lib/ckeditor/plugins/showblocks/lang/sr-latn.js new file mode 100644 index 00000000..3c1551b9 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr-latn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/sr.js b/src/lib/ckeditor/plugins/showblocks/lang/sr.js new file mode 100644 index 00000000..127878d5 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/sv.js b/src/lib/ckeditor/plugins/showblocks/lang/sv.js new file mode 100644 index 00000000..a05b6ccb --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sv",{toolbar:"Visa block"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/th.js b/src/lib/ckeditor/plugins/showblocks/lang/th.js new file mode 100644 index 00000000..9b3951cc --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","th",{toolbar:"แสดงบล็อคข้อมูล"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/tr.js b/src/lib/ckeditor/plugins/showblocks/lang/tr.js new file mode 100644 index 00000000..060da3aa --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tr",{toolbar:"Blokları Göster"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/tt.js b/src/lib/ckeditor/plugins/showblocks/lang/tt.js new file mode 100644 index 00000000..519e6f7b --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tt",{toolbar:"Блокларны күрсәтү"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/ug.js b/src/lib/ckeditor/plugins/showblocks/lang/ug.js new file mode 100644 index 00000000..c44b6605 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ug",{toolbar:"بۆلەكنى كۆرسەت"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/uk.js b/src/lib/ckeditor/plugins/showblocks/lang/uk.js new file mode 100644 index 00000000..ca9f51c4 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","uk",{toolbar:"Показувати блоки"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/vi.js b/src/lib/ckeditor/plugins/showblocks/lang/vi.js new file mode 100644 index 00000000..43566240 --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","vi",{toolbar:"Hiển thị các khối"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/zh-cn.js b/src/lib/ckeditor/plugins/showblocks/lang/zh-cn.js new file mode 100644 index 00000000..abee734d --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh-cn",{toolbar:"显示区块"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/lang/zh.js b/src/lib/ckeditor/plugins/showblocks/lang/zh.js new file mode 100644 index 00000000..84c1e7eb --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh",{toolbar:"顯示區塊"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/showblocks/plugin.js b/src/lib/ckeditor/plugins/showblocks/plugin.js new file mode 100644 index 00000000..48060bcb --- /dev/null +++ b/src/lib/ckeditor/plugins/showblocks/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var i={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var c=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[c]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn", +icons:"showblocks,showblocks-rtl",hidpi:!0,onLoad:function(){var a="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),c,b,e,f,i=CKEDITOR.getUrl(this.path),j=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),g=j?":not([contenteditable=false]):not(.cke_show_blocks_off)":"",d,h;for(c=b=e=f="";d=a.pop();)h=a.length?",":"",c+=".cke_show_blocks "+d+g+h,e+=".cke_show_blocks.cke_contents_ltr "+d+g+h,f+=".cke_show_blocks.cke_contents_rtl "+d+g+h,b+=".cke_show_blocks "+d+g+"{background-image:url("+CKEDITOR.getUrl(i+ +"images/block_"+d+".png")+")}";CKEDITOR.addCss((c+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(b,e+"{background-position:top left;padding-left:8px}",f+"{background-position:top right;padding-right:8px}"));j||CKEDITOR.addCss(".cke_show_blocks [contenteditable=false],.cke_show_blocks .cke_show_blocks_off{border:none;padding-top:0;background-image:none}.cke_show_blocks.cke_contents_rtl [contenteditable=false],.cke_show_blocks.cke_contents_rtl .cke_show_blocks_off{padding-right:0}.cke_show_blocks.cke_contents_ltr [contenteditable=false],.cke_show_blocks.cke_contents_ltr .cke_show_blocks_off{padding-left:0}")}, +init:function(a){function c(){b.refresh(a)}if(!a.blockless){var b=a.addCommand("showblocks",i);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(a.on("focus",c),a.on("blur",c));a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&& +b.refresh(a)})}}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/dialogs/smiley.js b/src/lib/ckeditor/plugins/smiley/dialogs/smiley.js new file mode 100644 index 00000000..b202d3ee --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/dialogs/smiley.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,i,k=function(j){var c=j.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);i.hide();j.data.preventDefault()},n=CKEDITOR.tools.addFunction(function(a,c){var a= +new CKEDITOR.dom.event(a),c=new CKEDITOR.dom.element(c),b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:if(b=c.getParent().getParent().getNext())(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:k({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0); +else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['
'+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
"); +e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png b/src/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png new file mode 100644 index 00000000..bad62eed Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png differ diff --git a/src/lib/ckeditor/plugins/smiley/icons/smiley.png b/src/lib/ckeditor/plugins/smiley/icons/smiley.png new file mode 100644 index 00000000..9fafa28a Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/icons/smiley.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/angel_smile.gif b/src/lib/ckeditor/plugins/smiley/images/angel_smile.gif new file mode 100644 index 00000000..21f81a2f Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/angel_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/angel_smile.png b/src/lib/ckeditor/plugins/smiley/images/angel_smile.png new file mode 100644 index 00000000..559e5e71 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/angel_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/angry_smile.gif b/src/lib/ckeditor/plugins/smiley/images/angry_smile.gif new file mode 100644 index 00000000..c912d99b Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/angry_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/angry_smile.png b/src/lib/ckeditor/plugins/smiley/images/angry_smile.png new file mode 100644 index 00000000..c05d2be3 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/angry_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/broken_heart.gif b/src/lib/ckeditor/plugins/smiley/images/broken_heart.gif new file mode 100644 index 00000000..4162a7b2 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/broken_heart.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/broken_heart.png b/src/lib/ckeditor/plugins/smiley/images/broken_heart.png new file mode 100644 index 00000000..a711c0d8 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/broken_heart.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/confused_smile.gif b/src/lib/ckeditor/plugins/smiley/images/confused_smile.gif new file mode 100644 index 00000000..0e420cba Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/confused_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/confused_smile.png b/src/lib/ckeditor/plugins/smiley/images/confused_smile.png new file mode 100644 index 00000000..e0b8e5c6 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/confused_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/cry_smile.gif b/src/lib/ckeditor/plugins/smiley/images/cry_smile.gif new file mode 100644 index 00000000..b5133427 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/cry_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/cry_smile.png b/src/lib/ckeditor/plugins/smiley/images/cry_smile.png new file mode 100644 index 00000000..a1891a34 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/cry_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/devil_smile.gif b/src/lib/ckeditor/plugins/smiley/images/devil_smile.gif new file mode 100644 index 00000000..9b2a1005 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/devil_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/devil_smile.png b/src/lib/ckeditor/plugins/smiley/images/devil_smile.png new file mode 100644 index 00000000..53247a88 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/devil_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif b/src/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/src/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png b/src/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png new file mode 100644 index 00000000..34904b66 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/envelope.gif b/src/lib/ckeditor/plugins/smiley/images/envelope.gif new file mode 100644 index 00000000..5294ec48 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/envelope.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/envelope.png b/src/lib/ckeditor/plugins/smiley/images/envelope.png new file mode 100644 index 00000000..44398ad1 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/envelope.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/heart.gif b/src/lib/ckeditor/plugins/smiley/images/heart.gif new file mode 100644 index 00000000..160be8ef Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/heart.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/heart.png b/src/lib/ckeditor/plugins/smiley/images/heart.png new file mode 100644 index 00000000..df409e62 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/heart.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/kiss.gif b/src/lib/ckeditor/plugins/smiley/images/kiss.gif new file mode 100644 index 00000000..ffb23db0 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/kiss.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/kiss.png b/src/lib/ckeditor/plugins/smiley/images/kiss.png new file mode 100644 index 00000000..a4f2f363 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/kiss.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/lightbulb.gif b/src/lib/ckeditor/plugins/smiley/images/lightbulb.gif new file mode 100644 index 00000000..ceb6e2d9 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/lightbulb.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/lightbulb.png b/src/lib/ckeditor/plugins/smiley/images/lightbulb.png new file mode 100644 index 00000000..0c4a9240 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/lightbulb.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/omg_smile.gif b/src/lib/ckeditor/plugins/smiley/images/omg_smile.gif new file mode 100644 index 00000000..3177355f Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/omg_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/omg_smile.png b/src/lib/ckeditor/plugins/smiley/images/omg_smile.png new file mode 100644 index 00000000..abc4e2d0 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/omg_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/regular_smile.gif b/src/lib/ckeditor/plugins/smiley/images/regular_smile.gif new file mode 100644 index 00000000..fdcf5c33 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/regular_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/regular_smile.png b/src/lib/ckeditor/plugins/smiley/images/regular_smile.png new file mode 100644 index 00000000..0f2649b7 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/regular_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/sad_smile.gif b/src/lib/ckeditor/plugins/smiley/images/sad_smile.gif new file mode 100644 index 00000000..cca0729d Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/sad_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/sad_smile.png b/src/lib/ckeditor/plugins/smiley/images/sad_smile.png new file mode 100644 index 00000000..f20f3bf3 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/sad_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/shades_smile.gif b/src/lib/ckeditor/plugins/smiley/images/shades_smile.gif new file mode 100644 index 00000000..7d93474c Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/shades_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/shades_smile.png b/src/lib/ckeditor/plugins/smiley/images/shades_smile.png new file mode 100644 index 00000000..fdaa28b7 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/shades_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/teeth_smile.gif b/src/lib/ckeditor/plugins/smiley/images/teeth_smile.gif new file mode 100644 index 00000000..44c37996 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/teeth_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/teeth_smile.png b/src/lib/ckeditor/plugins/smiley/images/teeth_smile.png new file mode 100644 index 00000000..5e63785e Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/teeth_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/thumbs_down.gif b/src/lib/ckeditor/plugins/smiley/images/thumbs_down.gif new file mode 100644 index 00000000..5c8bee30 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/thumbs_down.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/thumbs_down.png b/src/lib/ckeditor/plugins/smiley/images/thumbs_down.png new file mode 100644 index 00000000..1823481f Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/thumbs_down.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/thumbs_up.gif b/src/lib/ckeditor/plugins/smiley/images/thumbs_up.gif new file mode 100644 index 00000000..9cc37029 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/thumbs_up.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/thumbs_up.png b/src/lib/ckeditor/plugins/smiley/images/thumbs_up.png new file mode 100644 index 00000000..d4e8b22a Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/thumbs_up.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/tongue_smile.gif b/src/lib/ckeditor/plugins/smiley/images/tongue_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/tongue_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/tongue_smile.png b/src/lib/ckeditor/plugins/smiley/images/tongue_smile.png new file mode 100644 index 00000000..56553fbe Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/tongue_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/tounge_smile.gif b/src/lib/ckeditor/plugins/smiley/images/tounge_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/tounge_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/src/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif new file mode 100644 index 00000000..eef4fc00 Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png b/src/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png new file mode 100644 index 00000000..f9714d1b Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/images/wink_smile.gif b/src/lib/ckeditor/plugins/smiley/images/wink_smile.gif new file mode 100644 index 00000000..6d3d64bd Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/wink_smile.gif differ diff --git a/src/lib/ckeditor/plugins/smiley/images/wink_smile.png b/src/lib/ckeditor/plugins/smiley/images/wink_smile.png new file mode 100644 index 00000000..7c99c3fc Binary files /dev/null and b/src/lib/ckeditor/plugins/smiley/images/wink_smile.png differ diff --git a/src/lib/ckeditor/plugins/smiley/lang/af.js b/src/lib/ckeditor/plugins/smiley/lang/af.js new file mode 100644 index 00000000..dd63a1c7 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","af",{options:"Lagbekkie opsies",title:"Voeg lagbekkie by",toolbar:"Lagbekkie"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ar.js b/src/lib/ckeditor/plugins/smiley/lang/ar.js new file mode 100644 index 00000000..83a8dfa1 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ar",{options:"خصائص الإبتسامات",title:"إدراج ابتسامات",toolbar:"ابتسامات"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/bg.js b/src/lib/ckeditor/plugins/smiley/lang/bg.js new file mode 100644 index 00000000..f8bf7119 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bg",{options:"Опции за усмивката",title:"Вмъкване на усмивка",toolbar:"Усмивка"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/bn.js b/src/lib/ckeditor/plugins/smiley/lang/bn.js new file mode 100644 index 00000000..61de3df3 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bn",{options:"Smiley Options",title:"স্মাইলী যুক্ত কর",toolbar:"স্মাইলী"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/bs.js b/src/lib/ckeditor/plugins/smiley/lang/bs.js new file mode 100644 index 00000000..422fb8b5 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bs",{options:"Smiley Options",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ca.js b/src/lib/ckeditor/plugins/smiley/lang/ca.js new file mode 100644 index 00000000..5164077f --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ca",{options:"Opcions d'emoticones",title:"Insereix una icona",toolbar:"Icona"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/cs.js b/src/lib/ckeditor/plugins/smiley/lang/cs.js new file mode 100644 index 00000000..aa0d7fa2 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cs",{options:"Nastavení smajlíků",title:"Vkládání smajlíků",toolbar:"Smajlíci"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/cy.js b/src/lib/ckeditor/plugins/smiley/lang/cy.js new file mode 100644 index 00000000..79164f5c --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cy",{options:"Opsiynau Gwenogluniau",title:"Mewnosod Gwenoglun",toolbar:"Gwenoglun"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/da.js b/src/lib/ckeditor/plugins/smiley/lang/da.js new file mode 100644 index 00000000..cfc0db19 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","da",{options:"Smileymuligheder",title:"Vælg smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/de.js b/src/lib/ckeditor/plugins/smiley/lang/de.js new file mode 100644 index 00000000..573e4946 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","de",{options:"Smiley Optionen",title:"Smiley auswählen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/el.js b/src/lib/ckeditor/plugins/smiley/lang/el.js new file mode 100644 index 00000000..af8f2605 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","el",{options:"Επιλογές Φατσούλων",title:"Εισάγετε μια Φατσούλα",toolbar:"Φατσούλα"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/en-au.js b/src/lib/ckeditor/plugins/smiley/lang/en-au.js new file mode 100644 index 00000000..8dd27c36 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-au",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/en-ca.js b/src/lib/ckeditor/plugins/smiley/lang/en-ca.js new file mode 100644 index 00000000..01b27019 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-ca",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/en-gb.js b/src/lib/ckeditor/plugins/smiley/lang/en-gb.js new file mode 100644 index 00000000..9967ebfc --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-gb",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/en.js b/src/lib/ckeditor/plugins/smiley/lang/en.js new file mode 100644 index 00000000..aa2b1e29 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/eo.js b/src/lib/ckeditor/plugins/smiley/lang/eo.js new file mode 100644 index 00000000..b84cd509 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eo",{options:"Opcioj pri mienvinjetoj",title:"Enmeti Mienvinjeton",toolbar:"Mienvinjeto"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/es.js b/src/lib/ckeditor/plugins/smiley/lang/es.js new file mode 100644 index 00000000..0a64de63 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","es",{options:"Opciones de emoticonos",title:"Insertar un Emoticon",toolbar:"Emoticonos"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/et.js b/src/lib/ckeditor/plugins/smiley/lang/et.js new file mode 100644 index 00000000..b3acbc88 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","et",{options:"Emotikonide valikud",title:"Sisesta emotikon",toolbar:"Emotikon"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/eu.js b/src/lib/ckeditor/plugins/smiley/lang/eu.js new file mode 100644 index 00000000..d5eb0d03 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eu",{options:"Aurpegiera Aukerak",title:"Aurpegiera Sartu",toolbar:"Aurpegierak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/fa.js b/src/lib/ckeditor/plugins/smiley/lang/fa.js new file mode 100644 index 00000000..536b9343 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fa",{options:"گزینه​های خندانک",title:"گنجاندن خندانک",toolbar:"خندانک"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/fi.js b/src/lib/ckeditor/plugins/smiley/lang/fi.js new file mode 100644 index 00000000..cdc06b98 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fi",{options:"Hymiön ominaisuudet",title:"Lisää hymiö",toolbar:"Hymiö"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/fo.js b/src/lib/ckeditor/plugins/smiley/lang/fo.js new file mode 100644 index 00000000..1758e873 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fo",{options:"Møguleikar fyri Smiley",title:"Vel Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/fr-ca.js b/src/lib/ckeditor/plugins/smiley/lang/fr-ca.js new file mode 100644 index 00000000..efef5640 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr-ca",{options:"Options d'émoticônes",title:"Insérer un émoticône",toolbar:"Émoticône"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/fr.js b/src/lib/ckeditor/plugins/smiley/lang/fr.js new file mode 100644 index 00000000..56b9c488 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr",{options:"Options des émoticones",title:"Insérer un émoticone",toolbar:"Émoticones"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/gl.js b/src/lib/ckeditor/plugins/smiley/lang/gl.js new file mode 100644 index 00000000..47060596 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gl",{options:"Opcións de emoticonas",title:"Inserir unha emoticona",toolbar:"Emoticona"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/gu.js b/src/lib/ckeditor/plugins/smiley/lang/gu.js new file mode 100644 index 00000000..15a08c68 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gu",{options:"સમ્ય્લી વિકલ્પો",title:"સ્માઇલી પસંદ કરો",toolbar:"સ્માઇલી"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/he.js b/src/lib/ckeditor/plugins/smiley/lang/he.js new file mode 100644 index 00000000..db6c4acd --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","he",{options:"אפשרויות סמיילים",title:"הוספת סמיילי",toolbar:"סמיילי"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/hi.js b/src/lib/ckeditor/plugins/smiley/lang/hi.js new file mode 100644 index 00000000..2aaa0813 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hi",{options:"Smiley Options",title:"स्माइली इन्सर्ट करें",toolbar:"स्माइली"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/hr.js b/src/lib/ckeditor/plugins/smiley/lang/hr.js new file mode 100644 index 00000000..65116ab7 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hr",{options:"Opcije smješka",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/hu.js b/src/lib/ckeditor/plugins/smiley/lang/hu.js new file mode 100644 index 00000000..823e1d53 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hu",{options:"Hangulatjel opciók",title:"Hangulatjel beszúrása",toolbar:"Hangulatjelek"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/id.js b/src/lib/ckeditor/plugins/smiley/lang/id.js new file mode 100644 index 00000000..07b5be16 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","id",{options:"Opsi Smiley",title:"Sisip sebuah Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/is.js b/src/lib/ckeditor/plugins/smiley/lang/is.js new file mode 100644 index 00000000..dbb52568 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","is",{options:"Smiley Options",title:"Velja svip",toolbar:"Svipur"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/it.js b/src/lib/ckeditor/plugins/smiley/lang/it.js new file mode 100644 index 00000000..df131f8e --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","it",{options:"Opzioni Smiley",title:"Inserisci emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ja.js b/src/lib/ckeditor/plugins/smiley/lang/ja.js new file mode 100644 index 00000000..dab5662f --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ja",{options:"絵文字オプション",title:"顔文字挿入",toolbar:"絵文字"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ka.js b/src/lib/ckeditor/plugins/smiley/lang/ka.js new file mode 100644 index 00000000..78218e0a --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ka",{options:"სიცილაკის პარამეტრები",title:"სიცილაკის ჩასმა",toolbar:"სიცილაკები"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/km.js b/src/lib/ckeditor/plugins/smiley/lang/km.js new file mode 100644 index 00000000..2b603406 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","km",{options:"ជម្រើស​រូប​សញ្ញា​អារម្មណ៍",title:"បញ្ចូល​រូប​សញ្ញា​អារម្មណ៍",toolbar:"រូប​សញ្ញ​អារម្មណ៍"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ko.js b/src/lib/ckeditor/plugins/smiley/lang/ko.js new file mode 100644 index 00000000..cb3986a0 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ko",{options:"이모티콘 옵션",title:"아이콘 삽입",toolbar:"아이콘"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ku.js b/src/lib/ckeditor/plugins/smiley/lang/ku.js new file mode 100644 index 00000000..9d1b8bd2 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ku",{options:"هەڵبژاردەی زەردەخەنه",title:"دانانی زەردەخەنەیەك",toolbar:"زەردەخەنه"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/lt.js b/src/lib/ckeditor/plugins/smiley/lang/lt.js new file mode 100644 index 00000000..49573bec --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lt",{options:"Šypsenėlių nustatymai",title:"Įterpti veidelį",toolbar:"Veideliai"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/lv.js b/src/lib/ckeditor/plugins/smiley/lang/lv.js new file mode 100644 index 00000000..b8299e52 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lv",{options:"Smaidiņu uzstādījumi",title:"Ievietot smaidiņu",toolbar:"Smaidiņi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/mk.js b/src/lib/ckeditor/plugins/smiley/lang/mk.js new file mode 100644 index 00000000..e7e241b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mk",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/mn.js b/src/lib/ckeditor/plugins/smiley/lang/mn.js new file mode 100644 index 00000000..6f8cd095 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mn",{options:"Smiley Options",title:"Тодорхойлолт оруулах",toolbar:"Тодорхойлолт"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ms.js b/src/lib/ckeditor/plugins/smiley/lang/ms.js new file mode 100644 index 00000000..0df42a59 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ms",{options:"Smiley Options",title:"Masukkan Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/nb.js b/src/lib/ckeditor/plugins/smiley/lang/nb.js new file mode 100644 index 00000000..db957dcb --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nb",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/nl.js b/src/lib/ckeditor/plugins/smiley/lang/nl.js new file mode 100644 index 00000000..1b3ac44e --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nl",{options:"Smiley opties",title:"Smiley invoegen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/no.js b/src/lib/ckeditor/plugins/smiley/lang/no.js new file mode 100644 index 00000000..87f8534d --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","no",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/pl.js b/src/lib/ckeditor/plugins/smiley/lang/pl.js new file mode 100644 index 00000000..eb1938ab --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pl",{options:"Opcje emotikonów",title:"Wstaw emotikona",toolbar:"Emotikony"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/pt-br.js b/src/lib/ckeditor/plugins/smiley/lang/pt-br.js new file mode 100644 index 00000000..e41f5442 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt-br",{options:"Opções de Emoticons",title:"Inserir Emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/pt.js b/src/lib/ckeditor/plugins/smiley/lang/pt.js new file mode 100644 index 00000000..c9103e76 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt",{options:"Opções de Emoticons",title:"Inserir um Emoticon",toolbar:"Emoticons"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ro.js b/src/lib/ckeditor/plugins/smiley/lang/ro.js new file mode 100644 index 00000000..1f6b89af --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ro",{options:"Opțiuni figuri expresive",title:"Inserează o figură expresivă (Emoticon)",toolbar:"Figură expresivă (Emoticon)"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ru.js b/src/lib/ckeditor/plugins/smiley/lang/ru.js new file mode 100644 index 00000000..b8f1d619 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ru",{options:"Выбор смайла",title:"Вставить смайл",toolbar:"Смайлы"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/si.js b/src/lib/ckeditor/plugins/smiley/lang/si.js new file mode 100644 index 00000000..da884cf6 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","si",{options:"හාස්‍ය විකල්ප",title:"හාස්‍යන් ඇතුලත් කිරීම",toolbar:"හාස්‍යන්"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/sk.js b/src/lib/ckeditor/plugins/smiley/lang/sk.js new file mode 100644 index 00000000..c1ce5970 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sk",{options:"Možnosti smajlíkov",title:"Vložiť smajlíka",toolbar:"Smajlíky"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/sl.js b/src/lib/ckeditor/plugins/smiley/lang/sl.js new file mode 100644 index 00000000..ef64a7a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sl",{options:"Možnosti Smeška",title:"Vstavi smeška",toolbar:"Smeško"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/sq.js b/src/lib/ckeditor/plugins/smiley/lang/sq.js new file mode 100644 index 00000000..d870960e --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sq",{options:"Opsionet e Ikonave",title:"Vendos Ikonë",toolbar:"Ikona"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/sr-latn.js b/src/lib/ckeditor/plugins/smiley/lang/sr-latn.js new file mode 100644 index 00000000..4e46a4d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr-latn",{options:"Smiley Options",title:"Unesi smajlija",toolbar:"Smajli"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/sr.js b/src/lib/ckeditor/plugins/smiley/lang/sr.js new file mode 100644 index 00000000..d321eba3 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr",{options:"Smiley Options",title:"Унеси смајлија",toolbar:"Смајли"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/sv.js b/src/lib/ckeditor/plugins/smiley/lang/sv.js new file mode 100644 index 00000000..29e4c575 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sv",{options:"Smileyinställningar",title:"Infoga smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/th.js b/src/lib/ckeditor/plugins/smiley/lang/th.js new file mode 100644 index 00000000..e4e12770 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","th",{options:"ตัวเลือกไอคอนแสดงอารมณ์",title:"แทรกสัญลักษณ์สื่ออารมณ์",toolbar:"รูปสื่ออารมณ์"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/tr.js b/src/lib/ckeditor/plugins/smiley/lang/tr.js new file mode 100644 index 00000000..90481db7 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tr",{options:"İfade Seçenekleri",title:"İfade Ekle",toolbar:"İfade"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/tt.js b/src/lib/ckeditor/plugins/smiley/lang/tt.js new file mode 100644 index 00000000..7f1c8d3e --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tt",{options:"Смайл көйләүләре",title:"Смайл өстәү",toolbar:"Смайл"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/ug.js b/src/lib/ckeditor/plugins/smiley/lang/ug.js new file mode 100644 index 00000000..5d8ec4eb --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ug",{options:"چىراي ئىپادە سىنبەلگە تاللانمىسى",title:"چىراي ئىپادە سىنبەلگە قىستۇر",toolbar:"چىراي ئىپادە"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/uk.js b/src/lib/ckeditor/plugins/smiley/lang/uk.js new file mode 100644 index 00000000..f6c59ee1 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","uk",{options:"Опції смайликів",title:"Вставити смайлик",toolbar:"Смайлик"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/vi.js b/src/lib/ckeditor/plugins/smiley/lang/vi.js new file mode 100644 index 00000000..f5d1a665 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","vi",{options:"Tùy chọn hình biểu lộ cảm xúc",title:"Chèn hình biểu lộ cảm xúc (mặt cười)",toolbar:"Hình biểu lộ cảm xúc (mặt cười)"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/zh-cn.js b/src/lib/ckeditor/plugins/smiley/lang/zh-cn.js new file mode 100644 index 00000000..daea8579 --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh-cn",{options:"表情图标选项",title:"插入表情图标",toolbar:"表情符"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/lang/zh.js b/src/lib/ckeditor/plugins/smiley/lang/zh.js new file mode 100644 index 00000000..dffc3f0a --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh",{options:"表情符號選項",title:"插入表情符號",toolbar:"表情符號"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/smiley/plugin.js b/src/lib/ckeditor/plugins/smiley/plugin.js new file mode 100644 index 00000000..426cb09b --- /dev/null +++ b/src/lib/ckeditor/plugins/smiley/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("smiley",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"smiley",hidpi:!0,init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley",{allowedContent:"img[alt,height,!src,title,width]",requiredContent:"img"})); +a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.png sad_smile.png wink_smile.png teeth_smile.png confused_smile.png tongue_smile.png embarrassed_smile.png omg_smile.png whatchutalkingabout_smile.png angry_smile.png angel_smile.png shades_smile.png devil_smile.png cry_smile.png lightbulb.png thumbs_down.png thumbs_up.png heart.png broken_heart.png kiss.png envelope.png".split(" "); +CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";"); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js b/src/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js new file mode 100644 index 00000000..d0728c38 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("sourcedialog",function(a){var b=CKEDITOR.document.getWindow().getViewPaneSize(),e=Math.min(b.width-70,800),b=b.height/1.5,d;return{title:a.lang.sourcedialog.title,minWidth:100,minHeight:100,onShow:function(){this.setValueOf("main","data",d=a.getData())},onOk:function(){function b(f,c){a.focus();a.setData(c,function(){f.hide();var b=a.createRange();b.moveToElementEditStart(a.editable());b.select()})}return function(){var a=this.getValueOf("main","data").replace(/\r/g,""),c=this; +if(a===d)return!0;setTimeout(function(){b(c,a)});return!1}}(),contents:[{id:"main",label:a.lang.sourcedialog.title,elements:[{type:"textarea",id:"data",dir:"ltr",inputStyle:"cursor:auto;width:"+e+"px;height:"+b+"px;tab-size:4;text-align:left;","class":"cke_source"}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png b/src/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png new file mode 100644 index 00000000..adf4af3c Binary files /dev/null and b/src/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png differ diff --git a/src/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png b/src/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png new file mode 100644 index 00000000..b4d0a15a Binary files /dev/null and b/src/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png differ diff --git a/src/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png b/src/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png new file mode 100644 index 00000000..27d1ba88 Binary files /dev/null and b/src/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png differ diff --git a/src/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png b/src/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png new file mode 100644 index 00000000..e44db379 Binary files /dev/null and b/src/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png differ diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/af.js b/src/lib/ckeditor/plugins/sourcedialog/lang/af.js new file mode 100644 index 00000000..f1491d1f --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","af",{toolbar:"Bron",title:"Bron"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ar.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ar.js new file mode 100644 index 00000000..b755d750 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ar",{toolbar:"المصدر",title:"المصدر"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/bg.js b/src/lib/ckeditor/plugins/sourcedialog/lang/bg.js new file mode 100644 index 00000000..1d8c6dca --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bg",{toolbar:"Източник",title:"Източник"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/bn.js b/src/lib/ckeditor/plugins/sourcedialog/lang/bn.js new file mode 100644 index 00000000..fd41806f --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bn",{toolbar:"সোর্স",title:"সোর্স"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/bs.js b/src/lib/ckeditor/plugins/sourcedialog/lang/bs.js new file mode 100644 index 00000000..9cd03930 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bs",{toolbar:"HTML kôd",title:"HTML kôd"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ca.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ca.js new file mode 100644 index 00000000..24193350 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ca",{toolbar:"Codi font",title:"Codi font"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/cs.js b/src/lib/ckeditor/plugins/sourcedialog/lang/cs.js new file mode 100644 index 00000000..acd14e8d --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cs",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/cy.js b/src/lib/ckeditor/plugins/sourcedialog/lang/cy.js new file mode 100644 index 00000000..d61bd35e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cy",{toolbar:"HTML",title:"HTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/da.js b/src/lib/ckeditor/plugins/sourcedialog/lang/da.js new file mode 100644 index 00000000..7c21ca42 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","da",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/de.js b/src/lib/ckeditor/plugins/sourcedialog/lang/de.js new file mode 100644 index 00000000..49f7c610 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","de",{toolbar:"Quellcode",title:"Quellcode"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/el.js b/src/lib/ckeditor/plugins/sourcedialog/lang/el.js new file mode 100644 index 00000000..58f9dd6c --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","el",{toolbar:"Κώδικας",title:"Κώδικας"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/en-au.js b/src/lib/ckeditor/plugins/sourcedialog/lang/en-au.js new file mode 100644 index 00000000..9dede838 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-au",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js b/src/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js new file mode 100644 index 00000000..244ef5ff --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js b/src/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js new file mode 100644 index 00000000..9381cd0e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-gb",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/en.js b/src/lib/ckeditor/plugins/sourcedialog/lang/en.js new file mode 100644 index 00000000..20b116ed --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/eo.js b/src/lib/ckeditor/plugins/sourcedialog/lang/eo.js new file mode 100644 index 00000000..902480da --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eo",{toolbar:"Fonto",title:"Fonto"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/es.js b/src/lib/ckeditor/plugins/sourcedialog/lang/es.js new file mode 100644 index 00000000..e7f85510 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","es",{toolbar:"Fuente HTML",title:"Fuente HTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/et.js b/src/lib/ckeditor/plugins/sourcedialog/lang/et.js new file mode 100644 index 00000000..9c3848b2 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","et",{toolbar:"Lähtekood",title:"Lähtekood"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/eu.js b/src/lib/ckeditor/plugins/sourcedialog/lang/eu.js new file mode 100644 index 00000000..dc75afe0 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eu",{toolbar:"HTML Iturburua",title:"HTML Iturburua"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/fa.js b/src/lib/ckeditor/plugins/sourcedialog/lang/fa.js new file mode 100644 index 00000000..65b63062 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fa",{toolbar:"منبع",title:"منبع"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/fi.js b/src/lib/ckeditor/plugins/sourcedialog/lang/fi.js new file mode 100644 index 00000000..b7630ff0 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fi",{toolbar:"Koodi",title:"Koodi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/fo.js b/src/lib/ckeditor/plugins/sourcedialog/lang/fo.js new file mode 100644 index 00000000..ab4e5570 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fo",{toolbar:"Kelda",title:"Kelda"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js b/src/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js new file mode 100644 index 00000000..23148f8e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/fr.js b/src/lib/ckeditor/plugins/sourcedialog/lang/fr.js new file mode 100644 index 00000000..8bc19780 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/gl.js b/src/lib/ckeditor/plugins/sourcedialog/lang/gl.js new file mode 100644 index 00000000..8a3bcbcd --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gl",{toolbar:"Orixe",title:"Orixe"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/gu.js b/src/lib/ckeditor/plugins/sourcedialog/lang/gu.js new file mode 100644 index 00000000..2241ec60 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gu",{toolbar:"મૂળ કે પ્રાથમિક દસ્તાવેજ",title:"મૂળ કે પ્રાથમિક દસ્તાવેજ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/he.js b/src/lib/ckeditor/plugins/sourcedialog/lang/he.js new file mode 100644 index 00000000..4f255502 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","he",{toolbar:"מקור",title:"מקור"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/hi.js b/src/lib/ckeditor/plugins/sourcedialog/lang/hi.js new file mode 100644 index 00000000..41ebe9b1 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hi",{toolbar:"सोर्स",title:"सोर्स"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/hr.js b/src/lib/ckeditor/plugins/sourcedialog/lang/hr.js new file mode 100644 index 00000000..51d2d4db --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hr",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/hu.js b/src/lib/ckeditor/plugins/sourcedialog/lang/hu.js new file mode 100644 index 00000000..5e80c1e7 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hu",{toolbar:"Forráskód",title:"Forráskód"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/id.js b/src/lib/ckeditor/plugins/sourcedialog/lang/id.js new file mode 100644 index 00000000..e5af768e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","id",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/is.js b/src/lib/ckeditor/plugins/sourcedialog/lang/is.js new file mode 100644 index 00000000..fa21def4 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","is",{toolbar:"Kóði",title:"Kóði"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/it.js b/src/lib/ckeditor/plugins/sourcedialog/lang/it.js new file mode 100644 index 00000000..0a6c8c04 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","it",{toolbar:"Sorgente",title:"Sorgente"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ja.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ja.js new file mode 100644 index 00000000..81832591 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ja",{toolbar:"ソース",title:"ソース"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ka.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ka.js new file mode 100644 index 00000000..201586a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ka",{toolbar:"კოდები",title:"კოდები"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/km.js b/src/lib/ckeditor/plugins/sourcedialog/lang/km.js new file mode 100644 index 00000000..421b42c8 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","km",{toolbar:"អក្សរ​កូដ",title:"អក្សរ​កូដ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ko.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ko.js new file mode 100644 index 00000000..64aa7004 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ko",{toolbar:"소스",title:"소스"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ku.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ku.js new file mode 100644 index 00000000..61faf97b --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ku",{toolbar:"سەرچاوە",title:"سەرچاوە"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/lt.js b/src/lib/ckeditor/plugins/sourcedialog/lang/lt.js new file mode 100644 index 00000000..4b297dd3 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lt",{toolbar:"Šaltinis",title:"Šaltinis"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/lv.js b/src/lib/ckeditor/plugins/sourcedialog/lang/lv.js new file mode 100644 index 00000000..1f454578 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lv",{toolbar:"HTML kods",title:"HTML kods"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/mn.js b/src/lib/ckeditor/plugins/sourcedialog/lang/mn.js new file mode 100644 index 00000000..d1d2b635 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","mn",{toolbar:"Код",title:"Код"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ms.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ms.js new file mode 100644 index 00000000..69e7e9fb --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ms",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/nb.js b/src/lib/ckeditor/plugins/sourcedialog/lang/nb.js new file mode 100644 index 00000000..224b0855 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nb",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/nl.js b/src/lib/ckeditor/plugins/sourcedialog/lang/nl.js new file mode 100644 index 00000000..47d692d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nl",{toolbar:"Broncode",title:"Broncode"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/no.js b/src/lib/ckeditor/plugins/sourcedialog/lang/no.js new file mode 100644 index 00000000..02cadbac --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","no",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/pl.js b/src/lib/ckeditor/plugins/sourcedialog/lang/pl.js new file mode 100644 index 00000000..80d4f44b --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pl",{toolbar:"Źródło dokumentu",title:"Źródło dokumentu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js b/src/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js new file mode 100644 index 00000000..358cfd18 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt-br",{toolbar:"Código-Fonte",title:"Código-Fonte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/pt.js b/src/lib/ckeditor/plugins/sourcedialog/lang/pt.js new file mode 100644 index 00000000..f924ce8d --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt",{toolbar:"Fonte",title:"Fonte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ro.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ro.js new file mode 100644 index 00000000..cc82c71d --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ro",{toolbar:"Sursa",title:"Sursa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ru.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ru.js new file mode 100644 index 00000000..fbf6efb7 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ru",{toolbar:"Исходник",title:"Источник"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/si.js b/src/lib/ckeditor/plugins/sourcedialog/lang/si.js new file mode 100644 index 00000000..f869386e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","si",{toolbar:"මුලාශ්‍රය",title:"මුලාශ්‍රය"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/sk.js b/src/lib/ckeditor/plugins/sourcedialog/lang/sk.js new file mode 100644 index 00000000..18dcae92 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sk",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/sl.js b/src/lib/ckeditor/plugins/sourcedialog/lang/sl.js new file mode 100644 index 00000000..85cfe161 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sl",{toolbar:"Izvorna koda",title:"Izvorna koda"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/sq.js b/src/lib/ckeditor/plugins/sourcedialog/lang/sq.js new file mode 100644 index 00000000..1266a7fd --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sq",{toolbar:"Burimi",title:"Burimi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js b/src/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js new file mode 100644 index 00000000..4f0736c2 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr-latn",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/sr.js b/src/lib/ckeditor/plugins/sourcedialog/lang/sr.js new file mode 100644 index 00000000..84073825 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr",{toolbar:"Kôд",title:"Kôд"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/sv.js b/src/lib/ckeditor/plugins/sourcedialog/lang/sv.js new file mode 100644 index 00000000..2fec89c7 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sv",{toolbar:"Källa",title:"Källa"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/th.js b/src/lib/ckeditor/plugins/sourcedialog/lang/th.js new file mode 100644 index 00000000..03e48901 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","th",{toolbar:"ดูรหัส HTML",title:"ดูรหัส HTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/tr.js b/src/lib/ckeditor/plugins/sourcedialog/lang/tr.js new file mode 100644 index 00000000..31ac46b5 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tr",{toolbar:"Kaynak",title:"Kaynak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/tt.js b/src/lib/ckeditor/plugins/sourcedialog/lang/tt.js new file mode 100644 index 00000000..a4c7d5eb --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tt",{toolbar:"Чыганак",title:"Чыганак"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/ug.js b/src/lib/ckeditor/plugins/sourcedialog/lang/ug.js new file mode 100644 index 00000000..efcc9d79 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ug",{toolbar:"مەنبە",title:"مەنبە"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/uk.js b/src/lib/ckeditor/plugins/sourcedialog/lang/uk.js new file mode 100644 index 00000000..ca9afc2e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","uk",{toolbar:"Джерело",title:"Джерело"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/vi.js b/src/lib/ckeditor/plugins/sourcedialog/lang/vi.js new file mode 100644 index 00000000..65c47d61 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","vi",{toolbar:"Mã HTML",title:"Mã HTML"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js b/src/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js new file mode 100644 index 00000000..fc5bb0d8 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh-cn",{toolbar:"源码",title:"源码"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/lang/zh.js b/src/lib/ckeditor/plugins/sourcedialog/lang/zh.js new file mode 100644 index 00000000..c49aa82e --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh",{toolbar:"原始碼",title:"原始碼"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/sourcedialog/plugin.js b/src/lib/ckeditor/plugins/sourcedialog/plugin.js new file mode 100644 index 00000000..b7cc6875 --- /dev/null +++ b/src/lib/ckeditor/plugins/sourcedialog/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("sourcedialog",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"sourcedialog,sourcedialog-rtl",hidpi:!0,init:function(a){a.addCommand("sourcedialog",new CKEDITOR.dialogCommand("sourcedialog"));CKEDITOR.dialog.add("sourcedialog",this.path+"dialogs/sourcedialog.js");a.ui.addButton&&a.ui.addButton("Sourcedialog", +{label:a.lang.sourcedialog.toolbar,command:"sourcedialog",toolbar:"mode,10"})}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt new file mode 100644 index 00000000..baadd2b7 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -0,0 +1,20 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +cs.js Found: 118 Missing: 0 +cy.js Found: 118 Missing: 0 +de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 +eo.js Found: 118 Missing: 0 +et.js Found: 31 Missing: 87 +fa.js Found: 24 Missing: 94 +fi.js Found: 23 Missing: 95 +fr.js Found: 118 Missing: 0 +hr.js Found: 23 Missing: 95 +it.js Found: 118 Missing: 0 +nb.js Found: 118 Missing: 0 +nl.js Found: 118 Missing: 0 +no.js Found: 118 Missing: 0 +tr.js Found: 118 Missing: 0 +ug.js Found: 39 Missing: 79 +zh-cn.js Found: 118 Missing: 0 diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js new file mode 100644 index 00000000..acb6c923 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js new file mode 100644 index 00000000..0bf8749e --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js new file mode 100644 index 00000000..e6504372 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", +laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", +Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", +Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", +Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", +aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", +igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", +divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", +374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", +asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js new file mode 100644 index 00000000..c2b38f0f --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", +not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", +Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", +Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", +Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", +acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", +icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", +uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", +8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js new file mode 100644 index 00000000..77f59f61 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", +reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", +Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", +Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", +Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", +aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", +euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", +otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", +OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", +diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js new file mode 100644 index 00000000..6b3ce87e --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", +reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", +Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", +Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", +Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", +aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", +eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", +ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", +sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js new file mode 100644 index 00000000..e7c2a219 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", +ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", +iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", +Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", +Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", +acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", +icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", +uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", +sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js new file mode 100644 index 00000000..5a147863 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js new file mode 100644 index 00000000..26f61c2e --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js new file mode 100644 index 00000000..d44b0d2e --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", +sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", +Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", +Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", +szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", +igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", +uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", +bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js new file mode 100644 index 00000000..79d437f9 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", +not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", +Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", +Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", +times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", +acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", +iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", +ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", +373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js new file mode 100644 index 00000000..22c90561 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", +bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js new file mode 100644 index 00000000..e0b27c59 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", +macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", +Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", +Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", +aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", +iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", +thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", +asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js new file mode 100644 index 00000000..6d701e3c --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js new file mode 100644 index 00000000..d19e2e42 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", +Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", +Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", +eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", +373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js new file mode 100644 index 00000000..2d1ad096 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", +Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", +Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", +auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", +ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", +373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js new file mode 100644 index 00000000..f16d3667 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", +not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", +Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", +Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", +times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", +acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", +iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", +ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", +373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js new file mode 100644 index 00000000..dcfc50f0 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", +macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", +Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", +ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", +Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", +ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", +divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", +373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js new file mode 100644 index 00000000..af10255d --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", +reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js new file mode 100644 index 00000000..79483051 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", +reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", +Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", +Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", +agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", +icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", +uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", +9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js new file mode 100644 index 00000000..4928f400 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js new file mode 100644 index 00000000..894b56ce --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", +not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", +Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", +Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", +Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", +agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", +ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", +ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", +yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", +trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js new file mode 100644 index 00000000..84fb8fa2 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", +frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", +times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", +ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", +rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js new file mode 100644 index 00000000..65a7518d --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js new file mode 100644 index 00000000..4917d4ad --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", +ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", +Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", +Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", +times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", +atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", +icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", +uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", +375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js new file mode 100644 index 00000000..50a77d36 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", +laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", +Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", +Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", +times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", +acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", +icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", +uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", +sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js new file mode 100644 index 00000000..0cdcde20 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js new file mode 100644 index 00000000..68edf37f --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", +reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", +Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", +Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", +Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", +aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", +iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", +uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", +375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js new file mode 100644 index 00000000..eecc56c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js new file mode 100644 index 00000000..f21a09db --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", +laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", +Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", +Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", +Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", +eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", +divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", +375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka w lewo",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js new file mode 100644 index 00000000..e3f78319 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", +macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", +Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", +Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", +aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", +otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", +373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js new file mode 100644 index 00000000..11ef746a --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", +laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", +Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", +Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", +times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", +atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", +icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", +uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", +sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa Duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js new file mode 100644 index 00000000..866e8659 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", +not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", +Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", +Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", +Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", +aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", +ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", +uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", +bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js new file mode 100644 index 00000000..1255a350 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", +macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js new file mode 100644 index 00000000..2d226d06 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", +reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", +Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", +Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", +Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", +aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", +oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", +OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", +hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js new file mode 100644 index 00000000..84759b62 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", +macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", +Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", +ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", +Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", +ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", +divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", +373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js new file mode 100644 index 00000000..c7098005 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", +Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", +Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", +times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", +acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", +iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", +ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", +373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js new file mode 100644 index 00000000..8f741b93 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", +not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", +Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", +Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", +ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", +ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", +trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js new file mode 100644 index 00000000..ae0b00e5 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js new file mode 100644 index 00000000..3dd220a3 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", +not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", +Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", +ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", +THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", +igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", +uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", +bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js new file mode 100644 index 00000000..2eadb9f7 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Section sign",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", +not:"Not sign",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Middle dot",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе", +Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе", +Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе", +Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе", +ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе", +ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе", +oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow", +diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js new file mode 100644 index 00000000..51f4c1d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", +deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", +Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", +ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", +oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", +yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js new file mode 100644 index 00000000..845e7524 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", +not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", +Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", +Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", +Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", +igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", +ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", +hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js new file mode 100644 index 00000000..d4e4d37a --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", +reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", +Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", +Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", +times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", +atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", +iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", +divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", +372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", +asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js new file mode 100644 index 00000000..6896e912 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", +Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", +Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", +iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", +373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js new file mode 100644 index 00000000..7bc2b556 --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", +frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", +Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", +times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", +auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", +eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", +uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js b/src/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js new file mode 100644 index 00000000..c4d1696b --- /dev/null +++ b/src/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); +var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), +j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); +break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): +d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
 ');f.push("
",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, +title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", +align:"top",children:[{type:"html",html:"
"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
 
"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", +html:"
 
"}]}]}]}]}]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/stylesheetparser/plugin.js b/src/lib/ckeditor/plugins/stylesheetparser/plugin.js new file mode 100644 index 00000000..25ddd8f6 --- /dev/null +++ b/src/lib/ckeditor/plugins/stylesheetparser/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,e,c){var i=[],g=[],a;for(a=0;a|\+|~)/g," ");a=a.replace(/\[[^\]]*/g,"");a=a.replace(/#[^\s]*/g,"");a=a.replace(/\:{1,2}[^\s]*/g,"");a=a.replace(/\s+/g," ");a=a.split(" ");b=[];for(g=0;gl&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& +a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); +a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", +this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", +html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0b.indexOf("px")&&(b=b in j&&"none"!=a.getComputedStyle("border-style")?j[b]:0);return parseInt(b,10)}function w(a){var h=[],b=-1,j="rtl"==a.getComputedStyle("direction"),c;c=a.$.rows;for(var p=0,g,d,e,i=0,o=c.length;ip&&(p=g,d=e);c=d;p=new CKEDITOR.dom.element(a.$.tBodies[0]); +g=p.getDocumentPosition();d=0;for(e=c.cells.length;d',d);a.on("destroy",function(){e.remove()});s||d.getDocumentElement().append(e);this.attachTo=function(a){i|| +(s&&(d.getBody().append(e),k=0),g=a,e.setStyles({width:f(a.width),height:f(a.height),left:f(a.x),top:f(a.y)}),s&&e.setOpacity(0.25),e.on("mousedown",j,this),d.getBody().setStyle("cursor","col-resize"),e.show())};var r=this.move=function(a){if(!g)return 0;if(!i&&(ag.x+g.width))return g=null,i=k=0,d.removeListener("mouseup",c),e.removeListener("mousedown",j),e.removeListener("mousemove",p),d.getBody().setStyle("cursor","auto"),s?e.remove():e.hide(),0;a-=Math.round(e.$.offsetWidth/2);if(i){if(a== +y||a==z)return 1;a=Math.max(a,y);a=Math.min(a,z);k=a-o}e.setStyle("left",f(a));return 1}}function r(a){var h=a.data.getTarget();if("mouseout"==a.name){if(!h.is("table"))return;for(var b=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);b&&b.$&&!b.equals(h)&&!b.is("body");)b=b.getParent();if(!b||b.equals(h))return}h.getAscendant("table",1).removeCustomData("_cke_table_pillars");a.removeListener()}var f=CKEDITOR.tools.cssLength,s=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks); +CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(a){a.on("contentDom",function(){var h,b=a.editable();b.attachListener(b.isInline()?b:a.document,"mousemove",function(b){var b=b.data,c=b.getTarget();if(c.type==CKEDITOR.NODE_ELEMENT){var f=b.getPageOffset().x;if(h&&h.move(f))u(b);else if(c.is("table")||c.getAscendant("tbody",1)){c=c.getAscendant("table",1);if(!(b=c.getCustomData("_cke_table_pillars")))c.setCustomData("_cke_table_pillars",b=w(c)),c.on("mouseout",r),c.on("mousedown", +r);a:{for(var c=0,g=b.length;c=d.x&&f<=d.x+d.width){f=d;break a}}f=null}f&&(!h&&(h=new A(a)),h.attachTo(f))}}})})}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js b/src/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js new file mode 100644 index 00000000..fb8e99ad --- /dev/null +++ b/src/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js @@ -0,0 +1,17 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("cellProperties",function(g){function d(a){return function(b){for(var c=a(b[0]),d=1;d"+h.widthPx}]},f,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:d(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")|| +b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},f,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.alignLeft,"left"],[e.alignCenter,"center"],[e.alignRight,"right"],[e.alignJustify,"justify"]],setup:d(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align"); +a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:d(function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]}, +f,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:d(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},f,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:i.integer(c.invalidRowSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()): +a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:i.integer(c.invalidColSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},f,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:d(function(a){var b=a.getAttribute("bgColor"); +return a.getStyle("background-color")||b}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}},k?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:f]},f, +{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:d(function(a){var b=a.getAttribute("borderColor");return a.getStyle("border-color")||b}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},k?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(m?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align", +"bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}}:f]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d
'),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), +c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, +minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
'+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, +"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d'+f.emptyListMsg+"")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png b/src/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png differ diff --git a/src/lib/ckeditor/plugins/templates/icons/hidpi/templates.png b/src/lib/ckeditor/plugins/templates/icons/hidpi/templates.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/icons/hidpi/templates.png differ diff --git a/src/lib/ckeditor/plugins/templates/icons/templates-rtl.png b/src/lib/ckeditor/plugins/templates/icons/templates-rtl.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/icons/templates-rtl.png differ diff --git a/src/lib/ckeditor/plugins/templates/icons/templates.png b/src/lib/ckeditor/plugins/templates/icons/templates.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/icons/templates.png differ diff --git a/src/lib/ckeditor/plugins/templates/lang/af.js b/src/lib/ckeditor/plugins/templates/lang/af.js new file mode 100644 index 00000000..3d31c9f5 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","af",{button:"Sjablone",emptyListMsg:"(Geen sjablone gedefineer nie)",insertOption:"Vervang huidige inhoud",options:"Sjabloon opsies",selectPromptMsg:"Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):",title:"Inhoud Sjablone"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ar.js b/src/lib/ckeditor/plugins/templates/lang/ar.js new file mode 100644 index 00000000..b4d6e742 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ar",{button:"القوالب",emptyListMsg:"(لم يتم تعريف أي قالب)",insertOption:"استبدال المحتوى",options:"خصائص القوالب",selectPromptMsg:"اختر القالب الذي تود وضعه في المحرر",title:"قوالب المحتوى"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/bg.js b/src/lib/ckeditor/plugins/templates/lang/bg.js new file mode 100644 index 00000000..766b87ac --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bg",{button:"Шаблони",emptyListMsg:"(Няма дефинирани шаблони)",insertOption:"Препокрива актуалното съдържание",options:"Опции за шаблона",selectPromptMsg:"Изберете шаблон
(текущото съдържание на редактора ще бъде загубено):",title:"Шаблони"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/bn.js b/src/lib/ckeditor/plugins/templates/lang/bn.js new file mode 100644 index 00000000..d8faf6f4 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bn",{button:"টেমপ্লেট",emptyListMsg:"(কোন টেমপ্লেট ডিফাইন করা নেই)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন
(আসল কনটেন্ট হারিয়ে যাবে):",title:"কনটেন্ট টেমপ্লেট"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/bs.js b/src/lib/ckeditor/plugins/templates/lang/bs.js new file mode 100644 index 00000000..09cfcd7e --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bs",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ca.js b/src/lib/ckeditor/plugins/templates/lang/ca.js new file mode 100644 index 00000000..5aec5ba9 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ca",{button:"Plantilles",emptyListMsg:"(No hi ha plantilles definides)",insertOption:"Reemplaça el contingut actual",options:"Opcions de plantilla",selectPromptMsg:"Seleccioneu una plantilla per usar a l'editor
(per defecte s'elimina el contingut actual):",title:"Plantilles de contingut"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/cs.js b/src/lib/ckeditor/plugins/templates/lang/cs.js new file mode 100644 index 00000000..0ceb5a01 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cs",{button:"Šablony",emptyListMsg:"(Není definována žádná šablona)",insertOption:"Nahradit aktuální obsah",options:"Nastavení šablon",selectPromptMsg:"Prosím zvolte šablonu pro otevření v editoru
(aktuální obsah editoru bude ztracen):",title:"Šablony obsahu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/cy.js b/src/lib/ckeditor/plugins/templates/lang/cy.js new file mode 100644 index 00000000..86896b0e --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cy",{button:"Templedi",emptyListMsg:"(Dim templedi wedi'u diffinio)",insertOption:"Amnewid y cynnwys go iawn",options:"Opsiynau Templedi",selectPromptMsg:"Dewiswch dempled i'w agor yn y golygydd",title:"Templedi Cynnwys"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/da.js b/src/lib/ckeditor/plugins/templates/lang/da.js new file mode 100644 index 00000000..a7505cc7 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","da",{button:"Skabeloner",emptyListMsg:"(Der er ikke defineret nogen skabelon)",insertOption:"Erstat det faktiske indhold",options:"Skabelon muligheder",selectPromptMsg:"Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):",title:"Indholdsskabeloner"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/de.js b/src/lib/ckeditor/plugins/templates/lang/de.js new file mode 100644 index 00000000..de5a7619 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","de",{button:"Vorlagen",emptyListMsg:"(keine Vorlagen definiert)",insertOption:"Aktuellen Inhalt ersetzen",options:"Vorlagen Optionen",selectPromptMsg:"Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",title:"Vorlagen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/el.js b/src/lib/ckeditor/plugins/templates/lang/el.js new file mode 100644 index 00000000..ca7464d9 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","el",{button:"Πρότυπα",emptyListMsg:"(Δεν έχουν καθοριστεί πρότυπα)",insertOption:"Αντικατάσταση υπάρχοντων περιεχομένων",options:"Επιλογές Προτύπου",selectPromptMsg:"Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα",title:"Πρότυπα Περιεχομένου"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/en-au.js b/src/lib/ckeditor/plugins/templates/lang/en-au.js new file mode 100644 index 00000000..65e54336 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-au",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/en-ca.js b/src/lib/ckeditor/plugins/templates/lang/en-ca.js new file mode 100644 index 00000000..5472454f --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-ca",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/en-gb.js b/src/lib/ckeditor/plugins/templates/lang/en-gb.js new file mode 100644 index 00000000..ec9a7fd7 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-gb",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/en.js b/src/lib/ckeditor/plugins/templates/lang/en.js new file mode 100644 index 00000000..c5fef88d --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/eo.js b/src/lib/ckeditor/plugins/templates/lang/eo.js new file mode 100644 index 00000000..5d5afe6c --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eo",{button:"Ŝablonoj",emptyListMsg:"(Neniu ŝablono difinita)",insertOption:"Anstataŭigi la nunan enhavon",options:"Opcioj pri ŝablonoj",selectPromptMsg:"Bonvolu selekti la ŝablonon por malfermi ĝin en la redaktilo",title:"Enhavo de ŝablonoj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/es.js b/src/lib/ckeditor/plugins/templates/lang/es.js new file mode 100644 index 00000000..c541e307 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","es",{button:"Plantillas",emptyListMsg:"(No hay plantillas definidas)",insertOption:"Reemplazar el contenido actual",options:"Opciones de plantillas",selectPromptMsg:"Por favor selecciona la plantilla a abrir en el editor
(el contenido actual se perderá):",title:"Contenido de Plantillas"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/et.js b/src/lib/ckeditor/plugins/templates/lang/et.js new file mode 100644 index 00000000..7e5e5855 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","et",{button:"Mall",emptyListMsg:"(Ühtegi malli ei ole defineeritud)",insertOption:"Praegune sisu asendatakse",options:"Malli valikud",selectPromptMsg:"Palun vali mall, mis avada redaktoris
(praegune sisu läheb kaotsi):",title:"Sisumallid"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/eu.js b/src/lib/ckeditor/plugins/templates/lang/eu.js new file mode 100644 index 00000000..25b36ae1 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eu",{button:"Txantiloiak",emptyListMsg:"(Ez dago definitutako txantiloirik)",insertOption:"Ordeztu oraingo edukiak",options:"Txantiloi Aukerak",selectPromptMsg:"Mesedez txantiloia aukeratu editorean kargatzeko
(orain dauden edukiak galduko dira):",title:"Eduki Txantiloiak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/fa.js b/src/lib/ckeditor/plugins/templates/lang/fa.js new file mode 100644 index 00000000..b7a94ba4 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fa",{button:"الگوها",emptyListMsg:"(الگوئی تعریف نشده است)",insertOption:"محتویات کنونی جایگزین شوند",options:"گزینه‌های الگو",selectPromptMsg:"لطفاً الگوی مورد نظر را برای بازکردن در ویرایشگر انتخاب کنید",title:"الگوهای محتویات"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/fi.js b/src/lib/ckeditor/plugins/templates/lang/fi.js new file mode 100644 index 00000000..e58e9e46 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fi",{button:"Pohjat",emptyListMsg:"(Ei määriteltyjä pohjia)",insertOption:"Korvaa koko sisältö",options:"Sisältöpohjan ominaisuudet",selectPromptMsg:"Valitse editoriin avattava pohja",title:"Sisältöpohjat"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/fo.js b/src/lib/ckeditor/plugins/templates/lang/fo.js new file mode 100644 index 00000000..9ef42b39 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fo",{button:"Skabelónir",emptyListMsg:"(Ongar skabelónir tøkar)",insertOption:"Yvirskriva núverandi innihald",options:"Møguleikar fyri Template",selectPromptMsg:"Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum
(Hetta yvirskrivar núverandi innihald):",title:"Innihaldsskabelónir"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/fr-ca.js b/src/lib/ckeditor/plugins/templates/lang/fr-ca.js new file mode 100644 index 00000000..91003fc7 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr-ca",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer tout le contenu actuel",options:"Options de modèles",selectPromptMsg:"Sélectionner le modèle à ouvrir dans l'éditeur",title:"Modèles de contenu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/fr.js b/src/lib/ckeditor/plugins/templates/lang/fr.js new file mode 100644 index 00000000..48cb6d3d --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer le contenu actuel",options:"Options des modèles",selectPromptMsg:"Veuillez sélectionner le modèle pour l'ouvrir dans l'éditeur",title:"Contenu des modèles"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/gl.js b/src/lib/ckeditor/plugins/templates/lang/gl.js new file mode 100644 index 00000000..24483d1a --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gl",{button:"Modelos",emptyListMsg:"(Non hai modelos definidos)",insertOption:"Substituír o contido actual",options:"Opcións de modelos",selectPromptMsg:"Seleccione o modelo a abrir no editor",title:"Modelos de contido"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/gu.js b/src/lib/ckeditor/plugins/templates/lang/gu.js new file mode 100644 index 00000000..ae121968 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gu",{button:"ટેમ્પ્લેટ",emptyListMsg:"(કોઈ ટેમ્પ્લેટ ડિફાઇન નથી)",insertOption:"મૂળ શબ્દને બદલો",options:"ટેમ્પ્લેટના વિકલ્પો",selectPromptMsg:"એડિટરમાં ઓપન કરવા ટેમ્પ્લેટ પસંદ કરો (વર્તમાન કન્ટેન્ટ સેવ નહીં થાય):",title:"કન્ટેન્ટ ટેમ્પ્લેટ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/he.js b/src/lib/ckeditor/plugins/templates/lang/he.js new file mode 100644 index 00000000..0e970ca5 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","he",{button:"תבניות",emptyListMsg:"(לא הוגדרו תבניות)",insertOption:"החלפת תוכן ממשי",options:"אפשרויות התבניות",selectPromptMsg:"יש לבחור תבנית לפתיחה בעורך.
התוכן המקורי ימחק:",title:"תביות תוכן"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/hi.js b/src/lib/ckeditor/plugins/templates/lang/hi.js new file mode 100644 index 00000000..246bfe04 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hi",{button:"टॅम्प्लेट",emptyListMsg:"(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",insertOption:"मूल शब्दों को बदलें",options:"Template Options",selectPromptMsg:"ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",title:"कन्टेन्ट टॅम्प्लेट"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/hr.js b/src/lib/ckeditor/plugins/templates/lang/hr.js new file mode 100644 index 00000000..3bc52ea0 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hr",{button:"Predlošci",emptyListMsg:"(Nema definiranih predložaka)",insertOption:"Zamijeni trenutne sadržaje",options:"Opcije predložaka",selectPromptMsg:"Molimo odaberite predložak koji želite otvoriti
(stvarni sadržaj će biti izgubljen):",title:"Predlošci sadržaja"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/hu.js b/src/lib/ckeditor/plugins/templates/lang/hu.js new file mode 100644 index 00000000..90ccbb66 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hu",{button:"Sablonok",emptyListMsg:"(Nincs sablon megadva)",insertOption:"Kicseréli a jelenlegi tartalmat",options:"Sablon opciók",selectPromptMsg:"Válassza ki melyik sablon nyíljon meg a szerkesztőben
(a jelenlegi tartalom elveszik):",title:"Elérhető sablonok"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/id.js b/src/lib/ckeditor/plugins/templates/lang/id.js new file mode 100644 index 00000000..8dc86b0b --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","id",{button:"Contoh",emptyListMsg:"(Tidak ada contoh didefinisikan)",insertOption:"Ganti konten sebenarnya",options:"Opsi Contoh",selectPromptMsg:"Mohon pilih contoh untuk dibuka di editor",title:"Contoh Konten"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/is.js b/src/lib/ckeditor/plugins/templates/lang/is.js new file mode 100644 index 00000000..13e0736d --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","is",{button:"Sniðmát",emptyListMsg:"(Ekkert sniðmát er skilgreint!)",insertOption:"Skipta út raunverulegu innihaldi",options:"Template Options",selectPromptMsg:"Veldu sniðmát til að opna í ritlinum.
(Núverandi innihald víkur fyrir því!):",title:"Innihaldssniðmát"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/it.js b/src/lib/ckeditor/plugins/templates/lang/it.js new file mode 100644 index 00000000..c3303ce1 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","it",{button:"Modelli",emptyListMsg:"(Nessun modello definito)",insertOption:"Cancella il contenuto corrente",options:"Opzioni del Modello",selectPromptMsg:"Seleziona il modello da aprire nell'editor",title:"Contenuto dei modelli"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ja.js b/src/lib/ckeditor/plugins/templates/lang/ja.js new file mode 100644 index 00000000..dbf519c3 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ja",{button:"テンプレート",emptyListMsg:"(テンプレートが定義されていません)",insertOption:"現在のエディタの内容と置き換えます",options:"テンプレートオプション",selectPromptMsg:"エディターで使用するテンプレートを選択してください。
(現在のエディタの内容は失われます):",title:"内容テンプレート"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ka.js b/src/lib/ckeditor/plugins/templates/lang/ka.js new file mode 100644 index 00000000..5864b757 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ka",{button:"თარგები",emptyListMsg:"(თარგი არაა განსაზღვრული)",insertOption:"მიმდინარე შეგთავსის შეცვლა",options:"თარგების პარამეტრები",selectPromptMsg:"აირჩიეთ თარგი რედაქტორისთვის",title:"თარგები"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/km.js b/src/lib/ckeditor/plugins/templates/lang/km.js new file mode 100644 index 00000000..14a0cf02 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","km",{button:"ពុម្ព​គំរូ",emptyListMsg:"(មិន​មាន​ពុម្ព​គំរូ​ត្រូវ​បាន​កំណត់)",insertOption:"ជំនួស​ក្នុង​មាតិកា​បច្ចុប្បន្ន",options:"ជម្រើស​ពុម្ព​គំរូ",selectPromptMsg:"សូម​រើស​ពុម្ព​គំរូ​ដើម្បី​បើក​ក្នុង​កម្មវិធី​សរសេរ​អត្ថបទ",title:"ពុម្ព​គំរូ​មាតិកា"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ko.js b/src/lib/ckeditor/plugins/templates/lang/ko.js new file mode 100644 index 00000000..99c4f608 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ko",{button:"템플릿",emptyListMsg:"(템플릿이 없습니다.)",insertOption:"현재 내용 바꾸기",options:"템플릿 옵션",selectPromptMsg:"에디터에서 사용할 템플릿을 선택하십시요.
(지금까지 작성된 내용은 사라집니다.):",title:"내용 템플릿"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ku.js b/src/lib/ckeditor/plugins/templates/lang/ku.js new file mode 100644 index 00000000..a5bda7d0 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ku",{button:"ڕووکار",emptyListMsg:"(هیچ ڕووکارێك دیارینەکراوە)",insertOption:"لە شوێن دانانی ئەم پێکهاتانەی ئێستا",options:"هەڵبژاردەکانی ڕووکار",selectPromptMsg:"ڕووکارێك هەڵبژێره بۆ کردنەوەی له سەرنووسەر:",title:"پێکهاتەی ڕووکار"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/lt.js b/src/lib/ckeditor/plugins/templates/lang/lt.js new file mode 100644 index 00000000..ebbf213c --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lt",{button:"Šablonai",emptyListMsg:"(Šablonų sąrašas tuščias)",insertOption:"Pakeisti dabartinį turinį pasirinktu šablonu",options:"Template Options",selectPromptMsg:"Pasirinkite norimą šabloną
(Dėmesio! esamas turinys bus prarastas):",title:"Turinio šablonai"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/lv.js b/src/lib/ckeditor/plugins/templates/lang/lv.js new file mode 100644 index 00000000..a08ad5b4 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lv",{button:"Sagataves",emptyListMsg:"(Nav norādītas sagataves)",insertOption:"Aizvietot pašreizējo saturu",options:"Sagataves uzstādījumi",selectPromptMsg:"Lūdzu, norādiet sagatavi, ko atvērt editorā
(patreizējie dati tiks zaudēti):",title:"Satura sagataves"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/mk.js b/src/lib/ckeditor/plugins/templates/lang/mk.js new file mode 100644 index 00000000..ade20ea2 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mk",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/mn.js b/src/lib/ckeditor/plugins/templates/lang/mn.js new file mode 100644 index 00000000..768bce5a --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mn",{button:"Загварууд",emptyListMsg:"(Загвар тодорхойлогдоогүй байна)",insertOption:"Одоогийн агууллагыг дарж бичих",options:"Template Options",selectPromptMsg:"Загварыг нээж editor-рүү сонгож оруулна уу
(Одоогийн агууллагыг устаж магадгүй):",title:"Загварын агуулга"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ms.js b/src/lib/ckeditor/plugins/templates/lang/ms.js new file mode 100644 index 00000000..5bf40cdf --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ms",{button:"Templat",emptyListMsg:"(Tiada Templat Disimpan)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Sila pilih templat untuk dibuka oleh editor
(kandungan sebenar akan hilang):",title:"Templat Kandungan"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/nb.js b/src/lib/ckeditor/plugins/templates/lang/nb.js new file mode 100644 index 00000000..5260dc85 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nb",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/nl.js b/src/lib/ckeditor/plugins/templates/lang/nl.js new file mode 100644 index 00000000..a752e4bc --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nl",{button:"Sjablonen",emptyListMsg:"(Geen sjablonen gedefinieerd)",insertOption:"Vervang de huidige inhoud",options:"Template opties",selectPromptMsg:"Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",title:"Inhoud sjablonen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/no.js b/src/lib/ckeditor/plugins/templates/lang/no.js new file mode 100644 index 00000000..cf5948b3 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","no",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/pl.js b/src/lib/ckeditor/plugins/templates/lang/pl.js new file mode 100644 index 00000000..537d93c6 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pl",{button:"Szablony",emptyListMsg:"(Brak zdefiniowanych szablonów)",insertOption:"Zastąp obecną zawartość",options:"Opcje szablonów",selectPromptMsg:"Wybierz szablon do otwarcia w edytorze
(obecna zawartość okna edytora zostanie utracona):",title:"Szablony zawartości"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/pt-br.js b/src/lib/ckeditor/plugins/templates/lang/pt-br.js new file mode 100644 index 00000000..65949501 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt-br",{button:"Modelos de layout",emptyListMsg:"(Não foram definidos modelos de layout)",insertOption:"Substituir o conteúdo atual",options:"Opções de Template",selectPromptMsg:"Selecione um modelo de layout para ser aberto no editor
(o conteúdo atual será perdido):",title:"Modelo de layout de conteúdo"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/pt.js b/src/lib/ckeditor/plugins/templates/lang/pt.js new file mode 100644 index 00000000..829299eb --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt",{button:"Modelos",emptyListMsg:"(Sem modelos definidos)",insertOption:"Substituir conteúdos actuais",options:"Opções do Modelo",selectPromptMsg:"Por favor, selecione o modelo para abrir no editor",title:"Conteúdo dos Modelos"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ro.js b/src/lib/ckeditor/plugins/templates/lang/ro.js new file mode 100644 index 00000000..8ef5d355 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ro",{button:"Template-uri (şabloane)",emptyListMsg:"(Niciun template (şablon) definit)",insertOption:"Înlocuieşte cuprinsul actual",options:"Opțiuni șabloane",selectPromptMsg:"Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor
(conţinutul actual va fi pierdut):",title:"Template-uri (şabloane) de conţinut"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ru.js b/src/lib/ckeditor/plugins/templates/lang/ru.js new file mode 100644 index 00000000..201fa65b --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ru",{button:"Шаблоны",emptyListMsg:"(не определено ни одного шаблона)",insertOption:"Заменить текущее содержимое",options:"Параметры шаблона",selectPromptMsg:"Пожалуйста, выберите, какой шаблон следует открыть в редакторе",title:"Шаблоны содержимого"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/si.js b/src/lib/ckeditor/plugins/templates/lang/si.js new file mode 100644 index 00000000..dc4ea690 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","si",{button:"අච්චුව",emptyListMsg:"කිසිම අච්චුවක් කලින් තීරණය කර ",insertOption:"සත්‍ය අන්තර්ගතයන් ප්‍රතිස්ථාපනය කරන්න",options:"අච්චු ",selectPromptMsg:"කරුණාකර සංස්කරණය සදහා අච්චුවක් ",title:"අන්තර්ගත් අච්චුන්"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/sk.js b/src/lib/ckeditor/plugins/templates/lang/sk.js new file mode 100644 index 00000000..60f33664 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sk",{button:"Šablóny",emptyListMsg:"(Žiadne šablóny nedefinované)",insertOption:"Nahradiť aktuálny obsah",options:"Možnosti šablóny",selectPromptMsg:"Prosím vyberte šablónu na otvorenie v editore",title:"Šablóny obsahu"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/sl.js b/src/lib/ckeditor/plugins/templates/lang/sl.js new file mode 100644 index 00000000..db33ea9a --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sl",{button:"Predloge",emptyListMsg:"(Ni pripravljenih predlog)",insertOption:"Zamenjaj trenutno vsebino",options:"Možnosti Predloge",selectPromptMsg:"Izberite predlogo, ki jo želite odpreti v urejevalniku
(trenutna vsebina bo izgubljena):",title:"Vsebinske predloge"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/sq.js b/src/lib/ckeditor/plugins/templates/lang/sq.js new file mode 100644 index 00000000..f10c387e --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sq",{button:"Shabllonet",emptyListMsg:"(Asnjë shabllon nuk është paradefinuar)",insertOption:"Zëvendëso përmbajtjen aktuale",options:"Opsionet e Shabllonit",selectPromptMsg:"Përzgjidhni shabllonin për të hapur tek redaktuesi",title:"Përmbajtja e Shabllonit"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/sr-latn.js b/src/lib/ckeditor/plugins/templates/lang/sr-latn.js new file mode 100644 index 00000000..96498838 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr-latn",{button:"Obrasci",emptyListMsg:"(Nema definisanih obrazaca)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",title:"Obrasci za sadržaj"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/sr.js b/src/lib/ckeditor/plugins/templates/lang/sr.js new file mode 100644 index 00000000..fea8b5ea --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr",{button:"Обрасци",emptyListMsg:"(Нема дефинисаних образаца)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",title:"Обрасци за садржај"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/sv.js b/src/lib/ckeditor/plugins/templates/lang/sv.js new file mode 100644 index 00000000..78e82de7 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sv",{button:"Sidmallar",emptyListMsg:"(Ingen mall är vald)",insertOption:"Ersätt aktuellt innehåll",options:"Inställningar för mall",selectPromptMsg:"Var god välj en mall att använda med editorn
(allt nuvarande innehåll raderas):",title:"Sidmallar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/th.js b/src/lib/ckeditor/plugins/templates/lang/th.js new file mode 100644 index 00000000..e9d8e6b0 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","th",{button:"เทมเพลต",emptyListMsg:"(ยังไม่มีการกำหนดเทมเพลต)",insertOption:"แทนที่เนื้อหาเว็บไซต์ที่เลือก",options:"ตัวเลือกเกี่ยวกับเทมเพลท",selectPromptMsg:"กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์
(เนื้อหาส่วนนี้จะหายไป):",title:"เทมเพลตของส่วนเนื้อหาเว็บไซต์"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/tr.js b/src/lib/ckeditor/plugins/templates/lang/tr.js new file mode 100644 index 00000000..bd550faa --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tr",{button:"Şablonlar",emptyListMsg:"(Belirli bir şablon seçilmedi)",insertOption:"Mevcut içerik ile değiştir",options:"Şablon Seçenekleri",selectPromptMsg:"Düzenleyicide açmak için lütfen bir şablon seçin.
(hali hazırdaki içerik kaybolacaktır.):",title:"İçerik Şablonları"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/tt.js b/src/lib/ckeditor/plugins/templates/lang/tt.js new file mode 100644 index 00000000..04f0c93c --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tt",{button:"Шаблоннар",emptyListMsg:"(Шаблоннар билгеләнмәгән)",insertOption:"Әлеге эчтәлекне алмаштыру",options:"Шаблон үзлекләре",selectPromptMsg:"Please select the template to open in the editor",title:"Эчтәлек шаблоннары"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/ug.js b/src/lib/ckeditor/plugins/templates/lang/ug.js new file mode 100644 index 00000000..bb66471e --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ug",{button:"قېلىپ",emptyListMsg:"(قېلىپ يوق)",insertOption:"نۆۋەتتىكى مەزمۇننى ئالماشتۇر",options:"قېلىپ تاللانمىسى",selectPromptMsg:"تەھرىرلىگۈچنىڭ مەزمۇن قېلىپىنى تاللاڭ:",title:"مەزمۇن قېلىپى"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/uk.js b/src/lib/ckeditor/plugins/templates/lang/uk.js new file mode 100644 index 00000000..9e543981 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","uk",{button:"Шаблони",emptyListMsg:"(Не знайдено жодного шаблону)",insertOption:"Замінити поточний вміст",options:"Опції шаблону",selectPromptMsg:"Оберіть, будь ласка, шаблон для відкриття в редакторі
(поточний зміст буде втрачено):",title:"Шаблони змісту"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/vi.js b/src/lib/ckeditor/plugins/templates/lang/vi.js new file mode 100644 index 00000000..3c182f47 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","vi",{button:"Mẫu dựng sẵn",emptyListMsg:"(Không có mẫu dựng sẵn nào được định nghĩa)",insertOption:"Thay thế nội dung hiện tại",options:"Tùy chọn mẫu dựng sẵn",selectPromptMsg:"Hãy chọn mẫu dựng sẵn để mở trong trình biên tập
(nội dung hiện tại sẽ bị mất):",title:"Nội dung Mẫu dựng sẵn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/zh-cn.js b/src/lib/ckeditor/plugins/templates/lang/zh-cn.js new file mode 100644 index 00000000..f0216481 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh-cn",{button:"模板",emptyListMsg:"(没有模板)",insertOption:"替换当前内容",options:"模板选项",selectPromptMsg:"请选择要在编辑器中使用的模板:",title:"内容模板"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/lang/zh.js b/src/lib/ckeditor/plugins/templates/lang/zh.js new file mode 100644 index 00000000..dd974dff --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh",{button:"範本",emptyListMsg:"(尚未定義任何範本)",insertOption:"替代實際內容",options:"範本選項",selectPromptMsg:"請選擇要在編輯器中開啟的範本。",title:"內容範本"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/plugin.js b/src/lib/ckeditor/plugins/templates/plugin.js new file mode 100644 index 00000000..a5f6d642 --- /dev/null +++ b/src/lib/ckeditor/plugins/templates/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"templates,templates-rtl",hidpi:!0,init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&& +a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=[],b=0,c=a.length;bType the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/templates/templates/images/template1.gif b/src/lib/ckeditor/plugins/templates/templates/images/template1.gif new file mode 100644 index 00000000..efdabbeb Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/templates/images/template1.gif differ diff --git a/src/lib/ckeditor/plugins/templates/templates/images/template2.gif b/src/lib/ckeditor/plugins/templates/templates/images/template2.gif new file mode 100644 index 00000000..d1cebb3a Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/templates/images/template2.gif differ diff --git a/src/lib/ckeditor/plugins/templates/templates/images/template3.gif b/src/lib/ckeditor/plugins/templates/templates/images/template3.gif new file mode 100644 index 00000000..db41cb4f Binary files /dev/null and b/src/lib/ckeditor/plugins/templates/templates/images/template3.gif differ diff --git a/src/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js b/src/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js new file mode 100644 index 00000000..adc1cfb3 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("uicolor",function(b){function f(a){/^#/.test(a)&&(a=window.YAHOO.util.Color.hex2rgb(a.substr(1)));c.setValue(a,!0);c.refresh(e)}function g(a){b.setUiColor(a);d._.contents.tab1.configBox.setValue('config.uiColor = "#'+c.get("hex")+'"')}var d,c,h=b.getUiColor(),e="cke_uicolor_picker"+CKEDITOR.tools.getNextNumber();return{title:b.lang.uicolor.title,minWidth:360,minHeight:320,onLoad:function(){d=this;this.setupContent();CKEDITOR.env.ie7Compat&&d.parts.contents.setStyle("overflow", +"hidden")},contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{id:"yuiColorPicker",type:"html",html:"
",onLoad:function(){var a=CKEDITOR.getUrl("plugins/uicolor/yui/");this.picker=c=new window.YAHOO.widget.ColorPicker(e,{showhsvcontrols:!0,showhexcontrols:!0,images:{PICKER_THUMB:a+"assets/picker_thumb.png",HUE_THUMB:a+"assets/hue_thumb.png"}});h&&f(h);c.on("rgbChange",function(){d._.contents.tab1.predefined.setValue(""); +g("#"+c.get("hex"))});for(var a=new CKEDITOR.dom.nodeList(c.getElementsByTagName("input")),b=0;b
 
'}]},{id:"configBox",type:"text",label:b.lang.uicolor.config,onShow:function(){var a=b.getUiColor();a&&this.setValue('config.uiColor = "'+a+'"')}}]}]}],buttons:[CKEDITOR.dialog.okButton]}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png b/src/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png new file mode 100644 index 00000000..e6efa4a3 Binary files /dev/null and b/src/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png differ diff --git a/src/lib/ckeditor/plugins/uicolor/icons/uicolor.png b/src/lib/ckeditor/plugins/uicolor/icons/uicolor.png new file mode 100644 index 00000000..d5739dff Binary files /dev/null and b/src/lib/ckeditor/plugins/uicolor/icons/uicolor.png differ diff --git a/src/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt b/src/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt new file mode 100644 index 00000000..2af2d324 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 4 Missing: 0 +cs.js Found: 4 Missing: 0 +cy.js Found: 4 Missing: 0 +da.js Found: 4 Missing: 0 +de.js Found: 4 Missing: 0 +el.js Found: 4 Missing: 0 +eo.js Found: 4 Missing: 0 +et.js Found: 4 Missing: 0 +fa.js Found: 4 Missing: 0 +fi.js Found: 4 Missing: 0 +fr.js Found: 4 Missing: 0 +he.js Found: 4 Missing: 0 +hr.js Found: 4 Missing: 0 +it.js Found: 4 Missing: 0 +mk.js Found: 4 Missing: 0 +nb.js Found: 4 Missing: 0 +nl.js Found: 4 Missing: 0 +no.js Found: 4 Missing: 0 +pl.js Found: 4 Missing: 0 +tr.js Found: 4 Missing: 0 +ug.js Found: 4 Missing: 0 +uk.js Found: 4 Missing: 0 +vi.js Found: 4 Missing: 0 +zh-cn.js Found: 4 Missing: 0 diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ar.js b/src/lib/ckeditor/plugins/uicolor/lang/ar.js new file mode 100644 index 00000000..6dcf6470 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ar",{title:"منتقي الألوان",preview:"معاينة مباشرة",config:"قص السطر إلى الملف config.js",predefined:"مجموعات ألوان معرفة مسبقا"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/bg.js b/src/lib/ckeditor/plugins/uicolor/lang/bg.js new file mode 100644 index 00000000..6c58885a --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","bg",{title:"ПИ избор на цвят",preview:"Преглед",config:"Вмъкнете този низ във Вашия config.js fajl",predefined:"Предефинирани цветови палитри"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ca.js b/src/lib/ckeditor/plugins/uicolor/lang/ca.js new file mode 100644 index 00000000..6f97e2a7 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ca",{title:"UI Color Picker",preview:"Vista prèvia",config:"Enganxa aquest text dins el fitxer config.js",predefined:"Conjunts de colors predefinits"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/cs.js b/src/lib/ckeditor/plugins/uicolor/lang/cs.js new file mode 100644 index 00000000..ef0e2e0b --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cs",{title:"Výběr barvy rozhraní",preview:"Živý náhled",config:"Vložte tento řetězec do vašeho souboru config.js",predefined:"Přednastavené sady barev"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/cy.js b/src/lib/ckeditor/plugins/uicolor/lang/cy.js new file mode 100644 index 00000000..45634661 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cy",{title:"Dewisydd Lliwiau'r UI",preview:"Rhagolwg Byw",config:"Gludwch y llinyn hwn i'ch ffeil config.js",predefined:"Setiau lliw wedi'u cyn-ddiffinio"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/da.js b/src/lib/ckeditor/plugins/uicolor/lang/da.js new file mode 100644 index 00000000..d05bbe87 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","da",{title:"Brugerflade på farvevælger",preview:"Vis liveeksempel",config:"Indsæt denne streng i din config.js fil",predefined:"Prædefinerede farveskemaer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/de.js b/src/lib/ckeditor/plugins/uicolor/lang/de.js new file mode 100644 index 00000000..dfb3f1a4 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","de",{title:"UI Pipette",preview:"Live-Vorschau",config:"Fügen Sie diese Zeichenfolge in die 'config.js' Datei.",predefined:"Vordefinierte Farbsätze"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/el.js b/src/lib/ckeditor/plugins/uicolor/lang/el.js new file mode 100644 index 00000000..3cb51681 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","el",{title:"Διεπαφή Επιλογής Χρωμάτων",preview:"Ζωντανή Προεπισκόπηση",config:"Επικολλήστε αυτό το κείμενο στο αρχείο config.js",predefined:"Προκαθορισμένα σύνολα χρωμάτων"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/en-gb.js b/src/lib/ckeditor/plugins/uicolor/lang/en-gb.js new file mode 100644 index 00000000..ce29dcdd --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en-gb",{title:"UI Colour Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined colour sets"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/en.js b/src/lib/ckeditor/plugins/uicolor/lang/en.js new file mode 100644 index 00000000..b43a201d --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en",{title:"UI Color Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined color sets"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/eo.js b/src/lib/ckeditor/plugins/uicolor/lang/eo.js new file mode 100644 index 00000000..2498f670 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eo",{title:"UI Kolorselektilo",preview:"Vidigi la aspekton",config:"Gluu tiun signoĉenon en vian dosieron config.js",predefined:"Antaŭdifinita koloraro"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/es.js b/src/lib/ckeditor/plugins/uicolor/lang/es.js new file mode 100644 index 00000000..ef68b1d4 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","es",{title:"Recolector de Color de Interfaz de Usuario",preview:"Vista previa en vivo",config:"Pega esta cadena en tu archivo config.js",predefined:"Conjuntos predefinidos de colores"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/et.js b/src/lib/ckeditor/plugins/uicolor/lang/et.js new file mode 100644 index 00000000..7ebe8364 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","et",{title:"Värvivalija kasutajaliides",preview:"Automaatne eelvaade",config:"Aseta see sõne oma config.js faili.",predefined:"Eelmääratud värvikomplektid"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/eu.js b/src/lib/ckeditor/plugins/uicolor/lang/eu.js new file mode 100644 index 00000000..52e479f3 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eu",{title:"EI Kolore Hautatzailea",preview:"Zuzeneko aurreikuspena",config:"Itsatsi karaktere kate hau zure config.js fitxategian.",predefined:"Aurredefinitutako kolore multzoak"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/fa.js b/src/lib/ckeditor/plugins/uicolor/lang/fa.js new file mode 100644 index 00000000..7d62b4cc --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fa",{title:"انتخاب رنگ رابط کاربری",preview:"پیش‌نمایش زنده",config:"این رشته را در پروندهٔ config.js خود رونوشت کنید.",predefined:"مجموعه رنگ از پیش تعریف شده"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/fi.js b/src/lib/ckeditor/plugins/uicolor/lang/fi.js new file mode 100644 index 00000000..724ff5ad --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fi",{title:"Käyttöliittymän väripaletti",preview:"Esikatsele heti",config:"Liitä tämä merkkijono config.js tiedostoosi",predefined:"Esimääritellyt värijoukot"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/fr-ca.js b/src/lib/ckeditor/plugins/uicolor/lang/fr-ca.js new file mode 100644 index 00000000..75791374 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr-ca",{title:"Sélecteur de couleur",preview:"Aperçu",config:"Insérez cette ligne dans votre fichier config.js",predefined:"Ensemble de couleur prédéfinies"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/fr.js b/src/lib/ckeditor/plugins/uicolor/lang/fr.js new file mode 100644 index 00000000..457a953d --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr",{title:"UI Sélecteur de couleur",preview:"Aperçu",config:"Collez cette chaîne de caractères dans votre fichier config.js",predefined:"Palettes de couleurs prédéfinies"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/gl.js b/src/lib/ckeditor/plugins/uicolor/lang/gl.js new file mode 100644 index 00000000..6151989e --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","gl",{title:"Recolledor de cor da interface de usuario",preview:"Vista previa en vivo",config:"Pegue esta cadea no seu ficheiro config.js",predefined:"Conxuntos predefinidos de cores"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/he.js b/src/lib/ckeditor/plugins/uicolor/lang/he.js new file mode 100644 index 00000000..e210e039 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","he",{title:"בחירת צבע ממשק משתמש",preview:"תצוגה מקדימה",config:"הדבק את הטקסט הבא לתוך הקובץ config.js",predefined:"קבוצות צבעים מוגדרות מראש"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/hr.js b/src/lib/ckeditor/plugins/uicolor/lang/hr.js new file mode 100644 index 00000000..1495ab04 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hr",{title:"UI odabir boja",preview:"Pregled uživo",config:"Zalijepite ovaj tekst u Vašu config.js datoteku.",predefined:"Već postavljeni setovi boja"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/hu.js b/src/lib/ckeditor/plugins/uicolor/lang/hu.js new file mode 100644 index 00000000..2c4a5e55 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hu",{title:"UI Színválasztó",preview:"Élő előnézet",config:"Illessze be ezt a szöveget a config.js fájlba",predefined:"Előre definiált színbeállítások"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/id.js b/src/lib/ckeditor/plugins/uicolor/lang/id.js new file mode 100644 index 00000000..b2af0502 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","id",{title:"Pengambil Warna UI",preview:"Pratinjau",config:"Tempel string ini ke arsip config.js anda.",predefined:"Set warna belum terdefinisi."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/it.js b/src/lib/ckeditor/plugins/uicolor/lang/it.js new file mode 100644 index 00000000..3c294a76 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","it",{title:"Selettore Colore UI",preview:"Anteprima Live",config:"Incolla questa stringa nel tuo file config.js",predefined:"Set di colori predefiniti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ja.js b/src/lib/ckeditor/plugins/uicolor/lang/ja.js new file mode 100644 index 00000000..55b1f9c2 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ja",{title:"UIカラーピッカー",preview:"ライブプレビュー",config:"この文字列を config.js ファイルへ貼り付け",predefined:"既定カラーセット"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/km.js b/src/lib/ckeditor/plugins/uicolor/lang/km.js new file mode 100644 index 00000000..c38c5be9 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","km",{title:"ប្រដាប់​រើស​ពណ៌",preview:"មើល​ជាមុន​ផ្ទាល់",config:"បិទ​ភ្ជាប់​ខ្សែ​អក្សរ​នេះ​ទៅ​ក្នុង​ឯកសារ config.js របស់​អ្នក",predefined:"ឈុត​ពណ៌​កំណត់​រួច​ស្រេច"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ko.js b/src/lib/ckeditor/plugins/uicolor/lang/ko.js new file mode 100644 index 00000000..af9199f4 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ko",{title:"UI 색상 선택기",preview:"미리보기",config:"이 문자열을 config.js 에 붙여넣으세요",predefined:"미리 정의된 색깔들"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ku.js b/src/lib/ckeditor/plugins/uicolor/lang/ku.js new file mode 100644 index 00000000..11b7fd1c --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ku",{title:"هەڵگری ڕەنگ بۆ ڕووکاری بەکارهێنەر",preview:"پێشبینین بە زیندوویی",config:"ئەم دەقانە بلکێنە بە پەڕگەی config.js-fil",predefined:"کۆمەڵە ڕەنگە دیاریکراوەکانی پێشوو"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/lv.js b/src/lib/ckeditor/plugins/uicolor/lang/lv.js new file mode 100644 index 00000000..5655b659 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","lv",{title:"UI krāsas izvēle",preview:"Priekšskatījums",config:"Ielīmējiet šo rindu jūsu config.js failā",predefined:"Predefinēti krāsu komplekti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/mk.js b/src/lib/ckeditor/plugins/uicolor/lang/mk.js new file mode 100644 index 00000000..b219d766 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/mk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","mk",{title:"Палета со бои",preview:"Преглед",config:"Залепи го овој текст во config.js датотеката",predefined:"Предефинирани множества на бои"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/nb.js b/src/lib/ckeditor/plugins/uicolor/lang/nb.js new file mode 100644 index 00000000..84ae603b --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nb",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/nl.js b/src/lib/ckeditor/plugins/uicolor/lang/nl.js new file mode 100644 index 00000000..8a62e469 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nl",{title:"UI Kleurenkiezer",preview:"Live voorbeeld",config:"Plak deze tekst in jouw config.js bestand",predefined:"Voorgedefinieerde kleurensets"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/no.js b/src/lib/ckeditor/plugins/uicolor/lang/no.js new file mode 100644 index 00000000..b51a6994 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","no",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/pl.js b/src/lib/ckeditor/plugins/uicolor/lang/pl.js new file mode 100644 index 00000000..38b0c2aa --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pl",{title:"Wybór koloru interfejsu",preview:"Podgląd na żywo",config:"Wklej poniższy łańcuch znaków do pliku config.js:",predefined:"Predefiniowane zestawy kolorów"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/pt-br.js b/src/lib/ckeditor/plugins/uicolor/lang/pt-br.js new file mode 100644 index 00000000..be6aa759 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt-br",{title:"Paleta de Cores",preview:"Visualização ao vivo",config:"Cole o texto no seu arquivo config.js",predefined:"Conjuntos de cores predefinidos"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/pt.js b/src/lib/ckeditor/plugins/uicolor/lang/pt.js new file mode 100644 index 00000000..f96f758b --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt",{title:"Seleção da Cor da IU",preview:"Pré-visualização Live ",config:"Colar este item no seu ficheiro config.js",predefined:"Conjuntos de cor predefinidos"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ru.js b/src/lib/ckeditor/plugins/uicolor/lang/ru.js new file mode 100644 index 00000000..133e6dd4 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ru",{title:"Выбор цвета интерфейса",preview:"Предпросмотр в реальном времени",config:"Вставьте эту строку в файл config.js",predefined:"Предопределенные цветовые схемы"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/si.js b/src/lib/ckeditor/plugins/uicolor/lang/si.js new file mode 100644 index 00000000..2c9755a1 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","si",{title:"වර්ණ ",preview:"සජීව නැවත නරභීම",config:"මෙම අක්ෂර පේලිය ගෙන config.js ලිපිගොනුව මතින් තබන්න",predefined:"කලින් වෙන්කරගත් පරිදි ඇති වර්ණ"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/sk.js b/src/lib/ckeditor/plugins/uicolor/lang/sk.js new file mode 100644 index 00000000..2456d281 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sk",{title:"UI výber farby",preview:"Živý náhľad",config:"Vložte tento reťazec do vášho config.js súboru",predefined:"Preddefinované sady farieb"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/sl.js b/src/lib/ckeditor/plugins/uicolor/lang/sl.js new file mode 100644 index 00000000..62dda984 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sl",{title:"UI Izbiralec Barve",preview:"Živi predogled",config:"Prilepite ta niz v vašo config.js datoteko",predefined:"Vnaprej določeni barvni kompleti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/sq.js b/src/lib/ckeditor/plugins/uicolor/lang/sq.js new file mode 100644 index 00000000..56ebe486 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sq",{title:"UI Mbledhës i Ngjyrave",preview:"Parapamje direkte",config:"Hidhni këtë varg në skedën tuaj config.js",predefined:"Setet e paradefinuara të ngjyrave"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/sv.js b/src/lib/ckeditor/plugins/uicolor/lang/sv.js new file mode 100644 index 00000000..9b3e7231 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sv",{title:"UI Färgväljare",preview:"Live förhandsgranskning",config:"Klistra in den här strängen i din config.js-fil",predefined:"Fördefinierade färguppsättningar"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/tr.js b/src/lib/ckeditor/plugins/uicolor/lang/tr.js new file mode 100644 index 00000000..ec553d0d --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tr",{title:"UI Renk Seçici",preview:"Canlı ön izleme",config:"Bu yazıyı config.js dosyasının içine yapıştırın",predefined:"Önceden tanımlı renk seti"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/tt.js b/src/lib/ckeditor/plugins/uicolor/lang/tt.js new file mode 100644 index 00000000..66990c45 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tt",{title:"Интерфейс төсләрен сайлау",preview:"Тере карап алу",config:"Бу юлны config.js файлына языгыз",predefined:"Баштан билгеләнгән төсләр җыелмасы"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/ug.js b/src/lib/ckeditor/plugins/uicolor/lang/ug.js new file mode 100644 index 00000000..4cadfee2 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ug",{title:"ئىشلەتكۈچى ئارايۈزى رەڭ تاللىغۇچ",preview:"شۇئان ئالدىن كۆزىتىش",config:"بۇ ھەرپ تىزىقىنى config.js ھۆججەتكە چاپلايدۇ",predefined:"ئالدىن بەلگىلەنگەن رەڭلەر"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/uk.js b/src/lib/ckeditor/plugins/uicolor/lang/uk.js new file mode 100644 index 00000000..acd28a19 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","uk",{title:"Color Picker Інтерфейс",preview:"Перегляд наживо",config:"Вставте цей рядок у файл config.js",predefined:"Стандартний набір кольорів"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/vi.js b/src/lib/ckeditor/plugins/uicolor/lang/vi.js new file mode 100644 index 00000000..bd02f062 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","vi",{title:"Giao diện người dùng Color Picker",preview:"Xem trước trực tiếp",config:"Dán chuỗi này vào tập tin config.js của bạn",predefined:"Tập màu định nghĩa sẵn"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/zh-cn.js b/src/lib/ckeditor/plugins/uicolor/lang/zh-cn.js new file mode 100644 index 00000000..552dc689 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh-cn",{title:"用户界面颜色选择器",preview:"即时预览",config:"粘贴此字符串到您的 config.js 文件",predefined:"预定义颜色集"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/lang/zh.js b/src/lib/ckeditor/plugins/uicolor/lang/zh.js new file mode 100644 index 00000000..cff7a9a9 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh",{title:"UI 色彩選擇器",preview:"即時預覽",config:"請將此段字串複製到您的 config.js 檔案中。",predefined:"設定預先定義的色彩"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/plugin.js b/src/lib/ckeditor/plugins/uicolor/plugin.js new file mode 100644 index 00000000..fc402d0a --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("uicolor",{requires:"dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,mk,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",icons:"uicolor",hidpi:!0,init:function(a){CKEDITOR.env.ie6Compat||(a.addCommand("uicolor",new CKEDITOR.dialogCommand("uicolor")),a.ui.addButton&&a.ui.addButton("UIColor",{label:a.lang.uicolor.title,command:"uicolor",toolbar:"tools,1"}),CKEDITOR.dialog.add("uicolor",this.path+"dialogs/uicolor.js"), +CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("plugins/uicolor/yui/yui.js")),CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl("plugins/uicolor/yui/assets/yui.css")))}}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png b/src/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png new file mode 100644 index 00000000..d9bcdeb5 Binary files /dev/null and b/src/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png differ diff --git a/src/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png b/src/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png new file mode 100644 index 00000000..14d5db48 Binary files /dev/null and b/src/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png differ diff --git a/src/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png b/src/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png new file mode 100644 index 00000000..f8d91932 Binary files /dev/null and b/src/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png differ diff --git a/src/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png b/src/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png new file mode 100644 index 00000000..78445a2f Binary files /dev/null and b/src/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png differ diff --git a/src/lib/ckeditor/plugins/uicolor/yui/assets/yui.css b/src/lib/ckeditor/plugins/uicolor/yui/assets/yui.css new file mode 100644 index 00000000..2e10cb69 --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/yui/assets/yui.css @@ -0,0 +1,7 @@ +/* +Copyright (c) 2009, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.7.0 +*/ +.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;} diff --git a/src/lib/ckeditor/plugins/uicolor/yui/yui.js b/src/lib/ckeditor/plugins/uicolor/yui/yui.js new file mode 100644 index 00000000..cb187ddc --- /dev/null +++ b/src/lib/ckeditor/plugins/uicolor/yui/yui.js @@ -0,0 +1,225 @@ +if("undefined"==typeof YAHOO||!YAHOO)var YAHOO={};YAHOO.namespace=function(){var c=arguments,e=null,b,d,a;for(b=0;b "),c.isObject(a[d])?i.push(0h)break;i=a.indexOf("}",h);if(h+1>=i)break;k=n=a.substring(h+1,i);l=null;j=k.indexOf(" ");-1b.ie&&(j=g=2,h=e.compatMode,m=o(e.documentElement,"borderLeftWidth"),e=o(e.documentElement,"borderTopWidth"),6===b.ie&&"BackCompat"!==h&&(j=g=0),"BackCompat"==h&&("medium"!==m&& +(g=parseInt(m,10)),"medium"!==e&&(j=parseInt(e,10))),f[0]-=g,f[1]-=j);if(d||a)f[0]+=a,f[1]+=d;f[0]=k(f[0]);f[1]=k(f[1])}return f}:function(a){var d,f,e,g=!1,j=a;if(c.Dom._canPosition(a)){g=[a.offsetLeft,a.offsetTop];d=c.Dom.getDocumentScrollLeft(a.ownerDocument);f=c.Dom.getDocumentScrollTop(a.ownerDocument);for(e=m||519=this.left&&c.right<=this.right&&c.top>=this.top&&c.bottom<=this.bottom};YAHOO.util.Region.prototype.getArea=function(){return(this.bottom-this.top)*(this.right-this.left)};YAHOO.util.Region.prototype.intersect=function(c){var e=Math.max(this.top,c.top),b=Math.min(this.right,c.right),d=Math.min(this.bottom,c.bottom),c=Math.max(this.left,c.left);return d>=e&&b>=c?new YAHOO.util.Region(e,b,d,c):null}; +YAHOO.util.Region.prototype.union=function(c){var e=Math.min(this.top,c.top),b=Math.max(this.right,c.right),d=Math.max(this.bottom,c.bottom),c=Math.min(this.left,c.left);return new YAHOO.util.Region(e,b,d,c)};YAHOO.util.Region.prototype.toString=function(){return"Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}"}; +YAHOO.util.Region.getRegion=function(c){var e=YAHOO.util.Dom.getXY(c);return new YAHOO.util.Region(e[1],e[0]+c.offsetWidth,e[1]+c.offsetHeight,e[0])};YAHOO.util.Point=function(c,e){YAHOO.lang.isArray(c)&&(e=c[1],c=c[0]);YAHOO.util.Point.superclass.constructor.call(this,e,c,e,c)};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region); +(function(){var c=YAHOO.util,e=/^width|height$/,b=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,d={get:function(a,d){var e="",e=a.currentStyle[d];return e="opacity"===d?c.Dom.getStyle(a,"opacity"):!e||e.indexOf&&-1d&&(c=d-(a[j]-d)),a.style[b]="auto")):(!a.style[k]&&!a.style[b]&&(a.style[b]=d),c=a.style[k]);return c+"px"},getBorderWidth:function(a,b){var d=null;a.currentStyle.hasLayout||(a.style.zoom=1);switch(b){case "borderTopWidth":d=a.clientTop;break;case "borderBottomWidth":d=a.offsetHeight-a.clientHeight-a.clientTop;break;case "borderLeftWidth":d=a.clientLeft;break;case "borderRightWidth":d=a.offsetWidth-a.clientWidth-a.clientLeft}return d+"px"},getPixel:function(a, +b){var d=null,c=a.currentStyle.right;a.style.right=a.currentStyle[b];d=a.style.pixelRight;a.style.right=c;return d+"px"},getMargin:function(a,b){return"auto"==a.currentStyle[b]?"0px":c.Dom.IE.ComputedStyle.getPixel(a,b)},getVisibility:function(a,b){for(var d;(d=a.currentStyle)&&"inherit"==d[b];)a=a.parentNode;return d?d[b]:"visible"},getColor:function(a,b){return c.Dom.Color.toRGB(a.currentStyle[b])||"transparent"},getBorderColor:function(a,b){var d=a.currentStyle;return c.Dom.Color.toRGB(c.Dom.Color.toHex(d[b]|| +d.color))}},a={};a.top=a.right=a.bottom=a.left=a.width=a.height=d.getOffset;a.color=d.getColor;a.borderTopWidth=a.borderRightWidth=a.borderBottomWidth=a.borderLeftWidth=d.getBorderWidth;a.marginTop=a.marginRight=a.marginBottom=a.marginLeft=d.getMargin;a.visibility=d.getVisibility;a.borderColor=a.borderTopColor=a.borderRightColor=a.borderBottomColor=a.borderLeftColor=d.getBorderColor;c.Dom.IE_COMPUTED=a;c.Dom.IE_ComputedStyle=d})(); +(function(){var c=parseInt,e=RegExp,b=YAHOO.util;b.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(d){b.Dom.Color.re_RGB.test(d)||(d=b.Dom.Color.toHex(d));b.Dom.Color.re_hex.exec(d)&& +(d="rgb("+[c(e.$1,16),c(e.$2,16),c(e.$3,16)].join(", ")+")");return d},toHex:function(d){d=b.Dom.Color.KEYWORDS[d]||d;if(b.Dom.Color.re_RGB.exec(d))var d=1===e.$2.length?"0"+e.$2:Number(e.$2),a=1===e.$3.length?"0"+e.$3:Number(e.$3),d=[(1===e.$1.length?"0"+e.$1:Number(e.$1)).toString(16),d.toString(16),a.toString(16)].join("");6>d.length&&(d=d.replace(b.Dom.Color.re_hex3,"$1$1"));"transparent"!==d&&0>d.indexOf("#")&&(d="#"+d);return d.toLowerCase()}}})(); +YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(c,e,b,d){this.type=c;this.scope=e||window;this.silent=b;this.signature=d||YAHOO.util.CustomEvent.LIST;this.subscribers=[];"_YUICEOnSubscribe"!==c&&(this.subscribeEvent=new YAHOO.util.CustomEvent("_YUICEOnSubscribe",this,!0));this.lastError=null};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1; +YAHOO.util.CustomEvent.prototype={subscribe:function(c,e,b){if(!c)throw Error("Invalid callback for subscriber to '"+this.type+"'");this.subscribeEvent&&this.subscribeEvent.fire(c,e,b);this.subscribers.push(new YAHOO.util.Subscriber(c,e,b))},unsubscribe:function(c,e){if(!c)return this.unsubscribeAll();for(var b=!1,d=0,a=this.subscribers.length;dthis.webkit&& +("click"==b||"dblclick"==b)},removeListener:function(d,c,f,g){var j,h,k;if("string"==typeof d)d=this.getEl(d);else if(this._isValidCollection(d)){g=!0;for(j=d.length-1;-1c.webkit?c._dri=setInterval(function(){var b=document.readyState;if("loaded"==b||"complete"==b)clearInterval(c._dri),c._dri=null,c._ready()},c.POLL_INTERVAL):c._simpleAdd(document,"DOMContentLoaded",c._ready);c._simpleAdd(window,"load",c._load);c._simpleAdd(window,"unload",c._unload);c._tryPreloadAttach()}());YAHOO.util.EventProvider=function(){}; +YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(c,e,b,d){this.__yui_events=this.__yui_events||{};var a=this.__yui_events[c];if(a)a.subscribe(e,b,d);else{a=this.__yui_subscribers=this.__yui_subscribers||{};a[c]||(a[c]=[]);a[c].push({fn:e,obj:b,overrideContext:d})}},unsubscribe:function(c,e,b){var d=this.__yui_events=this.__yui_events||{};if(c){if(d=d[c])return d.unsubscribe(e,b)}else{var c=true,a;for(a in d)YAHOO.lang.hasOwnProperty(d,a)&&(c=c&&d[a].unsubscribe(e, +b));return c}return false},unsubscribeAll:function(c){return this.unsubscribe(c)},createEvent:function(c,e){this.__yui_events=this.__yui_events||{};var b=e||{},d=this.__yui_events;if(!d[c]){var a=new YAHOO.util.CustomEvent(c,b.scope||this,b.silent,YAHOO.util.CustomEvent.FLAT);d[c]=a;b.onSubscribeCallback&&a.subscribeEvent.subscribe(b.onSubscribeCallback);this.__yui_subscribers=this.__yui_subscribers||{};if(b=this.__yui_subscribers[c])for(var f=0;fthis.clickPixelThresh||c>this.clickPixelThresh)&&this.startDrag(this.startX,this.startY)}if(this.dragThreshMet){if(d&& +d.events.b4Drag){d.b4Drag(b);d.fireEvent("b4DragEvent",{e:b})}if(d&&d.events.drag){d.onDrag(b);d.fireEvent("dragEvent",{e:b})}d&&this.fireEvents(b,false)}this.stopEvent(b)}},fireEvents:function(b,d){var a=this.dragCurrent;if(a&&!a.isLocked()&&!a.dragOnly){var c=YAHOO.util.Event.getPageX(b),e=YAHOO.util.Event.getPageY(b),h=new YAHOO.util.Point(c,e),e=a.getTargetCoord(h.x,h.y),i=a.getDragEl(),c=["out","over","drop","enter"],j=new YAHOO.util.Region(e.y,e.x+i.offsetWidth,e.y+i.offsetHeight,e.x),k=[], +l={},e=[],i={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]},m;for(m in this.dragOvers){var n=this.dragOvers[m];if(this.isTypeOfDD(n)){this.isOverTarget(h,n,this.mode,j)||i.outEvts.push(n);k[m]=true;delete this.dragOvers[m]}}for(var o in a.groups)if("string"==typeof o)for(m in this.ids[o]){n=this.ids[o][m];if(this.isTypeOfDD(n)&&n.isTarget&&(!n.isLocked()&&n!=a)&&this.isOverTarget(h,n,this.mode,j)){l[o]=true;if(d)i.dropEvts.push(n);else{k[n.id]?i.overEvts.push(n):i.enterEvts.push(n);this.dragOvers[n.id]= +n}}}this.interactionInfo={out:i.outEvts,enter:i.enterEvts,over:i.overEvts,drop:i.dropEvts,point:h,draggedRegion:j,sourceRegion:this.locationCache[a.id],validDrop:d};for(var r in l)e.push(r);if(d&&!i.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(b);a.fireEvent("invalidDropEvent",{e:b})}}for(m=0;m2E3)){setTimeout(b._addListeners,10);if(document&&document.body)b._timeoutCount=b._timeoutCount+1}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id))return true;for(var a=b.parentNode;a;){if(this.isHandle(d,a.id))return true;a=a.parentNode}return false}}}(), +YAHOO.util.DDM=YAHOO.util.DragDropMgr,YAHOO.util.DDM._addListeners()); +(function(){var c=YAHOO.util.Event,e=YAHOO.util.Dom;YAHOO.util.DragDrop=function(b,d,a){b&&this.init(b,d,a)};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments)},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},unlock:function(){this.locked=false},isTarget:true,padding:null,dragOnly:false,useShim:false, +_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(){},startDrag:function(){},b4Drag:function(){},onDrag:function(){},onDragEnter:function(){},b4DragOver:function(){},onDragOver:function(){},b4DragOut:function(){},onDragOut:function(){},b4DragDrop:function(){},onDragDrop:function(){}, +onInvalidDrop:function(){},b4EndDrag:function(){},endDrag:function(){},b4MouseDown:function(){},onMouseDown:function(){},onMouseUp:function(){},onAvailable:function(){},getEl:function(){if(!this._domRef)this._domRef=e.get(this.id);return this._domRef},getDragEl:function(){return e.get(this.dragElId)},init:function(b,d,a){this.initTarget(b,d,a);c.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var e in this.events)this.createEvent(e+"Event")},initTarget:function(b,d,a){this.config= +a||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof b!=="string"){this._domRef=b;b=e.generateId(b)}this.id=b;this.addToGroup(d?d:"default");this.handleElId=b;c.onAvailable(b,this.handleOnAvailable,this,true);this.setDragElId(b);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig()},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true, +b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events)for(var b in this.config.events)this.config.events[b]===false&&(this.events[b]=false);this.padding=this.config.padding||[0,0,0,0];this.isTarget=this.config.isTarget!==false;this.maintainOffset=this.config.maintainOffset;this.primaryButtonOnly=this.config.primaryButtonOnly!==false;this.dragOnly=this.config.dragOnly===true?true:false;this.useShim= +this.config.useShim===true?true:false},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(b,d,a,c){this.padding=!d&&0!==d?[b,b,b,b]:!a&&0!==a?[b,d,b,d]:[b,d,a,c]},setInitPosition:function(b,d){var a=this.getEl();if(this.DDM.verifyEl(a)){var c=b||0,g=d||0,a=e.getXY(a);this.initPageX=a[0]-c;this.initPageY=a[1]-g;this.lastPageX=a[0];this.lastPageY=a[1];this.setStartPosition(a)}},setStartPosition:function(b){b=b||e.getXY(this.getEl());this.deltaSetXY= +null;this.startPageX=b[0];this.startPageY=b[1]},addToGroup:function(b){this.groups[b]=true;this.DDM.regDragDrop(this,b)},removeFromGroup:function(b){this.groups[b]&&delete this.groups[b];this.DDM.removeDDFromGroup(this,b)},setDragElId:function(b){this.dragElId=b},setHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.handleElId=b;this.DDM.regHandle(this.id,b)},setOuterHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));c.on(b,"mousedown",this.handleMouseDown,this,true); +this.setHandleElId(b);this.hasOuterHandles=true},unreg:function(){c.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(b){var d=b.which||b.button;if(!(this.primaryButtonOnly&&d>1)&&!this.isLocked()){var d=this.b4MouseDown(b),a=true;this.events.b4MouseDown&&(a=this.fireEvent("b4MouseDownEvent",b));var e=this.onMouseDown(b),g=true;this.events.mouseDown&&(g=this.fireEvent("mouseDownEvent", +b));if(!(d===false||e===false||a===false||g===false)){this.DDM.refreshCache(this.groups);d=new YAHOO.util.Point(c.getPageX(b),c.getPageY(b));if((this.hasOuterHandles||this.DDM.isOverTarget(d,this))&&this.clickValidator(b)){this.setStartPosition();this.DDM.handleMouseDown(b,this);this.DDM.stopEvent(b)}}}},clickValidator:function(b){b=YAHOO.util.Event.getTarget(b);return this.isValidHandleChild(b)&&(this.id==this.handleElId||this.DDM.handleWasClicked(b,this.id))},getTargetCoord:function(b,d){var a= +b-this.deltaX,c=d-this.deltaY;if(this.constrainX){if(athis.maxX)a=this.maxX}if(this.constrainY){if(cthis.maxY)c=this.maxY}a=this.getTick(a,this.xTicks);c=this.getTick(c,this.yTicks);return{x:a,y:c}},addInvalidHandleType:function(b){b=b.toUpperCase();this.invalidHandleTypes[b]=b},addInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.invalidHandleIds[b]=b},addInvalidHandleClass:function(b){this.invalidHandleClasses.push(b)}, +removeInvalidHandleType:function(b){delete this.invalidHandleTypes[b.toUpperCase()]},removeInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));delete this.invalidHandleIds[b]},removeInvalidHandleClass:function(b){for(var d=0,a=this.invalidHandleClasses.length;d=this.minX;c=c-d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}for(c=this.initPageX;c<=this.maxX;c=c+d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(b,d){this.yTicks=[];this.yTickSize=d;for(var a={},c=this.initPageY;c>=this.minY;c= +c-d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}for(c=this.initPageY;c<=this.maxY;c=c+d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(b,d,a){this.leftConstraint=parseInt(b,10);this.rightConstraint=parseInt(d,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;a&&this.setXTicks(this.initPageX,a);this.constrainX=true},clearConstraints:function(){this.constrainY=this.constrainX= +false;this.clearTicks()},clearTicks:function(){this.yTicks=this.xTicks=null;this.yTickSize=this.xTickSize=0},setYConstraint:function(b,d,a){this.topConstraint=parseInt(b,10);this.bottomConstraint=parseInt(d,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;a&&this.setYTicks(this.initPageY,a);this.constrainY=true},resetConstraints:function(){this.initPageX||this.initPageX===0?this.setInitPosition(this.maintainOffset?this.lastPageX-this.initPageX:0,this.maintainOffset? +this.lastPageY-this.initPageY:0):this.setInitPosition();this.constrainX&&this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);this.constrainY&&this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)},getTick:function(b,d){if(d){if(d[0]>=b)return d[0];for(var a=0,c=d.length;a=b)return d[e]-b>b-d[a]?d[a]:d[e]}return d[d.length-1]}return b},toString:function(){return"DragDrop "+this.id}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider)})(); +YAHOO.util.DD=function(c,e,b){c&&this.init(c,e,b)}; +YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:!0,autoOffset:function(c,e){this.setDelta(c-this.startPageX,e-this.startPageY)},setDelta:function(c,e){this.deltaX=c;this.deltaY=e},setDragElPos:function(c,e){this.alignElWithMouse(this.getDragEl(),c,e)},alignElWithMouse:function(c,e,b){var d=this.getTargetCoord(e,b);if(this.deltaSetXY){YAHOO.util.Dom.setStyle(c,"left",d.x+this.deltaSetXY[0]+"px");YAHOO.util.Dom.setStyle(c,"top",d.y+this.deltaSetXY[1]+"px")}else{YAHOO.util.Dom.setXY(c,[d.x,d.y]); +e=parseInt(YAHOO.util.Dom.getStyle(c,"left"),10);b=parseInt(YAHOO.util.Dom.getStyle(c,"top"),10);this.deltaSetXY=[e-d.x,b-d.y]}this.cachePosition(d.x,d.y);var a=this;setTimeout(function(){a.autoScroll.call(a,d.x,d.y,c.offsetHeight,c.offsetWidth)},0)},cachePosition:function(c,e){if(c){this.lastPageX=c;this.lastPageY=e}else{var b=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=b[0];this.lastPageY=b[1]}},autoScroll:function(c,e,b,d){if(this.scroll){var a=this.DDM.getClientHeight(),f=this.DDM.getClientWidth(), +g=this.DDM.getScrollTop(),h=this.DDM.getScrollLeft(),d=d+c,i=a+g-e-this.deltaY,j=f+h-c-this.deltaX,k=document.all?80:30;b+e>a&&i<40&&window.scrollTo(h,g+k);e0&&e-g<40)&&window.scrollTo(h,g-k);d>f&&j<40&&window.scrollTo(h+k,g);c0&&c-h<40)&&window.scrollTo(h-k,g)}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=this.config.scroll!==false},b4MouseDown:function(c){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))}, +b4Drag:function(c){this.setDragElPos(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))},toString:function(){return"DD "+this.id}});YAHOO.util.DDProxy=function(c,e,b){if(c){this.init(c,e,b);this.initFrame()}};YAHOO.util.DDProxy.dragElId="ygddfdiv"; +YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:!0,centerFrame:!1,createFrame:function(){var c=this,e=document.body;if(!e||!e.firstChild)setTimeout(function(){c.createFrame()},50);else{var b=this.getDragEl(),d=YAHOO.util.Dom;if(!b){b=document.createElement("div");b.id=this.dragElId;var a=b.style;a.position="absolute";a.visibility="hidden";a.cursor="move";a.border="2px solid #aaa";a.zIndex=999;a.height="25px";a.width="25px";a=document.createElement("div");d.setStyle(a,"height","100%");d.setStyle(a, +"width","100%");d.setStyle(a,"background-color","#ccc");d.setStyle(a,"opacity","0");b.appendChild(a);e.insertBefore(b,e.firstChild)}}},initFrame:function(){this.createFrame()},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=this.config.resizeFrame!==false;this.centerFrame=this.config.centerFrame;this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId)},showFrame:function(c,e){this.getEl();var b=this.getDragEl(),d=b.style;this._resizeProxy(); +this.centerFrame&&this.setDelta(Math.round(parseInt(d.width,10)/2),Math.round(parseInt(d.height,10)/2));this.setDragElPos(c,e);YAHOO.util.Dom.setStyle(b,"visibility","visible")},_resizeProxy:function(){if(this.resizeFrame){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl(),d=parseInt(c.getStyle(b,"borderTopWidth"),10),a=parseInt(c.getStyle(b,"borderRightWidth"),10),f=parseInt(c.getStyle(b,"borderBottomWidth"),10),g=parseInt(c.getStyle(b,"borderLeftWidth"),10);isNaN(d)&&(d=0);isNaN(a)&&(a=0);isNaN(f)&& +(f=0);isNaN(g)&&(g=0);a=Math.max(0,e.offsetWidth-a-g);e=Math.max(0,e.offsetHeight-d-f);c.setStyle(b,"width",a+"px");c.setStyle(b,"height",e+"px")}},b4MouseDown:function(c){this.setStartPosition();var e=YAHOO.util.Event.getPageX(c),c=YAHOO.util.Event.getPageY(c);this.autoOffset(e,c)},b4StartDrag:function(c,e){this.showFrame(c,e)},b4EndDrag:function(){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden")},endDrag:function(){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl();c.setStyle(b, +"visibility","");c.setStyle(e,"visibility","hidden");YAHOO.util.DDM.moveToEl(e,b);c.setStyle(b,"visibility","hidden");c.setStyle(e,"visibility","")},toString:function(){return"DDProxy "+this.id}});YAHOO.util.DDTarget=function(c,e,b){c&&this.initTarget(c,e,b)};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return"DDTarget "+this.id}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.7.0",build:"1796"}); +(function(){function c(a,b,d,e){c.ANIM_AVAIL=!YAHOO.lang.isUndefined(YAHOO.util.Anim);if(a){this.init(a,b,true);this.initSlider(e);this.initThumb(d)}}var e=YAHOO.util.Dom.getXY,b=YAHOO.util.Event,d=Array.prototype.slice;YAHOO.lang.augmentObject(c,{getHorizSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,d,e,0,0,i),"horiz")},getVertSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,0,0,d,e,i),"vert")},getSliderRegion:function(a,b,d,e,i,j,k){return new c(a, +a,new YAHOO.widget.SliderThumb(b,a,d,e,i,j,k),"region")},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(c,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(a){this.type=a;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=c.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration= +0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0]},initThumb:function(a){var b=this;this.thumb=a;a.cacheBetweenDrags=true;if(a._isHoriz&&a.xTicks&&a.xTicks.length)this.tickPause=Math.round(360/a.xTicks.length);else if(a.yTicks&&a.yTicks.length)this.tickPause=Math.round(360/a.yTicks.length);a.onAvailable=function(){return b.setStartSliderState()};a.onMouseDown=function(){b._mouseDown=true;return b.focus()};a.startDrag=function(){b._slideStart()}; +a.onDrag=function(){b.fireEvents(true)};a.onMouseUp=function(){b.thumbMouseUp()}},onAvailable:function(){this._bindKeyEvents()},_bindKeyEvents:function(){b.on(this.id,"keydown",this.handleKeyDown,this,true);b.on(this.id,"keypress",this.handleKeyPress,this,true)},handleKeyPress:function(a){if(this.enableKeys)switch(b.getCharCode(a)){case 37:case 38:case 39:case 40:case 36:case 35:b.preventDefault(a)}},handleKeyDown:function(a){if(this.enableKeys){var d=b.getCharCode(a),e=this.thumb,h=this.getXValue(), +i=this.getYValue(),j=true;switch(d){case 37:h=h-this.keyIncrement;break;case 38:i=i-this.keyIncrement;break;case 39:h=h+this.keyIncrement;break;case 40:i=i+this.keyIncrement;break;case 36:h=e.leftConstraint;i=e.topConstraint;break;case 35:h=e.rightConstraint;i=e.bottomConstraint;break;default:j=false}if(j){e._isRegion?this._setRegionValue(c.SOURCE_KEY_EVENT,h,i,true):this._setValue(c.SOURCE_KEY_EVENT,e._isHoriz?h:i,true);b.stopEvent(a)}}},setStartSliderState:function(){this.setThumbCenterPoint(); +this.baselinePos=e(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion)if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null}else this.setRegionValue(0,0,true,true,true);else if(this.deferredSetValue){this._setValue.apply(this,this.deferredSetValue);this.deferredSetValue=null}else this.setValue(0,true,true,true)},setThumbCenterPoint:function(){var a=this.thumb.getEl(); +if(a)this.thumbCenterPoint={x:parseInt(a.offsetWidth/2,10),y:parseInt(a.offsetHeight/2,10)}},lock:function(){this.thumb.lock();this.locked=true},unlock:function(){this.thumb.unlock();this.locked=false},thumbMouseUp:function(){this._mouseDown=false;!this.isLocked()&&!this.moveComplete&&this.endMove()},onMouseUp:function(){this._mouseDown=false;this.backgroundEnabled&&(!this.isLocked()&&!this.moveComplete)&&this.endMove()},getThumb:function(){return this.thumb},focus:function(){this.valueChangeSource= +c.SOURCE_UI_EVENT;var a=this.getEl();if(a.focus)try{a.focus()}catch(b){}this.verifyOffset();return!this.isLocked()},onChange:function(){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue()},getXValue:function(){return this.thumb.getXValue()},getYValue:function(){return this.thumb.getYValue()},setValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setValue.apply(this,a)},_setValue:function(a,b,d,e,i){var j=this.thumb,k; +if(!j.available){this.deferredSetValue=arguments;return false}if(this.isLocked()&&!e||isNaN(b)||j._isRegion)return false;this._silent=i;this.valueChangeSource=a||c.SOURCE_SET_VALUE;j.lastOffset=[b,b];this.verifyOffset(true);this._slideStart();if(j._isHoriz){k=j.initPageX+b+this.thumbCenterPoint.x;this.moveThumb(k,j.initPageY,d)}else{k=j.initPageY+b+this.thumbCenterPoint.y;this.moveThumb(j.initPageX,k,d)}return true},setRegionValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setRegionValue.apply(this, +a)},_setRegionValue:function(a,b,d,e,i,j){var k=this.thumb;if(!k.available){this.deferredSetRegionValue=arguments;return false}if(this.isLocked()&&!i||isNaN(b)||!k._isRegion)return false;this._silent=j;this.valueChangeSource=a||c.SOURCE_SET_VALUE;k.lastOffset=[b,d];this.verifyOffset(true);this._slideStart();this.moveThumb(k.initPageX+b+this.thumbCenterPoint.x,k.initPageY+d+this.thumbCenterPoint.y,e);return true},verifyOffset:function(){var a=e(this.getEl()),b=this.thumb;(!this.thumbCenterPoint||!this.thumbCenterPoint.x)&& +this.setThumbCenterPoint();if(a&&(a[0]!=this.baselinePos[0]||a[1]!=this.baselinePos[1])){this.setInitPosition();this.baselinePos=a;b.initPageX=this.initPageX+b.startOffset[0];b.initPageY=this.initPageY+b.startOffset[1];b.deltaSetXY=null;this.resetThumbConstraints();return false}return true},moveThumb:function(a,b,d,h){var i=this.thumb,j=this,k,l;if(i.available){i.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);l=i.getTargetCoord(a,b);k=[Math.round(l.x),Math.round(l.y)];if(this.animate&& +i._graduated&&!d){this.lock();this.curCoord=e(this.thumb.getEl());this.curCoord=[Math.round(this.curCoord[0]),Math.round(this.curCoord[1])];setTimeout(function(){j.moveOneTick(k)},this.tickPause)}else if(this.animate&&c.ANIM_AVAIL&&!d){this.lock();a=new YAHOO.util.Motion(i.id,{points:{to:k}},this.animationDuration,YAHOO.util.Easing.easeOut);a.onComplete.subscribe(function(){j.unlock();j._mouseDown||j.endMove()});a.animate()}else{i.setDragElPos(a,b);!h&&!this._mouseDown&&this.endMove()}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart(); +this.fireEvent("slideStart")}this._sliding=true}},_slideEnd:function(){if(this._sliding&&this.moveComplete){var a=this._silent;this.moveComplete=this._silent=this._sliding=false;if(!a){this.onSlideEnd();this.fireEvent("slideEnd")}}},moveOneTick:function(a){var b=this.thumb,d=this,c=null,e;if(b._isRegion){c=this._getNextX(this.curCoord,a);e=c!==null?c[0]:this.curCoord[0];c=this._getNextY(this.curCoord,a);c=c!==null?c[1]:this.curCoord[1];c=e!==this.curCoord[0]||c!==this.curCoord[1]?[e,c]:null}else c= +b._isHoriz?this._getNextX(this.curCoord,a):this._getNextY(this.curCoord,a);if(c){this.curCoord=c;this.thumb.alignElWithMouse(b.getEl(),c[0]+this.thumbCenterPoint.x,c[1]+this.thumbCenterPoint.y);if(c[0]==a[0]&&c[1]==a[1]){this.unlock();this._mouseDown||this.endMove()}else setTimeout(function(){d.moveOneTick(a)},this.tickPause)}else{this.unlock();this._mouseDown||this.endMove()}},_getNextX:function(a,b){var d=this.thumb,c;c=[];c=null;if(a[0]>b[0]){c=d.tickSize-this.thumbCenterPoint.x;c=d.getTargetCoord(a[0]- +c,a[1]);c=[c.x,c.y]}else if(a[0]b[1]){c=d.tickSize-this.thumbCenterPoint.y;c=d.getTargetCoord(a[0],a[1]-c);c=[c.x,c.y]}else if(a[1]1)this._graduated=true;this._isHoriz=c||e;this._isVert=b||d;this._isRegion=this._isHoriz&&this._isVert},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); +this.tickSize=0;this._graduated=false},getValue:function(){return this._isHoriz?this.getXValue():this.getYValue()},getXValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[0])){this.lastOffset=c;return c[0]-this.startOffset[0]}return this.lastOffset[0]-this.startOffset[0]},getYValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[1])){this.lastOffset=c;return c[1]-this.startOffset[1]}return this.lastOffset[1]- +this.startOffset[1]},toString:function(){return"SliderThumb "+this.id},onChange:function(){}}); +(function(){function c(b,a,c,e){var h=this,i=false,j=false,k,l;this.minSlider=b;this.maxSlider=a;this.activeSlider=b;this.isHoriz=b.thumb._isHoriz;k=this.minSlider.thumb.onMouseDown;l=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){h.activeSlider=h.minSlider;k.apply(this,arguments)};this.maxSlider.thumb.onMouseDown=function(){h.activeSlider=h.maxSlider;l.apply(this,arguments)};this.minSlider.thumb.onAvailable=function(){b.setStartSliderState();i=true;j&&h.fireEvent("ready", +h)};this.maxSlider.thumb.onAvailable=function(){a.setStartSliderState();j=true;i&&h.fireEvent("ready",h)};b.onMouseDown=a.onMouseDown=function(a){return this.backgroundEnabled&&h._handleMouseDown(a)};b.onDrag=a.onDrag=function(a){h._handleDrag(a)};b.onMouseUp=a.onMouseUp=function(a){h._handleMouseUp(a)};b._bindKeyEvents=function(){h._bindKeyEvents(this)};a._bindKeyEvents=function(){};b.subscribe("change",this._handleMinChange,b,this);b.subscribe("slideStart",this._handleSlideStart,b,this);b.subscribe("slideEnd", +this._handleSlideEnd,b,this);a.subscribe("change",this._handleMaxChange,a,this);a.subscribe("slideStart",this._handleSlideStart,a,this);a.subscribe("slideEnd",this._handleSlideEnd,a,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);e=YAHOO.lang.isArray(e)?e:[0,c];e[0]=Math.min(Math.max(parseInt(e[0],10)|0,0),c);e[1]=Math.max(Math.min(parseInt(e[1],10)|0,c),0);e[0]>e[1]&&e.splice(0,2,e[1],e[0]);this.minVal=e[0]; +this.maxVal=e[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true)}var e=YAHOO.util.Event,b=YAHOO.widget;c.prototype={minVal:-1,maxVal:-1,minRange:0,_handleSlideStart:function(b,a){this.fireEvent("slideStart",a)},_handleSlideEnd:function(b,a){this.fireEvent("slideEnd",a)},_handleDrag:function(d){b.Slider.prototype.onDrag.call(this.activeSlider,d)},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue()},_handleMaxChange:function(){this.activeSlider= +this.maxSlider;this.updateValue()},_bindKeyEvents:function(b){e.on(b.id,"keydown",this._handleKeyDown,this,true);e.on(b.id,"keypress",this._handleKeyPress,this,true)},_handleKeyDown:function(b){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments)},_handleKeyPress:function(b){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments)},setValues:function(b,a,c,e,h){var i=this.minSlider,j=this.maxSlider,k=i.thumb,l=j.thumb,m=this,n=false,o=false;if(k._isHoriz){k.setXConstraint(k.leftConstraint, +l.rightConstraint,k.tickSize);l.setXConstraint(k.leftConstraint,l.rightConstraint,l.tickSize)}else{k.setYConstraint(k.topConstraint,l.bottomConstraint,k.tickSize);l.setYConstraint(k.topConstraint,l.bottomConstraint,l.tickSize)}this._oneTimeCallback(i,"slideEnd",function(){n=true;if(o){m.updateValue(h);setTimeout(function(){m._cleanEvent(i,"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});this._oneTimeCallback(j,"slideEnd",function(){o=true;if(n){m.updateValue(h);setTimeout(function(){m._cleanEvent(i, +"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});i.setValue(b,c,e,false);j.setValue(a,c,e,false)},setMinValue:function(b,a,c,e){var h=this.minSlider,i=this;this.activeSlider=h;i=this;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")},0)});h.setValue(b,a,c)},setMaxValue:function(b,a,c,e){var h=this.maxSlider,i=this;this.activeSlider=h;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")}, +0)});h.setValue(b,a,c)},updateValue:function(b){var a=this.minSlider.getValue(),c=this.maxSlider.getValue(),e=false,h,i,j,k;if(a!=this.minVal||c!=this.maxVal){e=true;h=this.minSlider.thumb;i=this.maxSlider.thumb;j=this.isHoriz?"x":"y";k=this.minSlider.thumbCenterPoint[j]+this.maxSlider.thumbCenterPoint[j];j=Math.max(c-k-this.minRange,0);k=Math.min(-a-k-this.minRange,0);if(this.isHoriz){j=Math.min(j,i.rightConstraint);h.setXConstraint(h.leftConstraint,j,h.tickSize);i.setXConstraint(k,i.rightConstraint, +i.tickSize)}else{j=Math.min(j,i.bottomConstraint);h.setYConstraint(h.leftConstraint,j,h.tickSize);i.setYConstraint(k,i.bottomConstraint,i.tickSize)}}this.minVal=a;this.maxVal=c;e&&!b&&this.fireEvent("change",this)},selectActiveSlider:function(b){var a=this.minSlider,c=this.maxSlider,e=a.isLocked()||!a.backgroundEnabled,h=c.isLocked()||!a.backgroundEnabled,i=YAHOO.util.Event;if(e||h)this.activeSlider=e?c:a;else{b=this.isHoriz?i.getPageX(b)-a.thumb.initPageX-a.thumbCenterPoint.x:i.getPageY(b)-a.thumb.initPageY- +a.thumbCenterPoint.y;this.activeSlider=b*2>c.getValue()+a.getValue()?c:a}},_handleMouseDown:function(d){if(d._handled)return false;d._handled=true;this.selectActiveSlider(d);return b.Slider.prototype.onMouseDown.call(this.activeSlider,d)},_handleMouseUp:function(d){b.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments)},_oneTimeCallback:function(b,a,c){b.subscribe(a,function(){b.unsubscribe(a,arguments.callee);c.apply({},[].slice.apply(arguments))})},_cleanEvent:function(b,a){var c,e,h,i, +j,k;if(b.__yui_events&&b.events[a]){for(e=b.__yui_events.length;e>=0;--e)if(b.__yui_events[e].type===a){c=b.__yui_events[e];break}if(c){j=c.subscribers;k=[];e=i=0;for(h=j.length;e255||b<0?0:b).toString(16)).slice(-2).toUpperCase()}, +hex2dec:function(b){return parseInt(b,16)},hex2rgb:function(b){var c=this.hex2dec;return[c(b.slice(0,2)),c(b.slice(2,4)),c(b.slice(4,6))]},websafe:function(b,d,a){if(c(b))return this.websafe.apply(this,b);var f=function(a){if(e(a)){var a=Math.min(Math.max(0,a),255),b,c;for(b=0;b<256;b=b+51){c=b+51;if(a>=b&&a<=c)return a-b>25?c:b}}return a};return[f(b),f(d),f(a)]}}}(); +(function(){function c(a,b){e=e+1;b=b||{};if(arguments.length===1&&!YAHOO.lang.isString(a)&&!a.nodeName){b=a;a=b.element||null}!a&&!b.element&&(a=this._createHostElement(b));c.superclass.constructor.call(this,a,b);this.initPicker()}var e=0,b=YAHOO.util,d=YAHOO.lang,a=YAHOO.widget.Slider,f=b.Color,g=b.Dom,h=b.Event,i=d.substitute;YAHOO.extend(c,YAHOO.util.Element,{ID:{R:"yui-picker-r",R_HEX:"yui-picker-rhex",G:"yui-picker-g",G_HEX:"yui-picker-ghex",B:"yui-picker-b",B_HEX:"yui-picker-bhex",H:"yui-picker-h", +S:"yui-picker-s",V:"yui-picker-v",PICKER_BG:"yui-picker-bg",PICKER_THUMB:"yui-picker-thumb",HUE_BG:"yui-picker-hue-bg",HUE_THUMB:"yui-picker-hue-thumb",HEX:"yui-picker-hex",SWATCH:"yui-picker-swatch",WEBSAFE_SWATCH:"yui-picker-websafe-swatch",CONTROLS:"yui-picker-controls",RGB_CONTROLS:"yui-picker-rgb-controls",HSV_CONTROLS:"yui-picker-hsv-controls",HEX_CONTROLS:"yui-picker-hex-controls",HEX_SUMMARY:"yui-picker-hex-summary",CONTROLS_LABEL:"yui-picker-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered", +SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"°",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv", +RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var a=document.createElement("div");if(this.CSS.BASE)a.className=this.CSS.BASE;return a},_updateHueSlider:function(){var a= +this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.HUE),b=a-Math.round(b/360*a);b===a&&(b=0);this.hueSlider.setValue(b,this.skipAnim)},_updatePickerSlider:function(){var a=this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.SATURATION),c=this.get(this.OPT.VALUE),b=Math.round(b*a/100),c=Math.round(a-c*a/100);this.pickerSlider.setRegionValue(b,c,this.skipAnim)},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider()},setValue:function(a,b){this.set(this.OPT.RGB,a,b||false);this._updateSliders()}, +hueSlider:null,pickerSlider:null,_getH:function(){var a=this.get(this.OPT.PICKER_SIZE),a=(a-this.hueSlider.getValue())/a,a=Math.round(a*360);return a===360?0:a},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE)},_getV:function(){var a=this.get(this.OPT.PICKER_SIZE);return(a-this.pickerSlider.getYValue())/a},_updateSwatch:function(){var a=this.get(this.OPT.RGB),b=this.get(this.OPT.WEBSAFE),c=this.getElement(this.ID.SWATCH),a=a.join(","),d=this.get(this.OPT.TXT);g.setStyle(c, +"background-color","rgb("+a+")");c.title=i(d.CURRENT_COLOR,{rgb:"#"+this.get(this.OPT.HEX)});c=this.getElement(this.ID.WEBSAFE_SWATCH);a=b.join(",");g.setStyle(c,"background-color","rgb("+a+")");c.title=i(d.CLOSEST_WEBSAFE,{rgb:"#"+f.rgb2hex(b)})},_getValuesFromSliders:function(){this.set(this.OPT.RGB,f.hsv2rgb(this._getH(),this._getS(),this._getV()))},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION); +this.getElement(this.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=f.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=f.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=f.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX)}, +_onHueSliderChange:function(){var b=this._getH(),c="rgb("+f.hsv2rgb(b,1,1).join(",")+")";this.set(this.OPT.HUE,b,true);g.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",c);this.hueSlider.valueChangeSource!==a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_onPickerSliderChange:function(){var b=this._getS(),c=this._getV();this.set(this.OPT.SATURATION,Math.round(b*100),true);this.set(this.OPT.VALUE,Math.round(c*100),true);this.pickerSlider.valueChangeSource!== +a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_getCommand:function(a){var b=h.getCharCode(a);return b===38?3:b===13?6:b===40?4:b>=48&&b<=57?1:b>=97&&b<=102?2:b>=65&&b<=70?2:"8, 9, 13, 27, 37, 39".indexOf(b)>-1||a.ctrlKey||a.metaKey?5:0},_useFieldValue:function(a,b,c){a=b.value;c!==this.OPT.HEX&&(a=parseInt(a,10));a!==this.get(c)&&this.set(c,a)},_rgbFieldKeypress:function(a,b,c){var d=this._getCommand(a),e=a.shiftKey?10:1;switch(d){case 6:this._useFieldValue.apply(this, +arguments);break;case 3:this.set(c,Math.min(this.get(c)+e,255));this._updateFormFields();break;case 4:this.set(c,Math.max(this.get(c)-e,0));this._updateFormFields()}},_hexFieldKeypress:function(a,b,c){this._getCommand(a)===6&&this._useFieldValue.apply(this,arguments)},_hexOnly:function(a,b){switch(this._getCommand(a)){case 6:case 5:case 1:break;case 2:if(b!==true)break;default:h.stopEvent(a);return false}},_numbersOnly:function(a){return this._hexOnly(a,true)},getElement:function(a){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[a]]}, +_createElements:function(){var a,b,c,e,f=this.get(this.OPT.IDS),g=this.get(this.OPT.TXT),h=this.get(this.OPT.IMAGES),i=function(a,b){var c=document.createElement(a);b&&d.augmentObject(c,b,true);return c},q=function(a,b){var c=d.merge({autocomplete:"off",value:"0",size:3,maxlength:3},b);c.name=c.id;return new i(a,c)};e=this.get("element");a=new i("div",{id:f[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.PICKER_THUMB],className:"yui-picker-thumb"}); +c=new i("img",{src:h.PICKER_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"});c=new i("img",{src:h.HUE_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.CONTROLS],className:"yui-picker-controls"});e.appendChild(a);e=a;a=new i("div",{className:"hd"});b=new i("a",{id:f[this.ID.CONTROLS_LABEL], +href:"#"});a.appendChild(b);e.appendChild(a);a=new i("div",{className:"bd"});e.appendChild(a);e=a;a=new i("ul",{id:f[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});b=new i("li");b.appendChild(document.createTextNode(g.R+" "));c=new q("input",{id:f[this.ID.R],className:"yui-picker-r"});b.appendChild(c);a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.G+" "));c=new q("input",{id:f[this.ID.G],className:"yui-picker-g"});b.appendChild(c);a.appendChild(b);b=new i("li"); +b.appendChild(document.createTextNode(g.B+" "));c=new q("input",{id:f[this.ID.B],className:"yui-picker-b"});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls"});b=new i("li");b.appendChild(document.createTextNode(g.H+" "));c=new q("input",{id:f[this.ID.H],className:"yui-picker-h"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.DEG));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.S+" ")); +c=new q("input",{id:f[this.ID.S],className:"yui-picker-s"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.V+" "));c=new q("input",{id:f[this.ID.V],className:"yui-picker-v"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});b=new i("li",{id:f[this.ID.R_HEX]});a.appendChild(b); +b=new i("li",{id:f[this.ID.G_HEX]});a.appendChild(b);b=new i("li",{id:f[this.ID.B_HEX]});a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});a.appendChild(document.createTextNode(g.HEX+" "));b=new q("input",{id:f[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});a.appendChild(b);e.appendChild(a);e=this.get("element");a=new i("div",{id:f[this.ID.SWATCH],className:"yui-picker-swatch"});e.appendChild(a);a=new i("div",{id:f[this.ID.WEBSAFE_SWATCH], +className:"yui-picker-websafe-swatch"});e.appendChild(a)},_attachRGBHSV:function(a,b){h.on(this.getElement(a),"keydown",function(a,c){c._rgbFieldKeypress(a,this,b)},this);h.on(this.getElement(a),"keypress",this._numbersOnly,this,true);h.on(this.getElement(a),"blur",function(a,c){c._useFieldValue(a,this,b)},this)},_updateRGB:function(){this.set(this.OPT.RGB,[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)]);this._updateSliders()},_initElements:function(){var a=this.OPT,b=this.get(a.IDS), +a=this.get(a.ELEMENTS),c,e,f;for(c in this.ID)d.hasOwnProperty(this.ID,c)&&(b[this.ID[c]]=b[c]);(e=g.get(b[this.ID.PICKER_BG]))||this._createElements();for(c in b)if(d.hasOwnProperty(b,c)){e=g.get(b[c]);f=g.generateId(e);b[c]=f;b[b[c]]=f;a[f]=e}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true)},_initSliders:function(){var b=this.ID,c=this.get(this.OPT.PICKER_SIZE);this.hueSlider=a.getVertSlider(this.getElement(b.HUE_BG),this.getElement(b.HUE_THUMB),0,c);this.pickerSlider= +a.getSliderRegion(this.getElement(b.PICKER_BG),this.getElement(b.PICKER_THUMB),0,c,0,c);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE))},_bindUI:function(){var a=this.ID,b=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);h.on(this.getElement(a.WEBSAFE_SWATCH),"click",function(){this.setValue(this.get(b.WEBSAFE))},this,true);h.on(this.getElement(a.CONTROLS_LABEL),"click",function(a){this.set(b.SHOW_CONTROLS, +!this.get(b.SHOW_CONTROLS));h.preventDefault(a)},this,true);this._attachRGBHSV(a.R,b.RED);this._attachRGBHSV(a.G,b.GREEN);this._attachRGBHSV(a.B,b.BLUE);this._attachRGBHSV(a.H,b.HUE);this._attachRGBHSV(a.S,b.SATURATION);this._attachRGBHSV(a.V,b.VALUE);h.on(this.getElement(a.HEX),"keydown",function(a,c){c._hexFieldKeypress(a,this,b.HEX)},this);h.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);h.on(this.getElement(this.ID.HEX),"blur",function(a,c){c._useFieldValue(a,this,b.HEX)}, +this)},syncUI:function(a){this.skipAnim=a;this._updateRGB();this.skipAnim=false},_updateRGBFromHSV:function(){var a=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100];this.set(this.OPT.RGB,f.hsv2rgb(a));this._updateSliders()},_updateHex:function(){var a=this.get(this.OPT.HEX),b=a.length,c;if(b===3){a=a.split("");for(c=0;c1)for(h in b)d.hasOwnProperty(b,h)&&(b[h]=b[h]+e);this.setAttributeConfig(this.OPT.IDS,{value:b,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:a.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:a.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:d.isBoolean(a.showcontrols)?a.showcontrols:true, +method:function(a){this._hideShowEl(g.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0],a);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=a?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:d.isBoolean(a.showrgbcontrols)?a.showrgbcontrols:true,method:function(a){this._hideShowEl(this.ID.RGB_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:d.isBoolean(a.showhsvcontrols)? +a.showhsvcontrols:false,method:function(a){this._hideShowEl(this.ID.HSV_CONTROLS,a);a&&this.get(this.OPT.SHOW_HEX_SUMMARY)&&this.set(this.OPT.SHOW_HEX_SUMMARY,false)}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:d.isBoolean(a.showhexcontrols)?a.showhexcontrols:false,method:function(a){this._hideShowEl(this.ID.HEX_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:d.isBoolean(a.showwebsafe)?a.showwebsafe:true,method:function(a){this._hideShowEl(this.ID.WEBSAFE_SWATCH, +a)}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:d.isBoolean(a.showhexsummary)?a.showhexsummary:true,method:function(a){this._hideShowEl(this.ID.HEX_SUMMARY,a);a&&this.get(this.OPT.SHOW_HSV_CONTROLS)&&this.set(this.OPT.SHOW_HSV_CONTROLS,false)}});this.setAttributeConfig(this.OPT.ANIMATE,{value:d.isBoolean(a.animate)?a.animate:true,method:function(a){if(this.pickerSlider){this.pickerSlider.animate=a;this.hueSlider.animate=a}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this, +true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements()}});YAHOO.widget.ColorPicker=c})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.7.0",build:"1796"}); +(function(){var c=YAHOO.util,e=function(b,c,a,e){this.init(b,c,a,e)};e.NAME="Anim";e.prototype={toString:function(){var b=this.getEl()||{};return this.constructor.NAME+": "+(b.id||b.tagName)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(b,c,a){return this.method(this.currentFrame,c,a-c,this.totalFrames)},setAttribute:function(b, +d,a){var e=this.getEl();this.patterns.noNegatives.test(b)&&(d=d>0?d:0);"style"in e?c.Dom.setStyle(e,b,d+a):b in e&&(e[b]=d)},getAttribute:function(b){var d=this.getEl(),a=c.Dom.getStyle(d,b);if(a!=="auto"&&!this.patterns.offsetUnit.test(a))return parseFloat(a);var e=this.patterns.offsetAttribute.exec(b)||[],g=!!e[3],h=!!e[2];"style"in d?a=h||c.Dom.getStyle(d,"position")=="absolute"&&g?d["offset"+e[0].charAt(0).toUpperCase()+e[0].substr(1)]:0:b in d&&(a=d[b]);return a},getDefaultUnit:function(b){return this.patterns.defaultUnit.test(b)? +"px":""},setRuntimeAttribute:function(b){var c,a,e=this.attributes;this.runtimeAttributes[b]={};var g=function(a){return typeof a!=="undefined"};if(!g(e[b].to)&&!g(e[b].by))return false;c=g(e[b].from)?e[b].from:this.getAttribute(b);if(g(e[b].to))a=e[b].to;else if(g(e[b].by))if(c.constructor==Array){a=[];for(var h=0,i=c.length;h0&&isFinite(l)){g.currentFrame+l>=h&&(l=h-(i+1));g.currentFrame= +g.currentFrame+l}}c._onTween.fire()}else YAHOO.util.AnimMgr.stop(c,b)}}};YAHOO.util.Bezier=new function(){this.getPosition=function(c,e){for(var b=c.length,d=[],a=0;a0&&!(j[0]instanceof Array))j=[j];else{var n=[];l=0;for(m=j.length;l0&&(this.runtimeAttributes[c]=this.runtimeAttributes[c].concat(j)); +this.runtimeAttributes[c][this.runtimeAttributes[c].length]=k}else b.setRuntimeAttribute.call(this,c)};var a=function(a,b){var c=e.Dom.getXY(this.getEl());return a=[a[0]-c[0]+b[0],a[1]-c[1]+b[1]]},f=function(a){return typeof a!=="undefined"};e.Motion=c})(); +(function(){var c=function(a,b,d,e){a&&c.superclass.constructor.call(this,a,b,d,e)};c.NAME="Scroll";var e=YAHOO.util;YAHOO.extend(c,e.ColorAnim);var b=c.superclass,d=c.prototype;d.doMethod=function(a,c,d){var e=null;return e=a=="scroll"?[this.method(this.currentFrame,c[0],d[0]-c[0],this.totalFrames),this.method(this.currentFrame,c[1],d[1]-c[1],this.totalFrames)]:b.doMethod.call(this,a,c,d)};d.getAttribute=function(a){var c=null,c=this.getEl();return c=a=="scroll"?[c.scrollLeft,c.scrollTop]:b.getAttribute.call(this, +a)};d.setAttribute=function(a,c,d){var e=this.getEl();if(a=="scroll"){e.scrollLeft=c[0];e.scrollTop=c[1]}else b.setAttribute.call(this,a,c,d)};e.Scroll=c})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/images/handle.png b/src/lib/ckeditor/plugins/widget/images/handle.png new file mode 100644 index 00000000..ba8cda5b Binary files /dev/null and b/src/lib/ckeditor/plugins/widget/images/handle.png differ diff --git a/src/lib/ckeditor/plugins/widget/lang/ar.js b/src/lib/ckeditor/plugins/widget/lang/ar.js new file mode 100644 index 00000000..02901ca4 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ar",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/ca.js b/src/lib/ckeditor/plugins/widget/lang/ca.js new file mode 100644 index 00000000..bcee2d0a --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ca",{move:"Clicar i arrossegar per moure"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/cs.js b/src/lib/ckeditor/plugins/widget/lang/cs.js new file mode 100644 index 00000000..2f2ab938 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cs",{move:"Klepněte a táhněte pro přesunutí"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/cy.js b/src/lib/ckeditor/plugins/widget/lang/cy.js new file mode 100644 index 00000000..19bc34b0 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cy",{move:"Clcio a llusgo i symud"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/de.js b/src/lib/ckeditor/plugins/widget/lang/de.js new file mode 100644 index 00000000..0de3212c --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","de",{move:"Zum verschieben anwählen und ziehen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/el.js b/src/lib/ckeditor/plugins/widget/lang/el.js new file mode 100644 index 00000000..9200420f --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","el",{move:"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/en-gb.js b/src/lib/ckeditor/plugins/widget/lang/en-gb.js new file mode 100644 index 00000000..af267ba8 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en-gb",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/en.js b/src/lib/ckeditor/plugins/widget/lang/en.js new file mode 100644 index 00000000..5b1d70a7 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/eo.js b/src/lib/ckeditor/plugins/widget/lang/eo.js new file mode 100644 index 00000000..eb556143 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","eo",{move:"klaki kaj treni por movi"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/es.js b/src/lib/ckeditor/plugins/widget/lang/es.js new file mode 100644 index 00000000..d59696db --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","es",{move:"Dar clic y arrastrar para mover"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/fa.js b/src/lib/ckeditor/plugins/widget/lang/fa.js new file mode 100644 index 00000000..cd7b4e08 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fa",{move:"کلیک و کشیدن برای جابجایی"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/fi.js b/src/lib/ckeditor/plugins/widget/lang/fi.js new file mode 100644 index 00000000..cd2fccef --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fi",{move:"Siirrä klikkaamalla ja raahaamalla"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/fr.js b/src/lib/ckeditor/plugins/widget/lang/fr.js new file mode 100644 index 00000000..4a07790c --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fr",{move:"Cliquer et glisser pour déplacer"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/gl.js b/src/lib/ckeditor/plugins/widget/lang/gl.js new file mode 100644 index 00000000..4213bd7a --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","gl",{move:"Prema e arrastre para mover"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/he.js b/src/lib/ckeditor/plugins/widget/lang/he.js new file mode 100644 index 00000000..aa9754ae --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","he",{move:"לחץ וגרור להזזה"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/hr.js b/src/lib/ckeditor/plugins/widget/lang/hr.js new file mode 100644 index 00000000..c58da39d --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hr",{move:"Klikni i povuci da pomakneš"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/hu.js b/src/lib/ckeditor/plugins/widget/lang/hu.js new file mode 100644 index 00000000..03305f3b --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hu",{move:"Kattints és húzd a mozgatáshoz"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/it.js b/src/lib/ckeditor/plugins/widget/lang/it.js new file mode 100644 index 00000000..d1a714e3 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","it",{move:"Fare clic e trascinare per spostare"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/ja.js b/src/lib/ckeditor/plugins/widget/lang/ja.js new file mode 100644 index 00000000..33cdb9ef --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ja",{move:"ドラッグして移動"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/km.js b/src/lib/ckeditor/plugins/widget/lang/km.js new file mode 100644 index 00000000..bc46a96e --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","km",{move:"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/ko.js b/src/lib/ckeditor/plugins/widget/lang/ko.js new file mode 100644 index 00000000..4bf733aa --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ko",{move:"움직이려면 클릭 후 드래그 하세요"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/nb.js b/src/lib/ckeditor/plugins/widget/lang/nb.js new file mode 100644 index 00000000..b5bfd46d --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nb",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/nl.js b/src/lib/ckeditor/plugins/widget/lang/nl.js new file mode 100644 index 00000000..a5bfea95 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nl",{move:"Klik en sleep om te verplaatsen"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/no.js b/src/lib/ckeditor/plugins/widget/lang/no.js new file mode 100644 index 00000000..92db9080 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","no",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/pl.js b/src/lib/ckeditor/plugins/widget/lang/pl.js new file mode 100644 index 00000000..a51890f2 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pl",{move:"Kliknij i przeciągnij, by przenieść."}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/pt-br.js b/src/lib/ckeditor/plugins/widget/lang/pt-br.js new file mode 100644 index 00000000..e6387da3 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt-br",{move:"Click e arraste para mover"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/pt.js b/src/lib/ckeditor/plugins/widget/lang/pt.js new file mode 100644 index 00000000..0a7f1171 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt",{move:"Clique e arraste para mover"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/ru.js b/src/lib/ckeditor/plugins/widget/lang/ru.js new file mode 100644 index 00000000..e3d4e3e6 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ru",{move:"Нажмите и перетащите"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/sk.js b/src/lib/ckeditor/plugins/widget/lang/sk.js new file mode 100644 index 00000000..d26dab0c --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sk",{move:"Kliknite a potiahnite pre presunutie"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/sl.js b/src/lib/ckeditor/plugins/widget/lang/sl.js new file mode 100644 index 00000000..f99d4e74 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sl",{move:"Kliknite in povlecite, da premaknete"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/sv.js b/src/lib/ckeditor/plugins/widget/lang/sv.js new file mode 100644 index 00000000..33f6f126 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sv",{move:"Klicka och drag för att flytta"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/tr.js b/src/lib/ckeditor/plugins/widget/lang/tr.js new file mode 100644 index 00000000..5f2ca8f1 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tr",{move:"Taşımak için, tıklayın ve sürükleyin"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/tt.js b/src/lib/ckeditor/plugins/widget/lang/tt.js new file mode 100644 index 00000000..1b158207 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tt",{move:"Күчереп куер өчен басып шудырыгыз"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/uk.js b/src/lib/ckeditor/plugins/widget/lang/uk.js new file mode 100644 index 00000000..a07313c8 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","uk",{move:"Клікніть і потягніть для переміщення"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/vi.js b/src/lib/ckeditor/plugins/widget/lang/vi.js new file mode 100644 index 00000000..785a5323 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","vi",{move:"Nhấp chuột và kéo để di chuyển"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/zh-cn.js b/src/lib/ckeditor/plugins/widget/lang/zh-cn.js new file mode 100644 index 00000000..690512a2 --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh-cn",{move:"点击并拖拽以移动"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/lang/zh.js b/src/lib/ckeditor/plugins/widget/lang/zh.js new file mode 100644 index 00000000..e683c06c --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh",{move:"拖曳以移動"}); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/widget/plugin.js b/src/lib/ckeditor/plugins/widget/plugin.js new file mode 100644 index 00000000..a9cc00fb --- /dev/null +++ b/src/lib/ckeditor/plugins/widget/plugin.js @@ -0,0 +1,58 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function o(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};I(this);J(this);this.on("checkWidgets",K);this.editor.on("contentDomInvalidated",this.checkWidgets,this);L(this);M(this);N(this);O(this);P(this)}function k(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({}, +"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:k.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);Q(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes", +this.getClasses());this.dataReady=!0;s(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function q(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function R(a,b){a.addCommand(b.name, +{exec:function(){function c(){a.widgets.finalizeCreation(g)}var d=a.widgets.focused;if(d&&d.name==b.name)d.edit();else if(b.insert)b.insert();else if(b.template){var d="function"==typeof b.defaults?b.defaults():b.defaults,d=CKEDITOR.dom.element.createFromHtml(b.template.output(d)),e,f=a.widgets.wrapElement(d,b.name),g=new CKEDITOR.dom.documentFragment(f.getDocument());g.append(f);(e=a.widgets.initOn(d,b))?(d=e.once("edit",function(b){if(b.data.dialog)e.once("dialog",function(b){var b=b.data,d,f;d= +b.once("ok",c,null,null,20);f=b.once("cancel",function(){a.widgets.destroy(e,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else c()},null,null,999),e.edit(),d.removeListener()):c()}},refresh:function(a,b){this.setState(l(a.editable(),b.blockLimit)?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF)},context:"div",allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function t(a,b){a.focused= +null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function K(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e;if(b){for(d in c)b.contains(c[d].wrapper)||this.destroy(c[d],!0);if(a&&a.initOnlyNew)b=this.initOnAll();else{var f=b.find(".cke_widget_wrapper"),b=[];d=0;for(c=f.count();dCKEDITOR.env.version||d.isInline()?d:b.document;d.attachListener(e, +"drop",function(c){var d=c.data.$.dataTransfer.getData("text"),e,h;if(d){try{e=JSON.parse(d)}catch(j){return}if("cke-widget"==e.type&&(c.data.preventDefault(),e.editor==b.name&&(h=a.instances[e.id]))){a:if(e=c.data.$,d=b.createRange(),c.data.testRange)d=c.data.testRange;else if(document.caretRangeFromPoint)c=b.document.$.caretRangeFromPoint(e.clientX,e.clientY),d.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),d.collapse(!0);else if(e.rangeParent)d.setStart(CKEDITOR.dom.node(e.rangeParent), +e.rangeOffset),d.collapse(!0);else if(document.body.createTextRange)c=b.document.getBody().$.createTextRange(),c.moveToPoint(e.clientX,e.clientY),e="cke-temp-"+(new Date).getTime(),c.pasteHTML(''),c=b.document.getById(e),d.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START),c.remove();else{d=null;break a}d&&(CKEDITOR.env.gecko?setTimeout(A,0,b,h,d):A(b,h,d))}}});CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(a){if(!a.is(CKEDITOR.dtd.$listItem)&&a.is(CKEDITOR.dtd.$block)){for(;a;){if(w(a))return; +a=a.getParent()}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function M(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var b=c.data.getTarget();if(!b.type)return!1;e=a.getByElement(b);f= +0;e&&(e.inline&&b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")?f=1:l(e.wrapper,b)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){e&&f&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){e&&setTimeout(function(){e.focus();e=null})})});b.on("doubleclick",function(c){var b=a.getByElement(c.data.element);if(b&&!l(b.wrapper,c.data.element))return b.fire("doubleclick",{element:c.data.element})}, +null,null,1)}function N(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e}, +null,null,1)}function P(a){function b(c){a.focused&&B(a.focused,"cut"==c.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function L(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=l(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;if(e){if(e!==d||!e.focusedEditable.equals(c))n(a, +e,null),d&&c&&n(a,d,c)}else d&&c&&n(a,d,c)});b.on("dataReady",function(){C(a).commit()});b.on("blur",function(){var c;(c=a.focused)&&t(a,c);(c=a.widgetHoldingFocusedEditable)&&n(a,c,null)})}function J(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(c){var b=c.attributes,d;if("data-cke-widget-id"in b){if(b=a.instances[b["data-cke-widget-id"]])d=c.getFirst(v),f.push({wrapper:c,element:d, +widget:b,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in b)return f[f.length-1].editables[b["data-cke-widget-editable"]]=c,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var a=c[a.data.downcastingSessionId],b,f,g,i,h,j;b=a.shift();){f=b.widget;g=b.element;i=f._.downcastFn&&f._.downcastFn.call(f,g);for(j in b.editables)h=b.editables[j],delete h.attributes.contenteditable, +h.setHtml(f.editables[j].getData());i||(i=g);b.wrapper.replaceWith(i)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function I(a){function b(){c.fire("lockSnapshot");a.checkWidgets({initOnlyNew:!0,focusInited:d});c.fire("unlockSnapshot")}var c=a.editor,d,e;c.on("toHtml",function(c){var b=T(a),e;for(c.data.dataValue.forEach(b.iterator,CKEDITOR.NODE_ELEMENT,!0);e=b.toBeWrapped.pop();){var h=e[0],j=h.parent;j.type==CKEDITOR.NODE_ELEMENT&&j.attributes["data-cke-widget-wrapper"]&& +j.replaceWith(h);a.wrapElement(e[0],e[1])}d=1==c.data.dataValue.children.length&&c.data.dataValue.children[0].type==CKEDITOR.NODE_ELEMENT&&c.data.dataValue.children[0].attributes["data-cke-widget-wrapper"]},null,null,8);c.on("dataReady",function(){if(e)for(var b=a,d=c.editable().find(".cke_widget_wrapper"),i,h,j=0,k=d.count();jCKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,i;a.editor.fire("lockSnapshot"); +for(f&&(g=a.focused)&&t(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(i=g.editor.checkDirty(),g.setSelected(!1),!i&&g.editor.resetDirty());f&&e&&(i=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!i&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function D(a,b,c){var d=0,b=E(b),e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f], +d=1);d&&a.setData("classes",e)}}function F(a){a.cancel()}function B(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),g=d.createElement(e),e=CKEDITOR.env.ie&&9>CKEDITOR.env.version;g.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?"left":"right","-5000px");f.setHtml(''+ +a.wrapper.getOuterHtml()+'');c.fire("saveSnapshot");c.fire("lockSnapshot");g.append(f);c.editable().append(g);var i=c.on("selectionChange",F,null,null,0),h=a.repository.on("checkSelection",F,null,null,0);if(e)var j=d.getDocumentElement().$,k=j.scrollTop;d=c.createRange();d.selectNodeContents(f);d.select();e&&(j.scrollTop=k);setTimeout(function(){b||a.focus();g.remove();i.removeListener();h.removeListener();c.fire("unlockSnapshot");if(b){a.repository.del(a);c.fire("saveSnapshot")}}, +100)}}function E(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function G(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function H(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function Y(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)(!a|| +!a[d])&&this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function Z(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(U),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1", +src:CKEDITOR.tools.transparentImageData,width:m,title:b.lang.widget.move,height:m}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(a.inline)d.on("dragstart",function(c){c.data.$.dataTransfer.setData("text",JSON.stringify({type:"cke-widget",editor:b.name,id:a.id}))});else d.on("mousedown",$,a);a.dragHandlerContainer=c}}function $(){function a(){var a; +for(j.reset();a=g.pop();)a.removeListener();var c=i,b=this.repository.finder;a=this.repository.liner;var d=this.editor,e=this.editor.editable();CKEDITOR.tools.isEmpty(a.visible)||(c=b.getRange(c[0]),this.focus(),d.fire("saveSnapshot"),d.fire("lockSnapshot",{dontUpdate:1}),d.getSelection().reset(),e.insertElementIntoRange(this.wrapper,c),this.focus(),d.fire("unlockSnapshot"),d.fire("saveSnapshot"));e.removeClass("cke_widget_dragging");a.hideVisible()}var b=this.repository.finder,c=this.repository.locator, +d=this.repository.liner,e=this.editor,f=e.editable(),g=[],i=[],h=b.greedySearch(),j=CKEDITOR.tools.eventsBuffer(50,function(){k=c.locate(h);i=c.sort(l,1);i.length&&(d.prepare(h,k),d.placeLine(i[0]),d.cleanup())}),k,l;f.addClass("cke_widget_dragging");g.push(f.on("mousemove",function(a){l=a.data.$.clientY;j.input()}));g.push(e.document.once("mouseup",a,this));g.push(CKEDITOR.document.once("mouseup",a,this))}function aa(a){var b,c,d=a.editables;a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b, +"string"==typeof c?{selector:c}:c)}function ba(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function ca(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function Q(a,b){da(a);ca(a);aa(a);ba(a);Z(a);Y(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart", +function(c){var b=c.data.getTarget();!l(a,b)&&(!a.inline||!(b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")))&&c.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){B(a,b==CKEDITOR.CTRL+88);return}if(b in ea||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&& +b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function da(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function s(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}var m=15;CKEDITOR.plugins.add("widget",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,ko,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"lineutils,clipboard",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover>.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:"+ +m+"px;height:0;left:-9999px;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{height:"+m+"px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:"+m+"px;height:"+m+"px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},beforeInit:function(a){a.widgets= +new o(a)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});V(a)}});o.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));R(this.editor,b);var c=b,d=c.upcast;if(d)if("string"==typeof d)for(d= +d.split(",");d.length;)this._.upcasts.push([c.upcasts[d.pop()],c.name]);else this._.upcasts.push([d,c.name]);return this.registered[a]=b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=C(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=r;b=a.next();)c.select(this.getByElement(b)); +c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,c=b.createRange(),d;if(!(d=c.moveToClosestEditablePosition(a.wrapper,!0)))d=c.moveToClosestEditablePosition(a.wrapper,!1);d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&n(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a){var b= +this.instances,c,d;for(d in b)c=b[d],this.destroy(c,a)},finalizeCreation:function(a){if((a=a.getFirst())&&r(a))this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus()},getByElement:function(){var a={div:1,span:1};return function(b,c){if(!b)return null;var d=b.is(a)&&b.data("cke-widget-id");if(!c&&!d){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(d=b.is(a)&&b.data("cke-widget-id")))}return this.instances[d]||null}}(),initOn:function(a,b,c){b? +"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new k(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){for(var a=(a||this.editor.editable()).find(".cke_widget_new"),b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(p)))&&b.push(c);return b},parseElementClasses:function(a){if(!a)return null;for(var a= +CKEDITOR.tools.trim(a).split(/\s+/),b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){d=this.registered[b||a.data("widget")];if(!d)return null;if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);b&&a.data("widget",b);e=z(d,a.getName());c=new CKEDITOR.dom.element(e? +"span":"div");c.setAttributes(x(e));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){d=this.registered[b||a.attributes["data-widget"]];if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]= +b);e=z(d,a.name);c=new CKEDITOR.htmlParser.element(e?"span":"div",x(e));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&y(d,f,c)}return c},_tests_getNestedEditable:l,_tests_createEditableFilter:u};CKEDITOR.event.implementOn(o.prototype);k.prototype={addClass:function(a){this.element.addClass(a)},applyStyle:function(a){D(this,a,1)},checkStyleActive:function(a){var a=E(a),b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1; +return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",H);c.removeListener("blur", +G);this.editor.focusManager.remove(c);b||(c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,e;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),e=a.on("ok",function(){var d,e=b.on("data", +function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);e.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();e.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this.wrapper.findOne(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)? +(c=new q(this.editor,c,{filter:u.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&c.data("cke-filter",c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",H,this),CKEDITOR.env.ie&&c.on("blur",G,this),c.setData(c.getHtml()),!0):!1},isInited:function(){return!(!this.wrapper|| +!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a)},removeStyle:function(a){D(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(s(this),this.fire("data", +c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-m};if(!c||!(b.x==c.x&&b.y==c.y))c=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+ +"px",left:b.x+"px"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b}};CKEDITOR.event.implementOn(k.prototype);q.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(), +filter:this.filter,enterMode:this.enterMode})}});var X=RegExp('^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?]*data-cke-copybin-start="1"[^>]*>.?([\\s\\S]+)]*data-cke-copybin-end="1"[^>]*>.?(?:)?(?:)?$'),ea={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}function b(a,b,e){return!e||!this.checkElement(a)?!1:(a=e.widgets.getByElement(a,!0))&&a.checkStyleActive(this)} +CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget},apply:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.applyStyle(this)},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return!(b instanceof CKEDITOR.editor)?!1:this.checkElement(a.lastElement)}, +checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return!r(a)?!1:(a=a.getFirst(p))&&a.data("widget")==this.widget},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;var a=a.widgets.registered[this.widget],b,e={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;e[a.styleableElements]={classes:b,propertiesOnly:!0};return e}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this): +null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=k;k.repository=o;k.nestedEditable=q})(); \ No newline at end of file diff --git a/src/lib/ckeditor/plugins/wsc/LICENSE.md b/src/lib/ckeditor/plugins/wsc/LICENSE.md new file mode 100644 index 00000000..6096de23 --- /dev/null +++ b/src/lib/ckeditor/plugins/wsc/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/src/lib/ckeditor/plugins/wsc/dialogs/ciframe.html b/src/lib/ckeditor/plugins/wsc/dialogs/ciframe.html new file mode 100644 index 00000000..8e0a10df --- /dev/null +++ b/src/lib/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -0,0 +1,66 @@ + + + + + + + + +

+ diff --git a/src/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/src/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html new file mode 100644 index 00000000..61203e03 --- /dev/null +++ b/src/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git a/src/lib/ckeditor/plugins/wsc/dialogs/wsc.css b/src/lib/ckeditor/plugins/wsc/dialogs/wsc.css new file mode 100644 index 00000000..da2f1743 --- /dev/null +++ b/src/lib/ckeditor/plugins/wsc/dialogs/wsc.css @@ -0,0 +1,82 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/src/lib/ckeditor/plugins/wsc/dialogs/wsc.js b/src/lib/ckeditor/plugins/wsc/dialogs/wsc.js new file mode 100644 index 00000000..443145c9 --- /dev/null +++ b/src/lib/ckeditor/plugins/wsc/dialogs/wsc.js @@ -0,0 +1,74 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function y(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString,f=a.fn||null,g=a.id||"",e=a.target||window,i=a.message||{id:g};a.message&&"[object Object]"== +b.call(a.message)&&(a.message.id||(a.message.id=g),i=a.message);a=window.JSON.stringify(i,f);e.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}, +misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){return!(0===a.offsetWidth||0==a.offsetHeight||"none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display))},hasClass:function(a,b){return!(!a.className||!a.className.match(RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(), +a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null, +text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var z=function(b){var c,d;for(d in b)c=b[d].instance.getElement().getFirst()|| +b[d].instance.getElement(),c.setText(a.LocalizationComing[d])},A=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}},j,q;a.framesetHtml=function(b){return"'};a.setIframe=function(b,c){var d;d=a.framesetHtml(c);var f=a.iframeNumber+"_"+c;b.getElement().setHtml(d); +d=document.getElementById(f);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('iframe
+ + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/src/lib/ckeditor/samples/api.html b/src/lib/ckeditor/samples/api.html new file mode 100644 index 00000000..a957eed0 --- /dev/null +++ b/src/lib/ckeditor/samples/api.html @@ -0,0 +1,207 @@ + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/src/lib/ckeditor/samples/appendto.html b/src/lib/ckeditor/samples/appendto.html new file mode 100644 index 00000000..b8467702 --- /dev/null +++ b/src/lib/ckeditor/samples/appendto.html @@ -0,0 +1,56 @@ + + + + + + Append To Page Element Using JavaScript Code — CKEditor Sample + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace(), + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/src/lib/ckeditor/samples/assets/inlineall/logo.png b/src/lib/ckeditor/samples/assets/inlineall/logo.png new file mode 100644 index 00000000..b4d5979e Binary files /dev/null and b/src/lib/ckeditor/samples/assets/inlineall/logo.png differ diff --git a/src/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/src/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css new file mode 100644 index 00000000..fa0ff379 --- /dev/null +++ b/src/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/src/lib/ckeditor/samples/assets/posteddata.php b/src/lib/ckeditor/samples/assets/posteddata.php new file mode 100644 index 00000000..6b26aae3 --- /dev/null +++ b/src/lib/ckeditor/samples/assets/posteddata.php @@ -0,0 +1,59 @@ + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/src/lib/ckeditor/samples/assets/sample.jpg b/src/lib/ckeditor/samples/assets/sample.jpg new file mode 100644 index 00000000..9498271c Binary files /dev/null and b/src/lib/ckeditor/samples/assets/sample.jpg differ diff --git a/src/lib/ckeditor/samples/assets/uilanguages/languages.js b/src/lib/ckeditor/samples/assets/uilanguages/languages.js new file mode 100644 index 00000000..3f7ff624 --- /dev/null +++ b/src/lib/ckeditor/samples/assets/uilanguages/languages.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese", +zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name + + + + + Data Filtering — CKEditor Sample + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/src/lib/ckeditor/samples/divreplace.html b/src/lib/ckeditor/samples/divreplace.html new file mode 100644 index 00000000..873c8c2e --- /dev/null +++ b/src/lib/ckeditor/samples/divreplace.html @@ -0,0 +1,141 @@ + + + + + + Replace DIV — CKEditor Sample + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/src/lib/ckeditor/samples/index.html b/src/lib/ckeditor/samples/index.html new file mode 100644 index 00000000..5ae467f8 --- /dev/null +++ b/src/lib/ckeditor/samples/index.html @@ -0,0 +1,170 @@ + + + + + + CKEditor Samples + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+ +
Create editors with jQuery
+
Creating standard and inline CKEditor instances with jQuery adapter.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ + +

Plugins

+
+
Code Snippet plugin New!
+
View and modify code using the Code Snippet plugin.
+ +
New Image plugin New!
+
Using the new Image plugin to insert captioned images and adjust their dimensions.
+ +
Mathematics plugin New!
+
Create mathematical equations in TeX and display them in visual form.
+ +
Editing source code in a dialog New!
+
Editing HTML content of both inline and classic editor instances.
+ +
AutoGrow plugin
+
Using the AutoGrow plugin in order to make the editor grow to fit the size of its content.
+ +
Output for BBCode
+
Configuring CKEditor to produce BBCode tags instead of HTML.
+ +
Developer Tools plugin
+
Using the Developer Tools plugin to display information about dialog window UI elements to allow for easier customization.
+ +
Document Properties plugin
+
Manage various page meta data with a dialog.
+ +
Magicline plugin
+
Using the Magicline plugin to access difficult focus spaces.
+ +
Placeholder plugin
+
Using the Placeholder plugin to create uneditable sections that can only be created and modified with a proper dialog window.
+ +
Shared-Space plugin
+
Having the toolbar and the bottom bar spaces shared by different editor instances.
+ +
Stylesheet Parser plugin
+
Using the Stylesheet Parser plugin to fill the Styles drop-down list based on the CSS classes available in the document stylesheet.
+ +
TableResize plugin
+
Using the TableResize plugin to enable table column resizing.
+ +
UIColor plugin
+
Using the UIColor plugin to pick up skin color.
+ +
Full page support
+
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
+
+
+
+

+ Inline Editing +

+
+
Massive inline editor creation
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ +
Replace textarea with inline editor New!
+
A form with a textarea that is replaced by an inline editor at runtime.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation
+
Navigating among editor instances with tab key.
+ + + +
Using the JavaScript API to customize dialog windows
+
Using the dialog windows API to customize dialog windows without changing the original editor code.
+ +
Replace Textarea with a "DIV-based" editor
+
Using div instead of iframe for rich editing.
+ +
Using the "Enter" key in CKEditor
+
Configuring the behavior of Enter and Shift+Enter keys.
+ +
Output for Flash
+
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+ +
Output HTML
+
Configuring CKEditor to produce legacy HTML 4 code.
+ +
Toolbar Configurations
+
Configuring CKEditor to display full or custom toolbar layout.
+ +
+
+
+ + + diff --git a/src/lib/ckeditor/samples/inlineall.html b/src/lib/ckeditor/samples/inlineall.html new file mode 100644 index 00000000..f82af1db --- /dev/null +++ b/src/lib/ckeditor/samples/inlineall.html @@ -0,0 +1,311 @@ + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/src/lib/ckeditor/samples/inlinebycode.html b/src/lib/ckeditor/samples/inlinebycode.html new file mode 100644 index 00000000..4e475367 --- /dev/null +++ b/src/lib/ckeditor/samples/inlinebycode.html @@ -0,0 +1,121 @@ + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + + diff --git a/src/lib/ckeditor/samples/inlinetextarea.html b/src/lib/ckeditor/samples/inlinetextarea.html new file mode 100644 index 00000000..fd27c0f1 --- /dev/null +++ b/src/lib/ckeditor/samples/inlinetextarea.html @@ -0,0 +1,110 @@ + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea with Inline Editor +

+
+

+ You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+

This is a sample form with some fields

+

+ Title:
+

+

+ Article Body (Textarea converted to CKEditor):
+ +

+

+ +

+
+ + + + + diff --git a/src/lib/ckeditor/samples/jquery.html b/src/lib/ckeditor/samples/jquery.html new file mode 100644 index 00000000..380b8284 --- /dev/null +++ b/src/lib/ckeditor/samples/jquery.html @@ -0,0 +1,100 @@ + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Create Editors with jQuery +

+
+
+

+ This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

+ +
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckeditor/ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+ +

Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.

+ +
+$( document ).ready( function() {
+	$( 'textarea#editor1' ).ckeditor();
+} );
+
+
+ +

Inline Example

+ +
+

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +
+ +

Classic (iframe-based) Example

+ + + +

+ + + + + +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/autogrow/autogrow.html b/src/lib/ckeditor/samples/plugins/autogrow/autogrow.html new file mode 100644 index 00000000..39434152 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/autogrow/autogrow.html @@ -0,0 +1,99 @@ + + + + + + AutoGrow Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using AutoGrow Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + AutoGrow (autogrow) plugin that lets the editor window expand + and shrink depending on the amount and size of content entered in the editing area. +

+

+ In its default implementation the AutoGrow feature can expand the + CKEditor window infinitely in order to avoid introducing scrollbars to the editing area. +

+

+ It is also possible to set a maximum height for the editor window. Once CKEditor + editing area reaches the value in pixels specified in the + autoGrow_maxHeight + configuration setting, scrollbars will be added and the editor window will no longer expand. +

+

+ To add a CKEditor instance using the autogrow plugin and its + autoGrow_maxHeight attribute, insert the following JavaScript call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'autogrow',
+	autoGrow_maxHeight: 800,
+
+	// Remove the Resize plugin as it does not make sense to use it in conjunction with the AutoGrow plugin.
+	removePlugins: 'resize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. The maximum height should + be given in pixels. +

+
+
+

+ + + +

+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/bbcode/bbcode.html b/src/lib/ckeditor/samples/plugins/bbcode/bbcode.html new file mode 100644 index 00000000..940d12c0 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/bbcode/bbcode.html @@ -0,0 +1,111 @@ + + + + + + BBCode Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » BBCode Plugin +

+
+

+ This sample shows how to configure CKEditor to output BBCode format instead of HTML. + Please note that the editor configuration was modified to reflect what is needed in a BBCode editing environment. + Smiley images, for example, were stripped to the emoticons that are commonly used in some BBCode dialects. +

+

+ Please note that currently there is no standard for the BBCode markup language, so its implementation + for different platforms (message boards, blogs etc.) can vary. This means that before using CKEditor to + output BBCode you may need to adjust the implementation to your own environment. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + a full definition: +

+
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'bbcode',
+	toolbar: [
+		[ 'Source', '-', 'Save', 'NewPage', '-', 'Undo', 'Redo' ],
+		[ 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat' ],
+		[ 'Link', 'Unlink', 'Image' ],
+		'/',
+		[ 'FontSize', 'Bold', 'Italic', 'Underline' ],
+		[ 'NumberedList', 'BulletedList', '-', 'Blockquote' ],
+		[ 'TextColor', '-', 'Smiley', 'SpecialChar', '-', 'Maximize' ]
+	],
+	... some other configurations omitted here
+});	
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html b/src/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html new file mode 100644 index 00000000..52588cf0 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html @@ -0,0 +1,233 @@ + + + + + + Code Snippet — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Code Snippet Plugin +

+ +
+

+ This editor is using the Code Snippet plugin which introduces beautiful code snippets. + By default the codesnippet plugin depends on the built-in client-side syntax highlighting + library highlight.js. +

+

+ You can adjust the appearance of code snippets using the codeSnippet_theme configuration variable + (see available themes). +

+

+ Select theme: +

+

+ The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'codesnippet',
+	codeSnippet_theme: 'monokai_sublime'
+} );
+
+ +

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + +

Inline editor

+ +
+

+ The following sample shows the Code Snippet plugin running inside + an inline CKEditor instance. The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'codesnippet'
+} );
+
+ +

+ Note: The highlight.js themes + must be loaded manually to be applied inside an inline editor instance, as the + codeSnippet_theme setting will not work in that case. + You need to include the stylesheet in the <head> section of the page, for example: +

+ +
+<head>
+	...
+	<link href="path/to/highlight.js/styles/monokai_sublime.css" rel="stylesheet">
+</head>
+
+ +
+ +
+ +

JavaScript code:

+ +
function isEmpty( object ) {
+	for ( var i in object ) {
+		if ( object.hasOwnProperty( i ) )
+			return false;
+	}
+	return true;
+}
+ +

SQL query:

+ +
SELECT cust.id, cust.name, loc.city FROM cust LEFT JOIN loc ON ( cust.loc_id = loc.id ) WHERE cust.type IN ( 1, 2 );
+ +

Unknown markup:

+ +
 ________________
+/                \
+| How about moo? |  ^__^
+\________________/  (oo)\_______
+                  \ (__)\       )\/\
+                        ||----w |
+                        ||     ||
+
+
+ +

Server-side Highlighting and Custom Highlighting Engines

+ +

+ The Code Snippet GeSHi plugin is an + extension of the Code Snippet plugin which uses a server-side highligter. +

+ +

+ It also is possible to replace the default highlighter with any library using + the Highlighter API + and the editor.plugins.codesnippet.setHighlighter() method. +

+ + + + + + diff --git a/src/lib/ckeditor/samples/plugins/devtools/devtools.html b/src/lib/ckeditor/samples/plugins/devtools/devtools.html new file mode 100644 index 00000000..da3552ff --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/devtools/devtools.html @@ -0,0 +1,83 @@ + + + + + + Using DevTools Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the Developer Tools Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Developer Tools (devtools) plugin that displays + information about dialog window elements, including the name of the dialog window, + tab, and UI element. Please note that the tooltip also contains a link to the + CKEditor JavaScript API + documentation for each of the selected elements. +

+

+ This plugin is aimed at developers who would like to customize their CKEditor + instances and create their own plugins. By default it is turned off; it is + usually useful to only turn it on in the development phase. Note that it works with + all CKEditor dialog windows, including the ones that were created by custom plugins. +

+

+ To add a CKEditor instance using the devtools plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'devtools'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/src/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js new file mode 100644 index 00000000..3edd0728 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/src/lib/ckeditor/samples/plugins/dialog/dialog.html b/src/lib/ckeditor/samples/plugins/dialog/dialog.html new file mode 100644 index 00000000..df09d25b --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/dialog/dialog.html @@ -0,0 +1,187 @@ + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/src/lib/ckeditor/samples/plugins/divarea/divarea.html b/src/lib/ckeditor/samples/plugins/divarea/divarea.html new file mode 100644 index 00000000..d2880bd2 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/divarea/divarea.html @@ -0,0 +1,61 @@ + + + + + + Replace Textarea with a "DIV-based" editor — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Replace Textarea with a "DIV-based" editor +

+
+
+

+ This editor is using a <div> element-based editing area, provided by the Divarea plugin. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'divarea'
+});
+
+ + +

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/docprops/docprops.html b/src/lib/ckeditor/samples/plugins/docprops/docprops.html new file mode 100644 index 00000000..fcea6468 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/docprops/docprops.html @@ -0,0 +1,78 @@ + + + + + + Document Properties — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Document Properties Plugin +

+
+

+ This sample shows how to configure CKEditor to use the Document Properties plugin. + This plugin allows you to set the metadata of the page, including the page encoding, margins, + meta tags, or background. +

+

Note: This plugin is to be used along with the fullPage configuration.

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	extraPlugins: 'docprops',
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/enterkey/enterkey.html b/src/lib/ckeditor/samples/plugins/enterkey/enterkey.html new file mode 100644 index 00000000..2d515012 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/enterkey/enterkey.html @@ -0,0 +1,103 @@ + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla new file mode 100644 index 00000000..27e68ccd Binary files /dev/null and b/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla differ diff --git a/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf new file mode 100644 index 00000000..dbe17b6b Binary files /dev/null and b/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf differ diff --git a/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js new file mode 100644 index 00000000..95fdf0a7 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -0,0 +1,18 @@ +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/src/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html new file mode 100644 index 00000000..f25697df --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -0,0 +1,221 @@ + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/image2/assets/image1.jpg b/src/lib/ckeditor/samples/plugins/image2/assets/image1.jpg new file mode 100644 index 00000000..ca491e39 Binary files /dev/null and b/src/lib/ckeditor/samples/plugins/image2/assets/image1.jpg differ diff --git a/src/lib/ckeditor/samples/plugins/image2/assets/image2.jpg b/src/lib/ckeditor/samples/plugins/image2/assets/image2.jpg new file mode 100644 index 00000000..3dd6d61f Binary files /dev/null and b/src/lib/ckeditor/samples/plugins/image2/assets/image2.jpg differ diff --git a/src/lib/ckeditor/samples/plugins/image2/image2.html b/src/lib/ckeditor/samples/plugins/image2/image2.html new file mode 100644 index 00000000..34a5339a --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/image2/image2.html @@ -0,0 +1,65 @@ + + + + + + New Image plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » New Image plugin +

+ +
+

+ This editor is using the new Image (image2) plugin, which implements a dynamic click-and-drag resizing + and easy captioning of the images. +

+

+ To use the new plugin, extend config.extraPlugins: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'image2'
+} );
+
+
+ + + + + + + + diff --git a/src/lib/ckeditor/samples/plugins/magicline/magicline.html b/src/lib/ckeditor/samples/plugins/magicline/magicline.html new file mode 100644 index 00000000..800fbb3b --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/magicline/magicline.html @@ -0,0 +1,206 @@ + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/src/lib/ckeditor/samples/plugins/mathjax/mathjax.html b/src/lib/ckeditor/samples/plugins/mathjax/mathjax.html new file mode 100644 index 00000000..bdccc158 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/mathjax/mathjax.html @@ -0,0 +1,82 @@ + + + + + + Mathematical Formulas — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Mathematical Formulas +

+ +
+

+ This sample shows the usage of the CKEditor mathematical plugin that introduces a MathJax widget. You can now use it to create or modify equations using TeX. +

+

+ TeX content will be automatically replaced by a widget when you put it in a <span class="math-tex"> element. You can also add new equations by using the Math toolbar button and entering TeX content in the plugin dialog window. After you click OK, a widget will be inserted into the editor content. +

+

+ The output of the editor will be plain TeX with MathJax delimiters: \( and \), as in the code below: +

+
+<span class="math-tex">\( \sqrt{1} + (1)^2 = 2 \)</span>
+
+

+ To transform TeX into a visual equation, a page must include the MathJax script. +

+

+ In order to use the new plugin, include it in the config.extraPlugins configuration setting. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'mathjax'
+} );
+
+

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + + + + + diff --git a/src/lib/ckeditor/samples/plugins/placeholder/placeholder.html b/src/lib/ckeditor/samples/plugins/placeholder/placeholder.html new file mode 100644 index 00000000..5a09a8ef --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/placeholder/placeholder.html @@ -0,0 +1,72 @@ + + + + + + Placeholder Plugin — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Using the Placeholder Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Placeholder plugin that lets you insert read-only elements + into your content. To enter and modify read-only text, use the + Create Placeholder   button and its matching dialog window. +

+

+ To add a CKEditor instance that uses the placeholder plugin and a related + Create Placeholder   toolbar button, insert the following JavaScript + call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'placeholder',
+	toolbar: [ [ 'Source', 'Bold' ], ['CreatePlaceholder'] ]
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html b/src/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html new file mode 100644 index 00000000..30ac7fcf --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html @@ -0,0 +1,119 @@ + + + + + + Shared-Space Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Sharing Toolbar and Bottom-bar Spaces +

+
+

+ This sample shows several editor instances that share the very same spaces for both the toolbar and the bottom bar. +

+
+
+ +
+ +
+ +
+
+ +
+ +
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+ +
+ +
+ +
+ + + + + + diff --git a/src/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html b/src/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html new file mode 100644 index 00000000..2b920dff --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html @@ -0,0 +1,118 @@ + + + + + + Editing source code in a dialog — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Editing source code in a dialog +

+
+

+ Sourcedialog plugin provides an easy way to edit raw HTML content + of an editor, similarly to what is possible with Sourcearea + plugin for classic (iframe-based) instances but using dialogs. Thanks to that, it's also possible + to manipulate raw content of inline editor instances. +

+

+ This plugin extends the toolbar with a button, + which opens a dialog window with a source code editor. It works with both classic + and inline instances. To enable this + plugin, basically add extraPlugins: 'sourcedialog' to editor's + config: +

+
+// Inline editor.
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'sourcedialog'
+});
+
+// Classic (iframe-based) editor.
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'sourcedialog',
+	removePlugins: 'sourcearea'
+});
+
+

+ Note that you may want to include removePlugins: 'sourcearea' + in your config when using Sourcedialog in classic editor instances. + This prevents feature redundancy. +

+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+ +
+

This is some sample text. You are using CKEditor.

+
+
+
+
+ + +
+ + + + diff --git a/src/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css b/src/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css new file mode 100644 index 00000000..ce545eec --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css @@ -0,0 +1,70 @@ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 12px; + color: #222; + background-color: #fff; +} + +/* preserved spaces for rtl list item bullets. (#6249)*/ +ol,ul,dl +{ + padding-right:40px; +} + +h1,h2,h3,h4 +{ + font-family: Georgia, Times, serif; +} + +h1.lightBlue +{ + color: #00A6C7; + font-size: 1.8em; + font-weight:normal; +} + +h3.green +{ + color: #739E39; + font-weight:normal; +} + +span.markYellow { background-color: yellow; } +span.markGreen { background-color: lime; } + +img.left +{ + padding: 5px; + margin-right: 5px; + float:left; + border:2px solid #DDD; +} + +img.right +{ + padding: 5px; + margin-right: 5px; + float:right; + border:2px solid #DDD; +} + +a.green +{ + color:#739E39; +} + +table.grey +{ + background-color : #F5F5F5; +} + +table.grey th +{ + background-color : #DDD; +} + +ul.square +{ + list-style-type : square; +} diff --git a/src/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html b/src/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html new file mode 100644 index 00000000..450bc11f --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html @@ -0,0 +1,82 @@ + + + + + + Using Stylesheet Parser Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using the Stylesheet Parser Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Stylesheet Parser (stylesheetparser) plugin that fills + the Styles drop-down list based on the CSS rules available in the document stylesheet. +

+

+ To add a CKEditor instance using the stylesheetparser plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'stylesheetparser'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/tableresize/tableresize.html b/src/lib/ckeditor/samples/plugins/tableresize/tableresize.html new file mode 100644 index 00000000..6dec40d6 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/tableresize/tableresize.html @@ -0,0 +1,104 @@ + + + + + + Using TableResize Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the TableResize Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + TableResize (tableresize) plugin that allows + the user to edit table columns by using the mouse. +

+

+ The TableResize plugin makes it possible to modify table column width. Hover + your mouse over the column border to see the cursor change to indicate that + the column can be resized. Click and drag your mouse to set the desired width. +

+

+ By default the plugin is turned off. To add a CKEditor instance using the + TableResize plugin, insert the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'tableresize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/toolbar/toolbar.html b/src/lib/ckeditor/samples/plugins/toolbar/toolbar.html new file mode 100644 index 00000000..6cf2ddf1 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/toolbar/toolbar.html @@ -0,0 +1,232 @@ + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/src/lib/ckeditor/samples/plugins/uicolor/uicolor.html b/src/lib/ckeditor/samples/plugins/uicolor/uicolor.html new file mode 100644 index 00000000..a6309be0 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/uicolor/uicolor.html @@ -0,0 +1,103 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + + + + +

+ CKEditor Samples » UI Color Plugin +

+
+

+ This sample shows how to use the UI Color picker toolbar button to preview the skin color of the editor. + Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+
+

+ If the uicolor plugin along with the dedicated UIColor + toolbar button is added to CKEditor, the user will also be able to pick the color of the + UI from the color palette available in the UI Color Picker dialog window. +

+

+ To insert a CKEditor instance with the uicolor plugin enabled, + use the following JavaScript call: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'uicolor',
+	toolbar: [ [ 'Bold', 'Italic' ], [ 'UIColor' ] ]
+});
+

Used in themed instance

+

+ Click the UI Color Picker toolbar button to open up a color picker dialog. +

+

+ + +

+

Used in inline instance

+

+ Click the below editable region to display floating toolbar, then click UI Color Picker button. +

+
+

This is some sample text. You are using CKEditor.

+
+ +
+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/src/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html new file mode 100644 index 00000000..174a25f3 --- /dev/null +++ b/src/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -0,0 +1,77 @@ + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/readonly.html b/src/lib/ckeditor/samples/readonly.html new file mode 100644 index 00000000..58f97069 --- /dev/null +++ b/src/lib/ckeditor/samples/readonly.html @@ -0,0 +1,73 @@ + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/src/lib/ckeditor/samples/replacebyclass.html b/src/lib/ckeditor/samples/replacebyclass.html new file mode 100644 index 00000000..6fc3e6fe --- /dev/null +++ b/src/lib/ckeditor/samples/replacebyclass.html @@ -0,0 +1,57 @@ + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/replacebycode.html b/src/lib/ckeditor/samples/replacebycode.html new file mode 100644 index 00000000..e5a4c5ba --- /dev/null +++ b/src/lib/ckeditor/samples/replacebycode.html @@ -0,0 +1,56 @@ + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/sample.css b/src/lib/ckeditor/samples/sample.css new file mode 100644 index 00000000..8fd71aaa --- /dev/null +++ b/src/lib/ckeditor/samples/sample.css @@ -0,0 +1,365 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre +{ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} + +.marker +{ + background-color: Yellow; +} diff --git a/src/lib/ckeditor/samples/sample.js b/src/lib/ckeditor/samples/sample.js new file mode 100644 index 00000000..b25482d3 --- /dev/null +++ b/src/lib/ckeditor/samples/sample.js @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/src/lib/ckeditor/samples/sample_posteddata.php b/src/lib/ckeditor/samples/sample_posteddata.php new file mode 100644 index 00000000..e4869b7c --- /dev/null +++ b/src/lib/ckeditor/samples/sample_posteddata.php @@ -0,0 +1,16 @@ +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.md or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/src/lib/ckeditor/samples/tabindex.html b/src/lib/ckeditor/samples/tabindex.html new file mode 100644 index 00000000..89521668 --- /dev/null +++ b/src/lib/ckeditor/samples/tabindex.html @@ -0,0 +1,75 @@ + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/src/lib/ckeditor/samples/uicolor.html b/src/lib/ckeditor/samples/uicolor.html new file mode 100644 index 00000000..ce4b2a26 --- /dev/null +++ b/src/lib/ckeditor/samples/uicolor.html @@ -0,0 +1,69 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/samples/uilanguages.html b/src/lib/ckeditor/samples/uilanguages.html new file mode 100644 index 00000000..66acca43 --- /dev/null +++ b/src/lib/ckeditor/samples/uilanguages.html @@ -0,0 +1,119 @@ + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/src/lib/ckeditor/samples/xhtmlstyle.html b/src/lib/ckeditor/samples/xhtmlstyle.html new file mode 100644 index 00000000..f219d11d --- /dev/null +++ b/src/lib/ckeditor/samples/xhtmlstyle.html @@ -0,0 +1,231 @@ + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/lib/ckeditor/skins/kama/dialog.css b/src/lib/ckeditor/skins/kama/dialog.css new file mode 100644 index 00000000..31152d4c --- /dev/null +++ b/src/lib/ckeditor/skins/kama/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/dialog_ie.css b/src/lib/ckeditor/skins/kama/dialog_ie.css new file mode 100644 index 00000000..359d4574 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/dialog_ie7.css b/src/lib/ckeditor/skins/kama/dialog_ie7.css new file mode 100644 index 00000000..3973bd10 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_single_page .cke_dialog_footer{margin-top:22px}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{top:33px}.cke_dialog_footer_buttons{position:static;margin-top:7px;margin-right:24px}.cke_rtl .cke_dialog_footer_buttons{margin-right:0;margin-left:24px}.cke_rtl .cke_dialog_close_button{margin-top:0;position:absolute;left:10px;top:5px}span.cke_dialog_ui_buttonm{margin:2px 0}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{position:absolute}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{height:14px;position:relative} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/dialog_ie8.css b/src/lib/ckeditor/skins/kama/dialog_ie8.css new file mode 100644 index 00000000..ddbd6012 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_rtl .cke_dialog_footer_buttons td{padding-left:2px}.cke_rtl .cke_dialog_close_button{left:8px} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/dialog_iequirks.css b/src/lib/ckeditor/skins/kama/dialog_iequirks.css new file mode 100644 index 00000000..04ba2ee5 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_dialog_page_contents{position:absolute}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_dialog_close_button{top:27px;background-image:url(images/sprites_ie6.png)}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{display:block;top:33px;margin-top:33px}.cke_rtl .cke_dialog_ui_labeled_content{_width:95%}a.cke_dialog_ui_button{background:0;padding:0}a.cke_dialog_ui_button span{width:70px;padding:5px 15px;text-align:center;color:#3b3b1f;background:#53d9f0 none;display:inline-block;cursor:default}a.cke_dialog_ui_button_ok span{background-image:none;background-color:#b8e834;margin-right:0}a.cke_dialog_ui_button_cancel span{background-image:none;background-color:#f65d20;margin-right:0}a.cke_dialog_ui_button:hover span,a.cke_dialog_ui_button:focus span,a.cke_dialog_ui_button:active span{background-image:none;background:#f7a922}div.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{width:99%}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid red!important;filter:chroma(color=red)}.cke_dialog_ui_focused,.cke_btn_over{border:1px dotted #696969!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/editor.css b/src/lib/ckeditor/skins/kama/editor.css new file mode 100644 index 00000000..8ac84cbf --- /dev/null +++ b/src/lib/ckeditor/skins/kama/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/editor_ie.css b/src/lib/ckeditor/skins/kama/editor_ie.css new file mode 100644 index 00000000..f9059430 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/editor_ie7.css b/src/lib/ckeditor/skins/kama/editor_ie7.css new file mode 100644 index 00000000..e47ea631 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:22px}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle;padding-bottom:8px}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:3px;height:5px;padding:0;position:absolute;right:8px;top:11px;background-position:0 -1411px}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -1390px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/editor_ie8.css b/src/lib/ckeditor/skins/kama/editor_ie8.css new file mode 100644 index 00000000..926a9ceb --- /dev/null +++ b/src/lib/ckeditor/skins/kama/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/editor_iequirks.css b/src/lib/ckeditor/skins/kama/editor_iequirks.css new file mode 100644 index 00000000..809e90f5 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *{float:none}.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,.cke_rtl .cke_button_arrow{vertical-align:top;display:inline-block}.cke_toolgroup,.cke_combo_button,.cke_combo_arrow,.cke_button_arrow,.cke_toolbox_collapser,.cke_resizer{background-image:url(images/sprites_ie6.png)}.cke_toolgroup{background-color:#fff;display:inline-block;padding:2px}.cke_inner{padding-top:2px;background-color:#d3d3d3;background-image:none}.cke_toolbar{margin:2px 0}.cke_rtl .cke_toolbar{margin-bottom:-1px;margin-top:-1px}.cke_toolbar_separator{vertical-align:top}.cke_toolbox{width:100%;float:left;padding-bottom:4px}.cke_rtl .cke_toolbox{margin-top:2px;margin-bottom:-4px}.cke_combo_button{background-color:#fff}.cke_rtl .cke_combo_button{padding-right:6px;padding-left:0}.cke_combo_text{line-height:21px}.cke_ltr .cke_combo_open{margin-left:-3px}.cke_combo_arrow{background-position:2px -1467px;margin:2px 0 0;border:0;width:8px;height:13px}.cke_rtl .cke_button_arrow{background-position-x:0}.cke_toolbox_collapser .cke_arrow{display:block;visibility:hidden;font-size:0;color:transparent;border:0}.cke_button_arrow{background-position:2px -1467px;margin:0;border:0;width:8px;height:15px}.cke_ltr .cke_button_arrow{background-position:0 -1467px;margin-left:-3px}.cke_toolbox_collapser{background-position:3px -1367px}.cke_toolbox_collapser_min{background-position:4px -1387px;margin:2px 0 0}.cke_rtl .cke_toolbox_collapser_min{background-position:4px -1408px}.cke_resizer{background-position:0 -1427px;width:12px;height:12px;border:0;margin:9px 0 0;vertical-align:baseline}.cke_dialog_tabs{position:absolute;top:38px;left:0}.cke_dialog_body{clear:both;margin-top:20px}a.cke_dialog_ui_button{background:url(images/sprites.png) repeat_x 0 _ 1069px}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1179px}a.cke_dialog_ui_button_ok{background:url(images/sprites.png) repeat_x 0 _ 1144px}a.cke_dialog_ui_button_cancel{background:url(images/sprites.png) repeat_x 0 _ 1105px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{background-image:none}.cke_menubutton_label{height:25px}.cke_menuarrow{background-image:url(images/sprites_ie6.png)}.cke_menuitem .cke_icon,.cke_button_icon,.cke_menuitem .cke_disabled .cke_icon,.cke_button_disabled .cke_button_icon{filter:""}.cke_menuseparator{font-size:0}.cke_colorbox{font-size:0}.cke_source{white-space:normal} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/kama/icons.png b/src/lib/ckeditor/skins/kama/icons.png new file mode 100644 index 00000000..a041850a Binary files /dev/null and b/src/lib/ckeditor/skins/kama/icons.png differ diff --git a/src/lib/ckeditor/skins/kama/icons_hidpi.png b/src/lib/ckeditor/skins/kama/icons_hidpi.png new file mode 100644 index 00000000..1581f600 Binary files /dev/null and b/src/lib/ckeditor/skins/kama/icons_hidpi.png differ diff --git a/src/lib/ckeditor/skins/kama/images/dialog_sides.gif b/src/lib/ckeditor/skins/kama/images/dialog_sides.gif new file mode 100644 index 00000000..b5d9a532 Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/dialog_sides.gif differ diff --git a/src/lib/ckeditor/skins/kama/images/dialog_sides.png b/src/lib/ckeditor/skins/kama/images/dialog_sides.png new file mode 100644 index 00000000..2df7a15b Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/dialog_sides.png differ diff --git a/src/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png b/src/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png new file mode 100644 index 00000000..b179935f Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png differ diff --git a/src/lib/ckeditor/skins/kama/images/mini.gif b/src/lib/ckeditor/skins/kama/images/mini.gif new file mode 100644 index 00000000..babc31a5 Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/mini.gif differ diff --git a/src/lib/ckeditor/skins/kama/images/sprites.png b/src/lib/ckeditor/skins/kama/images/sprites.png new file mode 100644 index 00000000..5fc409d1 Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/sprites.png differ diff --git a/src/lib/ckeditor/skins/kama/images/sprites_ie6.png b/src/lib/ckeditor/skins/kama/images/sprites_ie6.png new file mode 100644 index 00000000..070a8cee Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/sprites_ie6.png differ diff --git a/src/lib/ckeditor/skins/kama/images/toolbar_start.gif b/src/lib/ckeditor/skins/kama/images/toolbar_start.gif new file mode 100644 index 00000000..94aa4abc Binary files /dev/null and b/src/lib/ckeditor/skins/kama/images/toolbar_start.gif differ diff --git a/src/lib/ckeditor/skins/kama/readme.md b/src/lib/ckeditor/skins/kama/readme.md new file mode 100644 index 00000000..ac304db8 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/readme.md @@ -0,0 +1,40 @@ +"Kama" Skin +==================== + +"Kama" is the default skin of CKEditor 3.x. +It's been ported to CKEditor 4 and fully featured. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/src/lib/ckeditor/skins/kama/skin.js b/src/lib/ckeditor/skins/kama/skin.js new file mode 100644 index 00000000..5d2c0959 --- /dev/null +++ b/src/lib/ckeditor/skins/kama/skin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.skin.name="kama";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8"; +CKEDITOR.skin.chameleon=function(e,d){function b(a){return"background:-moz-linear-gradient("+a+");background:-webkit-linear-gradient("+a+");background:-o-linear-gradient("+a+");background:-ms-linear-gradient("+a+");background:linear-gradient("+a+");"}var c,a="."+e.id;"editor"==d?c=a+" .cke_inner,"+a+" .cke_dialog_tab{background-color:$color;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to($color));"+b("top,#fff -15px,$color 40px")+"}"+a+" .cke_toolgroup{background:-webkit-gradient(linear,0 0,0 100,from(#fff),to($color));"+ +b("top,#fff,$color 100px")+"}"+a+" .cke_combo_button{background:-webkit-gradient(linear, left bottom, left -100, from(#fff), to($color));"+b("bottom,#fff,$color 100px")+"}"+a+" .cke_dialog_contents,"+a+" .cke_dialog_footer{background-color:$color !important;}"+a+" .cke_dialog_tab:hover,"+a+" .cke_dialog_tab:active,"+a+" .cke_dialog_tab:focus,"+a+" .cke_dialog_tab_selected{background-color:$color;background-image:none;}":"panel"==d&&(c=".cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_label,.cke_menubutton:focus .cke_menubutton_label,.cke_menubutton:active .cke_menubutton_label{background-color:$color !important;}.cke_menubutton_disabled:hover .cke_menubutton_label,.cke_menubutton_disabled:focus .cke_menubutton_label,.cke_menubutton_disabled:active .cke_menubutton_label{background-color: transparent !important;}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton_disabled .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menuseparator{background-color:$color !important;}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:$color !important;}"); +return c}; \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/dialog.css b/src/lib/ckeditor/skins/moono/dialog.css new file mode 100644 index 00000000..1504938d --- /dev/null +++ b/src/lib/ckeditor/skins/moono/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/dialog_ie.css b/src/lib/ckeditor/skins/moono/dialog_ie.css new file mode 100644 index 00000000..93cf7aed --- /dev/null +++ b/src/lib/ckeditor/skins/moono/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/dialog_ie7.css b/src/lib/ckeditor/skins/moono/dialog_ie7.css new file mode 100644 index 00000000..4b98ae57 --- /dev/null +++ b/src/lib/ckeditor/skins/moono/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/dialog_ie8.css b/src/lib/ckeditor/skins/moono/dialog_ie8.css new file mode 100644 index 00000000..4f2edca9 --- /dev/null +++ b/src/lib/ckeditor/skins/moono/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/dialog_iequirks.css b/src/lib/ckeditor/skins/moono/dialog_iequirks.css new file mode 100644 index 00000000..bb36a95d --- /dev/null +++ b/src/lib/ckeditor/skins/moono/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/editor.css b/src/lib/ckeditor/skins/moono/editor.css new file mode 100644 index 00000000..c21d8f8d --- /dev/null +++ b/src/lib/ckeditor/skins/moono/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/editor_gecko.css b/src/lib/ckeditor/skins/moono/editor_gecko.css new file mode 100644 index 00000000..7aa2f32c --- /dev/null +++ b/src/lib/ckeditor/skins/moono/editor_gecko.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/editor_ie.css b/src/lib/ckeditor/skins/moono/editor_ie.css new file mode 100644 index 00000000..9afe7e92 --- /dev/null +++ b/src/lib/ckeditor/skins/moono/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/editor_ie7.css b/src/lib/ckeditor/skins/moono/editor_ie7.css new file mode 100644 index 00000000..ba856696 --- /dev/null +++ b/src/lib/ckeditor/skins/moono/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/editor_ie8.css b/src/lib/ckeditor/skins/moono/editor_ie8.css new file mode 100644 index 00000000..c4f4a1af --- /dev/null +++ b/src/lib/ckeditor/skins/moono/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/editor_iequirks.css b/src/lib/ckeditor/skins/moono/editor_iequirks.css new file mode 100644 index 00000000..3de6bfdb --- /dev/null +++ b/src/lib/ckeditor/skins/moono/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0} \ No newline at end of file diff --git a/src/lib/ckeditor/skins/moono/icons.png b/src/lib/ckeditor/skins/moono/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/src/lib/ckeditor/skins/moono/icons.png differ diff --git a/src/lib/ckeditor/skins/moono/icons_hidpi.png b/src/lib/ckeditor/skins/moono/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/icons_hidpi.png differ diff --git a/src/lib/ckeditor/skins/moono/images/arrow.png b/src/lib/ckeditor/skins/moono/images/arrow.png new file mode 100644 index 00000000..d72b5f3b Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/arrow.png differ diff --git a/src/lib/ckeditor/skins/moono/images/close.png b/src/lib/ckeditor/skins/moono/images/close.png new file mode 100644 index 00000000..6a04ab52 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/close.png differ diff --git a/src/lib/ckeditor/skins/moono/images/hidpi/close.png b/src/lib/ckeditor/skins/moono/images/hidpi/close.png new file mode 100644 index 00000000..e406c2c3 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/hidpi/close.png differ diff --git a/src/lib/ckeditor/skins/moono/images/hidpi/lock-open.png b/src/lib/ckeditor/skins/moono/images/hidpi/lock-open.png new file mode 100644 index 00000000..edbd12f3 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/hidpi/lock-open.png differ diff --git a/src/lib/ckeditor/skins/moono/images/hidpi/lock.png b/src/lib/ckeditor/skins/moono/images/hidpi/lock.png new file mode 100644 index 00000000..1b87bbb7 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/hidpi/lock.png differ diff --git a/src/lib/ckeditor/skins/moono/images/hidpi/refresh.png b/src/lib/ckeditor/skins/moono/images/hidpi/refresh.png new file mode 100644 index 00000000..c6c2b86e Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/hidpi/refresh.png differ diff --git a/src/lib/ckeditor/skins/moono/images/lock-open.png b/src/lib/ckeditor/skins/moono/images/lock-open.png new file mode 100644 index 00000000..04769877 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/lock-open.png differ diff --git a/src/lib/ckeditor/skins/moono/images/lock.png b/src/lib/ckeditor/skins/moono/images/lock.png new file mode 100644 index 00000000..c5a14400 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/lock.png differ diff --git a/src/lib/ckeditor/skins/moono/images/refresh.png b/src/lib/ckeditor/skins/moono/images/refresh.png new file mode 100644 index 00000000..1ff63c30 Binary files /dev/null and b/src/lib/ckeditor/skins/moono/images/refresh.png differ diff --git a/src/lib/ckeditor/skins/moono/readme.md b/src/lib/ckeditor/skins/moono/readme.md new file mode 100644 index 00000000..d086fe9b --- /dev/null +++ b/src/lib/ckeditor/skins/moono/readme.md @@ -0,0 +1,51 @@ +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/src/lib/ckeditor/styles.js b/src/lib/ckeditor/styles.js new file mode 100644 index 00000000..18e4316b --- /dev/null +++ b/src/lib/ckeditor/styles.js @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/src/lib/d3/.bower.json b/src/lib/d3/.bower.json new file mode 100644 index 00000000..5c7a0fde --- /dev/null +++ b/src/lib/d3/.bower.json @@ -0,0 +1,35 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ], + "homepage": "https://github.com/mbostock/d3", + "_release": "3.4.11", + "_resolution": { + "type": "version", + "tag": "v3.4.11", + "commit": "9dbb2266543a6c998c3552074240efb36e4c7cab" + }, + "_source": "git://github.com/mbostock/d3.git", + "_target": "~3.4.11", + "_originalSource": "d3", + "_direct": true +} \ No newline at end of file diff --git a/src/lib/d3/.spmignore b/src/lib/d3/.spmignore new file mode 100644 index 00000000..0a673041 --- /dev/null +++ b/src/lib/d3/.spmignore @@ -0,0 +1,4 @@ +bin +lib +src +test diff --git a/src/lib/d3/CONTRIBUTING.md b/src/lib/d3/CONTRIBUTING.md new file mode 100644 index 00000000..76126d5f --- /dev/null +++ b/src/lib/d3/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing + +If you’re looking for ways to contribute, please [peruse open issues](https://github.com/mbostock/d3/issues?milestone=&page=1&state=open). The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed. + +Before submitting a pull request, consider implementing a live example first, say using [bl.ocks.org](http://bl.ocks.org). Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the d3-js Google group. + +If your proposed feature does not involve changing core functionality, consider submitting it instead as a [D3 plugin](https://github.com/d3/d3-plugins). New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core. + +To contribute new documentation or add examples to the gallery, just [edit the Wiki](https://github.com/mbostock/d3/wiki)! + +## How to Submit a Pull Request + +1. Click the “Fork” button to create your personal fork of the D3 repository. + +2. After cloning your fork of the D3 repository in the terminal, run `npm install` to install D3’s dependencies. + +3. Create a new branch for your new feature. For example: `git checkout -b my-awesome-feature`. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. + +4. The `d3.js` and `d3.min.js` files are built from source files in the `src` directory. _Do not edit `d3.js` directly._ Instead, edit the source files, and then run `make` to build the generated files. + +5. Use `make test` to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. + +6. Sign D3’s [Individual Contributor License Agreement](https://docs.google.com/forms/d/1CzjdBKtDuA8WeuFJinadx956xLQ4Xriv7-oDvXnZMaI/viewform). Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute. + +7. Submit your pull request, and good luck! diff --git a/src/lib/d3/LICENSE b/src/lib/d3/LICENSE new file mode 100644 index 00000000..83013469 --- /dev/null +++ b/src/lib/d3/LICENSE @@ -0,0 +1,26 @@ +Copyright (c) 2010-2014, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/lib/d3/README.md b/src/lib/d3/README.md new file mode 100644 index 00000000..eb334e27 --- /dev/null +++ b/src/lib/d3/README.md @@ -0,0 +1,9 @@ +# Data-Driven Documents + + + +**D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation. + +Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) + +For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). diff --git a/src/lib/d3/bower.json b/src/lib/d3/bower.json new file mode 100644 index 00000000..9f5968d2 --- /dev/null +++ b/src/lib/d3/bower.json @@ -0,0 +1,24 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ] +} diff --git a/src/lib/d3/composer.json b/src/lib/d3/composer.json new file mode 100644 index 00000000..bfc5b7b5 --- /dev/null +++ b/src/lib/d3/composer.json @@ -0,0 +1,19 @@ +{ + "name": "mbostock/d3", + "description": "A small, free JavaScript library for manipulating documents based on data.", + "keywords": ["dom", "svg", "visualization", "js", "canvas"], + "homepage": "http://d3js.org/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Mike Bostock", + "homepage": "http://bost.ocks.org/mike" + } + ], + "support": { + "issues": "https://github.com/mbostock/d3/issues", + "wiki": "https://github.com/mbostock/d3/wiki", + "API": "https://github.com/mbostock/d3/wiki/API-Reference", + "source": "https://github.com/mbostock/d3" + } +} diff --git a/src/lib/d3/d3.js b/src/lib/d3/d3.js new file mode 100644 index 00000000..82287776 --- /dev/null +++ b/src/lib/d3/d3.js @@ -0,0 +1,9233 @@ +!function() { + var d3 = { + version: "3.4.11" + }; + if (!Date.now) Date.now = function() { + return +new Date(); + }; + var d3_arraySlice = [].slice, d3_array = function(list) { + return d3_arraySlice.call(list); + }; + var d3_document = document, d3_documentElement = d3_document.documentElement, d3_window = window; + try { + d3_array(d3_documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } + try { + d3_document.createElement("div").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ""); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ""); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; + } + d3.ascending = d3_ascending; + function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; + }; + d3.max = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; + }; + d3.extent = function(array, f) { + var i = -1, n = array.length, a, b, c; + if (arguments.length === 1) { + while (++i < n && !((a = c = array[i]) != null && a <= a)) a = c = undefined; + while (++i < n) if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n && !((a = c = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [ a, c ]; + }; + d3.sum = function(array, f) { + var s = 0, n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + return s; + }; + function d3_number(x) { + return x != null && !isNaN(x); + } + d3.mean = function(array, f) { + var s = 0, n = array.length, a, i = -1, j = n; + if (arguments.length === 1) { + while (++i < n) if (d3_number(a = array[i])) s += a; else --j; + } else { + while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j; + } + return j ? s / j : undefined; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + if (arguments.length > 1) array = array.map(f); + array = array.filter(d3_number); + return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined; + }; + function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1; + } + return lo; + } + }; + } + var d3_bisect = d3_bisector(d3_ascending); + d3.bisectLeft = d3_bisect.left; + d3.bisect = d3.bisectRight = d3_bisect.right; + d3.bisector = function(f) { + return d3_bisector(f.length === 1 ? function(d, x) { + return d3_ascending(f(d), x); + } : f); + }; + d3.shuffle = function(array) { + var m = array.length, t, i; + while (m) { + i = Math.random() * m-- | 0; + t = array[m], array[m] = array[i], array[i] = t; + } + return array; + }; + d3.permute = function(array, indexes) { + var i = indexes.length, permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.pairs = function(array) { + var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; + return pairs; + }; + d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { + zip[j] = arguments[j][i]; + } + } + return zips; + }; + function d3_zipLength(d) { + return d.length; + } + d3.transpose = function(matrix) { + return d3.zip.apply(d3, matrix); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + var n = arrays.length, m, i = -1, j = 0, merged, array; + while (++i < n) j += arrays[i].length; + merged = new Array(j); + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + return merged; + }; + var abs = Math.abs; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error("infinite range"); + var range = [], k = d3_range_integerScale(abs(step)), i = -1, j; + start *= k, stop *= k, step *= k; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while (x * k % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + try { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } catch (e) { + ctor.prototype = properties; + } + } + d3.map = function(object) { + var map = new d3_Map(); + if (object instanceof d3_Map) object.forEach(function(key, value) { + map.set(key, value); + }); else for (var key in object) map.set(key, object[key]); + return map; + }; + function d3_Map() {} + d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this[d3_map_prefix + key]; + }, + set: function(key, value) { + return this[d3_map_prefix + key] = value; + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + this.forEach(function(key, value) { + values.push(value); + }); + return values; + }, + entries: function() { + var entries = []; + this.forEach(function(key, value) { + entries.push({ + key: key, + value: value + }); + }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) f.call(this, key.substring(1), this[key]); + } + }); + var d3_map_prefix = "\x00", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); + function d3_map_has(key) { + return d3_map_prefix + key in this; + } + function d3_map_remove(key) { + key = d3_map_prefix + key; + return key in this && delete this[key]; + } + function d3_map_keys() { + var keys = []; + this.forEach(function(key) { + keys.push(key); + }); + return keys; + } + function d3_map_size() { + var size = 0; + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) ++size; + return size; + } + function d3_map_empty() { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) return false; + return true; + } + d3.nest = function() { + var nest = {}, keys = [], sortKeys = [], sortValues, rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; + var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(object = array[i]))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [ object ]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + nest.key = function(d) { + keys.push(d); + return nest; + }; + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; + }; + function d3_Set() {} + d3_class(d3_Set, { + has: d3_map_has, + add: function(value) { + this[d3_map_prefix + value] = true; + return value; + }, + remove: function(value) { + value = d3_map_prefix + value; + return value in this && delete this[value]; + }, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var value in this) if (value.charCodeAt(0) === d3_map_prefixCode) f.call(this, value.substring(1)); + } + }); + d3.behavior = {}; + d3.rebind = function(target, source) { + var i = 1, n = arguments.length, method; + while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.substring(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; + } + } + var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ]; + function d3_noop() {} + d3.dispatch = function() { + var dispatch = new d3_dispatch(), i = -1, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), name = ""; + if (i >= 0) { + name = type.substring(i + 1); + type = type.substring(0, i); + } + if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } + }; + function d3_dispatch_event(dispatch) { + var listeners = [], listenerByName = new d3_Map(); + function event() { + var z = listeners, i = -1, n = z.length, l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; + } + event.on = function(name, listener) { + var l = listenerByName.get(name), i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) listeners.push(listenerByName.set(name, { + on: listener + })); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventPreventDefault() { + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), i = 0, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + var d3_subclass = {}.__proto__ ? function(object, prototype) { + object.__proto__ = prototype; + } : function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; + function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, d3_selectMatcher = d3_documentElement.matches || d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + if (typeof Sizzle === "function") { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3_selectionRoot; + }; + var d3_selectionPrototype = d3.selection.prototype = []; + d3_selectionPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, group, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i, j)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return typeof selector === "function" ? selector : function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], subgroup, node; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); + subgroup.parentNode = node; + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return typeof selector === "function" ? selector : function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsPrefix = { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(":"), prefix = name; + if (i >= 0) { + prefix = name.substring(0, i); + name = name.substring(i + 1); + } + return d3_nsPrefix.hasOwnProperty(prefix) ? { + space: d3_nsPrefix[prefix], + local: name + } : name; + } + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); + } + return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); + } + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); + } + function d3_selection_classes(name) { + return (name + "").trim().split(/^|\s+/); + } + function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + return typeof value === "function" ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); + priority = ""; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); + } + return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; else this[name] = x; + } + return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + } : value == null ? function() { + this.textContent = ""; + } : function() { + this.textContent = value; + }) : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + } : value == null ? function() { + this.innerHTML = ""; + } : function() { + this.innerHTML = value; + }) : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); + }); + }; + function d3_selection_creator(name) { + return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? function() { + return this.ownerDocument.createElementNS(name.space, name.local); + } : function() { + return this.ownerDocument.createElementNS(this.namespaceURI, name); + }; + } + d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); + }); + }; + d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); + }; + d3_selectionPrototype.data = function(value, key) { + var i = -1, n = this.length, group, node; + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; + } + } + return value; + } + function bind(group, groupData) { + var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; + for (i = -1; ++i < n; ) { + keyValue = key.call(node = group[i], node.__data__, i); + if (nodeByKeyValue.has(keyValue)) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues.push(keyValue); + } + for (i = -1; ++i < m; ) { + keyValue = key.call(groupData, nodeData = groupData[i], i); + if (node = nodeByKeyValue.get(keyValue)) { + updateNodes[i] = node; + node.__data__ = nodeData; + } else if (!dataByKeyValue.has(keyValue)) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + dataByKeyValue.set(keyValue, nodeData); + nodeByKeyValue.remove(keyValue); + } + for (i = -1; ++i < n; ) { + if (nodeByKeyValue.has(keyValues[i])) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (;i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (;i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length ? this.property("__data__", value) : this.property("__data__"); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + d3_selectionPrototype.size = function() { + var n = 0; + this.each(function() { + ++n; + }); + return n; + }; + function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.call = d3_selectionPrototype.call; + d3_selection_enterPrototype.size = d3_selectionPrototype.size; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, upgroup, group, node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); + }; + function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, n = group.length, node; + if (j != j0) j0 = j, i0 = 0; + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n) ; + return node; + }; + } + d3_selectionPrototype.transition = function() { + var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || { + time: Date.now(), + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) d3_transitionNode(node, i, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, id); + }; + d3_selectionPrototype.interrupt = function() { + return this.each(d3_selection_interrupt); + }; + function d3_selection_interrupt() { + var lock = this.__transition__; + if (lock) ++lock.active; + } + d3.select = function(node) { + var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ]; + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + d3.selectAll = function(nodes) { + var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + var d3_selectionRoot = d3.select(d3_documentElement); + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + if (n < 2) return (n = this.node()["__on" + type]) && n._; + capture = false; + } + return this.each(d3_selection_on(type, listener, capture)); + }; + function d3_selection_on(type, listener, capture) { + var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; + if (i > 0) type = type.substring(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; + } + var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }); + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; + } + function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, related = e.relatedTarget; + if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) { + l.call(target, e); + } + }; + } + var d3_event_dragSelect = "onselectstart" in d3_document ? null : d3_vendorSymbol(d3_documentElement.style, "userSelect"), d3_event_dragId = 0; + function d3_event_dragSuppress() { + var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); + if (d3_event_dragSelect) { + var style = d3_documentElement.style, select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = "none"; + } + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { + function off() { + w.on(click, null); + } + w.on(click, function() { + d3_eventPreventDefault(); + off(); + }, true); + setTimeout(off, 0); + } + }; + } + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, + point.y = e.clientY; + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [ point.x, point.y ]; + } + var rect = container.getBoundingClientRect(); + return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; + } + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, "touchmove", "touchend"); + function drag() { + this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); + } + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId); + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; + } else { + dragOffset = [ 0, 0 ]; + } + dispatch({ + type: "dragstart" + }); + function moved() { + var position1 = position(parent, dragId), dx, dy; + if (!position1) return; + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + dispatch({ + type: "drag", + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + function ended() { + if (!position(parent, dragId)) return; + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged && d3.event.target === target); + dispatch({ + type: "dragend" + }); + } + }; + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, "on"); + }; + function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; + } + function d3_behavior_dragTouchSubject() { + return d3.event.target; + } + function d3_behavior_dragMouseSubject() { + return d3_window; + } + var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); + } + function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); + } + function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); + } + function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; + } + function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; + } + function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); + } + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; + } + var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; + d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2]; + var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ; + function interpolate(t) { + var s = t * S; + if (dr) { + var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; + } + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ]; + } + interpolate.duration = S * 1e3; + return interpolate; + }; + d3.behavior.zoom = function() { + var view = { + x: 0, + y: 0, + k: 1 + }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + function zoom(g) { + g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); + } + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), view1 = view; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.zoom", function() { + view = this.__chart__ || { + x: 0, + y: 0, + k: 1 + }; + zoomstarted(dispatch); + }).tween("zoom:zoom", function() { + var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); + return function(t) { + var l = i(t), k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }).each("end.zoom", function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + zoom.translate = function(_) { + if (!arguments.length) return [ view.x, view.y ]; + view = { + x: +_[0], + y: +_[1], + k: view.k + }; + rescale(); + return zoom; + }; + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { + x: view.x, + y: view.y, + k: +_ + }; + rescale(); + return zoom; + }; + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ]; + return zoom; + }; + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + function location(p) { + return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ]; + } + function point(l) { + return [ l[0] * view.k + view.x, l[1] * view.k + view.y ]; + } + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + function rescale() { + if (x1) x1.domain(x0.range().map(function(x) { + return (x - view.x) / view.k; + }).map(x0.invert)); + if (y1) y1.domain(y0.range().map(function(y) { + return (y - view.y) / view.k; + }).map(y0.invert)); + } + function zoomstarted(dispatch) { + dispatch({ + type: "zoomstart" + }); + } + function zoomed(dispatch) { + rescale(); + dispatch({ + type: "zoom", + scale: view.k, + translate: [ view.x, view.y ] + }); + } + function zoomended(dispatch) { + dispatch({ + type: "zoomend" + }); + } + function mousedowned() { + var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged && d3.event.target === target); + zoomended(dispatch); + } + } + function touchstarted() { + var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + started(); + zoomstarted(dispatch); + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) locations0[t.identifier] = location(t); + }); + return touches; + } + function started() { + var target = d3.event.target; + d3.select(target).on(touchmove, moved).on(touchend, ended); + targets.push(target); + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + var touches = relocate(), now = Date.now(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0], l = locations0[p.identifier]; + scaleTo(view.k * 2); + translateTo(p, l); + d3_eventPreventDefault(); + zoomed(dispatch); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + function moved() { + var touches = d3.touches(that), p0, l0, p1, l1; + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if (l1 = locations0[p1.identifier]) { + if (l0) break; + p0 = p1, l0 = l1; + } + } + if (l1) { + var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; + l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; + scaleTo(scale1 * scale0); + } + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + function ended() { + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + for (var identifier in locations0) { + return void relocate(); + } + } + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), + d3_selection_interrupt.call(this), zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + function dblclicked() { + var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2; + zoomstarted(dispatch); + scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); + translateTo(p, l); + zoomed(dispatch); + zoomended(dispatch); + } + return d3.rebind(zoom, event, "on"); + }; + var d3_behavior_zoomInfinity = [ 0, Infinity ]; + var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { + return this.rgb() + ""; + }; + d3.hsl = d3_hsl; + function d3_hsl(h, s, l) { + return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); + } + var d3_hslPrototype = d3_hsl.prototype = new d3_color(); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + } + d3.hcl = d3_hcl; + function d3_hcl(h, c, l) { + return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); + } + var d3_hclPrototype = d3_hcl.prototype = new d3_color(); + d3_hclPrototype.brighter = function(k) { + return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.darker = function(k) { + return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); + } + d3.lab = d3_lab; + function d3_lab(l, a, b) { + return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); + } + var d3_lab_K = 18; + var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; + var d3_labPrototype = d3_lab.prototype = new d3_color(); + d3_labPrototype.brighter = function(k) { + return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.darker = function(k) { + return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); + } + function d3_lab_hcl(l, a, b) { + return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); + } + function d3_lab_xyz(x) { + return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; + } + function d3_xyz_lab(x) { + return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; + } + function d3_xyz_rgb(r) { + return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); + } + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); + } + function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); + } + function d3_rgbString(value) { + return d3_rgbNumber(value) + ""; + } + var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + var r = this.r, g = this.g, b = this.b, i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); + }; + d3_rgbPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); + } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, g = 0, b = 0, m1, m2, color; + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": + { + return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); + } + + case "rgb": + { + return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); + } + } + } + if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b); + if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.substring(1), 16))) { + if (format.length === 4) { + r = (color & 3840) >> 4; + r = r >> 4 | r; + g = color & 240; + g = g >> 4 | g; + b = color & 15; + b = b << 4 | b; + } else if (format.length === 7) { + r = (color & 16711680) >> 16; + g = (color & 65280) >> 8; + b = color & 255; + } + } + return rgb(r, g, b); + } + function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return new d3_hsl(h, s, l); + } + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); + } + function d3_rgb_xyz(r) { + return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); + } + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; + } + var d3_rgb_names = d3.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); + }); + function d3_functor(v) { + return typeof v === "function" ? v : function() { + return v; + }; + } + d3.functor = d3_functor; + function d3_identity(d) { + return d; + } + d3.xhr = d3_xhrType(d3_identity); + function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, + mimeType = null; + return d3_xhr(url, mimeType, response, callback); + }; + } + function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; + if (d3_window.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); + "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }; + function respond() { + var status = request.status, result; + if (!status && request.responseText || status >= 200 && status < 300 || status === 304) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } + } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; else headers[name] = value + ""; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + [ "get", "post" ].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) xhr.on("error", callback).on("load", function(request) { + callback(null, request); + }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, "on"); + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); + } + function d3_xhr_fixCallback(callback) { + return callback.length === 1 ? function(error, request) { + callback(error == null ? request : null); + } : callback; + } + d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) callback = row, row = null; + var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback); + xhr.row = function(_) { + return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; + }; + return xhr; + } + function response(request) { + return dsv.parse(request.responseText); + } + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function("d", "return {" + row.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "]"; + }).join(",") + "}"); + o = f ? function(row, i) { + return f(a(row), i); + } : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; + function token() { + if (I >= N) return EOF; + if (eol) return eol = false, EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), k = 1; + if (c === 10) eol = true; else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.substring(j, I - k); + } + return text.substring(j); + } + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && !(a = f(a, n++))) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { + return fields.map(function(field) { + return formatValue(row[field]); + }).join(delimiter); + })).join("\n"); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join("\n"); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + }; + d3.csv = d3.dsv(",", "text/csv"); + d3.tsv = d3.dsv(" ", "text/tab-separated-values"); + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } + }; + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, "requestAnimationFrame")] || function(callback) { + setTimeout(callback, 17); + }; + d3.timer = function(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + var time = then + delay, timer = { + c: callback, + t: time, + f: false, + n: null + }; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + }; + function d3_timer_step() { + var now = d3_timer_mark(), delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + } + d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); + }; + function d3_timer_mark() { + var now = Date.now(); + d3_timer_active = d3_timer_queueHead; + while (d3_timer_active) { + if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t); + d3_timer_active = d3_timer_active.n; + } + return now; + } + function d3_timer_sweep() { + var t0, t1 = d3_timer_queueHead, time = Infinity; + while (t1) { + if (t1.f) { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; + } else { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } + } + d3_timer_queueTail = t0; + return time; + } + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); + } + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if (value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { + return d / k; + } : function(d) { + return d * k; + }, + symbol: d + }; + } + function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) { + var i = value.length, t = [], j = 0, g = locale_grouping[0]; + while (i > 0 && g > 0) { + t.push(value.substring(i -= g, i + g)); + g = locale_grouping[j = (j + 1) % locale_grouping.length]; + } + return t.reverse().join(locale_thousands); + } : d3_identity; + return function(specifier) { + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false; + if (precision) precision = +precision.substring(1); + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + switch (type) { + case "n": + comma = true; + type = "g"; + break; + + case "%": + scale = 100; + suffix = "%"; + type = "f"; + break; + + case "p": + scale = 100; + suffix = "%"; + type = "r"; + break; + + case "b": + case "o": + case "x": + case "X": + if (symbol === "#") prefix = "0" + type.toLowerCase(); + + case "c": + case "d": + integer = true; + precision = 0; + break; + + case "s": + scale = -1; + type = "r"; + break; + } + if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1]; + if (type == "r" && !precision) type = "g"; + if (precision != null) { + if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); + } + type = d3_format_types.get(type) || d3_format_typeDefault; + var zcomma = zfill && comma; + return function(value) { + var fullSuffix = suffix; + if (integer && value % 1) return ""; + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; + if (scale < 0) { + var unit = d3.formatPrefix(value, precision); + value = unit.scale(value); + fullSuffix = unit.symbol + suffix; + } else { + value *= scale; + } + value = type(value, precision); + var i = value.lastIndexOf("."), before = i < 0 ? value : value.substring(0, i), after = i < 0 ? "" : locale_decimal + value.substring(i + 1); + if (!zfill && comma) before = formatGroup(before); + var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; + if (zcomma) before = formatGroup(padding + before); + negative += prefix; + value = before + after; + return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; + }; + }; + } + var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); + } + }); + function d3_format_typeDefault(x) { + return x + ""; + } + var d3_time = d3.time = {}, d3_date = Date; + function d3_date_utc() { + this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); + } + d3_date_utc.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step(date = local(new d3_date(date - 1)), 1); + return date; + } + function offset(date, k) { + step(date = new d3_date(+date), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; + } + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; + } + d3_time.year = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; + }, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, function(date) { + return date.getFullYear(); + }); + d3_time.years = d3_time.year.range; + d3_time.years.utc = d3_time.year.utc.range; + d3_time.day = d3_time_interval(function(date) { + var day = new d3_date(2e3, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, function(date, offset) { + date.setDate(date.getDate() + offset); + }, function(date) { + return date.getDate() - 1; + }); + d3_time.days = d3_time.day.range; + d3_time.days.utc = d3_time.day.utc.range; + d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); + }; + [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) { + i = 7 - i; + var interval = d3_time[day] = d3_time_interval(function(date) { + (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + d3_time[day + "s"] = interval.range; + d3_time[day + "s"].utc = interval.utc.range; + d3_time[day + "OfYear"] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); + }; + }); + d3_time.week = d3_time.sunday; + d3_time.weeks = d3_time.sunday.range; + d3_time.weeks.utc = d3_time.sunday.utc.range; + d3_time.weekOfYear = d3_time.sundayOfYear; + function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; + function d3_time_format(template) { + var n = template.length; + function format(date) { + var string = [], i = -1, j = 0, c, p, f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.substring(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); + string.push(c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0, + Z: null + }, i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ("p" in d) d.H = d.H % 12 + d.p * 12; + var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) { + date.setFullYear(d.y, 0, 1); + date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); + } else date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H + Math.floor(d.Z / 100), d.M + d.Z % 100, d.S, d.L); + return localZ ? date._ : date; + }; + format.toString = function() { + return template; + }; + return format; + } + function d3_time_parse(date, template, string, j) { + var c, p, t, i = 0, n = template.length, m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + format.toString = local.toString; + return format; + }; + d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; + var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + var d3_time_formats = { + a: function(d) { + return locale_shortDays[d.getDay()]; + }, + A: function(d) { + return locale_days[d.getDay()]; + }, + b: function(d) { + return locale_shortMonths[d.getMonth()]; + }, + B: function(d) { + return locale_months[d.getMonth()]; + }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return locale_periods[+(d.getHours() >= 12)]; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); + }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + "%": function() { + return "%"; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + "%": d3_time_parseLiteralPercent + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.substring(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + return d3_time_format; + } + var d3_time_formatPads = { + "-": "", + _: " ", + "0": "0" + }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/; + function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); + } + function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); + } + function d3_time_formatLookup(names) { + var map = new d3_Map(), i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; + } + function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 1)); + return n ? (date.w = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.U = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.W = +n[0], i + n[0].length) : -1; + } + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.y = +n[0], i + n[0].length) : -1; + } + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; + } + function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string, + i + 5) : -1; + } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); + } + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.m = n[0] - 1, i + n[0].length) : -1; + } + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.d = +n[0], i + n[0].length) : -1; + } + function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.j = +n[0], i + n[0].length) : -1; + } + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.H = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.M = +n[0], i + n[0].length) : -1; + } + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.S = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.L = +n[0], i + n[0].length) : -1; + } + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(abs(z) / 60), zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); + } + function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.substring(i, i + 1)); + return n ? i + n[0].length : -1; + } + function d3_time_formatMulti(formats) { + var n = formats.length, i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; + } + d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; + }; + var d3_locale_enUS = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [ 3 ], + currency: [ "$", "" ], + dateTime: "%a %b %e %X %Y", + date: "%m/%d/%Y", + time: "%H:%M:%S", + periods: [ "AM", "PM" ], + days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], + shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] + }); + d3.format = d3_locale_enUS.numberFormat; + d3.geo = {}; + function d3_adder() {} + d3_adder.prototype = { + s: 0, + t: 0, + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } + }; + var d3_adderTemp = new d3_adder(); + function d3_adderSum(a, b, o) { + var x = o.s = a + b, bv = x - a, av = x - bv; + o.t = a - av + (b - bv); + } + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } + } + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); + } + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); + } + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder(); + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), + sinφ0 = Math.sin(φ); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; + var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; + } + function d3_geo_cartesian(spherical) { + var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); + return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; + } + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + function d3_geo_cartesianCross(a, b) { + return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; + } + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + } + function d3_geo_cartesianScale(vector, k) { + return [ vector[0] * k, vector[1] * k, vector[2] * k ]; + } + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ]; + } + function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + function point(λ, φ) { + ranges.push(range = [ λ0 = λ, λ1 = λ ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + function linePoint(λ, φ) { + var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; + } + function lineStart() { + bound.point = linePoint; + } + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; + } + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + function ringStart() { + d3_geo_area.lineStart(); + } + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; + } + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; + } + function compareRanges(a, b) { + return a[0] - b[0]; + } + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; + } + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + var n = ranges.length; + if (n) { + ranges.sort(compareRanges); + for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; + } + } + ranges = range = null; + return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ]; + }; + }(); + d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z; + if (m < ε2) { + x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; + if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; + m = x * x + y * y + z * z; + if (m < ε2) return [ NaN, NaN ]; + } + return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ]; + }; + var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2; + var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } + }; + function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); + } + function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_geo_centroidRingStart() { + var λ00, φ00, x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ00 = λ, φ00 = φ; + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u); + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { + var subject = [], clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; + } + var start = subject[0], points, point; + while (1) { + var current = start, isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); + } + } + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, i = 0, a = array[0], b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; + } + function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; + this.e = entry; + this.v = false; + this.n = this.p = null; + } + function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); + if (segments.length) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); + } else if (clipStartInside) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); + } + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); + } + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + var segments; + var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring; + function pointRing(λ, φ) { + ring.push([ λ, φ ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); + } + function ringStart() { + ringListener.lineStart(); + ring = []; + } + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; + ring.pop(); + polygon.push(ring); + ring = null; + if (!n) return; + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, i = -1, point; + if (n > 0) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], line; + return { + lineStart: function() { + lines.push(line = []); + }, + point: function(λ, φ) { + line.push([ λ, φ ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; + } + function d3_geo_clipSort(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); + } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], m = ring.length; + if (!m) continue; + var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } + } + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + } + var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); + } + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | (v00 && v0) << 1; + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); + var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [ q, d3_geo_spherical(q1) ]; + } + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, code = 0; + if (λ < -r) code |= 1; else if (λ > r) code |= 2; + if (φ < -r) code |= 4; else if (φ > r) code |= 8; + return code; + } + } + function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r; + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + if (t0 > 0) line.a = { + x: ax + t0 * dx, + y: ay + t0 * dy + }; + if (t1 < 1) line.b = { + x: ax + t1 * dx, + y: ay + t1 * dy + }; + return line; + }; + } + var d3_geo_clipExtentMAX = 1e9; + d3.geo.clipExtent = function() { + var x0, y0, x1, y1, stream, clip, clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; + return stream; + }, + extent: function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); + if (stream) stream.valid = false, stream = null; + return clipExtent; + } + }; + return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]); + }; + function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function insidePolygon(p) { + var wn = 0, n = polygon.length, y = p[1]; + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first, clean; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([ x, y ]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); else { + var l = { + a: { + x: x_, + y: y_ + }, + b: { + x: x, + y: y + } + }; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + return clip; + }; + function corner(p, direction) { + return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; + } + function compare(a, b) { + return comparePoints(a.x, b.x); + } + function comparePoints(a, b) { + var ca = corner(a, 1), cb = corner(b, 1); + return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; + } + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_geo_conic(projectAt) { + var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); + }; + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); + var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); + var point, pointStream = { + point: function(x, y) { + point = [ x, y ]; + } + }, lower48Point, alaskaPoint, hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); + return point; + } + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; + return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * .35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point; + alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); + }; + var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); + } + }; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; + } + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); + } + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; + } + function pointLine(x, y) { + buffer.push("L", x, ",", y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + buffer.push("Z"); + } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } + }; + function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x, y); + context.arc(x, y, pointRadius, 0, τ); + } + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + function pointLine(x, y) { + context.lineTo(x, y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + context.closePath(); + } + return stream; + } + function d3_geo_resample(project) { + var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16; + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); + } + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = ringStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + function ringPoint(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + } + function ringEnd() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); + } + return resample; + } + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.path = function() { + var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream; + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ]; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return reset(); + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return reset(); + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + function reset() { + cacheStream = null; + return path; + } + return path.projection(d3.geo.albersUsa()).context(null); + }; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { + return project([ x * d3_degrees, y * d3_degrees ]); + }); + return function(stream) { + return d3_geo_projectionRadians(resample(stream)); + }; + } + d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; + }; + function d3_geo_transform(stream) { + this.stream = stream; + } + d3_geo_transform.prototype = { + point: function(x, y) { + this.stream.point(x, y); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); + } + }; + function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [ x[0] * k + δx, δy - x[1] * k ]; + }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [ point[0] * k + δx, δy - point[1] * k ]; + } + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; + } + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output)))); + stream.valid = true; + return stream; + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity; + return invalidate(); + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [ x, y ]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, "precision"); + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); + } + function invalidate() { + if (stream) stream.valid = false, stream = null; + return projection; + } + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); + } + function d3_geo_equirectangular(λ, φ) { + return [ λ, φ ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + } + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + return forward; + }; + function d3_geo_identityRotation(λ, φ) { + return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + } + d3_geo_identityRotation.invert = d3_geo_equirectangular; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; + return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; + return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [ 0, 0 ], angle, precision = 6, interpolate; + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + return { + type: "Polygon", + coordinates: [ ring ] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - .5 * step; + } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); + }; + d3.geo.graticule = function() { + var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; + function graticule() { + return { + type: "MultiLineString", + coordinates: lines() + }; + } + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { + return abs(x % DX) > ε; + }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { + return abs(y % DY) > ε; + }).map(y)); + } + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: "LineString", + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [ DX, DY ]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [ dx, dy ]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); + }; + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [ x, y ]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [ x, y ]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, source_, target = d3_target, target_; + function greatArc() { + return { + type: "LineString", + coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ] + }; + } + greatArc.distance = function() { + return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments)); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; + }; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d); + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; + return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ]; + } : function() { + return [ x0 * d3_degrees, y0 * d3_degrees ]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); + return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); + return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, function(ρ) { + return 2 * Math.asin(ρ / 2); + }); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + if (F > 0) { + if (φ < -halfπ + ε) φ = -halfπ + ε; + } else { + if (φ > halfπ - ε) φ = halfπ - ε; + } + var ρ = F / Math.pow(t(φ), n); + return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; + if (abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; + }; + return forward; + } + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; + } + d3_geo_mercator.invert = function(x, y) { + return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + return m.clipExtent(null); + } + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, function(ρ) { + return 2 * Math.atan(ρ); + }); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ]; + } + d3_geo_transverseMercator.invert = function(x, y) { + return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ]; + }; + (d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; + projection.center = function(_) { + return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); + }; + projection.rotate = function(_) { + return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), + [ _[0], _[1], _[2] - 90 ]); + }; + return rotate([ 0, 0, 90 ]); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + function d3_geom_pointX(d) { + return d[0]; + } + function d3_geom_pointY(d) { + return d[1]; + } + d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, y = d3_geom_pointY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = []; + for (i = 0; i < n; i++) { + points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]); + } + points.sort(d3_geom_hullOrder); + for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]); + var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints); + var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = []; + for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); + return polygon; + } + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + return hull; + }; + function d3_geom_hullUpper(points) { + var n = points.length, hull = [ 0, 1 ], hs = 2; + for (var i = 2; i < n; i++) { + while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs; + hull[hs++] = i; + } + return hull.slice(0, hs); + } + function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; + } + d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; + }; + var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; + d3_geom_polygonPrototype.area = function() { + var i = -1, n = this.length, a, b = this[n - 1], area = 0; + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + return area * .5; + }; + d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c; + if (!arguments.length) k = -1 / (6 * this.area()); + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [ x * k, y * k ]; + }; + d3_geom_polygonPrototype.clip = function(subject) { + var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + if (closed) subject.push(subject[0]); + a = b; + } + return subject; + }; + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [ x1 + ua * x21, y1 + ua * y21 ]; + } + function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); + } + var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = []; + function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = this.site = this.circle = null; + } + function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); + beach.site = site; + return beach; + } + function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); + } + function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, x = circle.x, y = circle.cy, vertex = { + x: x, + y: y + }, previous = beach.P, next = beach.N, disappearing = [ beach ]; + d3_geom_voronoiDetachBeach(beach); + var lArc = previous; + while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; + } + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + var rArc = next; + while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; + } + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + var nArcs = disappearing.length, iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + } + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiAddBeach(site) { + var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._; + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } + } + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + if (!lArc && !rArc) return; + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; + } + if (!rArc) { + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; + } + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = { + x: (cy * hb - by * hc) / d + ax, + y: (bx * hc - cx * hb) / d + ay + }; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix; + if (!pby2) return rfocx; + var lArc = arc.P; + if (!lArc) return -Infinity; + site = lArc.site; + var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix; + if (!plby2) return lfocx; + var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2; + if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; + return (rfocx + lfocx) / 2; + } + function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; + } + function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; + } + d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge; + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + } + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; + }; + function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end; + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; + start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? { + x: x0, + y: abs(x2 - x0) < ε ? y2 : y1 + } : abs(y3 - y1) < ε && x1 - x3 > ε ? { + x: abs(y2 - y1) < ε ? x2 : x1, + y: y1 + } : abs(x3 - x1) < ε && y3 - y0 > ε ? { + x: x1, + y: abs(x2 - x1) < ε ? y2 : y0 + } : abs(y3 - y0) < ε && x3 - x0 > ε ? { + x: abs(y2 - y0) < ε ? x2 : x0, + y: y0 + } : null), cell.site, null)); + ++nHalfEdges; + } + } + } + } + function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; + } + function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = this.y = this.arc = this.site = this.cy = null; + } + function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, rArc = arc.N; + if (!lArc || !rArc) return; + var lSite = lArc.site, cSite = arc.site, rSite = rArc.site; + if (lSite === rSite) return; + var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by; + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by; + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); + circle.cy = cy; + arc.circle = circle; + var before = null, node = d3_geom_voronoiCircles._; + while (node) { + if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) { + if (node.L) node = node.L; else { + before = node.P; + break; + } + } else { + if (node.R) node = node.R; else { + before = node; + break; + } + } + } + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; + } + function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; + } + } + function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e; + while (i--) { + e = edges[i]; + if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) { + e.a = e.b = null; + edges.splice(i, 1); + } + } + } + function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb; + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) va = { + x: fx, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: fx, + y: y1 + }; + } else { + if (!va) va = { + x: fx, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: fx, + y: y0 + }; + } + } else { + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) va = { + x: (y0 - fb) / fm, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: (y1 - fb) / fm, + y: y1 + }; + } else { + if (!va) va = { + x: (y1 - fb) / fm, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: (y0 - fb) / fm, + y: y0 + }; + } + } else { + if (ly < ry) { + if (!va) va = { + x: x0, + y: fm * x0 + fb + }; else if (va.x >= x1) return; + vb = { + x: x1, + y: fm * x1 + fb + }; + } else { + if (!va) va = { + x: x1, + y: fm * x1 + fb + }; else if (va.x < x0) return; + vb = { + x: x0, + y: fm * x0 + fb + }; + } + } + } + edge.a = va; + edge.b = vb; + return true; + } + function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; + } + function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); + d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); + return edge; + } + function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; + } + function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; + } + } + function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y); + } + d3_geom_voronoiHalfEdge.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + } + }; + function d3_geom_voronoiRedBlackTree() { + this._ = null; + } + function d3_geom_voronoiRedBlackNode(node) { + node.U = node.C = node.L = node.R = node.P = node.N = null; + } + d3_geom_voronoiRedBlackTree.prototype = { + insert: function(after, node) { + var parent, grandpa, uncle; + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; + } + node.L = node.R = null; + node.U = parent; + node.C = true; + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + var parent = node.U, sibling, left = node.L, right = node.R, next, red; + if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right); + if (parent) { + if (parent.L === node) parent.L = next; else parent.R = next; + } else { + this._ = next; + } + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + if (node) node.U = parent; + if (red) return; + if (node && node.C) { + node.C = false; + return; + } + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + if (node) node.C = false; + } + }; + function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, q = node.R, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; + } + function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, q = node.L, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; + } + function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; + } + function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle; + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); + while (true) { + circle = d3_geom_voronoiFirstCircle; + if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + x0 = site.x, y0 = site.y; + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } + } + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + var diagram = { + cells: d3_geom_voronoiCells, + edges: d3_geom_voronoiEdges + }; + d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; + return diagram; + } + function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; + } + d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent; + if (points) return voronoi(points); + function voronoi(data) { + var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1]; + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) { + var s = e.start(); + return [ s.x, s.y ]; + }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : []; + polygon.point = data[i]; + }); + return polygons; + } + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); + } + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { + return edge.l && edge.r; + }).map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + voronoi.triangles = function(data) { + var triangles = []; + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l; + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { + triangles.push([ data[i], data[s0.i], data[s1.i] ]); + } + } + }); + return triangles; + }; + voronoi.x = function(_) { + return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; + }; + voronoi.clipExtent = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + voronoi.size = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]); + }; + return voronoi; + }; + var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ]; + function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); + } + d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); + }; + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, y = d3_geom_pointY, compat; + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + function quadtree(data) { + var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + var dx = x2_ - x1_, dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, ny = n.y; + if (nx != null) { + if (abs(nx - x) + abs(ny - y) < .01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = sx; else x2 = sx; + if (bottom) y1 = sy; else y2 = sy; + insert(n, d, x, y, x1, y1, x2, y2); + } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; + } + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], + y2 = +_[1][1]; + return quadtree; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; + return quadtree; + }; + return quadtree; + }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; + return function(t) { + return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, c = {}, k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + b -= a = +a; + return function(t) { + return a + b * t; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.substring(bi, bs); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; else s[++i] = bm; + } else { + s[++i] = null; + q.push({ + i: i, + x: d3_interpolateNumber(am, bm) + }); + } + bi = d3_interpolate_numberB.lastIndex; + } + if (bi < b.length) { + bs = b.substring(bi); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { + return b(t) + ""; + }) : function() { + return b; + } : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); + } + var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; + return f; + } + d3.interpolators = [ function(a, b) { + var t = typeof b; + return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + } ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (;i < na; ++i) c[i] = a[i]; + for (;i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; + } + }); + var d3_ease_mode = d3.map({ + "in": d3_identity, + out: d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); + }; + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = .45; + if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); + }; + function d3_transform(m) { + var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [ m.e, m.f ]; + this.scale = [ kx, ky ]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransform(a, b) { + var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; + if (ta[0] != tb[0] || ta[1] != tb[1]) { + s.push("translate(", null, ",", null, ")"); + q.push({ + i: 1, + x: d3_interpolateNumber(ta[0], tb[0]) + }, { + i: 3, + x: d3_interpolateNumber(ta[1], tb[1]) + }); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } else { + s.push(""); + } + if (ra != rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(s.pop() + "rotate(", null, ")") - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(s.pop() + "rotate(" + rb + ")"); + } + if (wa != wb) { + q.push({ + i: s.push(s.pop() + "skewX(", null, ")") - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(s.pop() + "skewX(" + wb + ")"); + } + if (ka[0] != kb[0] || ka[1] != kb[1]) { + n = s.push(s.pop() + "scale(", null, ",", null, ")"); + q.push({ + i: n - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, { + i: n - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + }); + } else if (kb[0] != 1 || kb[1] != 1) { + s.push(s.pop() + "scale(" + kb + ")"); + } + n = q.length; + return function(t) { + var i = -1, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return (x - a) * b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return Math.max(0, Math.min(1, (x - a) * b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], i = -1, n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; + function relayout() { + var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; + chords = []; + groups = []; + k = 0, i = -1; + while (++i < n) { + x = 0, j = -1; + while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (τ - padding * n) / k; + x = 0, i = -1; + while (++i < n) { + x0 = x, j = -1; + while (++j < n) { + var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }; + x += padding; + } + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value ? { + source: target, + target: source + } : { + source: source, + target: target + }); + } + } + } + if (sortChords) resort(); + } + function resort() { + chords.sort(function(a, b) { + return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + return chord; + }; + d3.layout.force = function() { + var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy; + if (dw * dw / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + force.tick = function() { + if ((alpha *= .99) < .005) { + event.end({ + type: "end", + alpha: alpha = 0 + }); + return true; + } + var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = x * x + y * y) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: "tick", + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) alpha = x; else alpha = 0; + } else if (x > 0) { + event.start({ + type: "start", + alpha: alpha = x + }); + d3.timer(force.tick); + } + return force; + }; + force.start = function() { + var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + var candidates = neighbors[i], j = -1, m = candidates.length, x; + while (++j < m) if (!isNaN(x = candidates[j][dimension])) return x; + return Math.random() * size; + } + return force.resume(); + }; + force.resume = function() { + return force.alpha(.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); + }; + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); + } + return d3.rebind(force, event, "on"); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + d.px = d.x, d.py = d.y; + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, n = nodes.length, i = -1, c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; + function hierarchy(root) { + var stack = [ root ], nodes = [], node; + root.depth = 0; + while ((node = stack.pop()) != null) { + nodes.push(node); + if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { + var n, childs, child; + while (--n >= 0) { + stack.push(child = childs[n]); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + return nodes; + } + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; + if (parent = node.parent) parent.value += node.value; + }); + } + return root; + }; + return hierarchy; + }; + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [ node ]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } + } + } + function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [ node ], nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, n, children; + while (++i < n) nodes.push(children[i]); + } + } + while ((node = nodes2.pop()) != null) { + callback(node); + } + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + })); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, n, c, d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + function depth(node) { + var children = node.children, d = 0; + if (children && (n = children.length)) { + var i = -1, n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); + }; + d3.layout.pie = function() { + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ; + function pie(data) { + var values = data.map(function(d, i) { + return +value.call(pie, d, i); + }); + var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); + var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values); + var index = d3.range(data.length); + if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { + return values[j] - values[i]; + } : function(i, j) { + return sort(data[i], data[j]); + }); + var arcs = []; + index.forEach(function(i) { + var d; + arcs[i] = { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + return arcs; + } + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + return pie; + }; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; + function stack(data, index) { + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [ x.call(stack, v, i), y.call(stack, v, i) ]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var n = series.length, m = series[0].length, i, j, o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + return data; + } + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; + }; + function d3_layout_stackX(d) { + return d.x; + } + function d3_layout_stackY(d) { + return d.y; + } + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + "inside-out": function(data) { + var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), top = 0, bottom = 0, tops = [], bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + "default": d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, m = data[0].length, y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, j = 0, v = array[0][1], k, n = array.length; + for (;i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; + } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; + }; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [ d3.min(values), d3.max(values) ]; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { + return radius; + }; + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r = +r(d.value); + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + if (padding) { + var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r -= dr; + }); + } + d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); + return nodes; + } + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === "function" ? _ : +_; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); + }; + function d3_layout_packSort(a, b) { + return a.value - b.value; + } + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; + } + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; + } + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; + return .999 * dr * dr > dx * dx + dy * dy; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } + } + d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0); + d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; + d3_layout_hierarchyVisitBefore(root1, secondWalk); + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else { + var left = root0, right = root0, bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return nodes; + } + function wrapTree(root0) { + var root1 = { + A: null, + children: [ root0 ] + }, queue = [ root1 ], node1; + while ((node1 = queue.pop()) != null) { + for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { + queue.push((children[i] = child = { + _: children[i], + parent: node1, + children: (child = children[i].children) && child.slice() || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: i + }).a = child); + } + } + return root1.children[0]; + } + function firstWalk(v) { + var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + function apportion(v, w, ancestor) { + if (w) { + var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); + }; + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; + } + function d3_layout_treeRight(v) { + var children = v.children, n; + return (n = children.length) ? children[n - 1] : v.t; + } + function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + function d3_layout_treeShift(v) { + var shift = 0, change = 0, children = v.children, i = children.length, w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } + } + function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; + d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + return nodes; + } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); + }; + function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); + } + function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, n = children.length, child, area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), remaining = children.slice(), child, row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + function worst(row, u) { + var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; + } + function position(row, u, rect, flush) { + var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } + } + function treemap(d) { + var nodes = stickies || hierarchy(d), root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([ root ], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); + } + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], + padConstant) : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; + } + function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { + x += dx / 2; + dx = 0; + } + if (dy < 0) { + y += dy / 2; + dy = 0; + } + return { + x: x, + y: y, + dx: dx, + dy: dy + }; + } + d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; + } + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [ start, stop ] : [ stop, start ]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); + } + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; + } + function d3_scale_nice(domain, nice) { + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; + } + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; + } + function d3_scale_niceStep(step) { + return step ? { + floor: function(x) { + return Math.floor(x / step) * step; + }, + ceil: function(x) { + return Math.ceil(x / step) * step; + } + } : d3_scale_niceIdentity; + } + var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity + }; + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; + } + d3.scale.linear = function() { + return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); + }; + function d3_scale_linear(domain, range, interpolate, clamp) { + var output, input; + function rescale() { + var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); + } + function d3_scale_linearRebind(scale, linear) { + return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); + } + function d3_scale_linearNice(domain, m) { + return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + } + function d3_scale_linearTickRange(domain, m) { + if (m == null) m = 10; + var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; + if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; + extent[2] = step; + return extent; + } + function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + } + function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === "s") { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = "f"; + format = d3.format(match.join("")); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(""); + } else { + format = ",." + d3_scale_linearPrecision(range[2]) + "f"; + } + return d3.format(format); + } + var d3_scale_linearFormatSignificant = { + s: 1, + g: 1, + p: 1, + r: 1, + e: 1 + }; + function d3_scale_linearPrecision(value) { + return -Math.floor(Math.log(value) / Math.LN10 + .01); + } + function d3_scale_linearFormatPrecision(type, range) { + var p = d3_scale_linearPrecision(range[2]); + return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2; + } + d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]); + }; + function d3_scale_log(linear, base, positive, domain) { + function log(x) { + return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base); + } + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); + } + function scale(x) { + return linear(log(x)); + } + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + positive = x[0] >= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + scale.nice = function() { + var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); + linear.domain(niced); + domain = niced.map(pow); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); + var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, + Math.floor), e; + return function(d) { + return d / pow(f(log(d) + e)) <= k ? format(d) : ""; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = { + floor: function(x) { + return -Math.ceil(-x); + }, + ceil: function(x) { + return -Math.floor(-x); + } + }; + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); + } + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + return scale.domain(d3_scale_linearNice(domain, m)); + }; + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; + } + d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); + }; + d3.scale.ordinal = function() { + return d3_scale_ordinal([], { + t: "range", + a: [ [] ] + }); + }; + function d3_scale_ordinal(domain, ranger) { + var index, range, rangeBand; + function scale(x) { + return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length]; + } + function steps(start, step) { + return d3.range(domain.length).map(function(i) { + return start + step * i; + }); + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map(); + var i = -1, n = x.length, xi; + while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = { + t: "range", + a: arguments + }; + return scale; + }; + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); + range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); + rangeBand = 0; + ranger = { + t: "rangePoints", + a: arguments + }; + return scale; + }; + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = { + t: "rangeBands", + a: arguments + }; + return scale; + }; + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; + range = steps(start + Math.round(error / 2), step); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = { + t: "rangeRoundBands", + a: arguments + }; + return scale; + }; + scale.rangeBand = function() { + return rangeBand; + }; + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + return scale.domain(domain); + } + d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); + }; + d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); + }; + d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); + }; + d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); + }; + var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString); + var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString); + var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString); + var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString); + d3.scale.quantile = function() { + return d3_scale_quantile([], []); + }; + function d3_scale_quantile(domain, range) { + var thresholds; + function rescale() { + var k = 0, q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + function scale(x) { + if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)]; + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(d3_number).sort(d3_ascending); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.quantiles = function() { + return thresholds; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ]; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); + } + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [ 0, 1 ]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + scale.domain = function(x) { + if (!arguments.length) return [ x0, x1 ]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [ y, y + 1 / kx ]; + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([ .5 ], [ 0, 1 ]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; + } + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [ domain[y - 1], domain[y] ]; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([ 0, 1 ]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg = {}; + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function arc() { + var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, + a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); + return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; + } + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [ Math.cos(a) * r, Math.sin(a) * r ]; + }; + return arc; + }; + var d3_svg_arcOffset = -halfπ, d3_svg_arcMax = τ - ε; + function d3_svg_arcInnerRadius(d) { + return d.innerRadius; + } + function d3_svg_arcOuterRadius(d) { + return d.outerRadius; + } + function d3_svg_arcStartAngle(d) { + return d.startAngle; + } + function d3_svg_arcEndAngle(d) { + return d.endAngle; + } + function d3_svg_line(projection) { + var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; + function line(data) { + var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); + function segment() { + segments.push("M", interpolate(projection(points), tension)); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join("") : null; + } + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; + } + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + step: d3_svg_lineStep, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.join("L"); + } + function d3_svg_lineLinearClosed(points) { + return d3_svg_lineLinear(points) + "Z"; + } + function d3_svg_lineStep(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); + if (n > 1) path.push("H", p[0]); + return path.join(""); + } + function d3_svg_lineStepBefore(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); + } + function d3_svg_lineStepAfter(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); + } + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); + } + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + } + } + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + } + return path; + } + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); + } + return tangents; + } + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push("L", pi); + return path.join(""); + } + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBasisClosed(points) { + var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); + } + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + } + var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); + } + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); + } + function d3_svg_lineFiniteDifferences(points) { + var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; + } + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([ s || 0, m[i] * s || 0 ]); + } + return tangents; + } + function d3_svg_lineMonotone(points) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); + } + d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; + }; + function d3_svg_lineRadial(points) { + var point, i = -1, n = points.length, r, a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; + } + function d3_svg_area(projection) { + var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; + function area(data) { + var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { + return x; + } : d3_functor(x1), fy1 = y0 === y1 ? function() { + return y; + } : d3_functor(y1), x, y; + function segment() { + segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); + points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + if (points0.length) segment(); + return segments.length ? segments.join("") : null; + } + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? "M" : "L"; + return area; + }; + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + return area; + } + d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; + d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + d3.svg.area = function() { + return d3_svg_area(d3_identity); + }; + d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; + }; + d3.svg.chord = function() { + var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function chord(d, i) { + var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); + return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; + } + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [ r * Math.cos(a0), r * Math.sin(a0) ], + p1: [ r * Math.cos(a1), r * Math.sin(a1) ] + }; + } + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + function arc(r, p, a) { + return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + } + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; + } + d3.svg.diagonal = function() { + var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; + function diagonal(d, i) { + var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { + x: p0.x, + y: m + }, { + x: p3.x, + y: m + }, p3 ]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + return diagonal; + }; + function d3_svg_diagonalProjection(d) { + return [ d.x, d.y ]; + } + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; + return [ r * Math.cos(a), r * Math.sin(a) ]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); + } + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + return symbol; + }; + function d3_svg_symbolSize() { + return 64; + } + function d3_svg_symbolType() { + return "circle"; + } + function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; + } + var d3_svg_symbols = d3.map({ + circle: d3_svg_symbolCircle, + cross: function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; + }, + diamond: function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; + }, + square: function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; + } + }); + d3.svg.symbolTypes = d3_svg_symbols.keys(); + var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); + function d3_transition(groups, id) { + d3_subclass(groups, d3_transitionPrototype); + groups.id = id; + return groups; + } + var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit; + d3_transitionPrototype.call = d3_selectionPrototype.call; + d3_transitionPrototype.empty = d3_selectionPrototype.empty; + d3_transitionPrototype.node = d3_selectionPrototype.node; + d3_transitionPrototype.size = d3_selectionPrototype.size; + d3.transition = function(selection) { + return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); + }; + d3.transition.prototype = d3_transitionPrototype; + d3_transitionPrototype.select = function(selector) { + var id = this.id, subgroups = [], subgroup, subnode, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, id, node.__transition__[id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + transition = node.__transition__[id]; + subnodes = selector.call(node, node.__data__, i, j); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o; ) { + if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition); + subgroup.push(subnode); + } + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_transition(subgroups, this.id); + }; + d3_transitionPrototype.tween = function(name, tween) { + var id = this.id; + if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); + return d3_selection_each(this, tween == null ? function(node) { + node.__transition__[id].tween.remove(name); + } : function(node) { + node.__transition__[id].tween.set(name, tween); + }); + }; + function d3_transition_tween(groups, name, value, tween) { + var id = groups.id; + return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); + } : (value = tween(value), function(node) { + node.__transition__[id].tween.set(name, value); + })); + } + d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrTween(b) { + return b == null ? attrNull : (b += "", function() { + var a = this.getAttribute(name), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttribute(name, i(t)); + }); + }); + } + function attrTweenNS(b) { + return b == null ? attrNullNS : (b += "", function() { + var a = this.getAttributeNS(name.space, name.local), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttributeNS(name.space, name.local, i(t)); + }); + }); + } + return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { + this.setAttribute(name, f(t)); + }; + } + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + }; + } + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + priority = ""; + } + function styleNull() { + this.style.removeProperty(name); + } + function styleString(b) { + return b == null ? styleNull : (b += "", function() { + var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; + return a !== b && (i = d3_interpolate(a, b), function(t) { + this.style.setProperty(name, i(t), priority); + }); + }); + } + return d3_transition_tween(this, "style." + name, value, styleString); + }; + d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + function styleTween(d, i) { + var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { + this.style.setProperty(name, f(t), priority); + }; + } + return this.tween("style." + name, styleTween); + }; + d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, "text", value, d3_transition_text); + }; + function d3_transition_text(b) { + if (b == null) b = ""; + return function() { + this.textContent = b; + }; + } + d3_transitionPrototype.remove = function() { + return this.each("end.transition", function() { + var p; + if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this); + }); + }; + d3_transitionPrototype.ease = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].ease; + if (typeof value !== "function") value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { + node.__transition__[id].ease = value; + }); + }; + d3_transitionPrototype.delay = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].delay; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].delay = +value.call(node, node.__data__, i, j); + } : (value = +value, function(node) { + node.__transition__[id].delay = value; + })); + }; + d3_transitionPrototype.duration = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].duration; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j)); + } : (value = Math.max(1, value), function(node) { + node.__transition__[id].duration = value; + })); + }; + d3_transitionPrototype.each = function(type, listener) { + var id = this.id; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node.__transition__[id]; + type.call(node, node.__data__, i, j); + }); + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } else { + d3_selection_each(this, function(node) { + var transition = node.__transition__[id]; + (transition.event || (transition.event = d3.dispatch("start", "end"))).on(type, listener); + }); + } + return this; + }; + d3_transitionPrototype.transition = function() { + var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if (node = group[i]) { + transition = Object.create(node.__transition__[id0]); + transition.delay += transition.duration; + d3_transitionNode(node, i, id1, transition); + } + subgroup.push(node); + } + } + return d3_transition(subgroups, id1); + }; + function d3_transitionNode(node, i, id, inherit) { + var lock = node.__transition__ || (node.__transition__ = { + active: 0, + count: 0 + }), transition = lock[id]; + if (!transition) { + var time = inherit.time; + transition = lock[id] = { + tween: new d3_Map(), + time: time, + ease: inherit.ease, + delay: inherit.delay, + duration: inherit.duration + }; + ++lock.count; + d3.timer(function(elapsed) { + var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = []; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + transition.event && transition.event.start.call(node, d, i); + transition.tween.forEach(function(key, value) { + if (value = value.call(node, d, i)) { + tweened.push(value); + } + }); + d3.timer(function() { + timer.c = tick(elapsed || 1) ? d3_true : tick; + return 1; + }, 0, time); + } + function tick(elapsed) { + if (lock.active !== id) return stop(); + var t = elapsed / duration, e = ease(t), n = tweened.length; + while (n > 0) { + tweened[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, d, i); + return stop(); + } + } + function stop() { + if (--lock.count) delete lock[id]; else delete node.__transition__; + return 1; + } + }, 0, time); + } + } + d3.svg.axis = function() { + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); + var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickTransform; + var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), + d3.transition(path)); + tickEnter.append("line"); + tickEnter.append("text"); + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); + switch (orient) { + case "bottom": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", innerTickSize); + textEnter.attr("y", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", 0).attr("y2", innerTickSize); + textUpdate.attr("x", 0).attr("y", Math.max(innerTickSize, 0) + tickPadding); + text.attr("dy", ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + outerTickSize + "V0H" + range[1] + "V" + outerTickSize); + break; + } + + case "top": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", -innerTickSize); + textEnter.attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); + textUpdate.attr("x", 0).attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + text.attr("dy", "0em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + -outerTickSize + "V0H" + range[1] + "V" + -outerTickSize); + break; + } + + case "left": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", -innerTickSize); + textEnter.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", -innerTickSize).attr("y2", 0); + textUpdate.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "end"); + pathUpdate.attr("d", "M" + -outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + -outerTickSize); + break; + } + + case "right": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", innerTickSize); + textEnter.attr("x", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", innerTickSize).attr("y2", 0); + textUpdate.attr("x", Math.max(innerTickSize, 0) + tickPadding).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "start"); + pathUpdate.attr("d", "M" + outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + outerTickSize); + break; + } + } + if (scale1.rangeBand) { + var x = scale1, dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { + return x(d) + dx; + }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1); + } + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale1); + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { + return "translate(" + x(d) + ",0)"; + }); + } + function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { + return "translate(0," + y(d) + ")"; + }); + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0]; + function brush(g) { + g.each(function() { + var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); + var background = g.selectAll(".background").data([ 0 ]); + background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); + g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move"); + var resize = g.selectAll(".resize").data(resizes, d3_identity); + resize.exit().remove(); + resize.enter().append("g").attr("class", function(d) { + return "resize " + d; + }).style("cursor", function(d) { + return d3_svg_brushCursor[d]; + }).append("rect").attr("x", function(d) { + return /[ew]$/.test(d) ? -3 : null; + }).attr("y", function(d) { + return /^[ns]/.test(d) ? -3 : null; + }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); + resize.style("display", brush.empty() ? "none" : null); + var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range; + if (x) { + range = d3_scaleRange(x); + backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); + redrawX(gUpdate); + } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); + redrawY(gUpdate); + } + redraw(gUpdate); + }); + } + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), extent1 = { + x: xExtent, + y: yExtent, + i: xExtentDomain, + j: yExtentDomain + }, extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.brush", function() { + xExtentDomain = extent0.i; + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({ + type: "brushstart" + }); + }).tween("brush:brush", function() { + var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({ + type: "brush", + mode: "resize" + }); + }; + }).each("end.brush", function() { + xExtentDomain = extent1.i; + yExtentDomain = extent1.j; + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + }); + } else { + event_({ + type: "brushstart" + }); + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + } + }); + }; + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; + }); + } + function redrawX(g) { + g.select(".extent").attr("x", xExtent[0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); + } + function redrawY(g) { + g.select(".extent").attr("y", yExtent[0]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); + } + function brushstart() { + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset; + var w = d3.select(d3_window).on("keydown.brush", keydown).on("keyup.brush", keyup); + if (d3.event.changedTouches) { + w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); + } else { + w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); + } + g.interrupt().selectAll("*").interrupt(); + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); + offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } else if (d3.event.altKey) center = origin.slice(); + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + event_({ + type: "brushstart" + }); + brushmove(); + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); + } + } + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); + } + } + function brushmove() { + var point = d3.mouse(target), moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ]; + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: "brush", + mode: dragging ? "move" : "resize" + }); + } + } + function move1(point, scale, i) { + var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; + if (dragging) { + max = (min += position) + size; + } else { + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); + dragRestore(); + event_({ + type: "brushend" + }); + } + } + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.clamp = function(z) { + if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null; + if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + x0 = xExtentDomain[0], x1 = xExtentDomain[1]; + } else { + x0 = xExtent[0], x1 = xExtent[1]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + if (yExtentDomain) { + y0 = yExtentDomain[0], y1 = yExtentDomain[1]; + } else { + y0 = yExtent[0], y1 = yExtent[1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; + } + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + xExtentDomain = [ x0, x1 ]; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ]; + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + yExtentDomain = [ y0, y1 ]; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ]; + } + return brush; + }; + brush.clear = function() { + if (!brush.empty()) { + xExtent = [ 0, 0 ], yExtent = [ 0, 0 ]; + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + brush.empty = function() { + return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1]; + }; + return d3.rebind(brush, event, "on"); + }; + var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" + }; + var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; + var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; + var d3_time_formatUtc = d3_time_format.utc; + var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); + d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3_time.second = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, function(date) { + return date.getSeconds(); + }); + d3_time.seconds = d3_time.second.range; + d3_time.seconds.utc = d3_time.second.utc.range; + d3_time.minute = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, function(date) { + return date.getMinutes(); + }); + d3_time.minutes = d3_time.minute.range; + d3_time.minutes.utc = d3_time.minute.utc.range; + d3_time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, function(date) { + return date.getHours(); + }); + d3_time.hours = d3_time.hour.range; + d3_time.hours.utc = d3_time.hour.utc.range; + d3_time.month = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; + }, function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, function(date) { + return date.getMonth(); + }); + d3_time.months = d3_time.month.range; + d3_time.months.utc = d3_time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); + } + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + function tickMethod(extent, count) { + var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) { + return d / 31536e6; + }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + } + scale.nice = function(interval, skip) { + var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval); + if (method) interval = method[0], skip = method[1]; + function skipped(date) { + return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; + } + return scale.domain(d3_scale_nice(domain, skip > 1 ? { + floor: function(date) { + while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); + return date; + } + } : interval)); + }; + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ { + range: interval + }, skip ]; + if (method) interval = method[0], skip = method[1]; + return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; + var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ]; + var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) { + return d.getMilliseconds(); + } ], [ ":%S", function(d) { + return d.getSeconds(); + } ], [ "%I:%M", function(d) { + return d.getMinutes(); + } ], [ "%I %p", function(d) { + return d.getHours(); + } ], [ "%a %d", function(d) { + return d.getDay() && d.getDate() != 1; + } ], [ "%b %d", function(d) { + return d.getDate() != 1; + } ], [ "%B", function(d) { + return d.getMonth(); + } ], [ "%Y", d3_true ] ]); + var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { + return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); + }, + floor: d3_identity, + ceil: d3_identity + }; + d3_time_scaleLocalMethods.year = d3_time.year; + d3_time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); + }; + var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [ m[0].utc, m[1] ]; + }); + var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) { + return d.getUTCMilliseconds(); + } ], [ ":%S", function(d) { + return d.getUTCSeconds(); + } ], [ "%I:%M", function(d) { + return d.getUTCMinutes(); + } ], [ "%I %p", function(d) { + return d.getUTCHours(); + } ], [ "%a %d", function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } ], [ "%b %d", function(d) { + return d.getUTCDate() != 1; + } ], [ "%B", function(d) { + return d.getUTCMonth(); + } ], [ "%Y", d3_true ] ]); + d3_time_scaleUtcMethods.year = d3_time.year.utc; + d3_time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); + }; + d3.text = d3_xhrType(function(request) { + return request.responseText; + }); + d3.json = function(url, callback) { + return d3_xhr(url, "application/json", d3_json, callback); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3_xhr(url, "text/html", d3_html, callback); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = d3_xhrType(function(request) { + return request.responseXML; + }); + if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; + this.d3 = d3; +}(); \ No newline at end of file diff --git a/src/lib/d3/d3.min.js b/src/lib/d3/d3.min.js new file mode 100644 index 00000000..88550ae5 --- /dev/null +++ b/src/lib/d3/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function r(n){return n.length}function u(n){for(var t=1;n*t%1;)t*=10;return t}function i(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function o(){}function a(n){return ia+n in this}function c(n){return n=ia+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function l(){var n=0;for(var t in this)t.charCodeAt(0)===oa&&++n;return n}function f(){for(var n in this)if(n.charCodeAt(0)===oa)return!1;return!0}function h(){}function g(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function p(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=aa.length;r>e;++e){var u=aa[e]+t;if(u in n)return u}}function v(){}function d(){}function m(n){function t(){for(var t,r=e,u=-1,i=r.length;++ue;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function U(n){return sa(n,da),n}function j(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t0&&(n=n.substring(0,a));var s=ya.get(n);return s&&(n=s,c=Y),a?t?u:r:t?v:i}function O(n,t){return function(e){var r=Zo.event;Zo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Zo.event=r}}}function Y(n,t){var e=O(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function I(){var n=".dragsuppress-"+ ++Ma,t="click"+n,e=Zo.select(Wo).on("touchmove"+n,y).on("dragstart"+n,y).on("selectstart"+n,y);if(xa){var r=Bo.style,u=r[xa];r[xa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),xa&&(r[xa]=u),i&&(e.on(t,function(){y(),o()},!0),setTimeout(o,0))}}function Z(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>_a&&(Wo.scrollX||Wo.scrollY)){e=Zo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();_a=!(u.f||u.e),e.remove()}return _a?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function V(){return Zo.event.changedTouches[0].identifier}function X(){return Zo.event.target}function $(){return Wo}function B(n){return n>0?1:0>n?-1:0}function W(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function J(n){return n>1?0:-1>n?ba:Math.acos(n)}function G(n){return n>1?Sa:-1>n?-Sa:Math.asin(n)}function K(n){return((n=Math.exp(n))-1/n)/2}function Q(n){return((n=Math.exp(n))+1/n)/2}function nt(n){return((n=Math.exp(2*n))-1)/(n+1)}function tt(n){return(n=Math.sin(n/2))*n}function et(){}function rt(n,t,e){return this instanceof rt?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof rt?new rt(n.h,n.s,n.l):mt(""+n,yt,rt):new rt(n,t,e)}function ut(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new gt(u(n+120),u(n),u(n-120))}function it(n,t,e){return this instanceof it?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof it?new it(n.h,n.c,n.l):n instanceof at?st(n.l,n.a,n.b):st((n=xt((n=Zo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new it(n,t,e)}function ot(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new at(e,Math.cos(n*=Aa)*t,Math.sin(n)*t)}function at(n,t,e){return this instanceof at?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof at?new at(n.l,n.a,n.b):n instanceof it?ot(n.l,n.c,n.h):xt((n=gt(n)).r,n.g,n.b):new at(n,t,e)}function ct(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=lt(u)*ja,r=lt(r)*Ha,i=lt(i)*Fa,new gt(ht(3.2404542*u-1.5371385*r-.4985314*i),ht(-.969266*u+1.8760108*r+.041556*i),ht(.0556434*u-.2040259*r+1.0572252*i))}function st(n,t,e){return n>0?new it(Math.atan2(e,t)*Ca,Math.sqrt(t*t+e*e),n):new it(0/0,0/0,n)}function lt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function ft(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function ht(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function gt(n,t,e){return this instanceof gt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof gt?new gt(n.r,n.g,n.b):mt(""+n,gt,ut):new gt(n,t,e)}function pt(n){return new gt(n>>16,255&n>>8,255&n)}function vt(n){return pt(n)+""}function dt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(_t(u[0]),_t(u[1]),_t(u[2]))}return(i=Ia.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.substring(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function yt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new rt(r,u,c)}function xt(n,t,e){n=Mt(n),t=Mt(t),e=Mt(e);var r=ft((.4124564*n+.3575761*t+.1804375*e)/ja),u=ft((.2126729*n+.7151522*t+.072175*e)/Ha),i=ft((.0193339*n+.119192*t+.9503041*e)/Fa);return at(116*u-16,500*(r-u),200*(u-i))}function Mt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function _t(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function bt(n){return"function"==typeof n?n:function(){return n}}function wt(n){return n}function St(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),kt(t,e,n,r)}}function kt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Zo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Wo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Zo.event;Zo.event=n;try{o.progress.call(i,c)}finally{Zo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Xo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Zo.rebind(i,o,"on"),null==r?i:i.get(Et(r))}function Et(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function At(){var n=Ct(),t=Nt()-n;t>24?(isFinite(t)&&(clearTimeout($a),$a=setTimeout(At,t)),Xa=0):(Xa=1,Wa(At))}function Ct(){var n=Date.now();for(Ba=Za;Ba;)n>=Ba.t&&(Ba.f=Ba.c(n-Ba.t)),Ba=Ba.n;return n}function Nt(){for(var n,t=Za,e=1/0;t;)t.f?t=n?n.n=t.n:Za=t.n:(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Tt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r?function(n){for(var t=n.length,u=[],i=0,o=r[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=r[i=(i+1)%r.length];return u.reverse().join(e)}:wt;return function(n){var e=Ga.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"",c=e[4]||"",s=e[5],l=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1;switch(h&&(h=+h.substring(1)),(s||"0"===r&&"="===o)&&(s=r="0",o="=",f&&(l-=Math.floor((l-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=Ka.get(g)||qt;var y=s&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}}}function qt(n){return n+""}function Rt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Dt(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new nc(e-1)),1),e}function i(n,e){return t(n=new nc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{nc=Rt;var r=new Rt;return r._=n,o(r,t,e)}finally{nc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Pt(n);return c.floor=c,c.round=Pt(r),c.ceil=Pt(u),c.offset=Pt(i),c.range=a,n}function Pt(n){return function(t,e){try{nc=Rt;var r=new Rt;return r._=t,n(r,e)._}finally{nc=Date}}}function Ut(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++aa;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in ec?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.substring(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.substring(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.substring(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.substring(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function s(n,t,r){return e(n,C.X.toString(),t,r)}function l(n,t,e){var r=x.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{nc=Rt;var t=new nc;return t._=n,r(t)}finally{nc=Date}}var r=t(n);return e.parse=function(n){try{nc=Rt;var t=r.parse(n);return t&&t._}finally{nc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=re;var x=Zo.map(),M=Ht(v),_=Ft(v),b=Ht(d),w=Ft(d),S=Ht(m),k=Ft(m),E=Ht(y),A=Ft(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return jt(n.getDate(),t,2)},e:function(n,t){return jt(n.getDate(),t,2)},H:function(n,t){return jt(n.getHours(),t,2)},I:function(n,t){return jt(n.getHours()%12||12,t,2)},j:function(n,t){return jt(1+Qa.dayOfYear(n),t,3)},L:function(n,t){return jt(n.getMilliseconds(),t,3)},m:function(n,t){return jt(n.getMonth()+1,t,2)},M:function(n,t){return jt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return jt(n.getSeconds(),t,2)},U:function(n,t){return jt(Qa.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return jt(Qa.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return jt(n.getFullYear()%100,t,2)},Y:function(n,t){return jt(n.getFullYear()%1e4,t,4)},Z:te,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Wt,e:Wt,H:Gt,I:Gt,j:Jt,L:ne,m:Bt,M:Kt,p:l,S:Qt,U:Yt,w:Ot,W:It,x:c,X:s,y:Vt,Y:Zt,Z:Xt,"%":ee};return t}function jt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Ht(n){return new RegExp("^(?:"+n.map(Zo.requote).join("|")+")","i")}function Ft(n){for(var t=new o,e=-1,r=n.length;++e68?1900:2e3)}function Bt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Wt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Jt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Gt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Kt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Qt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ne(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function te(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(ua(t)/60),u=ua(t)%60;return e+jt(r,"0",2)+jt(u,"0",2)}function ee(n,t,e){uc.lastIndex=0;var r=uc.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function re(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,c=Math.cos(t),s=Math.sin(t),l=i*s,f=u*c+l*Math.cos(a),h=l*o*Math.sin(a);lc.add(Math.atan2(h,f)),r=n,u=c,i=s}var t,e,r,u,i;fc.point=function(o,a){fc.point=n,r=(t=o)*Aa,u=Math.cos(a=(e=a)*Aa/2+ba/4),i=Math.sin(a)},fc.lineEnd=function(){n(t,e)}}function le(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function fe(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function he(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function ge(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function pe(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function ve(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function de(n){return[Math.atan2(n[1],n[0]),G(n[2])]}function me(n,t){return ua(n[0]-t[0])a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new Ee(e,n,null,!0),s=new Ee(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new Ee(r,n,null,!1),s=new Ee(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),ke(i),ke(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ke(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Ce))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=Zo.merge(g);var n=Le(m,p);g.length?(_||(i.polygonStart(),_=!0),Se(g,ze,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ne(),M=t(x),_=!1;return y}}function Ce(n){return n.length>1}function Ne(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:v,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function ze(n,t){return((n=n.x)[0]<0?n[1]-Sa-ka:Sa-n[1])-((t=t.x)[0]<0?t[1]-Sa-ka:Sa-t[1])}function Le(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;lc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ba/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ba/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>ba,k=p*x;if(lc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*wa:_,S^h>=e^m>=e){var E=he(le(f),le(n));ve(E);var A=he(u,E);ve(A);var C=(S^_>=0?-1:1)*G(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-ka>i||ka>i&&0>lc)^1&o}function Te(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ba:-ba,c=ua(i-e);ua(c-ba)0?Sa:-Sa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ba&&(ua(e-u)ka?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Re(n,t,e,r){var u;if(null==n)u=e*Sa,r.point(-ba,u),r.point(0,u),r.point(ba,u),r.point(ba,0),r.point(ba,-u),r.point(0,-u),r.point(-ba,-u),r.point(-ba,0),r.point(-ba,u);else if(ua(n[0]-t[0])>ka){var i=n[0]i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ba:-ba),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(me(e,g)||me(p,g))&&(p[0]+=ka,p[1]+=ka,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&me(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=le(n),u=le(t),o=[1,0,0],a=he(r,u),c=fe(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=he(o,a),p=pe(o,f),v=pe(a,h);ge(p,v);var d=g,m=fe(p,d),y=fe(d,d),x=m*m-y*(fe(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=pe(d,(-m-M)/y);if(ge(_,p),_=de(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ua(A-ba)A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ua(_[0]-w)ba^(w<=_[0]&&_[0]<=S)){var z=pe(d,(-m+M)/y);return ge(z,p),[_,de(z)]}}}function u(t,e){var r=o?n:ba-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ua(i)>ka,c=sr(n,6*Aa);return Ae(t,e,c,o?[0,-n]:[-ba,n-ba])}function Pe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function Ue(n,t,e,r){function u(r,u){return ua(r[0]-n)0?0:3:ua(r[0]-e)0?2:1:ua(r[1]-t)0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,s=a[0];c>o;++o)i=a[o],s[1]<=r?i[1]>r&&W(s,i,n)>0&&++t:i[1]<=r&&W(s,i,n)<0&&--t,s=i;return 0!==t}function s(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function l(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){l(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-kc,Math.min(kc,n)),t=Math.max(-kc,Math.min(kc,t));var e=l(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=Ne(),C=Pe(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Zo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),u&&Se(v,i,t,s,a),a.polygonEnd()),v=d=m=null}};return N}}function je(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function He(n){var t=0,e=ba/3,r=tr(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ba/180,e=n[1]*ba/180):[180*(t/ba),180*(e/ba)]},u}function Fe(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,G((i-(n*n+e*e)*u*u)/(2*u))]},e}function Oe(){function n(n,t){Ac+=u*n-r*t,r=n,u=t}var t,e,r,u;Tc.point=function(i,o){Tc.point=n,t=r=i,e=u=o},Tc.lineEnd=function(){n(t,e)}}function Ye(n,t){Cc>n&&(Cc=n),n>zc&&(zc=n),Nc>t&&(Nc=t),t>Lc&&(Lc=t)}function Ie(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Ze(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Ze(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Ze(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Ve(n,t){pc+=n,vc+=t,++dc}function Xe(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);mc+=o*(t+n)/2,yc+=o*(e+r)/2,xc+=o,Ve(t=n,e=r)}var t,e;Rc.point=function(r,u){Rc.point=n,Ve(t=r,e=u)}}function $e(){Rc.point=Ve}function Be(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);mc+=o*(r+n)/2,yc+=o*(u+t)/2,xc+=o,o=u*n-r*t,Mc+=o*(r+n),_c+=o*(u+t),bc+=3*o,Ve(r=n,u=t)}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,Ve(t=r=i,e=u=o)},Rc.lineEnd=function(){n(t,e)}}function We(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,wa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:v};return a}function Je(n){function t(n){return(a?r:e)(n)}function e(t){return Qe(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=le([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ua(ua(w)-1)i||ua((y*z+x*L)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Aa),a=16; +return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function Ge(n){var t=Je(function(t,e){return n([t*Ca,e*Ca])});return function(n){return er(t(n))}}function Ke(n){this.stream=n}function Qe(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function nr(n){return tr(function(){return n})()}function tr(n){function t(n){return n=a(n[0]*Aa,n[1]*Aa),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ca,n[1]*Ca]}function r(){a=je(o=ir(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=Je(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Sc,_=wt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=er(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Sc):De((b=+n)*Aa),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Ue(n[0][0],n[0][1],n[1][0],n[1][1]):wt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Aa,d=n[1]%360*Aa,r()):[v*Ca,d*Ca]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Aa,y=n[1]%360*Aa,x=n.length>2?n[2]%360*Aa:0,r()):[m*Ca,y*Ca,x*Ca]},Zo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function er(n){return Qe(n,function(t,e){n.point(t*Aa,e*Aa)})}function rr(n,t){return[n,t]}function ur(n,t){return[n>ba?n-wa:-ba>n?n+wa:n,t]}function ir(n,t,e){return n?t||e?je(ar(n),cr(t,e)):ar(n):t||e?cr(t,e):ur}function or(n){return function(t,e){return t+=n,[t>ba?t-wa:-ba>t?t+wa:t,e]}}function ar(n){var t=or(n);return t.invert=or(-n),t}function cr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),G(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),G(l*r-a*u)]},e}function sr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=lr(e,u),i=lr(e,i),(o>0?i>u:u>i)&&(u+=o*wa)):(u=n+o*wa,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=de([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function lr(n,t){var e=le(t);e[0]-=n,ve(e);var r=J(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-ka)%(2*Math.PI)}function fr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function hr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function gr(n){return n.source}function pr(n){return n.target}function vr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(tt(r-t)+u*o*tt(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ca,Math.atan2(o,Math.sqrt(r*r+u*u))*Ca]}:function(){return[n*Ca,t*Ca]};return p.distance=h,p}function dr(){function n(n,u){var i=Math.sin(u*=Aa),o=Math.cos(u),a=ua((n*=Aa)-t),c=Math.cos(a);Dc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Pc.point=function(u,i){t=u*Aa,e=Math.sin(i*=Aa),r=Math.cos(i),Pc.point=n},Pc.lineEnd=function(){Pc.point=Pc.lineEnd=v}}function mr(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function yr(n,t){function e(n,t){o>0?-Sa+ka>t&&(t=-Sa+ka):t>Sa-ka&&(t=Sa-ka);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ba/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=B(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Sa]},e):Mr}function xr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ua(u)u;u++){for(;r>1&&W(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function Er(n,t){return n[0]-t[0]||n[1]-t[1]}function Ar(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Cr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function Nr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function zr(){Gr(this),this.edge=this.site=this.circle=null}function Lr(n){var t=Bc.pop()||new zr;return t.site=n,t}function Tr(n){Yr(n),Vc.remove(n),Bc.push(n),Gr(n)}function qr(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Tr(n);for(var c=i;c.circle&&ua(e-c.circle.x)l;++l)s=a[l],c=a[l-1],Br(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=Xr(c.site,s.site,null,u),Or(c),Or(s)}function Rr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Vc._;a;)if(r=Dr(a,o)-i,r>ka)a=a.L;else{if(u=i-Pr(a,o),!(u>ka)){r>-ka?(t=a.P,e=a):u>-ka?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Lr(n);if(Vc.insert(t,c),t||e){if(t===e)return Yr(t),e=Lr(t.site),Vc.insert(c,e),c.edge=e.edge=Xr(t.site,c.site),Or(t),Or(e),void 0;if(!e)return c.edge=Xr(t.site,c.site),void 0;Yr(t),Yr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};Br(e.edge,s,p,M),c.edge=Xr(s,n,null,M),e.edge=Xr(n,p,null,M),Or(t),Or(e)}}function Dr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function Pr(n,t){var e=n.N;if(e)return Dr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ur(n){this.site=n,this.edges=[]}function jr(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Zc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(ua(r-t)>ka||ua(u-e)>ka)&&(a.splice(o,0,new Wr($r(i.site,l,ua(r-f)ka?{x:f,y:ua(t-f)ka?{x:ua(e-p)ka?{x:h,y:ua(t-h)ka?{x:ua(e-g)=-Ea)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Wc.pop()||new Fr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=$c._;x;)if(m.yd||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.yg){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.xi&&(u=t.substring(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:lu(e,r)})),i=Kc.lastIndex;return ir;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function hu(n,t){for(var e,r=Zo.interpolators.length;--r>=0&&!(e=Zo.interpolators[r](n,t)););return e}function gu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(hu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function pu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function vu(n){return function(t){return 1-n(1-t)}}function du(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function mu(n){return n*n}function yu(n){return n*n*n}function xu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Mu(n){return function(t){return Math.pow(t,n)}}function _u(n){return 1-Math.cos(n*Sa)}function bu(n){return Math.pow(2,10*(n-1))}function wu(n){return 1-Math.sqrt(1-n*n)}function Su(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/wa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*wa/t)}}function ku(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Eu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Au(n,t){n=Zo.hcl(n),t=Zo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ot(e+i*n,r+o*n,u+a*n)+""}}function Cu(n,t){n=Zo.hsl(n),t=Zo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ut(e+i*n,r+o*n,u+a*n)+""}}function Nu(n,t){n=Zo.lab(n),t=Zo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function zu(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Lu(n){var t=[n.a,n.b],e=[n.c,n.d],r=qu(t),u=Tu(t,e),i=qu(Ru(e,t,-u))||0;t[0]*e[1]180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:lu(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:lu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:lu(g[0],p[0])},{i:e-2,x:lu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i=0;)e.push(u[r])}function Bu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++oe;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function ii(n){return n.reduce(oi,0)}function oi(n,t){return n+t[1]}function ai(n,t){return ci(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ci(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function si(n){return[Zo.min(n),Zo.max(n)]}function li(n,t){return n.value-t.value}function fi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function hi(n,t){n._pack_next=t,t._pack_prev=n}function gi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function pi(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(vi),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],yi(r,u,i),t(i),fi(r,i),r._pack_prev=i,fi(i,u),u=r._pack_next,o=3;s>o;o++){yi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(gi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!gi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.ro;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(di)}}function vi(n){n._pack_next=n._pack_prev=n}function di(n){delete n._pack_next,delete n._pack_prev}function mi(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Si(n,t,e){return n.a.parent===t.parent?n.a:e}function ki(n){return 1+Zo.max(n,function(n){return n.y})}function Ei(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ai(n){var t=n.children;return t&&t.length?Ai(t[0]):n}function Ci(n){var t,e=n.children;return e&&(t=e.length)?Ci(e[t-1]):n}function Ni(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function zi(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Li(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ti(n){return n.rangeExtent?n.rangeExtent():Li(n.range())}function qi(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Di(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function Pi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Pi:qi,c=r?Uu:Pu;return o=u(n,t,c,e),a=u(t,n,c,hu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(zu)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Oi(n,t)},i.tickFormat=function(t,e){return Yi(n,t,e)},i.nice=function(t){return Hi(n,t),u()},i.copy=function(){return Ui(n,t,e,r)},u()}function ji(n,t){return Zo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Hi(n,t){return Ri(n,Di(Fi(n,t)[2]))}function Fi(n,t){null==t&&(t=10);var e=Li(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Oi(n,t){return Zo.range.apply(Zo,Fi(n,t))}function Yi(n,t,e){var r=Fi(n,t);if(e){var u=Ga.exec(e);if(u.shift(),"s"===u[8]){var i=Zo.formatPrefix(Math.max(ua(r[0]),ua(r[1])));return u[7]||(u[7]="."+Ii(i.scale(r[2]))),u[8]="f",e=Zo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Zi(u[8],r)),e=u.join("")}else e=",."+Ii(r[2])+"f";return Zo.format(e)}function Ii(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Zi(n,t){var e=Ii(t[2]);return n in ls?Math.abs(e-Ii(Math.max(ua(t[0]),ua(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Vi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Li(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++0;h--)o.push(i(s)*h);for(s=0;o[s]c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=Zo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Vi(n.copy(),t,e,r)},ji(o,n)}function Xi(n,t,e){function r(t){return n(u(t))}var u=$i(t),i=$i(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Oi(e,n)},r.tickFormat=function(n,t){return Yi(e,n,t)},r.nice=function(n){return r.domain(Hi(e,n))},r.exponent=function(o){return arguments.length?(u=$i(t=o),i=$i(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Xi(n.copy(),t,e)},ji(r,n)}function $i(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Bi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Zo.range(n.length).map(function(n){return t+e*n})}var u,i,a;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new o;for(var i,a=-1,c=r.length;++an?[0/0,0/0]:[n>0?o[n-1]:e[0],nt?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return Ji(n,t,e)},u()}function Gi(n,t){function e(e){return e>=e?t[Zo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Gi(n,t)},e}function Ki(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Oi(n,t)},t.tickFormat=function(t,e){return Yi(n,t,e)},t.copy=function(){return Ki(n)},t}function Qi(n){return n.innerRadius}function no(n){return n.outerRadius}function to(n){return n.startAngle}function eo(n){return n.endAngle}function ro(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=bt(e),p=bt(r);++f1&&u.push("H",r[0]),u.join("")}function ao(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function So(n){return n.length<3?uo(n):n[0]+ho(n,wo(n))}function ko(n){for(var t,e,r,u=-1,i=n.length;++ue?s():(u.active=e,i.event&&i.event.start.call(n,l,t),i.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),Zo.timer(function(){return p.c=c(r||1)?we:c,1},0,a),void 0)}function c(r){if(u.active!==e)return s();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a); +return o>=1?(i.event&&i.event.end.call(n,l,t),s()):void 0}function s(){return--u.count?delete u[e]:delete n.__transition__,1}var l=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ba,v=[];return p.t=h+a,r>=h?o(r-h):(p.c=o,void 0)},0,a)}}function Uo(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function jo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function Ho(n){return n.toISOString()}function Fo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Zo.bisect(Us,u);return i==Us.length?[t.year,Fi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Us[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Oo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Oo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Li(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Oo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Fo(n.copy(),t,e)},ji(r,n)}function Oo(n){return new Date(n)}function Yo(n){return JSON.parse(n.responseText)}function Io(n){var t=$o.createRange();return t.selectNode($o.body),t.createContextualFragment(n.responseText)}var Zo={version:"3.4.11"};Date.now||(Date.now=function(){return+new Date});var Vo=[].slice,Xo=function(n){return Vo.call(n)},$o=document,Bo=$o.documentElement,Wo=window;try{Xo(Bo.childNodes)[0].nodeType}catch(Jo){Xo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{$o.createElement("div").style.setProperty("opacity",0,"")}catch(Go){var Ko=Wo.Element.prototype,Qo=Ko.setAttribute,na=Ko.setAttributeNS,ta=Wo.CSSStyleDeclaration.prototype,ea=ta.setProperty;Ko.setAttribute=function(n,t){Qo.call(this,n,t+"")},Ko.setAttributeNS=function(n,t,e){na.call(this,n,t,e+"")},ta.setProperty=function(n,t,e){ea.call(this,n,t+"",e)}}Zo.ascending=n,Zo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Zo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ur&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ur&&(e=r)}return e},Zo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ue&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ue&&(e=r)}return e},Zo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i=e);)e=u=void 0;for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=e);)e=void 0;for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},Zo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i1&&(e=e.map(r)),e=e.filter(t),e.length?Zo.quantile(e.sort(n),.5):void 0};var ra=e(n);Zo.bisectLeft=ra.left,Zo.bisect=Zo.bisectRight=ra.right,Zo.bisector=function(t){return e(1===t.length?function(e,r){return n(t(e),r)}:t)},Zo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Zo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Zo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Zo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,t=Zo.min(arguments,r),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ua=Math.abs;Zo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,i=[],o=u(ua(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)i.push(r/o);else for(;(r=n+e*++a)=i.length)return r?r.call(u,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=i[c++],d=new o;++g=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Zo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Zo.set=function(n){var t=new h;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},i(h,{has:a,add:function(n){return this[ia+n]=!0,n},remove:function(n){return n=ia+n,n in this&&delete this[n]},values:s,size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===oa&&n.call(this,t.substring(1))}}),Zo.behavior={},Zo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Zo.event=null,Zo.requote=function(n){return n.replace(ca,"\\$&")};var ca=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},la=function(n,t){return t.querySelector(n)},fa=function(n,t){return t.querySelectorAll(n)},ha=Bo.matches||Bo[p(Bo,"matchesSelector")],ga=function(n,t){return ha.call(n,t)};"function"==typeof Sizzle&&(la=function(n,t){return Sizzle(n,t)[0]||null},fa=Sizzle,ga=Sizzle.matchesSelector),Zo.selection=function(){return ma};var pa=Zo.selection.prototype=[];pa.select=function(n){var t,e,r,u,i=[];n=b(n);for(var o=-1,a=this.length;++o=0&&(e=n.substring(0,t),n=n.substring(t+1)),va.hasOwnProperty(e)?{space:va[e],local:n}:n}},pa.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Zo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},pa.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=A(n)).length,u=-1;if(t=e.classList){for(;++ur){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(z(e,n[e],t));return this}if(2>r)return Wo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(z(n,t,e))},pa.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},pa.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},pa.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},pa.append=function(n){return n=T(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},pa.insert=function(n,t){return n=T(n),t=b(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},pa.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},pa.data=function(n,t){function e(n,e){var r,u,i,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new o,y=new o,x=[];for(r=-1;++rr;++r)p[r]=q(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,u,i=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return _(u)},pa.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},pa.sort=function(n){n=D.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},pa.size=function(){var n=0;return this.each(function(){++n}),n};var da=[];Zo.selection.enter=U,Zo.selection.enter.prototype=da,da.append=pa.append,da.empty=pa.empty,da.node=pa.node,da.call=pa.call,da.size=pa.size,da.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(F(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(F(n,t,e))};var ya=Zo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ya.forEach(function(n){"on"+n in $o&&ya.remove(n)});var xa="onselectstart"in $o?null:p(Bo.style,"userSelect"),Ma=0;Zo.mouse=function(n){return Z(n,x())};var _a=/WebKit/.test(Wo.navigator.userAgent)?-1:0;Zo.touches=function(n,t){return arguments.length<2&&(t=x().touches),t?Xo(t).map(function(t){var e=Z(n,t);return e.identifier=t.identifier,e}):[]},Zo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+s[0],y:r[1]+s[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Zo.event.target===f),g({type:"dragend"}))}var s,l=this,f=Zo.event.target,h=l.parentNode,g=e.of(l,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Zo.select(u()).on(i+d,a).on(o+d,c),y=I(),x=t(h,v);r?(s=r.apply(l,arguments),s=[s.x-x[0],s.y-x[1]]):s=[0,0],g({type:"dragstart"})}}var e=M(n,"drag","dragstart","dragend"),r=null,u=t(v,Zo.mouse,$,"mousemove","mouseup"),i=t(V,Zo.touch,X,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Zo.rebind(n,e,"on")};var ba=Math.PI,wa=2*ba,Sa=ba/2,ka=1e-6,Ea=ka*ka,Aa=ba/180,Ca=180/ba,Na=Math.SQRT2,za=2,La=4;Zo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=Q(v),o=i/(za*h)*(e*nt(Na*t+v)-K(v));return[r+o*s,u+o*l,i*e/Q(Na*t+v)]}return[r+n*s,u+n*l,i*Math.exp(Na*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+La*f)/(2*i*za*h),p=(c*c-i*i-La*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Na;return e.duration=1e3*y,e},Zo.behavior.zoom=function(){function n(n){n.on(A,s).on(Ra+".zoom",f).on("dblclick.zoom",h).on(z,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(x.range().map(function(n){return(n-S.x)/S.k}).map(x.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u(Zo.mouse(r),h),a(s)}function e(){f.on(C,null).on(N,null),g(l&&Zo.event.target===i),c(s)}var r=this,i=Zo.event.target,s=L.of(r,arguments),l=0,f=Zo.select(Wo).on(C,n).on(N,e),h=t(Zo.mouse(r)),g=I();H.call(r),o(s)}function l(){function n(){var n=Zo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Zo.event.target;Zo.select(t).on(M,i).on(_,f),b.push(t);for(var e=Zo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var s=n(),l=Date.now();if(1===s.length){if(500>l-m){var h=s[0],g=v[h.identifier];r(2*S.k),u(h,g),y(),a(p)}m=l}else if(s.length>1){var h=s[0],x=s[1],w=h[0]-x[0],k=h[1]-x[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Zo.touches(g),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=d&&Math.sqrt(l/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Zo.event.touches.length){for(var t=Zo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Zo.selectAll(b).on(x,null),w.on(A,s).on(z,l),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,x=".zoom-"+Zo.event.changedTouches[0].identifier,M="touchmove"+x,_="touchend"+x,b=[],w=Zo.select(g).on(A,null).on(z,e),k=I();H.call(g),e(),o(p)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Zo.mouse(this)),H.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),y(),r(Math.pow(2,.002*Ta())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Zo.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Zo.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,x,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=qa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=M(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Ss?Zo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Zo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?qa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,x=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},Zo.rebind(n,L,"on")};var Ta,qa=[0,1/0],Ra="onwheel"in $o?(Ta=function(){return-Zo.event.deltaY*(Zo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in $o?(Ta=function(){return Zo.event.wheelDelta},"mousewheel"):(Ta=function(){return-Zo.event.detail},"MozMousePixelScroll");Zo.color=et,et.prototype.toString=function(){return this.rgb()+""},Zo.hsl=rt;var Da=rt.prototype=new et;Da.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,this.l/n)},Da.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,n*this.l)},Da.rgb=function(){return ut(this.h,this.s,this.l)},Zo.hcl=it;var Pa=it.prototype=new et;Pa.brighter=function(n){return new it(this.h,this.c,Math.min(100,this.l+Ua*(arguments.length?n:1)))},Pa.darker=function(n){return new it(this.h,this.c,Math.max(0,this.l-Ua*(arguments.length?n:1)))},Pa.rgb=function(){return ot(this.h,this.c,this.l).rgb()},Zo.lab=at;var Ua=18,ja=.95047,Ha=1,Fa=1.08883,Oa=at.prototype=new et;Oa.brighter=function(n){return new at(Math.min(100,this.l+Ua*(arguments.length?n:1)),this.a,this.b)},Oa.darker=function(n){return new at(Math.max(0,this.l-Ua*(arguments.length?n:1)),this.a,this.b)},Oa.rgb=function(){return ct(this.l,this.a,this.b)},Zo.rgb=gt;var Ya=gt.prototype=new et;Ya.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new gt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new gt(u,u,u)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new gt(n*this.r,n*this.g,n*this.b)},Ya.hsl=function(){return yt(this.r,this.g,this.b)},Ya.toString=function(){return"#"+dt(this.r)+dt(this.g)+dt(this.b)};var Ia=Zo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ia.forEach(function(n,t){Ia.set(n,pt(t))}),Zo.functor=bt,Zo.xhr=St(wt),Zo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=kt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=s)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],s=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new h,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Zo.csv=Zo.dsv(",","text/csv"),Zo.tsv=Zo.dsv(" ","text/tab-separated-values"),Zo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=x().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return Z(n,r)};var Za,Va,Xa,$a,Ba,Wa=Wo[p(Wo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Zo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Va?Va.n=i:Za=i,Va=i,Xa||($a=clearTimeout($a),Xa=1,Wa(At))},Zo.timer.flush=function(){Ct(),Nt()},Zo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Ja=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Lt);Zo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Zo.round(n,zt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),Ja[8+e/3]};var Ga=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ka=Zo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Zo.round(n,zt(n,t))).toFixed(Math.max(0,Math.min(20,zt(n*(1+1e-15),t))))}}),Qa=Zo.time={},nc=Date;Rt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){tc.setUTCDate.apply(this._,arguments)},setDay:function(){tc.setUTCDay.apply(this._,arguments)},setFullYear:function(){tc.setUTCFullYear.apply(this._,arguments)},setHours:function(){tc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){tc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){tc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){tc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){tc.setUTCSeconds.apply(this._,arguments)},setTime:function(){tc.setTime.apply(this._,arguments)}};var tc=Date.prototype;Qa.year=Dt(function(n){return n=Qa.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Qa.years=Qa.year.range,Qa.years.utc=Qa.year.utc.range,Qa.day=Dt(function(n){var t=new nc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Qa.days=Qa.day.range,Qa.days.utc=Qa.day.utc.range,Qa.dayOfYear=function(n){var t=Qa.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=Qa[n]=Dt(function(n){return(n=Qa.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Qa[n+"s"]=e.range,Qa[n+"s"].utc=e.utc.range,Qa[n+"OfYear"]=function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)}}),Qa.week=Qa.sunday,Qa.weeks=Qa.sunday.range,Qa.weeks.utc=Qa.sunday.utc.range,Qa.weekOfYear=Qa.sundayOfYear;var ec={"-":"",_:" ",0:"0"},rc=/^\s*\d+/,uc=/^%/;Zo.locale=function(n){return{numberFormat:Tt(n),timeFormat:Ut(n)}};var ic=Zo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Zo.format=ic.numberFormat,Zo.geo={},ue.prototype={s:0,t:0,add:function(n){ie(n,this.t,oc),ie(oc.s,this.s,this),this.s?this.t+=oc.t:this.s=oc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oc=new ue;Zo.geo.stream=function(n,t){n&&ac.hasOwnProperty(n.type)?ac[n.type](n,t):oe(n,t)};var ac={Feature:function(n,t){oe(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*ba+n:n,fc.lineStart=fc.lineEnd=fc.point=v}};Zo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=le([t*Aa,e*Aa]);if(m){var u=he(m,r),i=[u[1],-u[0],0],o=he(i,u);ve(o),o=de(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ca*s,d=ua(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ca;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ca;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ua(r)>180?r+(r>0?360:-360):r}else v=n,d=e;fc.point(n,e),t(n,e)}function i(){fc.lineStart()}function o(){u(v,d),fc.lineEnd(),ua(y)>ka&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nlc?(l=-(h=180),f=-(g=90)):y>ka?g=90:-ka>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],Zo.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e); +for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),Zo.geo.centroid=function(n){hc=gc=pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,wc);var t=Mc,e=_c,r=bc,u=t*t+e*e+r*r;return Ea>u&&(t=mc,e=yc,r=xc,ka>gc&&(t=pc,e=vc,r=dc),u=t*t+e*e+r*r,Ea>u)?[0/0,0/0]:[Math.atan2(e,t)*Ca,G(r/Math.sqrt(u))*Ca]};var hc,gc,pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc={sphere:v,point:ye,lineStart:Me,lineEnd:_e,polygonStart:function(){wc.lineStart=be},polygonEnd:function(){wc.lineStart=Me}},Sc=Ae(we,Te,Re,[-ba,-ba/2]),kc=1e9;Zo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Zo.geo.conicEqualArea=function(){return He(Fe)}).raw=Fe,Zo.geo.albers=function(){return Zo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Zo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Zo.geo.albers(),o=Zo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Zo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+ka,f+.12*s+ka],[l-.214*s-ka,f+.234*s-ka]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+ka,f+.166*s+ka],[l-.115*s-ka,f+.234*s-ka]]).stream(c).point,n},n.scale(1070)};var Ec,Ac,Cc,Nc,zc,Lc,Tc={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Ac=0,Tc.lineStart=Oe},polygonEnd:function(){Tc.lineStart=Tc.lineEnd=Tc.point=v,Ec+=ua(Ac/2)}},qc={point:Ye,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Rc={point:Ve,lineStart:Xe,lineEnd:$e,polygonStart:function(){Rc.lineStart=Be},polygonEnd:function(){Rc.point=Ve,Rc.lineStart=Xe,Rc.lineEnd=$e}};Zo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Zo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Ec=0,Zo.geo.stream(n,u(Tc)),Ec},n.centroid=function(n){return pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,u(Rc)),bc?[Mc/bc,_c/bc]:xc?[mc/xc,yc/xc]:dc?[pc/dc,vc/dc]:[0/0,0/0]},n.bounds=function(n){return zc=Lc=-(Cc=Nc=1/0),Zo.geo.stream(n,u(qc)),[[Cc,Nc],[zc,Lc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Ge(n):wt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Ie:new We(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Zo.geo.albersUsa()).context(null)},Zo.geo.transform=function(n){return{stream:function(t){var e=new Ke(t);for(var r in n)e[r]=n[r];return e}}},Ke.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Zo.geo.projection=nr,Zo.geo.projectionMutator=tr,(Zo.geo.equirectangular=function(){return nr(rr)}).raw=rr.invert=rr,Zo.geo.rotation=function(n){function t(t){return t=n(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t}return n=ir(n[0]%360*Aa,n[1]*Aa,n.length>2?n[2]*Aa:0),t.invert=function(t){return t=n.invert(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t},t},ur.invert=rr,Zo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=ir(-n[0]*Aa,-n[1]*Aa,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ca,n[1]*=Ca}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=sr((t=+r)*Aa,u*Aa),n):t},n.precision=function(r){return arguments.length?(e=sr(t*Aa,(u=+r)*Aa),n):u},n.angle(90)},Zo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Aa,u=n[1]*Aa,i=t[1]*Aa,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},Zo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Zo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Zo.range(Math.ceil(s/m)*m,c,m).map(g)).concat(Zo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ua(n%d)>ka}).map(l)).concat(Zo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ua(n%m)>ka}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=fr(a,o,90),f=hr(r,e,y),h=fr(s,c,90),g=hr(i,u,y),n):y},n.majorExtent([[-180,-90+ka],[180,90-ka]]).minorExtent([[-180,-80-ka],[180,80+ka]])},Zo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=gr,u=pr;return n.distance=function(){return Zo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Zo.geo.interpolate=function(n,t){return vr(n[0]*Aa,n[1]*Aa,t[0]*Aa,t[1]*Aa)},Zo.geo.length=function(n){return Dc=0,Zo.geo.stream(n,Pc),Dc};var Dc,Pc={sphere:v,point:v,lineStart:dr,lineEnd:v,polygonStart:v,polygonEnd:v},Uc=mr(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Zo.geo.azimuthalEqualArea=function(){return nr(Uc)}).raw=Uc;var jc=mr(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},wt);(Zo.geo.azimuthalEquidistant=function(){return nr(jc)}).raw=jc,(Zo.geo.conicConformal=function(){return He(yr)}).raw=yr,(Zo.geo.conicEquidistant=function(){return He(xr)}).raw=xr;var Hc=mr(function(n){return 1/n},Math.atan);(Zo.geo.gnomonic=function(){return nr(Hc)}).raw=Hc,Mr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Sa]},(Zo.geo.mercator=function(){return _r(Mr)}).raw=Mr;var Fc=mr(function(){return 1},Math.asin);(Zo.geo.orthographic=function(){return nr(Fc)}).raw=Fc;var Oc=mr(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Zo.geo.stereographic=function(){return nr(Oc)}).raw=Oc,br.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Sa]},(Zo.geo.transverseMercator=function(){var n=_r(br),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=br,Zo.geom={},Zo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=bt(e),i=bt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(Er),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var s=kr(a),l=kr(c),f=l[0]===s[0],h=l[l.length-1]===s[s.length-1],g=[];for(t=s.length-1;t>=0;--t)g.push(n[a[s[t]][2]]);for(t=+f;t=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/ka)*ka,y:Math.round(o(n,t)/ka)*ka,i:t}})}var r=wr,u=Sr,i=r,o=u,a=Jc;return n?t(n):(t.links=function(n){return tu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return tu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Hr),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=ou()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=bt(a),M=bt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.xm&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=ou();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){au(n,k,v,d,m,y)},g=-1,null==t){for(;++g=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ns.get(e)||Qc,r=ts.get(r)||wt,pu(r(e.apply(null,Vo.call(arguments,1))))},Zo.interpolateHcl=Au,Zo.interpolateHsl=Cu,Zo.interpolateLab=Nu,Zo.interpolateRound=zu,Zo.transform=function(n){var t=$o.createElementNS(Zo.ns.prefix.svg,"g");return(Zo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Lu(e?e.matrix:es)})(n)},Lu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var es={a:1,b:0,c:0,d:1,e:0,f:0};Zo.interpolateTransform=Du,Zo.layout={},Zo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/d){if(p>c){var s=t.charge/c;n.px-=i*s,n.py-=o*s}return!0}if(t.point&&c&&p>c){var s=t.pointCharge/c;n.px-=i*s,n.py-=o*s}}return!t.charge}}function t(n){n.px=Zo.event.x,n.py=Zo.event.y,a.resume()}var e,r,u,i,o,a={},c=Zo.dispatch("start","tick","end"),s=[1,1],l=.9,f=rs,h=us,g=-30,p=is,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=s[0]/2,M=s[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Vu(t=Zo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Zo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++at;++t)(r=m[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Zo.behavior.drag().origin(wt).on("dragstart.force",Ou).on("drag.force",t).on("dragend.force",Yu)),arguments.length?(this.on("mouseover.force",Iu).on("mouseout.force",Zu).call(e),void 0):e},Zo.rebind(a,c,"on")};var rs=20,us=1,is=1/0;Zo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(s=e.call(n,i,i.depth))&&(c=s.length)){for(var c,s,l;--c>=0;)o.push(l=s[c]),l.parent=i,l.depth=i.depth+1;r&&(i.value=0),i.children=s}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Bu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=Gu,e=Wu,r=Ju;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&($u(t,function(n){n.children&&(n.value=0)}),Bu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Zo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++sg;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=wt,e=ei,r=ri,u=ti,i=Qu,o=ni;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||ei,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||ri,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=Zo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ui),i=n.map(ii),o=Zo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return Zo.range(n.length).reverse()},"default":ei}),cs=Zo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ri});Zo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=l[0]&&a<=l[1]&&(o=c[Zo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=si,u=ai;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=bt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return ci(n,t)}:bt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Zo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Bu(a,function(n){n.r=+l(n.value)}),Bu(a,pi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Bu(a,function(n){n.r+=f}),Bu(a,pi),Bu(a,function(n){n.r-=f})}return mi(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=Zo.layout.hierarchy().sort(li),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Xu(n,e)},Zo.layout.tree=function(){function n(n,u){var l=o.call(this,n,u),f=l[0],h=t(f);if(Bu(h,e),h.parent.m=-h.z,$u(h,r),s)$u(f,i);else{var g=f,p=f,v=f;$u(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);$u(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return l}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){wi(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],s=u.m,l=i.m,f=o.m,h=c.m;o=_i(o),u=Mi(u),o&&u;)c=Mi(c),i=_i(i),i.a=n,r=o.z+f-u.z-s+a(o._,u._),r>0&&(bi(Si(o,n,e),n,r),s+=r,l+=r),f+=o.m,s+=u.m,h+=c.m,l+=i.m;o&&!_i(i)&&(i.t=o,i.m+=f-l),u&&!Mi(c)&&(c.t=u,c.m+=s-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Zo.layout.hierarchy().sort(null).value(null),a=xi,c=[1,1],s=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(s=null==(c=t)?i:null,n):s?null:c},n.nodeSize=function(t){return arguments.length?(s=null==(c=t)?null:i,n):s?c:null},Xu(n,o)},Zo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Bu(c,function(n){var t=n.children;t&&t.length?(n.x=Ei(t),n.y=ki(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ai(c),f=Ci(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Bu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Zo.layout.hierarchy().sort(null).value(null),e=xi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Xu(n,t)},Zo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++oe&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++ie.dx)&&(l=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Zo.random.normal.apply(Zo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Zo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Zo.scale={};var ss={floor:wt,ceil:wt};Zo.scale.linear=function(){return Ui([0,1],[0,1],hu,!1)};var ls={s:1,g:1,p:1,r:1,e:1};Zo.scale.log=function(){return Vi(Zo.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=Zo.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Zo.scale.pow=function(){return Xi(Zo.scale.linear(),1,[0,1])},Zo.scale.sqrt=function(){return Zo.scale.pow().exponent(.5)},Zo.scale.ordinal=function(){return Bi([],{t:"range",a:[[]]})},Zo.scale.category10=function(){return Zo.scale.ordinal().range(gs)},Zo.scale.category20=function(){return Zo.scale.ordinal().range(ps)},Zo.scale.category20b=function(){return Zo.scale.ordinal().range(vs)},Zo.scale.category20c=function(){return Zo.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(vt),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(vt),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(vt),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(vt);Zo.scale.quantile=function(){return Wi([],[])},Zo.scale.quantize=function(){return Ji(0,1,[0,1])},Zo.scale.threshold=function(){return Gi([.5],[0,1])},Zo.scale.identity=function(){return Ki([0,1])},Zo.svg={},Zo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ba>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a); +return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=Qi,e=no,r=to,u=eo;return n.innerRadius=function(e){return arguments.length?(t=bt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=bt(t),n):e},n.startAngle=function(t){return arguments.length?(r=bt(t),n):r},n.endAngle=function(t){return arguments.length?(u=bt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Sa,ys=wa-ka;Zo.svg.line=function(){return ro(wt)};var xs=Zo.map({linear:uo,"linear-closed":io,step:oo,"step-before":ao,"step-after":co,basis:po,"basis-open":vo,"basis-closed":mo,bundle:yo,cardinal:fo,"cardinal-open":so,"cardinal-closed":lo,monotone:So});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];Zo.svg.line.radial=function(){var n=ro(ko);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},ao.reverse=co,co.reverse=ao,Zo.svg.area=function(){return Eo(wt)},Zo.svg.area.radial=function(){var n=Eo(ko);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Zo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ba)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=gr,o=pr,a=Ao,c=to,s=eo;return n.radius=function(t){return arguments.length?(a=bt(t),n):a},n.source=function(t){return arguments.length?(i=bt(t),n):i},n.target=function(t){return arguments.length?(o=bt(t),n):o},n.startAngle=function(t){return arguments.length?(c=bt(t),n):c},n.endAngle=function(t){return arguments.length?(s=bt(t),n):s},n},Zo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=gr,e=pr,r=Co;return n.source=function(e){return arguments.length?(t=bt(e),n):t},n.target=function(t){return arguments.length?(e=bt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Zo.svg.diagonal.radial=function(){var n=Zo.svg.diagonal(),t=Co,e=n.projection;return n.projection=function(n){return arguments.length?e(No(t=n)):t},n},Zo.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||To)(e.call(this,n,r))}var t=Lo,e=zo;return n.type=function(e){return arguments.length?(t=bt(e),n):t},n.size=function(t){return arguments.length?(e=bt(t),n):e},n};var ws=Zo.map({circle:To,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Zo.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*Aa),Cs=[],Ns=0;Cs.call=pa.call,Cs.empty=pa.empty,Cs.node=pa.node,Cs.size=pa.size,Zo.transition=function(n){return arguments.length?Ss?n.transition():n:ma.transition()},Zo.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=b(n);for(var o=-1,a=this.length;++oi;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return qo(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):P(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Du:hu,a=Zo.ns.qualify(n);return Ro(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Zo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Wo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=hu(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return Ro(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Wo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return Ro(this,"text",n,Do)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Zo.ease.apply(Zo,arguments)),P(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,P(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else P(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Zo.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Po(e,s,i,r)),n.push(e)}return qo(o,i)},Zo.svg.axis=function(){function n(n){n.each(function(){var n,s=Zo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):wt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",ka),d=Zo.transition(p.exit()).style("opacity",ka).remove(),m=Zo.transition(p.order()).style("opacity",1),y=Ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Zo.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=Uo,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Uo,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=jo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=jo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;l=f=function(n){return E(n)+A}}else l.rangeBand?l=f:d.call(n,f);v.call(n,l),m.call(n,f)})}var t,e=Zo.scale.linear(),r=zs,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ls?t+"":zs,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var zs="bottom",Ls={top:1,right:1,bottom:1,left:1};Zo.svg.brush=function(){function n(i){i.each(function(){var i=Zo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,wt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Ts[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=Zo.transition(i),h=Zo.transition(o);c&&(l=Ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=Ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Zo.event.keyCode&&(C||(x=null,z[0]-=l[1],z[1]-=f[1],C=2),y())}function p(){32==Zo.event.keyCode&&2==C&&(z[0]+=l[1],z[1]+=f[1],C=0,y())}function v(){var n=Zo.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Zo.event.altKey?(x||(x=[(l[0]+l[1])/2,(f[0]+f[1])/2]),z[0]=l[+(n[0]p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Zo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=Zo.select(Zo.event.target),w=a.of(_,arguments),S=Zo.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=I(),z=Zo.mouse(_),L=Zo.select(Wo).on("keydown.brush",u).on("keyup.brush",p);if(Zo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=l[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);M=[l[1-T]-z[0],f[1-q]-z[1]],z[0]=l[T],z[1]=f[q]}else Zo.event.altKey&&(x=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Zo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=M(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],f=[0,0],h=!0,g=!0,p=qs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?Zo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=gu(l,t.x),r=gu(f,t.y);return i=o=null,function(u){l=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=qs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,p=qs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(h=!!t[0],g=!!t[1]):c?h=!!t:s&&(g=!!t),n):c&&s?[h,g]:c?h:s?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),s&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(h=u,u=a,a=h))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&f[0]==f[1]},Zo.rebind(n,a,"on")};var Ts={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},qs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=Qa.format=ic.timeFormat,Ds=Rs.utc,Ps=Ds("%Y-%m-%dT%H:%M:%S.%LZ");Rs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ho:Ps,Ho.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Ho.toString=Ps.toString,Qa.second=Dt(function(n){return new nc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Qa.seconds=Qa.second.range,Qa.seconds.utc=Qa.second.utc.range,Qa.minute=Dt(function(n){return new nc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Qa.minutes=Qa.minute.range,Qa.minutes.utc=Qa.minute.utc.range,Qa.hour=Dt(function(n){var t=n.getTimezoneOffset()/60;return new nc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Qa.hours=Qa.hour.range,Qa.hours.utc=Qa.hour.utc.range,Qa.month=Dt(function(n){return n=Qa.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Qa.months=Qa.month.range,Qa.months.utc=Qa.month.utc.range;var Us=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],js=[[Qa.second,1],[Qa.second,5],[Qa.second,15],[Qa.second,30],[Qa.minute,1],[Qa.minute,5],[Qa.minute,15],[Qa.minute,30],[Qa.hour,1],[Qa.hour,3],[Qa.hour,6],[Qa.hour,12],[Qa.day,1],[Qa.day,2],[Qa.week,1],[Qa.month,1],[Qa.month,3],[Qa.year,1]],Hs=Rs.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",we]]),Fs={range:function(n,t,e){return Zo.range(Math.ceil(n/e)*e,+t,e).map(Oo)},floor:wt,ceil:wt};js.year=Qa.year,Qa.scale=function(){return Fo(Zo.scale.linear(),js,Hs)};var Os=js.map(function(n){return[n[0].utc,n[1]]}),Ys=Ds.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",we]]);Os.year=Qa.year.utc,Qa.scale.utc=function(){return Fo(Zo.scale.linear(),Os,Ys)},Zo.text=St(function(n){return n.responseText}),Zo.json=function(n,t){return kt(n,"application/json",Yo,t)},Zo.html=function(n,t){return kt(n,"text/html",Io,t)},Zo.xml=St(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Zo):"object"==typeof module&&module.exports&&(module.exports=Zo),this.d3=Zo}(); \ No newline at end of file diff --git a/src/lib/es5-shim/.bower.json b/src/lib/es5-shim/.bower.json new file mode 100644 index 00000000..2841e33b --- /dev/null +++ b/src/lib/es5-shim/.bower.json @@ -0,0 +1,44 @@ +{ + "name": "es5-shim", + "version": "3.1.1", + "main": "es5-shim.js", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/es5-shim" + }, + "homepage": "https://github.com/es-shims/es5-shim", + "authors": [ + "Kris Kowal (http://github.com/kriskowal/)", + "Sami Samhuri (http://samhuri.net/)", + "Florian Schäfer (http://github.com/fschaefer)", + "Irakli Gozalishvili (http://jeditoolkit.com)", + "Kit Cambridge (http://kitcambridge.github.com)", + "Jordan Harband (https://github.com/ljharb/)" + ], + "description": "ECMAScript 5 compatibility shims for legacy JavaScript engines", + "keywords": [ + "shim", + "es5", + "es5", + "shim", + "javascript", + "ecmascript", + "polyfill" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "tests" + ], + "_release": "3.1.1", + "_resolution": { + "type": "version", + "tag": "v3.1.1", + "commit": "f5ca40f6f49b7eb0abef39bb1c3a5b4f7ca176d5" + }, + "_source": "git://github.com/es-shims/es5-shim.git", + "_target": "~3.1.0", + "_originalSource": "es5-shim" +} \ No newline at end of file diff --git a/src/lib/es5-shim/CHANGES b/src/lib/es5-shim/CHANGES new file mode 100644 index 00000000..2447cfc9 --- /dev/null +++ b/src/lib/es5-shim/CHANGES @@ -0,0 +1,124 @@ +3.1.1 + - Update minified files (#231) + +3.1.0 + - Fix String#replace in Firefox up through 29 (#228) + +3.0.2 + - Fix `Function#bind` in IE 7 and 8 (#224, #225, #226) + +3.0.1 + - Version bump to ensure npm has newest minified assets + +3.0.0 + - es5-sham: fix `Object.getPrototypeOf` and `Object.getOwnPropertyDescriptor` for Opera Mini + - Better override noncompliant native ES5 methods: `Array#forEach`, `Array#map`, `Array#filter`, `Array#every`, `Array#some`, `Array#reduce`, `Date.parse`, `String#trim` + - Added spec-compliant shim for `parseInt` + - Ensure `Object.keys` handles more edge cases with `arguments` objects and boxed primitives + - Improve minification of builds + +2.3.0 + - parseInt is now properly shimmed in ES3 browsers to default the radix + - update URLs to point to the new organization + +2.2.0 + - Function.prototype.bind shim now reports correct length on a bound function + - fix node 0.6.x v8 bug in Array#forEach + - test improvements + +2.1.0 + - Object.create fixes + - tweaks to the Object.defineProperties shim + +2.0.0 + - Separate reliable shims from dubious shims (shams). + +1.2.10 + - Group-effort Style Cleanup + - Took a stab at fixing Object.defineProperty on IE8 without + bad side-effects. (@hax) + - Object.isExtensible no longer fakes it. (@xavierm) + - Date.prototype.toISOString no longer deals with partial + ISO dates, per spec (@kitcambridge) + - More (mostly from @bryanforbes) + +1.2.9 + - Corrections to toISOString by @kitcambridge + - Fixed three bugs in array methods revealed by Jasmine tests. + - Cleaned up Function.prototype.bind with more fixes and tests from + @bryanforbes. + +1.2.8 + - Actually fixed problems with Function.prototype.bind, and regressions + from 1.2.7 (@bryanforbes, @jdalton #36) + +1.2.7 - REGRESSED + - Fixed problems with Function.prototype.bind when called as a constructor. + (@jdalton #36) + +1.2.6 + - Revised Date.parse to match ES 5.1 (kitcambridge) + +1.2.5 + - Fixed a bug for padding it Date..toISOString (tadfisher issue #33) + +1.2.4 + - Fixed a descriptor bug in Object.defineProperty (raynos) + +1.2.3 + - Cleaned up RequireJS and + + +**When used in a web browser**, JSON 3 exposes an additional `JSON3` object containing the `noConflict()` and `runInContext()` functions, as well as aliases to the `stringify()` and `parse()` functions. + +### `noConflict` and `runInContext` + +* `JSON3.noConflict()` restores the original value of the global `JSON` object and returns a reference to the `JSON3` object. +* `JSON3.runInContext([context, exports])` initializes JSON 3 using the given `context` object (e.g., `window`, `global`, etc.), or the global object if omitted. If an `exports` object is specified, the `stringify()`, `parse()`, and `runInContext()` functions will be attached to it instead of a new object. + +### Asynchronous Module Loaders + +JSON 3 is defined as an [anonymous module](https://github.com/amdjs/amdjs-api/wiki/AMD#define-function-) for compatibility with [RequireJS](http://requirejs.org/), [`curl.js`](https://github.com/cujojs/curl), and other asynchronous module loaders. + + + + +To avoid issues with third-party scripts, **JSON 3 is exported to the global scope even when used with a module loader**. If this behavior is undesired, `JSON3.noConflict()` can be used to restore the global `JSON` object to its original value. + +## CommonJS Environments + + var JSON3 = require("./path/to/json3"); + JSON3.parse("[1, 2, 3]"); + // => [1, 2, 3] + +## JavaScript Engines + + load("path/to/json3.js"); + JSON.stringify({"Hello": 123, "Good-bye": 456}, ["Hello"], "\t"); + // => '{\n\t"Hello": 123\n}' + +# Compatibility # + +JSON 3 has been **tested** with the following web browsers, CommonJS environments, and JavaScript engines. + +## Web Browsers + +- Windows [Internet Explorer](http://www.microsoft.com/windows/internet-explorer), version 6.0 and higher +- Mozilla [Firefox](http://www.mozilla.com/firefox), version 1.0 and higher +- Apple [Safari](http://www.apple.com/safari), version 2.0 and higher +- [Opera](http://www.opera.com) 7.02 and higher +- [Mozilla](http://sillydog.org/narchive/gecko.php) 1.0, [Netscape](http://sillydog.org/narchive/) 6.2.3, and [SeaMonkey](http://www.seamonkey-project.org/) 1.0 and higher + +## CommonJS Environments + +- [Node](http://nodejs.org/) 0.2.6 and higher +- [RingoJS](http://ringojs.org/) 0.4 and higher +- [Narwhal](http://narwhaljs.org/) 0.3.2 and higher + +## JavaScript Engines + +- Mozilla [Rhino](http://www.mozilla.org/rhino) 1.5R5 and higher +- WebKit [JSC](https://trac.webkit.org/wiki/JSC) +- Google [V8](http://code.google.com/p/v8) + +## Known Incompatibilities + +* Attempting to serialize the `arguments` object may produce inconsistent results across environments due to specification version differences. As a workaround, please convert the `arguments` object to an array first: `JSON.stringify([].slice.call(arguments, 0))`. + +## Required Native Methods + +JSON 3 assumes that the following methods exist and function as described in the ECMAScript specification: + +- The `Number`, `String`, `Array`, `Object`, `Date`, `SyntaxError`, and `TypeError` constructors. +- `String.fromCharCode` +- `Object#toString` +- `Function#call` +- `Math.floor` +- `Number#toString` +- `Date#valueOf` +- `String.prototype`: `indexOf`, `charCodeAt`, `charAt`, `slice`. +- `Array.prototype`: `push`, `pop`, `join`. + +# Contribute # + +Check out a working copy of the JSON 3 source code with [Git](http://git-scm.com/): + + $ git clone git://github.com/bestiejs/json3.git + $ cd json3 + +If you'd like to contribute a feature or bug fix, you can [fork](http://help.github.com/fork-a-repo/) JSON 3, commit your changes, and [send a pull request](http://help.github.com/send-pull-requests/). Please make sure to update the unit tests in the `test` directory as well. + +Alternatively, you can use the [GitHub issue tracker](https://github.com/bestiejs/json3/issues) to submit bug reports, feature requests, and questions, or send tweets to [@kitcambridge](http://twitter.com/kitcambridge). + +JSON 3 is released under the [MIT License](http://kit.mit-license.org/). diff --git a/src/lib/json3/bower.json b/src/lib/json3/bower.json new file mode 100644 index 00000000..7215dada --- /dev/null +++ b/src/lib/json3/bower.json @@ -0,0 +1,38 @@ +{ + "name": "json3", + "version": "3.3.2", + "main": "lib/json3.js", + "repository": { + "type": "git", + "url": "git://github.com/bestiejs/json3.git" + }, + "ignore": [ + ".*", + "**/.*", + "build.js", + "index.html", + "index.js", + "component.json", + "package.json", + "benchmark", + "page", + "test", + "vendor", + "tests" + ], + "homepage": "https://github.com/bestiejs/json3", + "description": "A modern JSON implementation compatible with nearly all JavaScript platforms", + "keywords": [ + "json", + "spec", + "ecma", + "es5", + "lexer", + "parser", + "stringify" + ], + "authors": [ + "Kit Cambridge " + ], + "license": "MIT" +} diff --git a/src/lib/json3/lib/json3.js b/src/lib/json3/lib/json3.js new file mode 100644 index 00000000..4817c9e7 --- /dev/null +++ b/src/lib/json3/lib/json3.js @@ -0,0 +1,902 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; + + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; + + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; + + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } + + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } + + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } + } + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; + } + + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); + }; + } + + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; + }; + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } + + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } + } + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } + } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; + + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; + + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; + } + result += useCharIndex ? symbols[index] : value.charAt(index); + } + } + return result + '"'; + }; + + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); + } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; + } else { + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); + } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; + } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; + + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); + } + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); + } + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); + }; + } + + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; + + // Internal: Stores the parser state. + var Index, Source; + + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; + + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } + } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); + } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; + + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); + } + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; + } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; + + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; + }; + } + } + + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); diff --git a/src/lib/json3/lib/json3.min.js b/src/lib/json3/lib/json3.min.js new file mode 100644 index 00000000..5f896fa0 --- /dev/null +++ b/src/lib/json3/lib/json3.min.js @@ -0,0 +1,17 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +(function(){function N(p,r){function q(a){if(q[a]!==w)return q[a];var c;if("bug-string-char-index"==a)c="a"!="a"[0];else if("json"==a)c=q("json-stringify")&&q("json-parse");else{var e;if("json-stringify"==a){c=r.stringify;var b="function"==typeof c&&s;if(b){(e=function(){return 1}).toJSON=e;try{b="0"===c(0)&&"0"===c(new t)&&'""'==c(new A)&&c(u)===w&&c(w)===w&&c()===w&&"1"===c(e)&&"[1]"==c([e])&&"[null]"==c([w])&&"null"==c(null)&&"[null,null,null]"==c([w,u,null])&&'{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'== +c({a:[e,!0,!1,null,"\x00\b\n\f\r\t"]})&&"1"===c(null,e)&&"[\n 1,\n 2\n]"==c([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==c(new C(-864E13))&&'"+275760-09-13T00:00:00.000Z"'==c(new C(864E13))&&'"-000001-01-01T00:00:00.000Z"'==c(new C(-621987552E5))&&'"1969-12-31T23:59:59.999Z"'==c(new C(-1))}catch(f){b=!1}}c=b}if("json-parse"==a){c=r.parse;if("function"==typeof c)try{if(0===c("0")&&!c(!1)){e=c('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');var n=5==e.a.length&&1===e.a[0];if(n){try{n=!c('"\t"')}catch(d){}if(n)try{n= +1!==c("01")}catch(g){}if(n)try{n=1!==c("1.")}catch(m){}}}}catch(X){n=!1}c=n}}return q[a]=!!c}p||(p=k.Object());r||(r=k.Object());var t=p.Number||k.Number,A=p.String||k.String,H=p.Object||k.Object,C=p.Date||k.Date,G=p.SyntaxError||k.SyntaxError,K=p.TypeError||k.TypeError,L=p.Math||k.Math,I=p.JSON||k.JSON;"object"==typeof I&&I&&(r.stringify=I.stringify,r.parse=I.parse);var H=H.prototype,u=H.toString,v,B,w,s=new C(-0xc782b5b800cec);try{s=-109252==s.getUTCFullYear()&&0===s.getUTCMonth()&&1===s.getUTCDate()&& +10==s.getUTCHours()&&37==s.getUTCMinutes()&&6==s.getUTCSeconds()&&708==s.getUTCMilliseconds()}catch(Q){}if(!q("json")){var D=q("bug-string-char-index");if(!s)var x=L.floor,M=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,c){return M[c]+365*(a-1970)+x((a-1969+(c=+(1d){c+="\\u00"+y(2,d.toString(16));break}c+=f?n[b]:a.charAt(b)}}return c+'"'},O=function(a,c,b,h,f,n,d){var g,m,k,l,p,r,s,t,q;try{g=c[a]}catch(z){}if("object"==typeof g&&g)if(m=u.call(g),"[object Date]"!=m||v.call(g, +"toJSON"))"function"==typeof g.toJSON&&("[object Number]"!=m&&"[object String]"!=m&&"[object Array]"!=m||v.call(g,"toJSON"))&&(g=g.toJSON(a));else if(g>-1/0&&g<1/0){if(E){l=x(g/864E5);for(m=x(l/365.2425)+1970-1;E(m+1,0)<=l;m++);for(k=x((l-E(m,0))/30.42);E(m,k+1)<=l;k++);l=1+l-E(m,k);p=(g%864E5+864E5)%864E5;r=x(p/36E5)%24;s=x(p/6E4)%60;t=x(p/1E3)%60;p%=1E3}else m=g.getUTCFullYear(),k=g.getUTCMonth(),l=g.getUTCDate(),r=g.getUTCHours(),s=g.getUTCMinutes(),t=g.getUTCSeconds(),p=g.getUTCMilliseconds(); +g=(0>=m||1E4<=m?(0>m?"-":"+")+y(6,0>m?-m:m):y(4,m))+"-"+y(2,k+1)+"-"+y(2,l)+"T"+y(2,r)+":"+y(2,s)+":"+y(2,t)+"."+y(3,p)+"Z"}else g=null;b&&(g=b.call(c,a,g));if(null===g)return"null";m=u.call(g);if("[object Boolean]"==m)return""+g;if("[object Number]"==m)return g>-1/0&&g<1/0?""+g:"null";if("[object String]"==m)return R(""+g);if("object"==typeof g){for(a=d.length;a--;)if(d[a]===g)throw K();d.push(g);q=[];c=n;n+=f;if("[object Array]"==m){k=0;for(a=g.length;k=b.length?b:b.slice(0,10));return O("",(l={},l[""]=a,l),f,n,h,"",[])}}if(!q("json-parse")){var V=A.fromCharCode,W={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},b,J,l=function(){b=J=null;throw G();},z=function(){for(var a=J,c=a.length,e,h,f,k,d;bd)l();else if(92==d)switch(d=a.charCodeAt(++b),d){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=W[d];b++;break;case 117:h=++b;for(f=b+4;b=d||97<=d&&102>=d||65<=d&&70>=d||l();e+=V("0x"+a.slice(h,b));break;default:l()}else{if(34==d)break;d=a.charCodeAt(b);for(h=b;32<=d&&92!=d&&34!=d;)d=a.charCodeAt(++b);e+=a.slice(h,b)}if(34==a.charCodeAt(b))return b++,e;l();default:h= +b;45==d&&(k=!0,d=a.charCodeAt(++b));if(48<=d&&57>=d){for(48==d&&(d=a.charCodeAt(b+1),48<=d&&57>=d)&&l();b=d);b++);if(46==a.charCodeAt(b)){for(f=++b;f=d);f++);f==b&&l();b=f}d=a.charCodeAt(b);if(101==d||69==d){d=a.charCodeAt(++b);43!=d&&45!=d||b++;for(f=b;f=d);f++);f==b&&l();b=f}return+a.slice(h,b)}k&&l();if("true"==a.slice(b,b+4))return b+=4,!0;if("false"==a.slice(b,b+5))return b+=5,!1;if("null"==a.slice(b, +b+4))return b+=4,null;l()}return"$"},P=function(a){var c,b;"$"==a&&l();if("string"==typeof a){if("@"==(D?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(c=[];;b||(b=!0)){a=z();if("]"==a)break;b&&(","==a?(a=z(),"]"==a&&l()):l());","==a&&l();c.push(P(a))}return c}if("{"==a){for(c={};;b||(b=!0)){a=z();if("}"==a)break;b&&(","==a?(a=z(),"}"==a&&l()):l());","!=a&&"string"==typeof a&&"@"==(D?a.charAt(0):a[0])&&":"==z()||l();c[a.slice(1)]=P(z())}return c}l()}return a},T=function(a,b,e){e=S(a,b,e);e=== +w?delete a[b]:a[b]=e},S=function(a,b,e){var h=a[b],f;if("object"==typeof h&&h)if("[object Array]"==u.call(h))for(f=h.length;f--;)T(h,f,e);else B(h,function(a){T(h,a,e)});return e.call(a,b,h)};r.parse=function(a,c){var e,h;b=0;J=""+a;e=P(z());"$"!=z()&&l();b=J=null;return c&&"[object Function]"==u.call(c)?S((h={},h[""]=e,h),"",c):e}}}r.runInContext=N;return r}var K=typeof define==="function"&&define.amd,F={"function":!0,object:!0},G=F[typeof exports]&&exports&&!exports.nodeType&&exports,k=F[typeof window]&& +window||this,t=G&&F[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;!t||t.global!==t&&t.window!==t&&t.self!==t||(k=t);if(G&&!K)N(k,G);else{var L=k.JSON,Q=k.JSON3,M=!1,A=N(k,k.JSON3={noConflict:function(){M||(M=!0,k.JSON=L,k.JSON3=Q,L=Q=null);return A}});k.JSON={parse:A.parse,stringify:A.stringify}}K&&define(function(){return A})}).call(this); diff --git a/src/lib/lodash/.bower.json b/src/lib/lodash/.bower.json new file mode 100644 index 00000000..f8119955 --- /dev/null +++ b/src/lib/lodash/.bower.json @@ -0,0 +1,33 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ], + "homepage": "https://github.com/lodash/lodash", + "_release": "2.4.1", + "_resolution": { + "type": "version", + "tag": "2.4.1", + "commit": "c7aa842eded639d6d90a5714d3195a8802c86687" + }, + "_source": "git://github.com/lodash/lodash.git", + "_target": "~2.4.1", + "_originalSource": "lodash" +} \ No newline at end of file diff --git a/src/lib/lodash/LICENSE.txt b/src/lib/lodash/LICENSE.txt new file mode 100644 index 00000000..49869bba --- /dev/null +++ b/src/lib/lodash/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2013 The Dojo Foundation +Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/lib/lodash/bower.json b/src/lib/lodash/bower.json new file mode 100644 index 00000000..a6f139d7 --- /dev/null +++ b/src/lib/lodash/bower.json @@ -0,0 +1,23 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ] +} diff --git a/src/lib/moment/moment.js b/src/lib/moment/moment.js new file mode 100644 index 00000000..c003e95f --- /dev/null +++ b/src/lib/moment/moment.js @@ -0,0 +1,3606 @@ +//! moment.js +//! version : 2.11.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + function isUndefined(input) { + return input === void 0; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + // internal storage for locale config files + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function get_set__set (mom, unit, value) { + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + return isArray(this._months) ? this._months[m.month()] : + this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i'); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + //the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(utils_hooks__hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to begining of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + if (!valid__isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(utils_hooks__hooks.now()); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = ((string || '').match(matcher) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + } else if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(matchOffset, this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this > +localInput; + } else { + return +localInput < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this < +localInput; + } else { + return +this.clone().endOf(units) < +localInput; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + return +this === +localInput; + } else { + inputMs = +localInput; + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input,units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input,units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + delta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // JSON.stringify(new Date(NaN)) === 'null' + return this.isValid() ? this.toISOString() : 'null'; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + // console.log("got", weekYear, week, weekday, "set", date.toISOString()); + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = local__createLocal([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isSameOrAfter = isSameOrAfter; + momentPrototype__proto.isSameOrBefore = isSameOrBefore; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = toJSON; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + momentPrototype__proto.creationData = creationData; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + prototype__proto._monthsRegex = defaultMonthsRegex; + prototype__proto.monthsRegex = monthsRegex; + prototype__proto._monthsShortRegex = defaultMonthsShortRegex; + prototype__proto.monthsShortRegex = monthsShortRegex; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.11.1'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.now = now; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + utils_hooks__hooks.prototype = momentPrototype; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/src/robots.txt b/src/robots.txt new file mode 100644 index 00000000..94174950 --- /dev/null +++ b/src/robots.txt @@ -0,0 +1,3 @@ +# robotstxt.org + +User-agent: * diff --git a/src/scripts/app.js b/src/scripts/app.js new file mode 100644 index 00000000..057cc822 --- /dev/null +++ b/src/scripts/app.js @@ -0,0 +1,249 @@ +// 'use strict'; + +/** + * @ngdoc overview + * @name livewellApp + * @description + * # livewellApp + * + * Main module of the application. + */ +angular + .module('livewellApp', [ + 'ngAnimate', + 'ngCookies', + 'ngResource', + 'ngRoute', + 'ngSanitize', + 'ngTouch', + 'highcharts-ng', + 'angularMoment' + ]) + .config(function ($routeProvider) { + $routeProvider + .when('/', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/main', { + templateUrl: 'views/main.html', + controller: 'MainCtrl' + }) + .when('/about', { + templateUrl: 'views/about.html', + controller: 'AboutCtrl' + }) + .when('/foundations', { + templateUrl: 'views/foundations.html', + controller: 'FoundationsCtrl' + }) + .when('/checkins', { + templateUrl: 'views/checkins.html', + controller: 'CheckinsCtrl' + }) + .when('/daily_review', { + templateUrl: 'views/daily_review.html', + controller: 'DailyReviewCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness/:section', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/instructions', { + templateUrl: 'views/instructions.html', + controller: 'InstructionsCtrl' + }) + .when('/daily_review_summary', { + templateUrl: 'views/daily_review_summary.html', + controller: 'DailyReviewSummaryCtrl' + }) + .when('/daily_review_conclusion', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:intervention_set/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/medications', { + templateUrl: 'views/medications.html', + controller: 'MedicationsCtrl' + }) + .when('/skills', { + templateUrl: 'views/skills.html', + controller: 'SkillsCtrl' + }) + .when('/team', { + templateUrl: 'views/team.html', + controller: 'TeamCtrl' + }) + .when('/intervention', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/intervention/:code', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/exit', { + templateUrl: 'views/exit.html', + controller: 'ExitCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/weekly_check_in', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/weekly_check_in/:questionIndex', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/daily_check_in', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/daily_check_in/:id', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/settings', { + templateUrl: 'views/settings.html', + controller: 'SettingsCtrl' + }) + .when('/localStorageBackupRestore', { + templateUrl: 'views/localstoragebackuprestore.html', + controller: 'LocalstoragebackuprestoreCtrl' + }) + .when('/cms', { + templateUrl: 'views/cms.html', + controller: 'CmsCtrl' + }) + .when('/admin', { + templateUrl: 'views/admin.html', + controller: 'AdminCtrl' + }) + .when('/load_interventions', { + templateUrl: 'views/load_interventions.html', + controller: 'LoadInterventionsCtrl' + }) + .when('/lesson_player/:id', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/:id/:post', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/skills_awareness', { + templateUrl: 'views/skills_awareness.html', + controller: 'SkillsAwarenessCtrl' + }) + .when('/skills_lifestyle', { + templateUrl: 'views/skills_lifestyle.html', + controller: 'SkillsLifestyleCtrl' + }) + .when('/skills_coping', { + templateUrl: 'views/skills_coping.html', + controller: 'SkillsCopingCtrl' + }) + .when('/skills_team', { + templateUrl: 'views/skills_team.html', + controller: 'SkillsTeamCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/ews', { + templateUrl: 'views/ews.html', + controller: 'EwsCtrl' + }) + .when('/ews2', { + templateUrl: 'views/ews2.html', + controller: 'Ews2Ctrl' + }) + .when('/schedule', { + templateUrl: 'views/schedule.html', + controller: 'ScheduleCtrl' + }) + .when('/summary_player', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/summary_player/:id/:post', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/load_interventions_review', { + templateUrl: 'views/load_interventions_review.html', + controller: 'LoadInterventionsReviewCtrl' + }) + .when('/mySkills', { + templateUrl: 'views/myskills.html', + controller: 'MyskillsCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/chartsMedication', { + templateUrl: 'views/chartsmedication.html', + controller: 'ChartsmedicationCtrl' + }) + .when('/chartsSleep', { + templateUrl: 'views/chartssleep.html', + controller: 'ChartssleepCtrl' + }) + .when('/chartsRoutine', { + templateUrl: 'views/chartsroutine.html', + controller: 'ChartsroutineCtrl' + }) + .when('/chartsActivity', { + templateUrl: 'views/chartsactivity.html', + controller: 'ChartsactivityCtrl' + }) + .when('/dailyReviewTester', { + templateUrl: 'views/dailyreviewtester.html', + controller: 'DailyreviewtesterCtrl' + }) + .when('/personalSnapshot', { + templateUrl: 'views/personalsnapshot.html', + controller: 'PersonalsnapshotCtrl' + }) + .when('/home', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/usereditor', { + templateUrl: 'views/usereditor.html', + controller: 'UsereditorCtrl' + }) + .otherwise({ + redirectTo: '/' + }); + }).run(function($rootScope) { + +}); diff --git a/src/scripts/controllers/about.js b/src/scripts/controllers/about.js new file mode 100644 index 00000000..7e72299c --- /dev/null +++ b/src/scripts/controllers/about.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AboutCtrl + * @description + * # AboutCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AboutCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/src/scripts/controllers/admin.js b/src/scripts/controllers/admin.js new file mode 100644 index 00000000..03b340f1 --- /dev/null +++ b/src/scripts/controllers/admin.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AdminCtrl + * @description + * # AdminCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AdminCtrl', function ($scope,Questions) { + + }); diff --git a/src/scripts/controllers/awareness.js b/src/scripts/controllers/awareness.js new file mode 100644 index 00000000..883f8e80 --- /dev/null +++ b/src/scripts/controllers/awareness.js @@ -0,0 +1,50 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AwarenessCtrl + * @description + * # AwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AwarenessCtrl', function ($scope,UserData) { + + //awareness variables + $scope.awareness = UserData.query('awareness'); + $scope.intervention_anchors = UserData.query('anchors'); + $scope.plan = UserData.query('plan'); + + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + + $scope.loadAnchors = function(){ + $scope.showAnchors = true; + $scope.showAction = false; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-anchors').addClass('btn-active'); + } + + $scope.loadAction = function(){ + $scope.showAnchors = false; + $scope.showAction = true; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-action').addClass('btn-active'); + } + + $scope.loadPlan = function(){ + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + } + + + }); diff --git a/src/scripts/controllers/backup b/src/scripts/controllers/backup new file mode 100644 index 00000000..d87a458c --- /dev/null +++ b/src/scripts/controllers/backup @@ -0,0 +1 @@ +"{\"awareness\":\"[{\\\"userId\\\":\\\"test\\\",\\\"order\\\":3,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"+2\\\",\\\"name\\\":\\\"Mild Up\\\",\\\"id\\\":\\\"cdd38c91ddf29885\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":4,\\\"value\\\":\\\"+1\\\",\\\"name\\\":\\\"Slight Up\\\",\\\"id\\\":\\\"d612cfee454b4a2a\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":5,\\\"value\\\":\\\"0\\\",\\\"name\\\":\\\"Balanced\\\",\\\"id\\\":\\\"83b912bed2eee8cd\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":6,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-1\\\",\\\"name\\\":\\\"Slight Down\\\",\\\"id\\\":\\\"529da655f43f3853\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":7,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-2\\\",\\\"name\\\":\\\"Mild Down\\\",\\\"id\\\":\\\"186ca99b9fa64874\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":8,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-3\\\",\\\"name\\\":\\\"Moderate Down\\\",\\\"id\\\":\\\"a4737da1b0cb1b0f\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":9,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-4\\\",\\\"name\\\":\\\"Severe Down\\\",\\\"id\\\":\\\"07f10ba389bdf871\\\"},{\\\"name\\\":\\\"Severe Up\\\",\\\"order\\\":1,\\\"response\\\":\\\"Crisis, call 911\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+4\\\",\\\"id\\\":\\\"bc86889da8728a75\\\"},{\\\"name\\\":\\\"Moderate Up\\\",\\\"order\\\":2,\\\"response\\\":\\\"Work closely with your psychiatrist\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+3\\\",\\\"id\\\":\\\"bf79863b86ad795f\\\"}]\",\"medications\":\"[{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Paxil\\\",\\\"dose\\\":\\\"30mg\\\",\\\"when\\\":\\\"twice daily\\\",\\\"id\\\":\\\"1207f5105ded9947\\\"},{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Havidol\\\",\\\"dose\\\":\\\"100g\\\",\\\"when\\\":\\\"every 5 minutes\\\",\\\"id\\\":\\\"1e3cf5b135943a7d\\\"}]\",\"pound\":\"[\\\"user\\\",\\\"pound\\\"]\",\"questioncriteria\":\"[{\\\"levelOrder\\\":\\\"1\\\",\\\"levelOrderValue\\\":\\\"1\\\",\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"section\\\":\\\"medication\\\",\\\"id\\\":\\\"0b60522013b62834\\\"}]\",\"questionresponses\":\"[{\\\"label\\\":\\\"Not at all\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"6f04febc1dcd9901\\\"},{\\\"label\\\":\\\"Several days\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"06baf3eab84568a9\\\"},{\\\"label\\\":\\\"More than half the days\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"2255a56c9a5d7840\\\"},{\\\"label\\\":\\\"Nearly every day\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"2b8171b28d4a9872\\\"},{\\\"label\\\":\\\" I often feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"dcbcb90d9073f8b9\\\"},{\\\"label\\\":\\\" I feel happier or more cheerful than usual most of the time.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"e788aab4046c2bcb\\\"},{\\\"label\\\":\\\"I feel happier or more cheerful than usual all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"7e6bdf02e6c088d5\\\"},{\\\"label\\\":\\\" I occasionally feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"8afbd4f2cb39a841\\\"},{\\\"label\\\":\\\" I occasionally feel more self-confident than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"9b55a9e0c9e35a08\\\"},{\\\"label\\\":\\\" I often feel more self-confident than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"3b32f497db74d831\\\"},{\\\"label\\\":\\\" I feel more self-confident than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"b82d2f1d064b39f5\\\"},{\\\"label\\\":\\\" I feel extremely self-confident all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\" 3\\\",\\\"id\\\":\\\"e9634a047324d807\\\"},{\\\"label\\\":\\\" I occasionally talk more than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"248dd7f49401b816\\\"},{\\\"label\\\":\\\" I occasionally need less sleep than usual\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"26daf6c957e1d83b\\\"},{\\\"label\\\":\\\" I frequently need less sleep than usual\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"c6b337238dac09cb\\\"},{\\\"label\\\":\\\" I often need less sleep than usual\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"a5938f5841d23a8d\\\"},{\\\"label\\\":\\\" I can go all day and night without any sleep and still not feel tired.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"dd04b42fb498a867\\\"},{\\\"label\\\":\\\" I talk constantly and cannot be interrupted.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"95c03e5561173858\\\"},{\\\"label\\\":\\\" I frequently talk more than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"31d48584769878d1\\\"},{\\\"label\\\":\\\" I often talk more than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"ee97165355d88836\\\"},{\\\"label\\\":\\\" I have occasionally been more active than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"bbfc7642a646194e\\\"},{\\\"label\\\":\\\" I have often been more active than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"d62f39be9109c8fe\\\"},{\\\"label\\\":\\\" I have frequently been more active than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"d1c802de87aefa16\\\"},{\\\"label\\\":\\\" I am constantly active or on the go all the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"b1121bbd24aaf9e7\\\"},{\\\"responseGroupId\\\":\\\"a1\\\",\\\"responseGroupLabel\\\":\\\"a1\\\",\\\"order\\\":\\\"1\\\",\\\"label\\\":\\\"Page 1\\\",\\\"value\\\":\\\"1\\\",\\\"goToCriteria\\\":\\\"\\\",\\\"id\\\":\\\"d5ba075d4538bbac\\\"}]\",\"questions\":\"[{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING DOWN, DEPRESSED, OR HOPELESS?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"phq2\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"07189e9eea498a07\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by a POOR APPETITE OR OVEREATING?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"phq5\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"d4c04f0d4f0e0bc7\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING BAD ABOUT YOURSELF - OR THAT YOU ARE A FAILURE OR HAVE LET YOURSELF OR YOUR FAMILY DOWN?\\\",\\\"order\\\":6,\\\"questionDataLabel\\\":\\\"phq6\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"a1d7af08b11de878\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE CONCENTRATING ON THINGS, SUCH AS READING THE NEWSPAPER OR WATCHING TELEVISION?\\\",\\\"order\\\":7,\\\"questionDataLabel\\\":\\\"phq7\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"c317fef4e47308d2\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by MOVING OR SPEAKING SO SLOWLY THAT OTHER PEOPLE COULD HAVE NOTICED? OR THE OPPOSITE - BEING SO FIDGETY OR RESTLESS THAT YOU HAVE BEEN MOVING AROUND A LOT MORE THAN USUAL?\\\",\\\"order\\\":8,\\\"questionDataLabel\\\":\\\"phq8\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"3144ed93440c28ec\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by THOUGHTS THAT YOU WOULD BE BETTER OFF DEAD, OR OF HURTING YOURSELF?\\\",\\\"order\\\":9,\\\"questionDataLabel\\\":\\\"phq9\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"decf5d36ced538d0\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE FALLING OR STAYING ASLEEP, OR SLEEPING TOO MUCH?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"phq3\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"2bbfc1e863d4b98a\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by LITTLE INTEREST OR PLEASURE IN DOING THINGS?\\\",\\\"order\\\":1,\\\"questionDataLabel\\\":\\\"phq1\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responses\\\":\\\"{}\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"f99a845eea530b2c\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING TIRED OR HAVING LITTLE ENERGY?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"phq4\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"4632c4b2ab01d86a\\\"},{\\\"questionGroup\\\":\\\"phq9\\\",\\\"order\\\":0,\\\"type\\\":\\\"html\\\",\\\"content\\\":\\\"

Welcome to the Weekly Check-In!

\\\",\\\"questionDataLabel\\\":\\\"\\\",\\\"responseGroupId\\\":\\\"\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"d485d4c8d859f8cc\\\"},{\\\"questionGroup\\\":\\\"amrs\\\",\\\"order\\\":1,\\\"type\\\":\\\"radio\\\",\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"questionDataLabel\\\":\\\"amrs1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"90c7b6d682c7187f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"amrs2\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"430194fe140b18e8\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"amrs4\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"ba2637d288da182f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"amrs3\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"23fae8ba4842c866\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"amrs5\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"53c964a687dff873\\\"},{\\\"content\\\":\\\"Where should I go next\\\",\\\"hideBackButton\\\":true,\\\"hideNextButton\\\":true,\\\"order\\\":1,\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"questionDataLabel\\\":\\\"a1\\\",\\\"questionGroup\\\":\\\"cyoa\\\",\\\"responseGroupId\\\":\\\"a\\\",\\\"showBackButton\\\":\\\"false\\\",\\\"showNextButton\\\":\\\"false\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"aed39f2a638cbb1c\\\"}]\",\"responsecriteria\":\"[]\",\"smarts\":\"[]\",\"staticcontent\":\"[{\\\"content\\\":\\\"Put in awesome text to teach people about livewell\\\",\\\"dateTimeUpdated\\\":\\\"NOW\\\",\\\"sectionKey\\\":\\\"instructions\\\",\\\"id\\\":\\\"fba0d88650522987\\\"}]\",\"team\":\"[{\\\"name\\\":\\\"Donatella Jackson\\\",\\\"role\\\":\\\"Nurse\\\",\\\"phone\\\":\\\"555.555.5555\\\",\\\"userId\\\":\\\"test\\\",\\\"id\\\":\\\"3e6ac0f8ce202a51\\\"}]\",\"user\":\"[{\\\"id\\\":1,\\\"userID\\\":null,\\\"groupID\\\":null,\\\"loginKey\\\":null,\\\"created_at\\\":\\\"2014-09-18T22:29:39.609Z\\\"}]\",\"userresponses\":\"[]\"}" \ No newline at end of file diff --git a/src/scripts/controllers/charts.js b/src/scripts/controllers/charts.js new file mode 100644 index 00000000..b46fb271 --- /dev/null +++ b/src/scripts/controllers/charts.js @@ -0,0 +1,192 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ChartsactivityCtrl + * @description + * # ChartsactivityCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ChartsCtrl', function($scope, $timeout,Pound) { + + $scope.pageTitle = 'My Charts'; + + + $timeout(function(){$('td').tooltip()}); + + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn'); + $scope.recodedResponses = JSON.parse(localStorage['recodedResponses']); + $scope.timezoneoffset = new Date().getTimezoneOffset() / 60; + + $scope.graph = [] + if ($scope.dailyCheckInResponseArray.length > 7) { + $scope.graph[6] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]; + $scope.graph[5] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]; + $scope.graph[4] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]; + $scope.graph[3] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]; + $scope.graph[2] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]; + $scope.graph[1] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]; + $scope.graph[0] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]; + } else { + $scope.graph = $scope.dailyCheckInResponseArray; + } + + console.log($scope.graph); + + $scope.wellness = []; + $scope.dates = []; + + for (var i = 0; i < $scope.graph.length; i++) { + debugger; + $scope.wellness.push(parseInt($scope.graph[i].wellness)); + $scope.dates.push(moment($scope.graph[i].created_at).format('MM-DD')); + } + + + + $scope.routine = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','missed two']; + break; + case 1: + returnvalue = ['b','missed one']; + break; + case 2: + returnvalue = ['a','in range']; + break; + } + return returnvalue + } + }; + + $scope.medication = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','took none']; + break; + case 0.5: + returnvalue = ['b','took some']; + break; + case 1: + returnvalue = ['a','took all']; + break; + } + return returnvalue + } + }; + + $scope.sleep = { + class: function(value) { + var returnvalue = null; + + switch (value) { + case -1: + returnvalue = ['c','too little']; + break; + case -0.5: + returnvalue = ['b','too little']; + break; + case 0: + returnvalue = ['a','in range']; + break; + case .5: + returnvalue = ['b','too much']; + break; + case 1: + returnvalue = ['c','too much']; + break; + } + + return returnvalue + } + }; + + + + + Highcharts.theme = { + exporting: { + enabled: false + }, + chart: { + backgroundColor: 'transparent', + style: { + fontFamily: "sans-serif" + }, + plotBorderColor: '#606063' + }, + yAxis: { + max:3, + min:-3, + gridLineColor: '#707073', + labels: { + style: { + color: '#E0E0E3' + } + }, + lineColor: 'white', + minorGridLineColor: '#505053', + minorGridLineWidth: '1.5', + tickColor: '#707073', + }, + // special colors for some of the + legendBackgroundColor: 'rgba(0, 0, 0, 0.5)', + background2: '#505053', + dataLabelsColor: '#B0B0B3', + textColor: '#C0C0C0', + contrastTextColor: '#F0F0F3', + maskColor: 'rgba(255,255,255,0.3)' + }; + + Highcharts.setOptions(Highcharts.theme); + + $scope.config = { + title: { + text: ' ', + x: -20, //center, + enabled: false + }, + subtitle: { + text: '', + x: -20 + }, + xAxis: { + categories: $scope.dates + }, + yAxis: { + title: { + text: '' + }, + plotLines: [{ + value: 0, + width: 1.5, + color: 'white' + }], + labels: { + enabled: false + } + }, + tooltip: { + valueSuffix: '', + enabled: false + }, + legend: { + layout: 'vertical', + align: 'right', + verticalAlign: 'middle', + borderWidth: 0, + enabled: false + }, + series: [{ + showInLegend: false, + name: 'Wellness', + data: $scope.wellness + }] + }; + }); \ No newline at end of file diff --git a/src/scripts/controllers/checkins.js b/src/scripts/controllers/checkins.js new file mode 100644 index 00000000..a65a9f33 --- /dev/null +++ b/src/scripts/controllers/checkins.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CheckinsCtrl + * @description + * # CheckinsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('CheckinsCtrl', function ($scope, $location) { + $scope.pageTitle = 'Check Ins'; + + + + }); diff --git a/src/scripts/controllers/cms.js b/src/scripts/controllers/cms.js new file mode 100644 index 00000000..48226abc --- /dev/null +++ b/src/scripts/controllers/cms.js @@ -0,0 +1,70 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CmsCtrl + * @description + * # CmsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('CmsCtrl', function ($scope,Questions) { + + + $scope.formFieldTypes = ['checkbox','radio','html','text','textarea','select','email','time','phone','url']; + + $scope.questionGroups = Questions.uniqueQuestionGroups(); + $scope.questions = Questions.questions; + $scope.responses = Questions.responses; + $scope.questionCriteria = Questions.questionCriteria; + $scope.responseCriteria = Questions.responseCriteria; + + console.log(Questions); + + $scope.viewTypes = [{name:'Table', value:'table'},{name:'Map', value:'map'}]; + $scope.viewType = 'table'; + $scope.questionGroup = 'cyoa'; + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + + $scope.showGroup = function(){ + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + console.log($scope.selectedQuestions); + + } + +$scope.editResponses = function(id){ + $scope.modalTitle = 'Edit Responses'; + $scope.responseGroupId = id; + $scope.showResponses = _.where($scope.responses,{responseGroupId:$scope.responseGroupId}); + $scope.uniqueResponseGroups = _.pluck(_.uniq($scope.responses,'responseGroupId'),'responseGroupId'); + $scope.goesToOptions = $scope.selectedQuestions; + $("#responseModal").modal(); +} + +$scope.saveResponses = function(id){ + $("#responseModal").modal('toggle'); + Questions.save('responses',$scope.responses); + Questions.save('responseCriteria',$scope.responseCriteria); +} + + + +$scope.editQuestion = function(id){ + +} + +$scope.addQuestion = function(id){ + +} +$scope.deleteQuestion = function(id){ + +} + +$scope.editCriteria = function(id){ + +} + + + + +}); \ No newline at end of file diff --git a/src/scripts/controllers/daily_check_in.js b/src/scripts/controllers/daily_check_in.js new file mode 100644 index 00000000..3076cfa5 --- /dev/null +++ b/src/scripts/controllers/daily_check_in.js @@ -0,0 +1,500 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyCheckInCtrl + * @description + * # DailyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyCheckInCtrl', function($scope, $location, $routeParams, Pound, Guid) { + $scope.pageTitle = 'Daily Check In'; + + $scope.dailyCheckIn = { + gotUp: '', + toBed: '', + wellness: '', + medications: '', + startTime: new Date() + }; + + $scope.emergency = false; + + $scope.warningPhoneNumber = null; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0] != undefined) { + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + } else { + $scope.phoneNumber = '312-503-1886'; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachNumber = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].phone; + } else { + $scope.coachNumber = '312-503-1886'; + } + + $scope.responses = [{ + order: 1, + callCoach: true, + response: '-4', + label: '-4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a -4, if this is correct, close and press submit.' + }, { + order: 2, + callCoach: false, + response: '-3', + label: '-3', + tailoredMessage: 'some message' + }, { + order: 3, + callCoach: false, + response: '-2', + label: '-2', + tailoredMessage: 'some message' + }, { + order: 4, + callCoach: false, + response: '-1', + label: '-1', + tailoredMessage: 'some message' + }, { + order: 5, + callCoach: false, + response: '0', + label: '0', + tailoredMessage: 'some message' + }, { + order: 6, + callCoach: false, + response: '1', + label: '+1', + tailoredMessage: 'some message' + }, { + order: 7, + callCoach: false, + response: '2', + label: '+2', + tailoredMessage: 'some message' + }, { + order: 8, + callCoach: false, + response: '3', + label: '+3', + tailoredMessage: 'some message' + }, { + order: 9, + callCoach: true, + response: '4', + label: '+4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a +4, if this is correct, close and press submit.' + }]; + + $scope.times = [{ + value: "0000", + label: "12:00AM" + }, { + value: "0030", + label: "12:30AM" + }, { + value: "0100", + label: "1:00AM" + }, { + value: "0130", + label: "1:30AM" + }, { + value: "0200", + label: "2:00AM" + }, { + value: "0230", + label: "2:30AM" + }, { + value: "0300", + label: "3:00AM" + }, { + value: "0330", + label: "3:30AM" + }, { + value: "0400", + label: "4:00AM" + }, { + value: "0430", + label: "4:30AM" + }, { + value: "0500", + label: "5:00AM" + }, { + value: "0530", + label: "5:30AM" + }, { + value: "0600", + label: "6:00AM" + }, { + value: "0630", + label: "6:30AM" + }, { + value: "0700", + label: "7:00AM" + }, { + value: "0730", + label: "7:30AM" + }, { + value: "0800", + label: "8:00AM" + }, { + value: "0830", + label: "8:30AM" + }, { + value: "0900", + label: "9:00AM" + }, { + value: "0930", + label: "9:30AM" + }, { + value: "1000", + label: "10:00AM" + }, { + value: "1030", + label: "10:30AM" + }, { + value: "1100", + label: "11:00AM" + }, { + value: "1130", + label: "11:30AM" + }, { + value: "1200", + label: "12:00PM" + }, { + value: "1230", + label: "12:30PM" + }, { + value: "1300", + label: "1:00PM" + }, { + value: "1330", + label: "1:30PM" + }, { + value: "1400", + label: "2:00PM" + }, { + value: "1430", + label: "2:30PM" + }, { + value: "1500", + label: "3:00PM" + }, { + value: "1530", + label: "3:30PM" + }, { + value: "1600", + label: "4:00PM" + }, { + value: "1630", + label: "4:30PM" + }, { + value: "1700", + label: "5:00PM" + }, { + value: "1730", + label: "5:30PM" + }, { + value: "1800", + label: "6:00PM" + }, { + value: "1830", + label: "6:30PM" + }, { + value: "1900", + label: "7:00PM" + }, { + value: "1930", + label: "7:30PM" + }, { + value: "2000", + label: "8:00PM" + }, { + value: "2030", + label: "8:30PM" + }, { + value: "2100", + label: "9:00PM" + }, { + value: "2130", + label: "9:30PM" + }, { + value: "2200", + label: "10:00PM" + }, { + value: "2230", + label: "10:30PM" + }, { + value: "2300", + label: "11:00PM" + }, { + value: "2330", + label: "11:30PM" + }]; + + $scope.hours = [{ + value: "0", + label: "0 hrs" + }, { + value: "0.5", + label: "0.5 hrs" + }, { + value: "1", + label: "1 hrs" + }, { + value: "1.5", + label: "1.5 hrs" + }, { + value: "2", + label: "2 hrs" + }, { + value: "2.5", + label: "2.5 hrs" + }, { + value: "3", + label: "3 hrs" + }, { + value: "3.5", + label: "3.5 hrs" + }, { + value: "4", + label: "4 hrs" + }, { + value: "4.5", + label: "4.5 hrs" + }, { + value: "5", + label: "5 hrs" + }, { + value: "5.5", + label: "5.5 hrs" + }, { + value: "6", + label: "6 hrs" + }, { + value: "6.5", + label: "6.5 hrs" + }, { + value: "7", + label: "7 hrs" + }, { + value: "7.5", + label: "7.5 hrs" + }, { + value: "8", + label: "8 hrs" + }, { + value: "8.5", + label: "8.5 hrs" + }, { + value: "9", + label: "9 hrs" + }, { + value: "9.5", + label: "9.5 hrs" + }, { + value: "10", + label: "10 hrs" + }, { + value: "10.5", + label: "10.5 hrs" + }, { + value: "11", + label: "11 hrs" + }, { + value: "11.5", + label: "11.5 hrs" + }, { + value: "12", + label: "12 hrs" + }, { + value: "12.5", + label: "12.5 hrs" + }, { + value: "13", + label: "13 hrs" + }, { + value: "13.5", + label: "13.5 hrs" + }, { + value: "14", + label: "14 hrs" + }, { + value: "14.5", + label: "14.5 hrs" + }, { + value: "15", + label: "15 hrs" + }, { + value: "15.5", + label: "15.5 hrs" + }, { + value: "16", + label: "16 hrs" + }, { + value: "16.5", + label: "16.5 hrs" + }, { + value: "17", + label: "17 hrs" + }, { + value: "17.5", + label: "17.5 hrs" + }, { + value: "18", + label: "18 hrs" + }, { + value: "18.5", + label: "18.5 hrs" + }, { + value: "19", + label: "19 hrs" + }, { + value: "19.5", + label: "19.5 hrs" + }, { + value: "20", + label: "20 hrs" + }, { + value: "20.5", + label: "20.5 hrs" + }, { + value: "21", + label: "21 hrs" + }, { + value: "21.5", + label: "21.5 hrs" + }, { + value: "22", + label: "22 hrs" + }, { + value: "22.5", + label: "22.5 hrs" + }, { + value: "23", + label: "23 hrs" + }, { + value: "23.5", + label: "23.5 hrs" + }, { + value: "24", + label: "24 hrs" + }]; + + + $scope.saveCheckIn = function() { + + var allAnswersFinished = $scope.dailyCheckIn.gotUp != '' & $scope.dailyCheckIn.toBed != '' & $scope.dailyCheckIn.medications != '' & $scope.dailyCheckIn.wellness != '' & $scope.dailyCheckIn.sleepDuration != ''; + + if (allAnswersFinished) { + $scope.dailyCheckIn.endTime = new Date(); + if ($scope.dailyCheckIn.wellness == 4 || $scope.dailyCheckIn.wellness == -4) { + $scope.emergency = true; + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: 'User answered with a ' + $scope.dailyCheckIn.wellness + ' on the daily check in' + }).execute(); + } + + Pound.add('dailyCheckIn', $scope.dailyCheckIn); + $scope.nextId = $routeParams.id; + + var sessionID = Guid.create(); + + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'toBed', + questionValue: $scope.dailyCheckIn.toBed + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'gotUp', + questionValue: $scope.dailyCheckIn.gotUp + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'wellness', + questionValue: $scope.dailyCheckIn.wellness + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'medications', + questionValue: $scope.dailyCheckIn.medications + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'sleepDuration', + questionValue: $scope.dailyCheckIn.sleepDuration + }).execute(); + + $("#continue").modal(); + } else { + $("#warning").modal(); + $scope.selectedWarningMessage = 'You must respond to all questions on this page!'; + } + } + + $scope.highlight = function(id, response) { + + $('label').removeClass('highlight'); + $(id).addClass('highlight'); + $scope.dailyCheckIn.wellness = response; + + } + + $scope.warning = function(response) { + + if (response.warningMessage.length > 0) { + $scope.selectedWarningMessage = response.warningMessage; + if (response.callCoach == true) { + $scope.warningPhoneNumber = $scope.phoneNumber; + } else { + $scope.warningPhoneNumber = null; + } + $("#warning").modal(); + } + + + } + + }); \ No newline at end of file diff --git a/src/scripts/controllers/daily_review.js b/src/scripts/controllers/daily_review.js new file mode 100644 index 00000000..b83c2238 --- /dev/null +++ b/src/scripts/controllers/daily_review.js @@ -0,0 +1,150 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewCtrl + * @description + * # DailyReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewCtrl', function($scope, $routeParams, $timeout, UserData, Pound, DailyReviewAlgorithm, ClinicalStatusUpdate, Guid) { + $scope.pageTitle = "Daily Review"; + + Pound.add('dailyReviewStarted', { + userStarted: true, + code: $scope.code + }); + + $timeout(function(){$('.add-tooltip').tooltip()}); + + $scope.routineData = UserData.query('sleepRoutineRanges'); + + $scope.cleanTime = function(militaryTime){ + + var time = militaryTime.toString(); + var cleanTime = ''; + + if (time[0] == '0' && time[1] == '0'){ + cleanTime = '12:' + time[2] + time[3]; + } else if( time[0] == '0'){ + cleanTime = time[1] + ":" + time[2] + time[3]; + } else if (parseInt(time[0] + time[1]) > 12 ){ + cleanTime = (parseInt(time[0] + time[1]) - 12) + ":" + time[2] + time[3]; + } else { + cleanTime = time[0] + time[1] + ":" + time[2] + time[3]; + } + + if (parseInt(militaryTime) > 1200){ + return cleanTime + ' PM' + } + else { + return cleanTime + ' AM' + } + + } + + $scope.interventionGroups = UserData.query('dailyReview'); + + $scope.updatedClinicalStatus = {}; + + var runAlgorithm = function(Pound) { + var object = {}; + var sessionID = Guid.create(); + + object.code = DailyReviewAlgorithm.code(); + $scope.updatedClinicalStatus = ClinicalStatusUpdate.execute(); + + (new PurpleRobot()).emitReading('livewell_dailyreviewcode', { + sessionGUID: sessionID, + code: object.code + }).execute(); + (new PurpleRobot()).emitReading('livewell_clinicalstatus', { + sessionGUID: sessionID, + status: $scope.updatedClinicalStatus + }).execute(); + + return object + + } + + $scope.code = runAlgorithm().code; + + //TO REMOVE + $scope.recodedResponses = DailyReviewAlgorithm.recodedResponses(); + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn') + $scope.dailyCheckInResponses = ' |today| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]) + ' |t-1| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]) + ' |t-2| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]) + ' |t-3| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]) + ' |t-4| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]) + ' |t-5| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]) + ' |t-6| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]); + + //STOP REMOVE + + $scope.percentages = DailyReviewAlgorithm.percentages(); + + $(".modal-backdrop").remove(); + + var latestWarning = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1]; + + if (latestWarning != undefined) { + if (latestWarning.shownToUser == undefined) { + $scope.warningMessage = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1].message + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: $scope.warningMessage + }).execute(); + + latestWarning.shownToUser = true; + Pound.update('clinical_reachout', latestWarning); + $scope.showWarning = true; + $("#warning").modal(); + } + } + + $scope.dailyReviewCategory = _.where($scope.interventionGroups, { + code: $scope.code + })[0].questionSet; + + $scope.interventionResponse = function() { + + if ($scope.code == 1 || $scope.code == 2) { + return 'Please contact your care provider or hospital'; + } else { + if (_.where($scope.interventionGroups, { + code: $scope.code + })[0] != undefined) { + if (typeof(_.where($scope.interventionGroups, { + code: $scope.code + })[0].response) == 'object') { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response[Math.floor((Math.random() * _.where($scope.interventionGroups, { + code: $scope.code + })[0].response.length))] + } else { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response + } + } + } + } + + + }); \ No newline at end of file diff --git a/src/scripts/controllers/daily_review_conclusion.js b/src/scripts/controllers/daily_review_conclusion.js new file mode 100644 index 00000000..d0c7af3f --- /dev/null +++ b/src/scripts/controllers/daily_review_conclusion.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewConclusionCtrl + * @description + * # DailyReviewConclusionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewConclusionCtrl', function ($scope, $sanitize) { + $scope.pageTitle = "Daily Review"; + $scope.lastNotification = "Keep up the good work!
Check out your medication plan in Reduce Risk."; + }); diff --git a/src/scripts/controllers/daily_review_summary.js b/src/scripts/controllers/daily_review_summary.js new file mode 100644 index 00000000..9d9eb9db --- /dev/null +++ b/src/scripts/controllers/daily_review_summary.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewSummaryCtrl + * @description + * # DailyReviewSummaryCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewSummaryCtrl', function ($scope) { + $scope.pageTitle = "Daily Review"; + }); diff --git a/src/scripts/controllers/dailyreviewtester.js b/src/scripts/controllers/dailyreviewtester.js new file mode 100644 index 00000000..33415dc5 --- /dev/null +++ b/src/scripts/controllers/dailyreviewtester.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyreviewtesterCtrl + * @description + * # DailyreviewtesterCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyreviewtesterCtrl', function ($scope,Pound,dailyReview) { + + $scope.collection = Pound.find('dailyCheckIn'); + + $scope.proposedIntervention = dailyReview.getCode(); + + }); diff --git a/src/scripts/controllers/ews.js b/src/scripts/controllers/ews.js new file mode 100644 index 00000000..15f57db5 --- /dev/null +++ b/src/scripts/controllers/ews.js @@ -0,0 +1,38 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('EwsCtrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews = UserData.query('ews'); + + $scope.onClick=function(){ + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews', + questionDataLabel: 'ews', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + + $location.path('/ews2'); + + + } + + }); diff --git a/src/scripts/controllers/ews2.js b/src/scripts/controllers/ews2.js new file mode 100644 index 00000000..f57c3cf7 --- /dev/null +++ b/src/scripts/controllers/ews2.js @@ -0,0 +1,41 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('Ews2Ctrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews2 = UserData.query('ews2'); + + $scope.onClick=function(){ + + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews2', + questionDataLabel: 'ews2', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + console.log(payload); + + $location.path('/'); + + } + + + + }); diff --git a/src/scripts/controllers/exit.js b/src/scripts/controllers/exit.js new file mode 100644 index 00000000..064b8b5c --- /dev/null +++ b/src/scripts/controllers/exit.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ExitCtrl + * @description + * # ExitCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ExitCtrl', function ($scope) { + + navigator.app.exitApp(); + + }); diff --git a/src/scripts/controllers/fetch_content.js b/src/scripts/controllers/fetch_content.js new file mode 100644 index 00000000..6039c3de --- /dev/null +++ b/src/scripts/controllers/fetch_content.js @@ -0,0 +1,72 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FetchContentCtrl + * @description + * # FetchContentCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('FetchContentCtrl', function ($scope,$http) { + + var SERVER_LOCATION = 'https://livewell2.firebaseio.com/'; + var SECURE_CONTENT = 'https://mohrlab.northwestern.edu/livewell-dash/content/'; + var APP_COLLECTIONS_ROUTE = 'appcollections'; + var USER_ID = $scope.userID; + var ROUTE_SUFFIX = '.json'; + + $scope.error = ''; + $scope.errorColor = 'white'; + $scope.errorClass = ''; + + var downloadContent = function(app_collections){ + + if($scope.userID != undefined){localStorage['userID'] = $scope.userID; } + + _.each(app_collections,function(el){ + $http.get(SERVER_LOCATION + "users/" + localStorage['userID'] + "/" + el.route + ROUTE_SUFFIX ) + .success(function(response) { + + if(el.route == 'team' && response == null){ + alert('THE USER HAS NOT BEEN CONFIGURED!'); + } + + if (response.length != undefined){ + localStorage[el.route] = JSON.stringify(_.compact(response)); + } + else { + localStorage[el.route] = JSON.stringify(response); + } + }).error(function(err) { + $scope.error = 'Error on: ' + el.label; + $scope.errorColor = 'red'; + }); + }) + } + + $scope.fetchSecureContent = function(){ + + $http.get(SECURE_CONTENT +'?user='+ localStorage['userID'] +'&token=' + localStorage['registrationid']) + .success(function(content) { + localStorage['secureContent'] = JSON.stringify(content); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + $scope.fetchContent = function(){ + $scope.errorColor = 'green'; + $scope.fetchSecureContent(); + $http.get(SERVER_LOCATION + APP_COLLECTIONS_ROUTE + ROUTE_SUFFIX) + .success(function(app_collections) { + downloadContent(_.compact(app_collections)); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + + }); diff --git a/src/scripts/controllers/foundations.js b/src/scripts/controllers/foundations.js new file mode 100644 index 00000000..3eb01464 --- /dev/null +++ b/src/scripts/controllers/foundations.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FoundationsCtrl + * @description + * # FoundationsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('FoundationsCtrl', function ($scope) { + + $scope.pageTitle = "Foundations"; + + $scope.mainLinks = [ + {name:"Overview", id:162, post:'foundations', type:'lesson_player'}, + {name:"Basic Facts ", id:183, post:'foundations', type:'lesson_player'}, + {name:"Medications", id:184, post:'foundations', type:'lesson_player'}, + {name:"Lifestyle Skills", id:185, post:'foundations', type:'lesson_player'}, + {name:"Coping Skills", id:186, post:'foundations', type:'lesson_player'}, + {name:"Team", id:187, post:'foundations', type:'lesson_player'}, + {name:"Awareness", id:188, post:'foundations', type:'lesson_player'}, + {name:"Action", id:189, post:'foundations', type:'lesson_player'}, + {name:"Conclusion", id:250, post:'foundations', type:'lesson_player'}] + + }); diff --git a/src/scripts/controllers/home.js b/src/scripts/controllers/home.js new file mode 100644 index 00000000..f4daefec --- /dev/null +++ b/src/scripts/controllers/home.js @@ -0,0 +1,121 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:HomeCtrl + * @description + * # HomeCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('HomeCtrl', function ($scope, Pound) { + + + var possibleGreetings = ['Welcome back!','Hello!','Greetings!','Good to see you!']; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + var requiredUserCollections = []; + + $scope.appConfigured = localStorage['appConfigured']; + + $scope.verifyUserContent = function(){ + + $scope.errorVerifyUserColor = 'green'; + } + + $scope.startTrial = function(){ + $scope.startDate = new Date().getDay() + localStorage['appConfigured'] = true; + window.location.href = ""; + } + + $scope.dailyCheckInCompleteToday = function(){ + + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + + function dropTime(dt){ + + var datetime = dt; + + datetime.setHours(0) + datetime.setMinutes(0); + datetime.setSeconds(0); + datetime.setMilliseconds(0); + + return datetime.toString() + + } + + if (dropTime(mostRecentResponseDateTime) == dropTime(new Date()) ){ + return true + } else { + return false + } + + }; + + $scope.weeklyCheckInCompleteThisWeek = function(){ + + var collection = Pound.find('weeklyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + var now = moment(new Date()); + var lastSundayMorning = moment(new Date()).subtract(new Date().getDay(),'d').set({hour:0,minute:0,second:0,millisecond:0}); + + var validResponse = moment(mostRecentResponseDateTime).isAfter(lastSundayMorning) && moment(mostRecentResponseDateTime).isBefore(now); + + if (collection.length == 0){ + return false + } + else if (validResponse){ + return true + } else { + return false + } + + }; + + $scope.dailyReviewCompleteToday = function(){ + var dailyReviewComplete = false; + var thisMorning = moment(new Date()).set({hour:0,minute:0,second:0,millisecond:0}); + + var collection = Pound.find('dailyReviewStarted'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + if(moment(mostRecentResponseDateTime).isAfter(thisMorning)){ + + dailyReviewComplete = true; + } + + return dailyReviewComplete + + + } + + $scope.lastDailyCheckInWasEmergency = function(){ + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + + if(mostRecentResponse.wellness != '-4' && mostRecentResponse.wellness != '4'){ + return false + } + else{ + return true + } + } + + $scope.greeting = possibleGreetings[Math.floor(Math.random()*possibleGreetings.length)]; + + $(".modal-backdrop").remove(); + + }); \ No newline at end of file diff --git a/src/scripts/controllers/instructions.js b/src/scripts/controllers/instructions.js new file mode 100644 index 00000000..aa98396a --- /dev/null +++ b/src/scripts/controllers/instructions.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InstructionsCtrl + * @description + * # InstructionsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('InstructionsCtrl', function ($scope, StaticContent) { + $scope.pageTitle = "Instructions"; + + $scope.mainLinks = [ + {id:198,name:"Introduction", post:"instructions"}, + {id:201,name:"Settings", post:"instructions"}, + {id:199,name:"Toolbox", post:"instructions"}, + {id:202,name:"Coach", post:"instructions"}, + {id:203,name:"Psychiatrist", post:"instructions"}, + {id:204,name:"Foundations", post:"instructions"}, + {id:205,name:"Daily Check In", post:"instructions"}, + {id:372,name:"Weekly Check In", post:"instructions"}, + {id:369,name:"Daily Review", post:"instructions"}, + {id:371,name:"Wellness Plan", post:"instructions"}, + {id:370,name:"Charts", post:"instructions"} + ] + + + }); diff --git a/src/scripts/controllers/intervention.js b/src/scripts/controllers/intervention.js new file mode 100644 index 00000000..466ab0cd --- /dev/null +++ b/src/scripts/controllers/intervention.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InterventionCtrl + * @description + * # InterventionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('InterventionCtrl', function ($scope, $routeParams,Questions) { + $scope.pageTitle = "Daily Review"; + + console.log($routeParams); + $scope.questionGroups = Questions.query($routeParams.code); + + $scope.hideProgressBar = true; + + var pr = new PurpleRobot(); + pr.disableTrigger('dailyCheckIn1').disableTrigger('dailyCheckIn2').disableTrigger('dailyCheckIn3').disableTrigger('dailyCheckIn4').disableTrigger('dailyCheckIn5').disableTrigger('dailyCheckIn6').execute(); + + }); diff --git a/src/scripts/controllers/lesson_player.js b/src/scripts/controllers/lesson_player.js new file mode 100644 index 00000000..ca0d839f --- /dev/null +++ b/src/scripts/controllers/lesson_player.js @@ -0,0 +1,79 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LessonPlayerCtrl + * @description + * # LessonPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LessonPlayerCtrl', function ($scope, $routeParams, $sce, $location) { + + +$scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter_contents_list = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + var chapter_contents = []; + + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter_contents_list, function (element) { + // console.log(parseInt(element)); + chapter_contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + return chapter_contents; +}; + +$scope.lessons = JSON.parse(localStorage['lessons']); + +$scope.backButton = '<'; +$scope.backButtonClass = 'btn btn-info'; +$scope.nextButton = '>'; +$scope.nextButtonClass = 'btn btn-primary'; +$scope.currentSlideIndex = 0; + +$scope.pageTitle = _.where($scope.lessons, {id:parseInt($routeParams.id)})[0].pretty_name; + +$scope.currentChapterContents = $scope.getChapterContents($routeParams.id,$scope.lessons); + +$scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + + +$scope.next = function(){ + if ($scope.currentSlideIndex+1 < $scope.currentChapterContents.length){ + $scope.currentSlideIndex++; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + else { + if ($routeParams.post == undefined) + { window.location.href = '#/';} + else { + window.location.href = '#/' + $routeParams.post; + } + } + + if ($scope.currentSlideIndex+1 == $scope.currentChapterContents.length){ + $scope.nextButton = '>'; + } + else{ + $scope.nextButton = '>'; + + } +} + +$scope.back = function(){ + if ($scope.currentSlideIndex > 0){ + $scope.currentSlideIndex--; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + +} + +}); diff --git a/src/scripts/controllers/load_interventions.js b/src/scripts/controllers/load_interventions.js new file mode 100644 index 00000000..8bde5f7e --- /dev/null +++ b/src/scripts/controllers/load_interventions.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoadInterventionsReviewCtrl + * @description + * # LoadInterventionsReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoadInterventionsCtrl', function ($scope, UserData, $location, $filter) { + + $scope.pageTitle = 'Topics'; + + $scope.hierarchy = UserData.query('interventionLabels'); + $scope.interventionGroups = UserData.query('dailyReview') + + debugger; + + $scope.goToIntervention = function(code){ + + $location.path('intervention/' + $filter('filter')($scope.interventionGroups,{code:code},true)[0].questionSet); + + } + + }); diff --git a/src/scripts/controllers/localstoragebackuprestore.js b/src/scripts/controllers/localstoragebackuprestore.js new file mode 100644 index 00000000..a9764368 --- /dev/null +++ b/src/scripts/controllers/localstoragebackuprestore.js @@ -0,0 +1,43 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LocalstoragebackuprestoreCtrl + * @description + * # LocalstoragebackuprestoreCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LocalstoragebackuprestoreCtrl', function ($scope, $sanitize) { + + + + $scope.initiateLocalBackup = function(){ + $scope.localStorageContents = JSON.stringify(JSON.stringify(localStorage)); + } + + $scope.restoreLocalBackup = function(){ + var restoreContent = JSON.parse(JSON.parse($scope.localStorageContents)); + + _.each(_.keys(restoreContent), function(el){ + + debugger; + localStorage[el] = eval("restoreContent." + el); + + }); + localStorage = JSON.parse($scope.localStorageContents); + //open file or copy and paste string and replace localStorage + + } + + $scope.updateRemoteService = function(serverURL){ + + //use the local app-collections store to iterate over all local collections and post to valid routes + + } + + $scope.wipeLocalStorage = function(){ + localStorage.clear(); + } + + }); diff --git a/src/scripts/controllers/login.js b/src/scripts/controllers/login.js new file mode 100644 index 00000000..2317e239 --- /dev/null +++ b/src/scripts/controllers/login.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoginCtrl + * @description + * # LoginCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoginCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/src/scripts/controllers/main.js b/src/scripts/controllers/main.js new file mode 100644 index 00000000..7e11947d --- /dev/null +++ b/src/scripts/controllers/main.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MainCtrl + * @description + * # MainCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MainCtrl', function ($scope, UserDetails) { + + $scope.pageTitle = 'Main Menu'; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + // $scope.showLogin = function(){ + + // if (UserDetails.find.id == null){ + // return true + // } + // else { + // return false + // } + + // } + + }); diff --git a/src/scripts/controllers/medications.js b/src/scripts/controllers/medications.js new file mode 100644 index 00000000..c67c03e5 --- /dev/null +++ b/src/scripts/controllers/medications.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MedicationsCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Medications"; + $scope.medications = UserData.query('medications'); + + + }); diff --git a/src/scripts/controllers/myskills.js b/src/scripts/controllers/myskills.js new file mode 100644 index 00000000..a0c0e3b2 --- /dev/null +++ b/src/scripts/controllers/myskills.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MyskillsCtrl + * @description + * # MyskillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MyskillsCtrl', function ($scope,$location,$filter,$route) { + + $scope.currentSkillId = null; + + $scope.currentSkillContent = null; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + if (JSON.parse(localStorage['mySkills'] != undefined)){ + $scope.mySkills = _.uniq(JSON.parse(localStorage['mySkills'])); + } else { + $scope.mySkills = []; + } + + $scope.skill = function(id){ + return $filter('filter')($scope.lessons,{id:id},true) + }; + + $scope.showSkill = function(id){ + $scope.currentSkillId = id; + $scope.currentSkillContent = $scope.skill(id)[0].main_content; + } + + $scope.removeSkill = function () { + + var id = $scope.currentSkillId; + var array = $scope.mySkills; + var index = array.indexOf(id); + + if (index > -1) { + array.splice(index, 1); + } + + $scope.mySkills = array; + + localStorage['mySkills'] = JSON.stringify($scope.mySkills); + + $route.reload() + + } + + + + + }); diff --git a/src/scripts/controllers/personalsnapshot.js b/src/scripts/controllers/personalsnapshot.js new file mode 100644 index 00000000..c18ce6d2 --- /dev/null +++ b/src/scripts/controllers/personalsnapshot.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:PersonalsnapshotCtrl + * @description + * # PersonalsnapshotCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('PersonalsnapshotCtrl', function ($scope, UserData) { + + // var sleepRoutineRanges = {}; + + // sleepRoutineRanges.MoreSevere = 12; + // sleepRoutineRanges.More = 9; + // sleepRoutineRanges.Less = 7; + // sleepRoutineRanges.LessSevere = 4; + + // sleepRoutineRanges.BedTimeStrt_MT = '2300'; + // sleepRoutineRanges.BedtimeStop_MT = '0100'; + + // sleepRoutineRanges.RiseTimeStrt_MT = '0630'; + // sleepRoutineRanges.RiseTimeStop_MT = '0830'; + + $scope.sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + $scope.currentClinicalStatusCode = UserData.query('clinicalStatus').currentCode; + + }); diff --git a/src/scripts/controllers/resources.js b/src/scripts/controllers/resources.js new file mode 100644 index 00000000..2de3bf3a --- /dev/null +++ b/src/scripts/controllers/resources.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ResourcesCtrl + * @description + * # ResourcesCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ResourcesCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/src/scripts/controllers/risks.js b/src/scripts/controllers/risks.js new file mode 100644 index 00000000..ed681bcc --- /dev/null +++ b/src/scripts/controllers/risks.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:RisksCtrl + * @description + * # RisksCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('RisksCtrl', function ($scope,UserData) { + //risk variables + $scope.smarts = UserData.query('smarts'); + + + + }); diff --git a/src/scripts/controllers/schedule.js b/src/scripts/controllers/schedule.js new file mode 100644 index 00000000..b079ad15 --- /dev/null +++ b/src/scripts/controllers/schedule.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ScheduleCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Schedule"; + $scope.schedules = UserData.query('schedule'); + + + }); diff --git a/src/scripts/controllers/settings.js b/src/scripts/controllers/settings.js new file mode 100644 index 00000000..903c8e4c --- /dev/null +++ b/src/scripts/controllers/settings.js @@ -0,0 +1,269 @@ +'use strict'; +/** + * @ngdoc function + * @name livewellApp.controller:SettingsCtrl + * @description + * # SettingsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SettingsCtrl', function($scope) { + $scope.pageTitle = 'Settings'; + $scope.times = [{ + value: "00:00", + label: "12:00AM" + }, { + value: "00:30", + label: "12:30AM" + }, { + value: "01:00", + label: "1:00AM" + }, { + value: "01:30", + label: "1:30AM" + }, { + value: "02:00", + label: "2:00AM" + }, { + value: "02:30", + label: "2:30AM" + }, { + value: "03:00", + label: "3:00AM" + }, { + value: "03:30", + label: "3:30AM" + }, { + value: "04:00", + label: "4:00AM" + }, { + value: "04:30", + label: "4:30AM" + }, { + value: "05:00", + label: "5:00AM" + }, { + value: "05:30", + label: "5:30AM" + }, { + value: "06:00", + label: "6:00AM" + }, { + value: "06:30", + label: "6:30AM" + }, { + value: "07:00", + label: "7:00AM" + }, { + value: "07:30", + label: "7:30AM" + }, { + value: "08:00", + label: "8:00AM" + }, { + value: "08:30", + label: "8:30AM" + }, { + value: "09:00", + label: "9:00AM" + }, { + value: "09:30", + label: "9:30AM" + }, { + value: "10:00", + label: "10:00AM" + }, { + value: "10:30", + label: "10:30AM" + }, { + value: "11:00", + label: "11:00AM" + }, { + value: "11:30", + label: "11:30AM" + }, { + value: "12:00", + label: "12:00PM" + }, { + value: "12:30", + label: "12:30PM" + }, { + value: "13:00", + label: "1:00PM" + }, { + value: "13:30", + label: "1:30PM" + }, { + value: "14:00", + label: "2:00PM" + }, { + value: "14:30", + label: "2:30PM" + }, { + value: "15:00", + label: "3:00PM" + }, { + value: "15:30", + label: "3:30PM" + }, { + value: "16:00", + label: "4:00PM" + }, { + value: "16:30", + label: "4:30PM" + }, { + value: "17:00", + label: "5:00PM" + }, { + value: "17:30", + label: "5:30PM" + }, { + value: "18:00", + label: "6:00PM" + }, { + value: "18:30", + label: "6:30PM" + }, { + value: "19:00", + label: "7:00PM" + }, { + value: "19:30", + label: "7:30PM" + }, { + value: "20:00", + label: "8:00PM" + }, { + value: "20:30", + label: "8:30PM" + }, { + value: "21:00", + label: "9:00PM" + }, { + value: "21:30", + label: "9:30PM" + }, { + value: "22:00", + label: "10:00PM" + }, { + value: "22:30", + label: "10:30PM" + }, { + value: "23:00", + label: "11:00PM" + }, { + value: "23:30", + label: "11:30PM" + }]; + + if (localStorage['checkinPrompt'] == undefined) { + $scope.checkinPrompt = { + value: "00:00", + label: "12:00AM" + }; + + } else { + $scope.checkinPrompt = JSON.parse(localStorage['checkinPrompt']); + } + + $scope.savePromptSchedule = function() { + + + (new PurpleRobot()).emitReading('livewell_prompt_registration', { + startTime: $scope.checkinPrompt.value, + registrationId: localStorage.registrationId + }).execute(); + + + var checkInValues = $scope.checkinPrompt.value.split(":"); + localStorage['checkinPrompt'] = JSON.stringify($scope.checkinPrompt); + //new Date(year, month, day, hours, minutes, seconds, milliseconds) + var dailyCheckInDateTime1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]) + 1, 0); + var dailyReviewRenewalDateTime = new Date(2016, 0, 1, 2, 0, 0); + var dailyReviewRenewalDateTimeEnd = new Date(2016, 0, 1, 2, 1, 0); + var pr = new PurpleRobot(); + + + + // var dailyCheckInDialog = + // pr.showScriptNotification({ + // title: "LiveWell", + // message: "Can you complete your LiveWell activities now?", + // isPersistent: true, + // isSticky: false, + // script: pr.launchApplication('edu.northwestern.cbits.livewell') + // }); + + // var dailyReviewRenew = + // pr.enableTrigger('dailyCheckIn1').enableTrigger('dailyCheckIn2').enableTrigger('dailyCheckIn3').enableTrigger('dailyCheckIn4').enableTrigger('dailyCheckIn5').enableTrigger('dailyCheckIn6'); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn1', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime1, + // endAt: dailyCheckinDateTimeEnd1 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn2', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime2, + // endAt: dailyCheckinDateTimeEnd2 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn3', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime3, + // endAt: dailyCheckinDateTimeEnd3 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn4', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime4, + // endAt: dailyCheckinDateTimeEnd4 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn5', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime5, + // endAt: dailyCheckinDateTimeEnd5 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn6', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime6, + // endAt: dailyCheckinDateTimeEnd6 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyReviewReset', + // random: false, + // script: dailyReviewRenew, + // startAt: dailyReviewRenewalDateTime, + // endAt: dailyReviewRenewalDateTimeEnd + // }).execute(); + + $("form").append('
Your prompt times have been updated.
'); + + }; + }); \ No newline at end of file diff --git a/src/scripts/controllers/setup.js b/src/scripts/controllers/setup.js new file mode 100644 index 00000000..2e0ba11b --- /dev/null +++ b/src/scripts/controllers/setup.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SetupCtrl + * @description + * # SetupCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SetupCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/src/scripts/controllers/skills.js b/src/scripts/controllers/skills.js new file mode 100644 index 00000000..2836c901 --- /dev/null +++ b/src/scripts/controllers/skills.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCtrl', function ($scope) { + $scope.pageTitle = "Toolbox"; + + $scope.mainLinks = [ + {id:'fundamentals',name:"Making Changes"}, + {id:'awareness',name:"Self-Assessment"}, + {id:'lifestyle',name:"Lifestyle"}, + {id:'coping',name:"Coping"}, + {id:'team',name:"Team"}, + + ] + + + }); diff --git a/src/scripts/controllers/skills_awareness.js b/src/scripts/controllers/skills_awareness.js new file mode 100644 index 00000000..1ed61db5 --- /dev/null +++ b/src/scripts/controllers/skills_awareness.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsAwarenessCtrl + * @description + * # SkillsAwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsAwarenessCtrl', function ($scope) { + + $scope.pageTitle = "Self-Assessment"; + + $scope.mainLinks = [ + {name:"Symptoms and Triggers", id:194, post:'skills_awareness'}, + {name:"Skills and Strengths", id:196, post:'skills_awareness'}, + {name:"Supports and Environment", id:197, post:'skills_awareness'} + ] + }); + + + + diff --git a/src/scripts/controllers/skills_coping.js b/src/scripts/controllers/skills_coping.js new file mode 100644 index 00000000..0fd71d97 --- /dev/null +++ b/src/scripts/controllers/skills_coping.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCopingCtrl + * @description + * # SkillsCopingCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCopingCtrl', function ($scope) { + + $scope.pageTitle = "Coping"; + + $scope.mainLinks = [ + {name:"Depression - Dial Up", id:550, post:'skills_coping',type:'summary_player'}, + {name:"Mania - Dial Down", id:551, post:'skills_coping',type:'summary_player'} + ]; + }); diff --git a/src/scripts/controllers/skills_fundamentals.js b/src/scripts/controllers/skills_fundamentals.js new file mode 100644 index 00000000..f835b891 --- /dev/null +++ b/src/scripts/controllers/skills_fundamentals.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsFundamentalsCtrl', function ($scope) { + + $scope.pageTitle = "Making Changes"; + + $scope.mainLinks = [ + {name:"Get Prepared", id:190, post:'skills_fundamentals'}, + {name:"Set Goal", id:193, post:'skills_fundamentals'}, + {name:"Develop Plan",id:191,post:'skills_fundamentals'}, + {name:"Monitor Behavior", id:192, post:'skills_fundamentals'}, + {name:"Evaluate Performance",id:195,post:'skills_fundamentals'} + ]; + }); diff --git a/src/scripts/controllers/skills_lifestyle.js b/src/scripts/controllers/skills_lifestyle.js new file mode 100644 index 00000000..9785c8f3 --- /dev/null +++ b/src/scripts/controllers/skills_lifestyle.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsLifestyleCtrl + * @description + * # SkillsLifestyleCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsLifestyleCtrl', function ($scope) { + $scope.pageTitle = "Lifestyle"; + + $scope.mainLinks = [ + {name:"Sleep", id:543, post:'skills_lifestyle'}, + {name:"Medications", id:544, post:'skills_lifestyle'}, + {name:"Attend", id:545, post:'skills_lifestyle'}, + {name:"Routine", id:546, post:'skills_lifestyle'}, + {name:"Tranquility", id:547, post:'skills_lifestyle'}, + {name:"Socialization", id:562, post:'skills_lifestyle'} + ]; + }); diff --git a/src/scripts/controllers/skills_team.js b/src/scripts/controllers/skills_team.js new file mode 100644 index 00000000..60a6c139 --- /dev/null +++ b/src/scripts/controllers/skills_team.js @@ -0,0 +1,34 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsTeamCtrl + * @description + * # SkillsTeamCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsTeamCtrl', function ($scope) { + $scope.pageTitle = "Team"; + + // $scope.mainLinks = [ + // {name:"Duality", id:553, post:'skills_team'}, + // {name:"Humilty", id:554, post:'skills_team'}, + // {name:"Obligation", id:555, post:'skills_team'}, + // {name:"Sacrifice", id:556, post:'skills_team'}, + // {name:"Asking for Help", id:557, post:'skills_team'}, + // {name:"Giving Back", id:558, post:'skills_team'}, + // {name:"Doctor Checklist", id:559, post:'skills_team'}, + // {name:"Support Checklist", id:560, post:'skills_team'}, + // {name:"Hospital Checklist", id:561, post:'skills_team'} + // ]; + + $scope.mainLinks = [ + {name:"Psychiatrist", id:580, post:'skills_team'}, + {name:"Supports", id:581, post:'skills_team'}, + {name:"Hospital", id:582, post:'skills_team'} + ]; + + + + }); diff --git a/src/scripts/controllers/summary_player.js b/src/scripts/controllers/summary_player.js new file mode 100644 index 00000000..1bb3471f --- /dev/null +++ b/src/scripts/controllers/summary_player.js @@ -0,0 +1,66 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SummaryPlayerCtrl + * @description + * # SummaryPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SummaryPlayerCtrl', function ($scope, $routeParams, $location) { + + $scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter = _.where(appContent, search_criteria)[0]; + + chapter.element_array = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + + chapter.contents = []; + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter.element_array, function (element) { + // console.log(parseInt(element)); + chapter.contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + + return chapter; + }; + + $scope.showAddSkills = false; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + $scope.chapter = $scope.getChapterContents($routeParams.id,$scope.lessons); + + $scope.pageTitle = $scope.chapter.pretty_name; + + $scope.page = $scope.chapter.contents; + + $scope.addToMySkills = function(){ + + var id = $scope.page.id; + + if (localStorage['mySkills'] == undefined){ + + localStorage['mySkills'] = JSON.stringify([id]); + } + else { + var mySkills = JSON.parse(localStorage['mySkills']); + + mySkills.push(parseInt(id)); + localStorage['mySkills'] = JSON.stringify(mySkills); + } + + $location.path('/mySkills'); + + } + debugger; + + }); diff --git a/src/scripts/controllers/team.js b/src/scripts/controllers/team.js new file mode 100644 index 00000000..bf249f3a --- /dev/null +++ b/src/scripts/controllers/team.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('TeamCtrl', function ($scope, UserData) { + $scope.pageTitle = "My Team"; + + $scope.team = UserData.query('team'); + $scope.secureTeam = UserData.query('secureContent').team; + }); diff --git a/src/scripts/controllers/usereditor.js b/src/scripts/controllers/usereditor.js new file mode 100644 index 00000000..c2f0825d --- /dev/null +++ b/src/scripts/controllers/usereditor.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:UsereditorCtrl + * @description + * # UsereditorCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('UsereditorCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/src/scripts/controllers/weekly_check_in.js b/src/scripts/controllers/weekly_check_in.js new file mode 100644 index 00000000..77259df0 --- /dev/null +++ b/src/scripts/controllers/weekly_check_in.js @@ -0,0 +1,136 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WeeklyCheckInCtrl + * @description + * # WeeklyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WeeklyCheckInCtrl', function($scope, $location, $routeParams, Questions, Guid, UserDetails, Pound) { + + + $scope.pageTitle = 'Weekly Check In'; + + var phq_questions = Questions.query('phq9'); + var amrs_questions = Questions.query('amrs'); + + //combine questions into one group for the page + $scope.questionGroups = [phq_questions, amrs_questions]; + + //allows you to pass a question index url param into the question group directive + $scope.questionIndex = parseInt($routeParams.questionIndex) - 1 || 0; + + $scope.skippable = false; + + //overrides questiongroup default submit action to send data to PR + $scope.submit = function() { + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + + + _.each(responses, function(el) { + + var payload = { + userId: UserDetails.find, + survey: $scope.pageTitle, + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION, payload).execute(); + console.log(payload); + + }); + + var responsePayload = { + sessionID: sessionID, + responses: responses + }; + + Pound.add('weeklyCheckIn', responsePayload); + + var lWR = responses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + + if (_.where(JSON.parse(localStorage.team, { + role: 'Psychiatrist' + })[0] != undefined)) { + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + } else { + $scope.psychiatristEmail = ''; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + + if (amrsSum >= 10) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + } + if (amrsSum >= 16) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + } + if (phq8Sum >= 15) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'PHQ8 >= 15' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'PHQ8 >= 15' + }).execute(); + } + if (phq8Sum >= 20) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'PHQ8 >= 20' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'PHQ8 >= 20' + }).execute(); + } + + $location.path("/ews"); + + } + + }); \ No newline at end of file diff --git a/src/scripts/controllers/wellness.js b/src/scripts/controllers/wellness.js new file mode 100644 index 00000000..58e18178 --- /dev/null +++ b/src/scripts/controllers/wellness.js @@ -0,0 +1,64 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WellnessCtrl + * @description + * # WellnessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WellnessCtrl', function ($scope,$routeParams) { + $scope.pageTitle = 'Wellness Plan'; + + $scope.section = $routeParams.section || ""; + + $scope.showResources = function(){ + $scope.riskVisible = false; + $scope.awarenessVisible = false; + $scope.resourcesVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#resources').addClass('btn-active'); + } + + $scope.showRisk = function(){ + $scope.awarenessVisible = false; + $scope.resourcesVisible = false; + $scope.riskVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').addClass('btn-active'); + $('button#resources').removeClass('btn-active'); + } + + $scope.showAwareness = function(){ + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = true; + $('button#resources').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#awareness').addClass('btn-active'); + + } + + + switch($scope.section) { + case "resources": + $scope.showResources(); + break; + case "awareness": + $scope.showAwareness(); + break; + case "risk": + $scope.showRisk(); + break; + default: + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = false; + } + + + + + }); diff --git a/src/scripts/questionGroups/questiongroup.js b/src/scripts/questionGroups/questiongroup.js new file mode 100644 index 00000000..c37469b7 --- /dev/null +++ b/src/scripts/questionGroups/questiongroup.js @@ -0,0 +1,204 @@ +'use strict'; + +/** + * @ngdoc directive + * @name livewellApp.directive:questionGroup + * @description + * # questionGroup + */ +angular.module('livewellApp') + .directive('questionGroup', function ($location) { + return { + templateUrl: 'views/questionGroups/question_group.html', + restrict: 'E', + link: function postLink(scope, element, attrs) { + + scope._LABELS = scope.labels || [ + {name:'back',label:'<'}, + {name:'next',label:'>'}, + {name:'submit', label:'Save'} + ]; + + scope._SURVEY_FAILURE_LABEL = scope.surveyFailureLabel || 'Unfortunately, this survey failed to load:'; + + scope.questionGroups = _.flatten(scope.questionGroups); + scope.questionAnswered = []; + + scope.responseArray = []; + + scope.surveyFailure = function(){ + + var error = {}; + //there are no questions + if (scope.questionGroups.length == 0 && _.isArray(scope.questionGroups)) { + error = { error:true, message:"There are no questions available." } + } + //questions are not in an array + else if (_.isArray(scope.questionGroups) == false){ + error = { error:true, message:"Questions are not properly formatted." } + } + else { + error = { error:false } + } + + if (error.error == true){ + console.error(error); + } + + return error + + } + + scope.label = function(labelName){ + return _.where(scope._LABELS, {name:labelName})[0].label + } + + scope.numberOfQuestions = scope.questionGroups.length; + + scope.randomizationScheme = {}; + + scope.currentIndex = scope.questionIndex || 0; + + scope.showQuestion = function(questionPosition){ + + var dataLabelToRandomize = scope.questionGroups[scope.currentIndex].questionDataLabel; + + var numResponsesToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}).length; + + if (numResponsesToRandomize > 1){ + + var questionsToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}); + + if(scope.randomizationScheme[dataLabelToRandomize] == undefined){ + scope.randomizationScheme[dataLabelToRandomize] = Math.floor(Math.random() * (numResponsesToRandomize)); + } + + + var randomQuestionToPick = questionsToRandomize[scope.randomizationScheme[dataLabelToRandomize]]; + + scope.currentIndex = _.findIndex(scope.questionGroups,{id:randomQuestionToPick.id}); + + // console.log(questionPosition, scope.currentIndex,questionPosition == scope.currentIndex,scope.questionGroups,{id:randomQuestionToPick.id}); + + } + + + return questionPosition == scope.currentIndex; + } + + scope.goesToIndex = ""; + + scope.goesTo = function(goesToId,index){ + + scope.skipArray[index] = true; + + for (var index = 0; index < scope.questionGroups.length; index++) { + if (scope.questionGroups[index].questionDataLabel == goesToId){ + scope.goesToIndex = index; + } + } + + // alert(scope.goesToIndex,goesToId ); + + } + + scope.next = function(question,index){ + // console.log(question); + + scope.responseArray[scope.currentIndex] = $('form').serializeArray()[0]; + + if (question.responses.length == 1 && question.responses[0].goesTo != "") + { + scope.goesTo(question.responses[0].goesTo); + } + + if (scope.goesToIndex != "") + { + + scope.currentIndex = scope.goesToIndex; + + } + else { + + if( scope.skipArray[index] == true){ + scope.currentIndex++;} + else{ + alert('You must enter an answer to continue!');//modal + } + + } + scope.goesToIndex = ""; + }; + + scope.back = function(){ + + scope.currentIndex--; + + + }; + + + //is overridden by scope.complete function if different action is desired at the end of survey + scope.submit = scope.submit || function(){ + console.log('OVERRIDE THIS IN YOUR CONTROLLER SCOPE: ',$('form').serializeArray()); + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + _.each(responses, function(el){ + + var payload = { + userId: UserDetails.find, + survey: 'survey', + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION,payload).execute(); + console.log(payload); + + }); + + + + $location.path('#/'); + } + + scope.skippable = scope.skippable || true; + scope.skipArray = []; + + + scope.questionViewType = function(questionType){ + + switch (questionType){ + + case "radio" || "checkbox": + return "multiple" + break; + case "text" || "phone" || "email" || "textarea": + return "single" + break; + default: + return "html" + break; + + } + + } + +// scope.showEndNav = function(length,pageTitle) { +// if (length == 0 && pageTitle = 'Daily Review'){ +// return true} +// } +// } + + } + }; + }); diff --git a/src/scripts/services/clinicalstatusupdate.js b/src/scripts/services/clinicalstatusupdate.js new file mode 100644 index 00000000..f6c40c09 --- /dev/null +++ b/src/scripts/services/clinicalstatusupdate.js @@ -0,0 +1,147 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.clinicalStatusUpdate + * @description + * # clinicalStatusUpdate + * Service in the livewellApp. + */ +angular.module('livewellApp').service('ClinicalStatusUpdate', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}; + contents.execute = function() { + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + var dailyReviewResponses = Pound.find('dailyCheckIn'); + var weeklyReviewResponses = Pound.find('weeklyCheckIn'); + var newClinicalStatus = currentClinicalStatusCode(); + var sendEmail = false; + var intensityCount = { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0 + }; + + for (var i = dailyReviewResponses.length - 1; i > dailyReviewResponses.length - 8; i--) { + var aWV = 0; + if (dailyReviewResponses[i] != undefined) { + var aWV = Math.abs(parseInt(dailyReviewResponses[i].wellness)); + } + console.log(aWV); + if (aWV == 0) { + intensityCount[0] = intensityCount[0] + 1 + } + if (aWV == 1) { + intensityCount[1] = intensityCount[1] + 1 + } + if (aWV == 2) { + intensityCount[2] = intensityCount[2] + 1 + } + if (aWV == 3) { + intensityCount[3] = intensityCount[3] + 1 + } + if (aWV == 4) { + intensityCount[4] = intensityCount[4] + 1 + } + } + + var lastWeeklyResponses = []; + + if (weeklyReviewResponses[weeklyReviewResponses.length - 1] != undefined){ + lastWeeklyResponses = weeklyReviewResponses[weeklyReviewResponses.length - 1].responses; + } + else{ + lastWeeklyResponses = [ + {name:'phq1', value:'0'}, + {name:'phq2', value:'0'}, + {name:'phq3', value:'0'}, + {name:'phq4', value:'0'}, + {name:'phq5', value:'0'}, + {name:'phq6', value:'0'}, + {name:'phq7', value:'0'}, + {name:'phq8', value:'0'}, + {name:'amrs1', value:'0'}, + {name:'amrs2', value:'0'}, + {name:'amrs3', value:'0'}, + {name:'amrs4', value:'0'}, + {name:'amrs5', value:'0'} + ]; + } + var lWR = lastWeeklyResponses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + switch (parseInt(currentClinicalStatusCode())) { + case 1://well + //Well if abs(wr) ≥ 2 for 4 of last 7 days Prodromal + if ((intensityCount[2] + intensityCount[3] + intensityCount[4]) >= 4) { + newClinicalStatus = 2; + } + // //Well if last ASRM ≥ 6 Well, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + // //Well if last PHQ8 ≥ 10 Well, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 2://prodromal + //Prodromal if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Prodromal if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Prodromal if last ASRM ≥ 6 Prodromal, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Prodromal if last PHQ8 ≥ 10 Prodromal, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 3://recovering + //Recovering if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Recovering if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Recovering if last ASRM ≥ 6 Recovering, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Recovering if last PHQ8 ≥ 10 Recovering, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 4://unwell + //Unwell if abs(wr) ≤ 2 for 5 of last 7 days Recovering + if ((intensityCount[0] + intensityCount[1] + intensityCount[2]) >= 5) { + newClinicalStatus = 3; + } + break; + } + + var returnStatus = {}; + returnStatus.amrsSum = amrsSum; + returnStatus.phq8Sum = phq8Sum; + returnStatus.intensityCount = intensityCount; + returnStatus.oldStatus = currentClinicalStatusCode(); + returnStatus.newStatus = newClinicalStatus; + localStorage['clinicalStatus'] = JSON.stringify({ + currentCode: newClinicalStatus + }); + return returnStatus + } + return contents; +}); \ No newline at end of file diff --git a/src/scripts/services/dailyreview.js b/src/scripts/services/dailyreview.js new file mode 100644 index 00000000..18564eb2 --- /dev/null +++ b/src/scripts/services/dailyreview.js @@ -0,0 +1,548 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.dailyReview + * @description + * # dailyReview + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('DailyReviewAlgorithm', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}, + recoder = {}, + history = {}, + dailyCheckInData = {}, + conditions = []; + var sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + var dailyReviewResponses = Pound.find('dailyCheckIn'); + recoder.execute = function(sleepRoutineRanges, dailyReviewResponses) { + var historySeed = {}; + historySeed.wellness = [0, 0, 0, 0, 0, 0, 0]; // wellness balanced 7 days + historySeed.medications = [1, 1, 1, 1, 1, 1, 1]; // took all meds 7 days + historySeed.sleep = [0, 0, 0, 0, 0, 0, 0]; // in baseline range 7 days + historySeed.routine = [2, 2, 2, 2, 2, 2, 2]; // in both windows 7 days + for (var i = 0; i < 7; i++) { + var responsePosition = dailyReviewResponses.length + i - 7; + if (dailyReviewResponses[responsePosition] != undefined) { + historySeed.wellness[i] = parseInt(dailyReviewResponses[responsePosition].wellness); + historySeed.medications[i] = recoder.medications(dailyReviewResponses[responsePosition].medications); + historySeed.sleep[i] = recoder.sleep(dailyReviewResponses[responsePosition].sleepDuration,sleepRoutineRanges); + historySeed.routine[i] = recoder.routine(dailyReviewResponses[responsePosition].toBed, dailyReviewResponses[responsePosition].gotUp, sleepRoutineRanges); + } + } + localStorage['recodedResponses'] = JSON.stringify(historySeed); + return historySeed + } + + recoder.medications = function(medications) { + switch (medications) { + case '0': + return 0 + break; + case '1': + return 0.5 + break; + case '2': + return 1 + break; + } + } + + recoder.sleep = function(sleepDuration, sleepRoutineRanges) { + var score = 0; + // duration = gotUp - toBed + // look at ranges defined in sleepRoutineRanges, which range is it in? + + var duration = parseInt(sleepDuration); + + if (duration <= sleepRoutineRanges.LessSevere) { + score = -1; + } + if (duration >= sleepRoutineRanges.MoreSevere) { + score = 1; + } + if (duration >= sleepRoutineRanges.Less && duration <= sleepRoutineRanges.More) { + score = 0; + } + if (duration < sleepRoutineRanges.Less && duration >= sleepRoutineRanges.LessSevere) { + score = -0.5; + } + if (duration > sleepRoutineRanges.More && duration <= sleepRoutineRanges.MoreSevere) { + score = 0.5; + } + return score + } + + recoder.routine = function(toBed, gotUp, sleepRoutineRanges) { + var sum = 0; + var range = sleepRoutineRanges; + var numGotUp = parseInt(gotUp); + var numToBed = parseInt(toBed); + var bedTimeStart = parseInt(sleepRoutineRanges.BedTimeStrt_MT); + var bedTimeStop = parseInt(sleepRoutineRanges.BedTimeStop_MT); + var riseTimeStart = parseInt(sleepRoutineRanges.RiseTimeStrt_MT); + var riseTimeStop = parseInt(sleepRoutineRanges.RiseTimeStop_MT); + if (bedTimeStart > bedTimeStop) { + bedTimeStop = bedTimeStop + 2400; + } + if (riseTimeStart > riseTimeStop) { + riseTimeStop = riseTimeStop + 2400; + } + if (numGotUp < riseTimeStart && numGotUp < riseTimeStop) { + numGotUp = numGotUp + 2400; + } + if (numToBed < bedTimeStart && numToBed < bedTimeStop) { + numToBed = numToBed + 2400; + } + if (numGotUp >= riseTimeStart && numGotUp <= riseTimeStop) { + sum++ + } + if (numToBed >= bedTimeStart && numToBed <= bedTimeStop) { + sum++ + } + return parseInt(sum) + }; + + conditions[26] = function(data, code) { + //well + return true + }; + conditions[25] = function(data, code) { + //at risk routine + //Baseline ≥ 3 of last 4 days mrd ≠ Bedtime Window and/or mrd ≠ Risetime Window, + //Bedtime and Risetime Windows ≤ 5 of last 4 days + var sum1 = data.routine[3] + data.routine[4] + data.routine[5] + data.routine[6]; + + return code == 1 && Math.abs(data.wellness[6]) < 2 && ((data.routine[6] < 2 && sum1 <= 5)) + }; + conditions[24] = function(data, code) { + //at risk sleep erratic + //mrd ≠ Baseline, Baseline ≤ 2 of last 4 days + var sum1 = 0; + if (data.sleep[3] == 0) { + sum1++ + } + if (data.sleep[4] == 0) { + sum1++ + } + if (data.sleep[5] == 0) { + sum1++ + } + if (data.sleep[6] == 0) { + sum1++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] != 0) && sum1 <= 2 + }; + conditions[23] = function(data, code) { + //at risk sleep more + //mrd = More or More-Severe, More or More-Severe ≥ 2 last 4 days, Less or Less-Severe ≤ 1 last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == 1 || data.sleep[6] == 0.5) && sum1 <= 1 && sum2 >= 2 + }; + conditions[22] = function(data, code) { + //at risk sleep less + //mrd = Less or Less-Severe, Less or Less-Severe ≥ 2 of last 4 days, More or More-Severe ≤ 1 of last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == -1 || data.sleep[6] == -0.5) && sum1 >= 2 && sum2 <= 1 + }; + conditions[21] = function(data, code) { + //at risk medications + return code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 + }; + conditions[20] = function(data, code) { + //at risk sleep more severe + //mrd = More-Severe, More-Severe ≥ 3 of last 4 days + var sum = 0; + if (data.sleep[3] == 1) { + sum++ + } + if (data.sleep[4] == 1) { + sum++ + } + if (data.sleep[5] == 1) { + sum++ + } + if (data.sleep[6] == 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:20}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', email:'psychiatrist', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:20}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[19] = function(data, code) { + //at risk sleep less severe + //mrd = Less-Severe, Less-Severe ≥ 2 of last 4 days + var sum = 0; + if (data.sleep[3] == -1) { + sum++ + } + if (data.sleep[4] == -1) { + sum++ + } + if (data.sleep[5] == -1) { + sum++ + } + if (data.sleep[6] == -1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == -1 && sum >= 2; + + if (dailyReviewIsTrueWhen){ + if (sum == 2){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:19}).execute(); + } + if (sum == 3){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', email:'psychiatrist', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:19}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[18] = function(data, code) { + //at risk medications severe + var sum = 0; + if (data.medications[3] != 1) { + sum++ + } + if (data.medications[4] != 1) { + sum++ + } + if (data.medications[5] != 1) { + sum++ + } + if (data.medications[6] != 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about taking your medications', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'psychiatrist', code:18}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{message:'Call your psychiatrist about taking your medications', call:'psychiatrist', email:'coach', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:18}).execute(); + } + } + return dailyReviewIsTrueWhen + }; + conditions[17] = function(data, code) { + //mild down well + var dailyReviewIsTrueWhen = data.wellness[6] == -2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:17}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:17}).execute(); + } + } + + + + return dailyReviewIsTrueWhen; + }; + conditions[16] = function(data, code) { + //mild up well + var dailyReviewIsTrueWhen = data.wellness[6] == 2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:16}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:16}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[15] = function(data, code) { + //balanced prodromal + return code == 2 + }; + conditions[14] = function(data, code) { + //balanced recovering + return code == 3 + }; + conditions[13] = function(data, code) { + //mild down prodromal + return data.wellness[6] == -2 && code == 2; + }; + conditions[12] = function(data, code) { + //mild up prodromal + return data.wellness[6] == 2 && code == 2; + }; + conditions[11] = function(data, code) { + //mild down recovering + return data.wellness[6] == -2 && code == 3; + }; + conditions[10] = function(data, code) { + //mild up recovering + return data.wellness[6] == 2 && code == 3; + }; + conditions[9] = function(data, code) { + //moderate down + var dailyReviewIsTrueWhen = data.wellness[6] == -3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:9}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:9}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[8] = function(data, code) { + //moderate up + var dailyReviewIsTrueWhen = data.wellness[6] == 3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:8}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:8}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[7] = function(data, code) { + //balanced unwell + return code == 4; + }; + conditions[6] = function(data, code) { + //mild down unwell + return data.wellness[6] == -2 && code == 4; + }; + conditions[5] = function(data, code) { + //mild up unwell + return data.wellness[6] == 2 && code == 4; + }; + conditions[4] = function(data, code) { + //moderate down unwell + return data.wellness[6] == -3 && code == 4; + }; + conditions[3] = function(data, code) { + //moderate up unwell + return data.wellness[6] == 3 && code == 4; + }; + conditions[2] = function(data, code) { + //logic for severe down + return data.wellness[6] == -4; + }; + conditions[1] = function(data, code) { + //logic for severe up + return data.wellness[6] == 4; + }; + conditions[0] = function() { + return false + } + // "[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + recoder.wellnessFormatter = function(wellnessRating) { + switch (wellnessRating) { + case -4: + return 0; + break; + case -3: + return .25; + break; + case -2: + return .5; + break + case -1: + return 1; + break; + case 0: + return 1; + break; + case 1: + return 1; + break; + case 2: + return 0.5; + break; + case 3: + return 0.25; + break; + case 4: + return 0; + break; + } + } + contents.getPercentages = function() { + var contents = {}; + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + var sleepValues = {}; + sleepValues[-1] = 0; + sleepValues[-0.5] = 0.25; + sleepValues[0] = 1; + sleepValues[0.5] = 0.5; + sleepValues[1] = 0.25; + contents.sleep = (sleepValues[recodedSevenDays.sleep[0]] + sleepValues[recodedSevenDays.sleep[1]] + sleepValues[recodedSevenDays.sleep[2]] + sleepValues[recodedSevenDays.sleep[3]] + sleepValues[recodedSevenDays.sleep[4]] + sleepValues[recodedSevenDays.sleep[5]] + sleepValues[recodedSevenDays.sleep[6]]) / 7; + contents.wellness = (recoder.wellnessFormatter(recodedSevenDays.wellness[0]) + recoder.wellnessFormatter(recodedSevenDays.wellness[1]) + recoder.wellnessFormatter(recodedSevenDays.wellness[2]) + recoder.wellnessFormatter(recodedSevenDays.wellness[3]) + recoder.wellnessFormatter(recodedSevenDays.wellness[4]) + recoder.wellnessFormatter(recodedSevenDays.wellness[5]) + recoder.wellnessFormatter(recodedSevenDays.wellness[6])) / 7; + contents.medications = (recodedSevenDays.medications[0] + recodedSevenDays.medications[1] + recodedSevenDays.medications[2] + recodedSevenDays.medications[3] + recodedSevenDays.medications[4] + recodedSevenDays.medications[5] + recodedSevenDays.medications[6]) / 7; + contents.routine = (recodedSevenDays.routine[0] + recodedSevenDays.routine[1] + recodedSevenDays.routine[2] + recodedSevenDays.routine[3] + recodedSevenDays.routine[4] + recodedSevenDays.routine[5] + recodedSevenDays.routine[6]) / 14; + return contents + } + contents.getCode = function() { + //look for the highest TRUE value in the condition set + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + console.log(recodedSevenDays); + for (var i = 0; i < conditions.length; i++) { + var selection = conditions[i](recodedSevenDays, currentClinicalStatusCode()); + if (selection == true) { + return i + break; + } + } + } + contents.code = function(){return contents.getCode()}; + contents.percentages = function(){return contents.getPercentages()}; + contents.recodedResponses = function() { + return recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')) + }; + return contents + }); \ No newline at end of file diff --git a/src/scripts/services/guid.js b/src/scripts/services/guid.js new file mode 100644 index 00000000..5da4a5f2 --- /dev/null +++ b/src/scripts/services/guid.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Guid + * @description + * # Guid + * provides the capacity to generate a guid as needed, + */ +angular.module('livewellApp') + .service('Guid', function Guid() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var guid = {}; + + // make a string 4 of length 4 with random alphanumerics + guid.S4 = function () { + return (((1+Math.random())*0x10000)|0).toString(16).substring(1); + } + + // concat a bunch together plus stitch in '4' in the third group + guid.create = function() { + return (guid.S4() + guid.S4() + "-" + guid.S4() + "-4" + guid.S4().substr(0,3) + "-" + guid.S4() + "-" + guid.S4() + guid.S4() + guid.S4()).toLowerCase(); + } + + return guid + + }); diff --git a/src/scripts/services/pound.js b/src/scripts/services/pound.js new file mode 100644 index 00000000..d6ef03af --- /dev/null +++ b/src/scripts/services/pound.js @@ -0,0 +1,189 @@ + +/** + * @ngdoc service + * @name livewellApp.Pound + * @description + * # Pound + * acts as an interface to localStorage + * TODO, use localForage, but gracefully degrade to localStorage if it doesn't exist + */ +angular.module('livewellApp') + .service('Pound', function Pound() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var pound = {}; + + console.warn('CAUTION: localForage does not exist'); + + //pound.insert(key, object) + //adds to or CREATES a store + //key: name of thing to store + //object: value of thing to store in json form + //pound.add("foo",{"thing":"thing value"}); + //adds {"thing":"thing value"} to a key called "foo" in localStorage + pound.add = function(key,object){ + var collection = []; + + if (localStorage[key]){ + collection = JSON.parse(localStorage[key]); + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + localStorage[key] = JSON.stringify(collection); + } + else + { + object.id = 1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection = [object]; + localStorage[key] = JSON.stringify(collection); + pound.add("pound",key); + } + + return {added:object}; + }; + + + //pound.save(key, object, id) + //equivalent of upsert + //key: name of thing to store + //object: value of thing to store in json form + // + //pound.save("foo",{thing:"thing value", id:id_value}); + //looks to find a thing called foo that has an array of objects inside + //then looks to find an object in that array that has an id of a particular value, + // if it exists, the object is updated with the keys in the object to replace + ///if it does not exist, it is added + pound.save = function(key,object){ + var collection = []; + + if (localStorage[key]){ + + var exists = false; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == object.id){ + exists = true; + object.timestamp = new Date(); + collection[idx] = object; + } + + }); + + if (exists == false){ + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + } + } + + else + { + object.id = 1; + object.created_at = new Date(); + collection = [object]; + pound.add("pound",key); + } + + localStorage[key] = JSON.stringify(collection); + + return {saved:object}; + }; + + //pound.update(key, object) + //get collection of JSON objects + //iterate through collection and check if passed object matches an element + //merge attributes of objects + //set the collection at the current index to the value of the object + //stringify the collection and set the localStorage key to that value + + pound.update = function(key, object) { + var collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx) { + + if (el.id == object.id) { + + for( var attribute in el) { + el[attribute] = object[attribute] + object.updated_at = new Date(); + } + + collection[idx] = object + } + }); + localStorage[key] = JSON.stringify(collection); + + return {updated:object}; + } + + //pound.find(key,criteria_object) + //key: name of localstorage location + //criteria_object: object that matches the criteria you're looking for + //pound.find("foo") + //returns the ENTIRE contents of the localStorage array + //pound.find("foo",{thing:"thing value"}) + //returns the elements in the array that match that criteria + + pound.find = function(key,criteria_object){ + var collection = []; + if(localStorage[key]){ + collection = JSON.parse(localStorage[key]); + + if (criteria_object){ + return _.where(collection,criteria_object) || [] } + else { return collection || [];} + } + else{ return [];} + }; + + pound.list = function(){ + return pound.find("pound"); + }; + + //pound.delete(key,id) + //removes an item from a collection that matches a specific id criteria + pound.delete = function(key,id){ + + var collection = []; + var object_to_delete; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == id){ + object_to_delete = collection[idx]; + collection[idx] = false; + }; + }); + + localStorage[key] = JSON.stringify(_.compact(collection)); + + return {deleted:object_to_delete}; + } + + + //pound.nuke(key) + //completely removes the key from local storage and pound list + pound.nuke = function(key){ + var collection = pound.list; + + localStorage.removeItem(key); + _.each(collection, function(el, idx){ + if (el == key){ + collection[idx] = false; + }; + }); + localStorage["pound"] = JSON.stringify(_.compact(collection)); + + return {cleared:key}; + }; + + + return pound + + +}); diff --git a/src/scripts/services/questions.js b/src/scripts/services/questions.js new file mode 100644 index 00000000..fb116703 --- /dev/null +++ b/src/scripts/services/questions.js @@ -0,0 +1,83 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Questions + * @description + * # Questions + * accesses locally stored questions that were provided over the questions / question-responses routes + */ +angular.module('livewellApp') + .service('Questions', function Questions($http) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _CONTENT_SERVER_URL = 'https://livewellnew.firebaseio.com'; + + var content = {}; + var _QUESTIONS_COLLECTION_KEY = 'questions'; + var _RESPONSES_COLLECTION_KEY = 'questionresponses'; + var _QUESTION_CRITERIA_COLLECTION_KEY = 'questioncriteria'; + var _RESPONSE_CRITERIA_COLLECTION_KEY = 'responsecriteria'; + + content.query = function(questionGroup){ + + if (localStorage[_QUESTIONS_COLLECTION_KEY] != undefined){ + //grab from synched local storage + content.items = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + //filter to show only one question group + if (questionGroup != undefined){ + content.items = _.where(content.items, {questionGroup:questionGroup}); + } + + //attach response groups to questions + var responses_collection = JSON.parse(localStorage[_RESPONSES_COLLECTION_KEY]); + var question_criteria_collection = JSON.parse(localStorage[_QUESTION_CRITERIA_COLLECTION_KEY]); + var response_criteria_collection = JSON.parse(localStorage[_RESPONSE_CRITERIA_COLLECTION_KEY]); + + _.each(content.items, function(el,idx){ + content.items[idx].responses = _.where(responses_collection, {responseGroupId: el.responseGroupId}); + content.items[idx].criteria = _.where(question_criteria_collection, {questionCriteriaId: el.questionCriteriaId}); + _.each(content.items[idx].responses, function(el2,idx2){ + content.items[idx].responses[idx2].criteria = _.where(response_criteria_collection,{responseId:el2.id}); + }); + + }); + + + + content.responses = responses_collection; + + content.questions = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + content.questionCriteria = question_criteria_collection; + content.responseCriteria = response_criteria_collection; + + content.items = _.sortBy(content.items,"order"); + + } + else{ + content.items = []; + } + + return content.items + + } + + content.save = function(collectionToSave,collection){ + debugger; + localStorage[collectionToSave] = JSON.stringify(collection); + $http.put(_CONTENT_SERVER_URL + "/" + collectionToSave).success(alert("Data saved to server")); + } + + content.uniqueQuestionGroups = function(){ + + var uniqueQuestionGroups = []; + _.each(_.uniq(content.query(),"questionGroup"), function(el){ + uniqueQuestionGroups.push({name: el.questionGroup, id: el.questionGroup}); + }); + + return _.uniq(uniqueQuestionGroups,"name") + + } + + return content + }); diff --git a/src/scripts/services/static_content.js b/src/scripts/services/static_content.js new file mode 100644 index 00000000..d32c3dce --- /dev/null +++ b/src/scripts/services/static_content.js @@ -0,0 +1,40 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.StaticContent + * @description + * # StaticContent + * accesses general purpose locally stored static content + */ +angular.module('livewellApp') + .service('StaticContent', function StaticContent() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + var _COLLECTION_KEY = 'staticContent'; + var _NULL_COLLECTION_MESSAGE = '
No content has been provided for this section.
'; + + if (localStorage[_COLLECTION_KEY] != undefined){ + content.items = JSON.parse(localStorage[_COLLECTION_KEY]); + } + else{ + content.items = []; + } + + content.query = function(key){ + + var queryResponse = _.where(content.items, {sectionKey:key}); + + if (queryResponse.length > 0){ + return queryResponse[0].content + } + else{ + return _NULL_COLLECTION_MESSAGE; + + }} + + +return content + +}); diff --git a/src/scripts/services/user_data.js b/src/scripts/services/user_data.js new file mode 100644 index 00000000..c53728de --- /dev/null +++ b/src/scripts/services/user_data.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserData + * @description + * # UserData + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserData', function UserData() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + + content.query = function(collectionKey){ + + console.log(collectionKey); + if (localStorage[collectionKey] != undefined){ + content.items = JSON.parse(localStorage[collectionKey]); + } + else{ + content.items = []; + } + console.log(content.items); + return content.items + + } + + return content + + }); diff --git a/src/scripts/services/user_details.js b/src/scripts/services/user_details.js new file mode 100644 index 00000000..aaf3d55f --- /dev/null +++ b/src/scripts/services/user_details.js @@ -0,0 +1,49 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserDetails + * @description + * # UserDetails + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserDetails', function UserDetails(Pound) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _USER_LOCAL_COLLECTION_KEY = 'user'; + + var userDetails = {}; + + var userDetailsModel = { + uid: 1, + userID: null, + groupID: null, + loginKey: null + } + + //if there is no user, create a dummy user object based on the above model + if (localStorage[_USER_LOCAL_COLLECTION_KEY] == undefined){ + // Pound.save(_USER_LOCAL_COLLECTION_KEY,userDetailsModel); + } + + //return the current user object + userDetails.find = Pound.find(_USER_LOCAL_COLLECTION_KEY,{uid:'1'})[0]; + + //updates the whole user object + userDetails.update = function(userObject){ + Pound.update(_USER_LOCAL_COLLECTION_KEY,userObject); + return userDetails.find + }; + + // updates one key in the whole user object + userDetails.updateKey = function(key, value){ + var userObject = userDetails.find; + userObject[key] = value; + return userDetails.update(userObject); + } + + return userDetails; + + + }); diff --git a/src/scripts/vendor/cordova.android.js b/src/scripts/vendor/cordova.android.js new file mode 100644 index 00000000..1a9f5d97 --- /dev/null +++ b/src/scripts/vendor/cordova.android.js @@ -0,0 +1,1749 @@ +// Platform: android +// 3.4.0 +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +;(function() { +var CORDOVA_JS_BUILD_LABEL = '3.4.0'; +// file: src/scripts/require.js + +/*jshint -W079 */ +/*jshint -W020 */ + +var require, + define; + +(function () { + var modules = {}, + // Stack of moduleIds currently being built. + requireStack = [], + // Map of module ID -> index into requireStack of modules currently being built. + inProgressModules = {}, + SEPARATOR = "."; + + + + function build(module) { + var factory = module.factory, + localRequire = function (id) { + var resultantId = id; + //Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === ".") { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; + module.exports = {}; + delete module.factory; + factory(localRequire, module.exports, module); + return module.exports; + } + + require = function (id) { + if (!modules[id]) { + throw "module " + id + " not found"; + } else if (id in inProgressModules) { + var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; + throw "Cycle in require graph: " + cycle; + } + if (modules[id].factory) { + try { + inProgressModules[id] = requireStack.length; + requireStack.push(id); + return build(modules[id]); + } finally { + delete inProgressModules[id]; + requireStack.pop(); + } + } + return modules[id].exports; + }; + + define = function (id, factory) { + if (modules[id]) { + throw "module " + id + " already defined"; + } + + modules[id] = { + id: id, + factory: factory + }; + }; + + define.remove = function (id) { + delete modules[id]; + }; + + define.moduleMap = modules; +})(); + +//Export for use in node +if (typeof module === "object" && typeof require === "function") { + module.exports.require = require; + module.exports.define = define; +} + +// file: src/cordova.js +define("cordova", function(require, exports, module) { + + +var channel = require('cordova/channel'); +var platform = require('cordova/platform'); + +/** + * Intercept calls to addEventListener + removeEventListener and handle deviceready, + * resume, and pause events. + */ +var m_document_addEventListener = document.addEventListener; +var m_document_removeEventListener = document.removeEventListener; +var m_window_addEventListener = window.addEventListener; +var m_window_removeEventListener = window.removeEventListener; + +/** + * Houses custom event handlers to intercept on document + window event listeners. + */ +var documentEventHandlers = {}, + windowEventHandlers = {}; + +document.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof documentEventHandlers[e] != 'undefined') { + documentEventHandlers[e].subscribe(handler); + } else { + m_document_addEventListener.call(document, evt, handler, capture); + } +}; + +window.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof windowEventHandlers[e] != 'undefined') { + windowEventHandlers[e].subscribe(handler); + } else { + m_window_addEventListener.call(window, evt, handler, capture); + } +}; + +document.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof documentEventHandlers[e] != "undefined") { + documentEventHandlers[e].unsubscribe(handler); + } else { + m_document_removeEventListener.call(document, evt, handler, capture); + } +}; + +window.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof windowEventHandlers[e] != "undefined") { + windowEventHandlers[e].unsubscribe(handler); + } else { + m_window_removeEventListener.call(window, evt, handler, capture); + } +}; + +function createEvent(type, data) { + var event = document.createEvent('Events'); + event.initEvent(type, false, false); + if (data) { + for (var i in data) { + if (data.hasOwnProperty(i)) { + event[i] = data[i]; + } + } + } + return event; +} + + +var cordova = { + define:define, + require:require, + version:CORDOVA_JS_BUILD_LABEL, + platformId:platform.id, + /** + * Methods to add/remove your own addEventListener hijacking on document + window. + */ + addWindowEventHandler:function(event) { + return (windowEventHandlers[event] = channel.create(event)); + }, + addStickyDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.createSticky(event)); + }, + addDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.create(event)); + }, + removeWindowEventHandler:function(event) { + delete windowEventHandlers[event]; + }, + removeDocumentEventHandler:function(event) { + delete documentEventHandlers[event]; + }, + /** + * Retrieve original event handlers that were replaced by Cordova + * + * @return object + */ + getOriginalHandlers: function() { + return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + }, + /** + * Method to fire event from native code + * bNoDetach is required for events which cause an exception which needs to be caught in native code + */ + fireDocumentEvent: function(type, data, bNoDetach) { + var evt = createEvent(type, data); + if (typeof documentEventHandlers[type] != 'undefined') { + if( bNoDetach ) { + documentEventHandlers[type].fire(evt); + } + else { + setTimeout(function() { + // Fire deviceready on listeners that were registered before cordova.js was loaded. + if (type == 'deviceready') { + document.dispatchEvent(evt); + } + documentEventHandlers[type].fire(evt); + }, 0); + } + } else { + document.dispatchEvent(evt); + } + }, + fireWindowEvent: function(type, data) { + var evt = createEvent(type,data); + if (typeof windowEventHandlers[type] != 'undefined') { + setTimeout(function() { + windowEventHandlers[type].fire(evt); + }, 0); + } else { + window.dispatchEvent(evt); + } + }, + + /** + * Plugin callback mechanism. + */ + // Randomize the starting callbackId to avoid collisions after refreshing or navigating. + // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. + callbackId: Math.floor(Math.random() * 2000000000), + callbacks: {}, + callbackStatus: { + NO_RESULT: 0, + OK: 1, + CLASS_NOT_FOUND_EXCEPTION: 2, + ILLEGAL_ACCESS_EXCEPTION: 3, + INSTANTIATION_EXCEPTION: 4, + MALFORMED_URL_EXCEPTION: 5, + IO_EXCEPTION: 6, + INVALID_ACTION: 7, + JSON_EXCEPTION: 8, + ERROR: 9 + }, + + /** + * Called by native code when returning successful result from an action. + */ + callbackSuccess: function(callbackId, args) { + try { + cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning error result from an action. + */ + callbackError: function(callbackId, args) { + // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. + // Derive success from status. + try { + cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning the result from an action. + */ + callbackFromNative: function(callbackId, success, status, args, keepCallback) { + var callback = cordova.callbacks[callbackId]; + if (callback) { + if (success && status == cordova.callbackStatus.OK) { + callback.success && callback.success.apply(null, args); + } else if (!success) { + callback.fail && callback.fail.apply(null, args); + } + + // Clear callback if not expecting any more results + if (!keepCallback) { + delete cordova.callbacks[callbackId]; + } + } + }, + addConstructor: function(func) { + channel.onCordovaReady.subscribe(function() { + try { + func(); + } catch(e) { + console.log("Failed to run constructor: " + e); + } + }); + } +}; + + +module.exports = cordova; + +}); + +// file: src/android/android/nativeapiprovider.js +define("cordova/android/nativeapiprovider", function(require, exports, module) { + +/** + * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. + */ + +var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); +var currentApi = nativeApi; + +module.exports = { + get: function() { return currentApi; }, + setPreferPrompt: function(value) { + currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; + }, + // Used only by tests. + set: function(value) { + currentApi = value; + } +}; + +}); + +// file: src/android/android/promptbasednativeapi.js +define("cordova/android/promptbasednativeapi", function(require, exports, module) { + +/** + * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. + * This is used only on the 2.3 simulator, where addJavascriptInterface() is broken. + */ + +module.exports = { + exec: function(service, action, callbackId, argsJson) { + return prompt(argsJson, 'gap:'+JSON.stringify([service, action, callbackId])); + }, + setNativeToJsBridgeMode: function(value) { + prompt(value, 'gap_bridge_mode:'); + }, + retrieveJsMessages: function(fromOnlineEvent) { + return prompt(+fromOnlineEvent, 'gap_poll:'); + } +}; + +}); + +// file: src/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var exec = require('cordova/exec'); +var utils = require('cordova/utils'); + +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var typeName; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + typeName = utils.typeName(arg); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (typeName != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + typeName + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running unit tests. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +function getValue(value, defaultValue) { + return value === undefined ? defaultValue : value; +} + +moduleExports.checkArgs = checkArgs; +moduleExports.getValue = getValue; +moduleExports.enableChecks = true; + + +}); + +// file: src/common/base64.js +define("cordova/base64", function(require, exports, module) { + +var base64 = exports; + +base64.fromArrayBuffer = function(arrayBuffer) { + var array = new Uint8Array(arrayBuffer); + return uint8ToBase64(array); +}; + +//------------------------------------------------------------------------------ + +/* This code is based on the performance tests at http://jsperf.com/b64tests + * This 12-bit-at-a-time algorithm was the best performing version on all + * platforms tested. + */ + +var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_12bit; + +var b64_12bitTable = function() { + b64_12bit = []; + for (var i=0; i<64; i++) { + for (var j=0; j<64; j++) { + b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + } + } + b64_12bitTable = function() { return b64_12bit; }; + return b64_12bit; +}; + +function uint8ToBase64(rawData) { + var numBytes = rawData.byteLength; + var output=""; + var segment; + var table = b64_12bitTable(); + for (var i=0;i> 12]; + output += table[segment & 0xfff]; + } + if (numBytes - i == 2) { + segment = (rawData[i] << 16) + (rawData[i+1] << 8); + output += table[segment >> 12]; + output += b64_6bit[(segment & 0xfff) >> 6]; + output += '='; + } else if (numBytes - i == 1) { + segment = (rawData[i] << 16); + output += table[segment >> 12]; + output += '=='; + } + return output; +} + +}); + +// file: src/common/builder.js +define("cordova/builder", function(require, exports, module) { + +var utils = require('cordova/utils'); + +function each(objects, func, context) { + for (var prop in objects) { + if (objects.hasOwnProperty(prop)) { + func.apply(context, [objects[prop], prop]); + } + } +} + +function clobber(obj, key, value) { + exports.replaceHookForTesting(obj, key); + obj[key] = value; + // Getters can only be overridden by getters. + if (obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + +function assignOrWrapInDeprecateGetter(obj, key, value, message) { + if (message) { + utils.defineGetter(obj, key, function() { + console.log(message); + delete obj[key]; + clobber(obj, key, value); + return value; + }); + } else { + clobber(obj, key, value); + } +} + +function include(parent, objects, clobber, merge) { + each(objects, function (obj, key) { + try { + var result = obj.path ? require(obj.path) : {}; + + if (clobber) { + // Clobber if it doesn't exist. + if (typeof parent[key] === 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else if (typeof obj.path !== 'undefined') { + // If merging, merge properties onto parent, otherwise, clobber. + if (merge) { + recursiveMerge(parent[key], result); + } else { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } + } + result = parent[key]; + } else { + // Overwrite if not currently defined. + if (typeof parent[key] == 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else { + // Set result to what already exists, so we can build children into it if they exist. + result = parent[key]; + } + } + + if (obj.children) { + include(result, obj.children, clobber, merge); + } + } catch(e) { + utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); + } + }); +} + +/** + * Merge properties from one object onto another recursively. Properties from + * the src object will overwrite existing target property. + * + * @param target Object to merge properties into. + * @param src Object to merge properties from. + */ +function recursiveMerge(target, src) { + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + if (target.prototype && target.prototype.constructor === target) { + // If the target object is a constructor override off prototype. + clobber(target.prototype, prop, src[prop]); + } else { + if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { + recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } + } + } + } +} + +exports.buildIntoButDoNotClobber = function(objects, target) { + include(target, objects, false, false); +}; +exports.buildIntoAndClobber = function(objects, target) { + include(target, objects, true, false); +}; +exports.buildIntoAndMerge = function(objects, target) { + include(target, objects, true, true); +}; +exports.recursiveMerge = recursiveMerge; +exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; +exports.replaceHookForTesting = function() {}; + +}); + +// file: src/common/channel.js +define("cordova/channel", function(require, exports, module) { + +var utils = require('cordova/utils'), + nextGuid = 1; + +/** + * Custom pub-sub "channel" that can have functions subscribed to it + * This object is used to define and control firing of events for + * cordova initialization, as well as for custom events thereafter. + * + * The order of events during page load and Cordova startup is as follows: + * + * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. + * onNativeReady* Internal event that indicates the Cordova native side is ready. + * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. + * onDeviceReady* User event fired to indicate that Cordova is ready + * onResume User event fired to indicate a start/resume lifecycle event + * onPause User event fired to indicate a pause lifecycle event + * onDestroy* Internal event fired when app is being destroyed (User should use window.onunload event, not this one). + * + * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. + * All listeners that subscribe after the event is fired will be executed right away. + * + * The only Cordova events that user code should register for are: + * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript + * pause App has moved to background + * resume App has returned to foreground + * + * Listeners can be registered as: + * document.addEventListener("deviceready", myDeviceReadyListener, false); + * document.addEventListener("resume", myResumeListener, false); + * document.addEventListener("pause", myPauseListener, false); + * + * The DOM lifecycle events should be used for saving and restoring state + * window.onload + * window.onunload + * + */ + +/** + * Channel + * @constructor + * @param type String the channel name + */ +var Channel = function(type, sticky) { + this.type = type; + // Map of guid -> function. + this.handlers = {}; + // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. + this.state = sticky ? 1 : 0; + // Used in sticky mode to remember args passed to fire(). + this.fireArgs = null; + // Used by onHasSubscribersChange to know if there are any listeners. + this.numHandlers = 0; + // Function that is called when the first listener is subscribed, or when + // the last listener is unsubscribed. + this.onHasSubscribersChange = null; +}, + channel = { + /** + * Calls the provided function only after all of the channels specified + * have been fired. All channels must be sticky channels. + */ + join: function(h, c) { + var len = c.length, + i = len, + f = function() { + if (!(--i)) h(); + }; + for (var j=0; jNative bridge. + POLLING: 0, + // For LOAD_URL to be viable, it would need to have a work-around for + // the bug where the soft-keyboard gets dismissed when a message is sent. + LOAD_URL: 1, + // For the ONLINE_EVENT to be viable, it would need to intercept all event + // listeners (both through addEventListener and window.ononline) as well + // as set the navigator property itself. + ONLINE_EVENT: 2, + // Uses reflection to access private APIs of the WebView that can send JS + // to be executed. + // Requires Android 3.2.4 or above. + PRIVATE_API: 3 + }, + jsToNativeBridgeMode, // Set lazily. + nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT, + pollEnabled = false, + messagesFromNative = []; + +function androidExec(success, fail, service, action, args) { + // Set default bridge modes if they have not already been set. + // By default, we use the failsafe, since addJavascriptInterface breaks too often + if (jsToNativeBridgeMode === undefined) { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } + + // Process any ArrayBuffers in the args into a string. + for (var i = 0; i < args.length; i++) { + if (utils.typeName(args[i]) == 'ArrayBuffer') { + args[i] = base64.fromArrayBuffer(args[i]); + } + } + + var callbackId = service + cordova.callbackId++, + argsJson = JSON.stringify(args); + + if (success || fail) { + cordova.callbacks[callbackId] = {success:success, fail:fail}; + } + + if (jsToNativeBridgeMode == jsToNativeModes.LOCATION_CHANGE) { + window.location = 'http://cdv_exec/' + service + '#' + action + '#' + callbackId + '#' + argsJson; + } else { + var messages = nativeApiProvider.get().exec(service, action, callbackId, argsJson); + // If argsJson was received by Java as null, try again with the PROMPT bridge mode. + // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. + if (jsToNativeBridgeMode == jsToNativeModes.JS_OBJECT && messages === "@Null arguments.") { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); + androidExec(success, fail, service, action, args); + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + return; + } else { + androidExec.processMessages(messages); + } + } +} + +function pollOnceFromOnlineEvent() { + pollOnce(true); +} + +function pollOnce(opt_fromOnlineEvent) { + var msg = nativeApiProvider.get().retrieveJsMessages(!!opt_fromOnlineEvent); + androidExec.processMessages(msg); +} + +function pollingTimerFunc() { + if (pollEnabled) { + pollOnce(); + setTimeout(pollingTimerFunc, 50); + } +} + +function hookOnlineApis() { + function proxyEvent(e) { + cordova.fireWindowEvent(e.type); + } + // The network module takes care of firing online and offline events. + // It currently fires them only on document though, so we bridge them + // to window here (while first listening for exec()-releated online/offline + // events). + window.addEventListener('online', pollOnceFromOnlineEvent, false); + window.addEventListener('offline', pollOnceFromOnlineEvent, false); + cordova.addWindowEventHandler('online'); + cordova.addWindowEventHandler('offline'); + document.addEventListener('online', proxyEvent, false); + document.addEventListener('offline', proxyEvent, false); +} + +hookOnlineApis(); + +androidExec.jsToNativeModes = jsToNativeModes; +androidExec.nativeToJsModes = nativeToJsModes; + +androidExec.setJsToNativeBridgeMode = function(mode) { + if (mode == jsToNativeModes.JS_OBJECT && !window._cordovaNative) { + console.log('Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only.'); + mode = jsToNativeModes.PROMPT; + } + nativeApiProvider.setPreferPrompt(mode == jsToNativeModes.PROMPT); + jsToNativeBridgeMode = mode; +}; + +androidExec.setNativeToJsBridgeMode = function(mode) { + if (mode == nativeToJsBridgeMode) { + return; + } + if (nativeToJsBridgeMode == nativeToJsModes.POLLING) { + pollEnabled = false; + } + + nativeToJsBridgeMode = mode; + // Tell the native side to switch modes. + nativeApiProvider.get().setNativeToJsBridgeMode(mode); + + if (mode == nativeToJsModes.POLLING) { + pollEnabled = true; + setTimeout(pollingTimerFunc, 1); + } +}; + +// Processes a single message, as encoded by NativeToJsMessageQueue.java. +function processMessage(message) { + try { + var firstChar = message.charAt(0); + if (firstChar == 'J') { + eval(message.slice(1)); + } else if (firstChar == 'S' || firstChar == 'F') { + var success = firstChar == 'S'; + var keepCallback = message.charAt(1) == '1'; + var spaceIdx = message.indexOf(' ', 2); + var status = +message.slice(2, spaceIdx); + var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); + var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); + var payloadKind = message.charAt(nextSpaceIdx + 1); + var payload; + if (payloadKind == 's') { + payload = message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 't') { + payload = true; + } else if (payloadKind == 'f') { + payload = false; + } else if (payloadKind == 'N') { + payload = null; + } else if (payloadKind == 'n') { + payload = +message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 'A') { + var data = message.slice(nextSpaceIdx + 2); + var bytes = window.atob(data); + var arraybuffer = new Uint8Array(bytes.length); + for (var i = 0; i < bytes.length; i++) { + arraybuffer[i] = bytes.charCodeAt(i); + } + payload = arraybuffer.buffer; + } else if (payloadKind == 'S') { + payload = window.atob(message.slice(nextSpaceIdx + 2)); + } else { + payload = JSON.parse(message.slice(nextSpaceIdx + 1)); + } + cordova.callbackFromNative(callbackId, success, status, [payload], keepCallback); + } else { + console.log("processMessage failed: invalid message:" + message); + } + } catch (e) { + console.log("processMessage failed: Message: " + message); + console.log("processMessage failed: Error: " + e); + console.log("processMessage failed: Stack: " + e.stack); + } +} + +// This is called from the NativeToJsMessageQueue.java. +androidExec.processMessages = function(messages) { + if (messages) { + messagesFromNative.push(messages); + // Check for the reentrant case, and enqueue the message if that's the case. + if (messagesFromNative.length > 1) { + return; + } + while (messagesFromNative.length) { + // Don't unshift until the end so that reentrancy can be detected. + messages = messagesFromNative[0]; + // The Java side can send a * message to indicate that it + // still has messages waiting to be retrieved. + if (messages == '*') { + messagesFromNative.shift(); + window.setTimeout(pollOnce, 0); + return; + } + + var spaceIdx = messages.indexOf(' '); + var msgLen = +messages.slice(0, spaceIdx); + var message = messages.substr(spaceIdx + 1, msgLen); + messages = messages.slice(spaceIdx + msgLen + 1); + processMessage(message); + if (messages) { + messagesFromNative[0] = messages; + } else { + messagesFromNative.shift(); + } + } + } +}; + +module.exports = androidExec; + +}); + +// file: src/common/exec/proxy.js +define("cordova/exec/proxy", function(require, exports, module) { + + +// internal map of proxy function +var CommandProxyMap = {}; + +module.exports = { + + // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); + add:function(id,proxyObj) { + console.log("adding proxy for " + id); + CommandProxyMap[id] = proxyObj; + return proxyObj; + }, + + // cordova.commandProxy.remove("Accelerometer"); + remove:function(id) { + var proxy = CommandProxyMap[id]; + delete CommandProxyMap[id]; + CommandProxyMap[id] = null; + return proxy; + }, + + get:function(service,action) { + return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null ); + } +}; +}); + +// file: src/common/init.js +define("cordova/init", function(require, exports, module) { + +var channel = require('cordova/channel'); +var cordova = require('cordova'); +var modulemapper = require('cordova/modulemapper'); +var platform = require('cordova/platform'); +var pluginloader = require('cordova/pluginloader'); + +var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; + +function logUnfiredChannels(arr) { + for (var i = 0; i < arr.length; ++i) { + if (arr[i].state != 2) { + console.log('Channel not fired: ' + arr[i].type); + } + } +} + +window.setTimeout(function() { + if (channel.onDeviceReady.state != 2) { + console.log('deviceready has not fired after 5 seconds.'); + logUnfiredChannels(platformInitChannelsArray); + logUnfiredChannels(channel.deviceReadyChannelsArray); + } +}, 5000); + +// Replace navigator before any modules are required(), to ensure it happens as soon as possible. +// We replace it so that properties that can't be clobbered can instead be overridden. +function replaceNavigator(origNavigator) { + var CordovaNavigator = function() {}; + CordovaNavigator.prototype = origNavigator; + var newNavigator = new CordovaNavigator(); + // This work-around really only applies to new APIs that are newer than Function.bind. + // Without it, APIs such as getGamepads() break. + if (CordovaNavigator.bind) { + for (var key in origNavigator) { + if (typeof origNavigator[key] == 'function') { + newNavigator[key] = origNavigator[key].bind(origNavigator); + } + } + } + return newNavigator; +} +if (window.navigator) { + window.navigator = replaceNavigator(window.navigator); +} + +if (!window.console) { + window.console = { + log: function(){} + }; +} +if (!window.console.warn) { + window.console.warn = function(msg) { + this.log("warn: " + msg); + }; +} + +// Register pause, resume and deviceready channels as events on document. +channel.onPause = cordova.addDocumentEventHandler('pause'); +channel.onResume = cordova.addDocumentEventHandler('resume'); +channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); + +// Listen for DOMContentLoaded and notify our channel subscribers. +if (document.readyState == 'complete' || document.readyState == 'interactive') { + channel.onDOMContentLoaded.fire(); +} else { + document.addEventListener('DOMContentLoaded', function() { + channel.onDOMContentLoaded.fire(); + }, false); +} + +// _nativeReady is global variable that the native side can set +// to signify that the native code is ready. It is a global since +// it may be called before any cordova JS is ready. +if (window._nativeReady) { + channel.onNativeReady.fire(); +} + +modulemapper.clobbers('cordova', 'cordova'); +modulemapper.clobbers('cordova/exec', 'cordova.exec'); +modulemapper.clobbers('cordova/exec', 'Cordova.exec'); + +// Call the platform-specific initialization. +platform.bootstrap && platform.bootstrap(); + +pluginloader.load(function() { + channel.onPluginsReady.fire(); +}); + +/** + * Create all cordova objects once native side is ready. + */ +channel.join(function() { + modulemapper.mapModules(window); + + platform.initialize && platform.initialize(); + + // Fire event to notify that all objects are created + channel.onCordovaReady.fire(); + + // Fire onDeviceReady event once page has fully loaded, all + // constructors have run and cordova info has been received from native + // side. + channel.join(function() { + require('cordova').fireDocumentEvent('deviceready'); + }, channel.deviceReadyChannelsArray); + +}, platformInitChannelsArray); + + +}); + +// file: src/common/modulemapper.js +define("cordova/modulemapper", function(require, exports, module) { + +var builder = require('cordova/builder'), + moduleMap = define.moduleMap, + symbolList, + deprecationMap; + +exports.reset = function() { + symbolList = []; + deprecationMap = {}; +}; + +function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { + if (!(moduleName in moduleMap)) { + throw new Error('Module ' + moduleName + ' does not exist.'); + } + symbolList.push(strategy, moduleName, symbolPath); + if (opt_deprecationMessage) { + deprecationMap[symbolPath] = opt_deprecationMessage; + } +} + +// Note: Android 2.3 does have Function.bind(). +exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('c', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('m', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('d', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.runs = function(moduleName) { + addEntry('r', moduleName, null); +}; + +function prepareNamespace(symbolPath, context) { + if (!symbolPath) { + return context; + } + var parts = symbolPath.split('.'); + var cur = context; + for (var i = 0, part; part = parts[i]; ++i) { + cur = cur[part] = cur[part] || {}; + } + return cur; +} + +exports.mapModules = function(context) { + var origSymbols = {}; + context.CDV_origSymbols = origSymbols; + for (var i = 0, len = symbolList.length; i < len; i += 3) { + var strategy = symbolList[i]; + var moduleName = symbolList[i + 1]; + var module = require(moduleName); + // + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: src/android/platform.js +define("cordova/platform", function(require, exports, module) { + +module.exports = { + id: 'android', + bootstrap: function() { + var channel = require('cordova/channel'), + cordova = require('cordova'), + exec = require('cordova/exec'), + modulemapper = require('cordova/modulemapper'); + + // Tell the native code that a page change has occurred. + exec(null, null, 'PluginManager', 'startup', []); + // Tell the JS that the native side is ready. + channel.onNativeReady.fire(); + + // TODO: Extract this as a proper plugin. + modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); + + // Inject a listener for the backbutton on the document. + var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); + backButtonChannel.onHasSubscribersChange = function() { + // If we just attached the first handler or detached the last handler, + // let native know we need to override the back button. + exec(null, null, "App", "overrideBackbutton", [this.numHandlers == 1]); + }; + + // Add hardware MENU and SEARCH button handlers + cordova.addDocumentEventHandler('menubutton'); + cordova.addDocumentEventHandler('searchbutton'); + + // Let native code know we are all done on the JS side. + // Native code will then un-hide the WebView. + channel.onCordovaReady.subscribe(function() { + exec(null, null, "App", "show", []); + }); + } +}; + +}); + +// file: src/android/plugin/android/app.js +define("cordova/plugin/android/app", function(require, exports, module) { + +var exec = require('cordova/exec'); + +module.exports = { + /** + * Clear the resource cache. + */ + clearCache:function() { + exec(null, null, "App", "clearCache", []); + }, + + /** + * Load the url into the webview or into new browser instance. + * + * @param url The URL to load + * @param props Properties that can be passed in to the activity: + * wait: int => wait msec before loading URL + * loadingDialog: "Title,Message" => display a native loading dialog + * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error + * clearHistory: boolean => clear webview history (default=false) + * openExternal: boolean => open in a new browser (default=false) + * + * Example: + * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); + */ + loadUrl:function(url, props) { + exec(null, null, "App", "loadUrl", [url, props]); + }, + + /** + * Cancel loadUrl that is waiting to be loaded. + */ + cancelLoadUrl:function() { + exec(null, null, "App", "cancelLoadUrl", []); + }, + + /** + * Clear web history in this web view. + * Instead of BACK button loading the previous web page, it will exit the app. + */ + clearHistory:function() { + exec(null, null, "App", "clearHistory", []); + }, + + /** + * Go to previous page displayed. + * This is the same as pressing the backbutton on Android device. + */ + backHistory:function() { + exec(null, null, "App", "backHistory", []); + }, + + /** + * Override the default behavior of the Android back button. + * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "backbutton" event, this is automatically done. + * + * @param override T=override, F=cancel override + */ + overrideBackbutton:function(override) { + exec(null, null, "App", "overrideBackbutton", [override]); + }, + + /** + * Exit and terminate the application. + */ + exitApp:function() { + return exec(null, null, "App", "exitApp", []); + } +}; + +}); + +// file: src/common/pluginloader.js +define("cordova/pluginloader", function(require, exports, module) { + +var modulemapper = require('cordova/modulemapper'); +var urlutil = require('cordova/urlutil'); + +// Helper function to inject a + +
+ + diff --git a/www/config.json b/www/config.json new file mode 100644 index 00000000..70789f22 --- /dev/null +++ b/www/config.json @@ -0,0 +1 @@ +{"environment":"","server":""} diff --git a/www/config.xml b/www/config.xml new file mode 100644 index 00000000..1a5fe06e --- /dev/null +++ b/www/config.xml @@ -0,0 +1,21 @@ + + + LiveWell + + An application for bipolar disorder + + + Evan Goulding + + + + + + + + + + + + + diff --git a/www/favicon.ico b/www/favicon.ico new file mode 100644 index 00000000..65279053 Binary files /dev/null and b/www/favicon.ico differ diff --git a/www/icon.png b/www/icon.png new file mode 100755 index 00000000..c1259d5c Binary files /dev/null and b/www/icon.png differ diff --git a/www/images/logo.png b/www/images/logo.png new file mode 100644 index 00000000..6ec94bc6 Binary files /dev/null and b/www/images/logo.png differ diff --git a/www/images/yeoman.png b/www/images/yeoman.png new file mode 100644 index 00000000..92497add Binary files /dev/null and b/www/images/yeoman.png differ diff --git a/www/index.html b/www/index.html new file mode 100644 index 00000000..03c18235 --- /dev/null +++ b/www/index.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/lib/PurpleRobotClient/.bower.json b/www/lib/PurpleRobotClient/.bower.json new file mode 100644 index 00000000..30421c24 --- /dev/null +++ b/www/lib/PurpleRobotClient/.bower.json @@ -0,0 +1,32 @@ +{ + "name": "PurpleRobotClient", + "homepage": "https://github.com/cbitstech/PurpleRobotClient", + "authors": [ + "Mark Begale ", + "Eric Carty-Fickes " + ], + "description": "JavaScript client for Purple Robot services", + "main": "purple-robot.js", + "devDependencies": { + "jasmine": "2" + }, + "ignore": [ + "README.md", + "default-triggers.js", + "index.html", + "purple-robot-client.js", + "run_specs", + "test-prompt copy.js", + "docs", + "spec" + ], + "_release": "1.5.10.0", + "_resolution": { + "type": "tag", + "tag": "1.5.10.0", + "commit": "c3f27a19f14a86699d1bc4a19f3df38d8a160a4f" + }, + "_source": "git@github.com:cbitstech/PurpleRobotClient.git", + "_target": "1.5.10.0", + "_originalSource": "git@github.com:cbitstech/PurpleRobotClient.git" +} \ No newline at end of file diff --git a/www/lib/PurpleRobotClient/.gitignore b/www/lib/PurpleRobotClient/.gitignore new file mode 100644 index 00000000..878275d5 --- /dev/null +++ b/www/lib/PurpleRobotClient/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +bower_components diff --git a/www/lib/PurpleRobotClient/bower.json b/www/lib/PurpleRobotClient/bower.json new file mode 100644 index 00000000..4d7a07a4 --- /dev/null +++ b/www/lib/PurpleRobotClient/bower.json @@ -0,0 +1,24 @@ +{ + "name": "PurpleRobotClient", + "version": "1.5.10.0", + "homepage": "https://github.com/cbitstech/PurpleRobotClient", + "authors": [ + "Mark Begale ", + "Eric Carty-Fickes " + ], + "description": "JavaScript client for Purple Robot services", + "main": "purple-robot.js", + "devDependencies": { + "jasmine": "2" + }, + "ignore": [ + "README.md", + "default-triggers.js", + "index.html", + "purple-robot-client.js", + "run_specs", + "test-prompt copy.js", + "docs", + "spec" + ] +} diff --git a/www/lib/PurpleRobotClient/purple-robot.js b/www/lib/PurpleRobotClient/purple-robot.js new file mode 100644 index 00000000..30828543 --- /dev/null +++ b/www/lib/PurpleRobotClient/purple-robot.js @@ -0,0 +1,1039 @@ +;(function() { + // ## Example + // + // var pr = new PurpleRobot(); + // pr.playDefaultTone().execute(); + + // __constructor__ + // + // Initialize the client with an options object made up of + // `serverUrl` - the url to which commands are sent + function PurpleRobot(options) { + options = options || {}; + + // __className__ + // + // `@public` + this.className = "PurpleRobot"; + + // ___serverUrl__ + // + // `@private` + this._serverUrl = options.serverUrl || "http://localhost:12345/json/submit"; + // ___script__ + // + // `@private` + this._script = options.script || ""; + } + + var PR = PurpleRobot; + var root = window; + + function PurpleRobotArgumentException(methodName, argument, expectedArgument) { + this.methodName = methodName; + this.argument = argument; + this.expectedArgument = expectedArgument; + this.message = ' received an unexpected argument "'; + + this.toString = function() { + return [ + "PurpleRobot.", + this.methodName, + this.message, + this.argument, + '" expected: ', + this.expectedArgument + ].join(""); + }; + } + + // __apiVersion__ + // + // `@public` + // + // The version of the API, corresponding to the version of Purple Robot. + PR.apiVersion = "1.5.10.0"; + + // __setEnvironment()__ + // + // `@public` + // `@param {string} ['production'|'debug'|'web']` + // + // Set the environment to one of: + // `production`: Make real calls to the Purple Robot HTTP server with minimal + // logging. + // `debug': Make real calls to the Purple Robot HTTP server with extra + // logging. + // `web`: Make fake calls to the Purple Robot HTTP server with extra logging. + PR.setEnvironment = function(env) { + if (env !== 'production' && env !== 'debug' && env !== 'web') { + throw new PurpleRobotArgumentException('setEnvironment', env, '["production", "debug", "web"]'); + } + + this.env = env; + + return this; + }; + + // ___push(nextScript)__ + // + // `@private` + // `@returns {Object}` A new PurpleRobot instance. + // + // Enables chaining of method calls. + PR.prototype._push = function(methodName, argStr) { + var nextScript = ["PurpleRobot.", methodName, "(", argStr, ");"].join(""); + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, nextScript].join(" ").trim() + }); + }; + + // ___stringify(value)__ + // + // `@private` + // `@param {*} value` The value to be stringified. + // `@returns {string}` The stringified representation. + // + // Returns a string representation of the input. If the input is a + // `PurpleRobot` instance, a string expression is returned, otherwise a JSON + // stringified version is returned. + PR.prototype._stringify = function(value) { + var str; + + if (value !== null && + typeof value === "object" && + value.className === this.className) { + str = value.toStringExpression(); + } else { + str = JSON.stringify(value); + } + + return str; + }; + + // __toString()__ + // + // `@returns {string}` The current script as a string. + // + // Returns the string representation of the current script. + PR.prototype.toString = function() { + return this._script; + }; + + // __toStringExpression()__ + // + // `@returns {string}` A string representation of a function that returns the + // value of this script when evaluated. + // + // Example + // + // pr.emitToast("foo").toStringExpression(); + // // "(function() { return PurpleRobot.emitToast('foo'); })()" + PR.prototype.toStringExpression = function () { + return "(function() { return " + this._script + " })()"; + }; + + // __toJson()__ + // + // `@returns {string}` A JSON stringified version of this script. + // + // Returns the escaped string representation of the method call. + PR.prototype.toJson = function() { + return JSON.stringify(this.toString()); + }; + + // __execute(callbacks)__ + // + // Executes the current method (and any previously chained methods) by + // making an HTTP request to the Purple Robot HTTP server. + // + // Example + // + // pr.fetchEncryptedString("foo").execute({ + // done: function(payload) { + // console.log(payload); + // } + // }) + PR.prototype.execute = function(callbacks) { + var json = JSON.stringify({ + command: "execute_script", + script: this.toString() + }); + + if (PR.env !== 'web') { + function onChange() { + if (callbacks && httpRequest.readyState === XMLHttpRequest.DONE) { + if (httpRequest.response === null) { + callbacks.fail && callbacks.fail(); + } else if (callbacks.done) { + callbacks.done(JSON.parse(httpRequest.response).payload); + } + } + } + + var httpRequest = new XMLHttpRequest(); + httpRequest.onreadystatechange = onChange; + var isAsynchronous = true; + httpRequest.open("POST", this._serverUrl, isAsynchronous); + httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + httpRequest.send("json=" + json); + } else { + console.log('PurpleRobot POSTing to "' + this._serverUrl + '": ' + json); + } + }; + + // __save()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Saves a string representation of script(s) to localStorage. + // + // Example + // + // pr.emitReading("foo", "bar").save(); + PR.prototype.save = function() { + localStorage.prQueue = localStorage.prQueue || ""; + localStorage.prQueue += this.toString(); + + return this; + }; + + // __restore()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Restores saved script(s) from localStorage. + // + // Example + // + // pr.restore().execute(); + PR.prototype.restore = function() { + localStorage.prQueue = localStorage.prQueue || ""; + this._script = localStorage.prQueue; + + return this; + }; + + // __destroy()__ + // + // `@returns {Object}` Returns the current object instance. + // + // Deletes saved script(s) from localStorage. + // + // Example + // + // pr.destroy(); + PR.prototype.destroy = function() { + delete localStorage.prQueue; + + return this; + }; + + // __isEqual(valA, valB)__ + // + // `@param {*} valA` The left hand value. + // `@param {*} valB` The right hand value. + // `@returns {Object}` Returns the current object instance. + // + // Generates an equality expression between two values. + // + // Example + // + // pr.isEqual(pr.fetchEncryptedString("a"), null); + PR.prototype.isEqual = function(valA, valB) { + var expr = this._stringify(valA) + " == " + this._stringify(valB); + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, expr].join(" ").trim() + }); + }; + + // __ifThenElse(condition, thenStmt, elseStmt)__ + // + // `@param {Object} condition` A PurpleRobot instance that evaluates to true or + // false. + // `@param {Object} thenStmt` A PurpleRobot instance. + // `@param {Object} elseStmt` A PurpleRobot instance. + // `@returns {Object}` A new PurpleRobot instance. + // + // Generates a conditional expression. + // + // Example + // + // pr.ifThenElse(pr.isEqual(1, 1), pr.emitToast("true"), pr.emitToast("error")); + PR.prototype.ifThenElse = function(condition, thenStmt, elseStmt) { + var expr = "if (" + condition.toString() + ") { " + + thenStmt.toString() + + " } else { " + + elseStmt.toString() + + " }"; + + return new PR({ + serverUrl: this._serverUrl, + script: [this._script, expr].join(" ").trim() + }); + }; + + // __doNothing()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Generates an explicitly empty script. + // + // Example + // + // pr.doNothing(); + PR.prototype.doNothing = function() { + return new PR({ + serverUrl: this._serverUrl, + script: this._script + }); + }; + + // __q(value)__ + // + // `@private` + // `@param {string} value` A string argument. + // `@returns {string}` A string with extra single quotes surrounding it. + function q(value) { + return "'" + value + "'"; + }; + + // ##Purple Robot API + + // __addNamespace(namespace)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds a namespace under which unencrypted values might be stored. + // + // Example + // + // pr.addNamespace("foo"); + PR.prototype.addNamespace = function(namespace) { + return this._push("addNamespace", [q(namespace)].join(", ")); + }; + + // __broadcastIntent(action, options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Broadcasts an Android intent. + // + // Example + // + // pr.broadcastIntent("intent"); + PR.prototype.broadcastIntent = function(action, options) { + return this._push("broadcastIntent", [q(action), + JSON.stringify(options || null)].join(", ")); + }; + + // __cancelScriptNotification()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Removes the tray notification from the task bar. + // + // Example + // + // pr.cancelScriptNotification(); + PR.prototype.cancelScriptNotification = function() { + return this._push("cancelScriptNotification"); + }; + + // __clearNativeDialogs()__ + // __clearNativeDialogs(tag)__ + // + // `@param {string} tag (optional)` An identifier of a specific dialog. + // `@returns {Object}` A new PurpleRobot instance. + // + // Removes all native dialogs from the screen. + // + // Examples + // + // pr.clearNativeDialogs(); + // pr.clearNativeDialogs("my-id"); + PR.prototype.clearNativeDialogs = function(tag) { + if (tag) { + return this._push("clearNativeDialogs", q(tag)); + } else { + return this._push("clearNativeDialogs"); + } + }; + + // __clearTriggers()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Deletes all Purple Robot triggers. + // + // Example + // + // pr.clearTriggers(); + PR.prototype.clearTriggers = function() { + return this._push("clearTriggers"); + }; + + // __dateFromTimestamp(epoch)__ + // + // `@param {number} epoch` The Unix epoch timestamp including milliseconds. + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a Date object given an epoch timestamp. + // + // Example + // + // pr.dateFromTimestamp(1401205124000); + PR.prototype.dateFromTimestamp = function(epoch) { + return this._push("dateFromTimestamp", epoch); + }; + + // __deleteTrigger(id)__ + // + // `@param {string} id` The id of the trigger. + // `@returns {Object}` A new PurpleRobot instance. + // + // Deletes the Purple Robot trigger identified by `id`; + // + // Example + // + // pr.deleteTrigger("MY-TRIGGER"); + PR.prototype.deleteTrigger = function(id) { + return this._push("deleteTrigger", q(id)); + }; + + // __disableTrigger(id)__ + // + // `@param {string} id` The id of the trigger. + // `@returns {Object}` A new PurpleRobot instance. + // + // Disables the Purple Robot trigger identified by `id`; + // + // Example + // + // pr.disableTrigger("MY-TRIGGER"); + PR.prototype.disableTrigger = function(id) { + return this._push("disableTrigger", q(id)); + }; + + // __emitReading(name, value)__ + // + // `@param {string} name` The name of the reading. + // `@param {*} value` The value of the reading. + // `@returns {Object}` A new PurpleRobot instance. + // + // Transmits a name value pair to be stored in Purple Robot Warehouse. The + // table name will be *name*, and the columns and data values will be + // extrapolated from the *value*. + // + // Example + // + // pr.emitReading("sandwich", "pb&j"); + PR.prototype.emitReading = function(name, value) { + return this._push("emitReading", q(name) + ", " + JSON.stringify(value)); + }; + + // __emitToast(message, hasLongDuration)__ + // + // `@param {string} message` The text of the toast. + // `@param {boolean} hasLongDuration` True if the toast should display longer. + // `@returns {Object}` A new PurpleRobot instance. + // + // Displays a native toast message on the phone. + // + // Example + // + // pr.emitToast("howdy", true); + PR.prototype.emitToast = function(message, hasLongDuration) { + hasLongDuration = (typeof hasLongDuration === "boolean") ? hasLongDuration : true; + + return this._push("emitToast", q(message) + ", " + hasLongDuration); + }; + + // __enableTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Enables the trigger. + // + // Example + // + // pr.enableTrigger("my-trigger"); + PR.prototype.enableTrigger = function(id) { + return this._push("enableTrigger", q(id)); + }; + + // __fetchConfig()__ + PR.prototype.fetchConfig = function() { + return this._push("fetchConfig"); + }; + + // __fetchEncryptedString(key, namespace)__ + // __fetchEncryptedString(key)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a value stored for the namespace and key provided. Generally + // paired with `persistEncryptedString`. + // + // Examples + // + // pr.fetchEncryptedString("x", "my stuff"); + // pr.fetchEncryptedString("y"); + PR.prototype.fetchEncryptedString = function(key, namespace) { + if (typeof namespace === "undefined") { + return this._push("fetchEncryptedString", q(key)); + } else { + return this._push("fetchEncryptedString", q(namespace) + ", " + q(key)); + } + }; + + // __fetchNamespace(namespace)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns a hash of the keys and values stored in the namespace. + // + // Examples + // + // pr.fetchNamespace("x").execute({ + // done(function(store) { + // ... + // }); + PR.prototype.fetchNamespace = function(namespace) { + return this._push("fetchNamespace", [q(namespace)].join(", ")); + }; + + // __fetchNamespaces()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns an array of all the namespaces + // + // Examples + // + // pr.fetchNamespaces.execute({ + // done(function(namespaces) { + // ... + // }); + PR.prototype.fetchNamespaces = function() { + return this._push("fetchNamespaces"); + }; + + // __fetchTrigger(id)__ + // + // Example + // + // pr.fetchTrigger("my-trigger").execute({ + // done: function(triggerConfig) { + // ... + // } + // }); + PR.prototype.fetchTrigger = function(id) { + return this._push("fetchTrigger", [q(id)].join(", ")); + }; + + // __fetchTriggerIds()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns an array of Trigger id strings. + // + // Example + // + // pr.fetchTriggerIds().execute({ + // done: function(ids) { + // ... + // } + // }); + PR.prototype.fetchTriggerIds = function() { + return this._push("fetchTriggerIds"); + }; + + // __fetchUserId()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the Purple Robot configured user id string. + // + // Example + // + // pr.fetchUserId().execute().done(function(userId) { + // console.log(userId); + // }); + PR.prototype.fetchUserId = function() { + return this._push("fetchUserId"); + }; + + // __fetchWidget()__ + PR.prototype.fetchWidget = function(id) { + throw new Error("PurpleRobot.prototype.fetchWidget not implemented yet"); + }; + + // __fireTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Fires the trigger immediately. + // + // Example + // + // pr.fireTrigger("my-trigger"); + PR.prototype.fireTrigger = function(id) { + return this._push("fireTrigger", q(id)); + }; + + // __formatDate(date)__ + PR.prototype.formatDate = function(date) { + throw new Error("PurpleRobot.prototype.formatDate not implemented yet"); + }; + + // __launchApplication(name)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Launches the specified Android application as if the user had pressed + // the icon. + // + // Example + // + // pr.launchApplication("edu.northwestern.cbits.awesome_app"); + PR.prototype.launchApplication = function(name) { + return this._push("launchApplication", q(name)); + }; + + // __launchInternalUrl(url)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Launches a URL within the Purple Robot application WebView. + // + // Example + // + // pr.launchInternalUrl("https://www.google.com"); + PR.prototype.launchInternalUrl = function(url) { + return this._push("launchInternalUrl", [q(url)].join(", ")); + }; + + // __launchUrl(url)__ + // + // `@param {string} url` The URL to request. + // `@returns {Object}` A new object instance. + // + // Opens a new browser tab and requests the URL. + // + // Example + // + // pr.launchUrl("https://www.google.com"); + PR.prototype.launchUrl = function(url) { + return this._push("launchUrl", q(url)); + }; + + // __loadLibrary(name)__ + PR.prototype.loadLibrary = function(name) { + throw new Error("PurpleRobot.prototype.loadLibrary not implemented yet"); + }; + + // __log(name, value)__ + // + // `@param {string} name` The prefix to the log message. + // `@param {*} value` The contents of the log message. + // `@returns {Object}` A new PurpleRobot instance. + // + // Logs an event to the PR event capturing service as well as the Android log. + // + // Example + // + // pr.log("zing", { wing: "ding" }); + PR.prototype.log = function(name, value) { + return this._push("log", q(name) + ", " + JSON.stringify(value)); + }; + + // __models()__ + PR.prototype.models = function() { + throw new Error("PurpleRobot.prototype.models not implemented yet"); + }; + + // __now()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Calculates a string representing the current date. + // + // Example + // + // pr.now().execute({ + // done: function(dateStr) { + // ... + // } + // }); + PR.prototype.now = function() { + return this._push("now"); + }; + + // __packageForApplicationName(applicationName)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the package name string for the application. + // + // Example + // + // pr.packageForApplicationName("edu.northwestern.cbits.purple_robot_manager").execute({ + // done: function(package) { + // ... + // } + // }); + PR.prototype.packageForApplicationName = function(applicationName) { + return this._push("packageForApplicationName", [q(applicationName)].join(", ")); + }; + + // __parseDate(dateString)__ + PR.prototype.parseDate = function(dateString) { + throw new Error("PurpleRobot.prototype.parseDate not implemented yet"); + }; + + // __persistEncryptedString(key, value, namespace)__ + // __persistEncryptedString(key, value)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Stores the *value* within the *namespace*, identified by the *key*. + // + // Examples + // + // pr.persistEncryptedString("foo", "bar", "app Q"); + // pr.persistEncryptedString("foo", "bar"); + PR.prototype.persistEncryptedString = function(key, value, namespace) { + if (typeof namespace === "undefined") { + return this._push("persistEncryptedString", q(key) + ", " + q(value)); + } else { + return this._push("persistEncryptedString", q(namespace) + ", " + q(key) + ", " + q(value)); + } + }; + + // __playDefaultTone()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Plays a default Android notification sound. + // + // Example + // + // pr.playDefaultTone(); + PR.prototype.playDefaultTone = function() { + return this._push("playDefaultTone"); + }; + + // __playTone(tone)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Plays an existing notification sound on an Android phone. + // + // Example + // + // pr.playTone("Hojus"); + PR.prototype.playTone = function(tone) { + return this._push("playTone", q(tone)); + }; + + // __predictions()__ + PR.prototype.predictions = function() { + throw new Error("PurpleRobot.prototype.predictions not implemented yet"); + }; + + // __readings()__ + PR.prototype.readings = function() { + throw new Error("PurpleRobot.prototype.readings not implemented yet"); + }; + + // __readUrl(url)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Attempts to GET a URL and return the body as a string. + // + // Example + // + // pr.readUrl("http://www.northwestern.edu"); + PR.prototype.readUrl = function(url) { + return this._push("readUrl", q(url)); + }; + + // __resetTrigger(id)__ + // + // `@param {string} id` The trigger ID. + // + // Resets the trigger. __Note: the default implementation of this method in + // PurpleRobot does nothing.__ + // + // Example + // + // pr.resetTrigger("my-trigger"); + PR.prototype.resetTrigger = function(id) { + return this._push("resetTrigger", q(id)); + }; + + // __runScript(script)__ + // + // `@param {Object} script` A PurpleRobot instance. + // `@returns {Object}` A new PurpleRobot instance. + // + // Runs a script immediately. + // + // Example + // + // pr.runScript(pr.emitToast("toasty")); + PR.prototype.runScript = function(script) { + return this._push("runScript", script.toJson()); + }; + + // __scheduleScript(name, minutes, script)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Schedules a script to run a specified number of minutes in the future + // (calculated from when this script is evaluated). + // + // Example + // + // pr.scheduleScript("fancy script", 5, pr.playDefaultTone()); + PR.prototype.scheduleScript = function(name, minutes, script) { + var timestampStr = "(function() { var now = new Date(); var scheduled = new Date(now.getTime() + " + minutes + " * 60000); var pad = function(n) { return n < 10 ? '0' + n : n; }; return '' + scheduled.getFullYear() + pad(scheduled.getMonth() + 1) + pad(scheduled.getDate()) + 'T' + pad(scheduled.getHours()) + pad(scheduled.getMinutes()) + pad(scheduled.getSeconds()); })()"; + + return this._push("scheduleScript", q(name) + ", " + timestampStr + ", " + script.toJson()); + }; + + // __setUserId(value)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Sets the Purple Robot user id string. + // + // Example + // + // pr.setUserId("Bobbie"); + PR.prototype.setUserId = function(value) { + return this._push("setUserId", q(value)); + }; + + // __showApplicationLaunchNotification(options)__ + PR.prototype.showApplicationLaunchNotification = function(options) { + throw new Error("PurpleRobot.prototype.showApplicationLaunchNotification not implemented yet"); + }; + + // __showNativeDialog(options)__ + // + // `@param {Object} options` Parameterized options for the dialog, including: + // `{string} title` the dialog title, `{string} message` the body text, + // `{string} buttonLabelA` the first button label, `{Object} scriptA` a + // PurpleRobot instance to be run when button A is pressed, `{string} + // buttonLabelB` the second button label, `{Object} scriptB` a PurpleRobot + // instance to be run when button B is pressed, `{string} tag (optional)` an + // id to be associated with the dialog, `{number} priority` an importance + // associated with the dialog that informs stacking where higher means more + // important. + // `@returns {Object}` A new PurpleRobot instance. + // + // Opens an Android dialog with two buttons, *A* and *B*, and associates + // scripts to be run when each is pressed. + // + // Example + // + // pr.showNativeDialog({ + // title: "My Dialog", + // message: "What say you?", + // buttonLabelA: "cheers", + // scriptA: pr.emitToast("cheers!"), + // buttonLabelB: "boo", + // scriptB: pr.emitToast("boo!"), + // tag: "my-dialog", + // priority: 3 + // }); + PR.prototype.showNativeDialog = function(options) { + var tag = options.tag || null; + var priority = options.priority || 0; + + return this._push("showNativeDialog", [q(options.title), + q(options.message), q(options.buttonLabelA), + q(options.buttonLabelB), options.scriptA.toJson(), + options.scriptB.toJson(), JSON.stringify(tag), priority].join(", ")); + }; + + // __showScriptNotification(options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds a notification to the the tray and atttaches a script to be run when + // it is pressed. + // + // Example + // + // pr.showScriptNotification({ + // title: "My app", + // message: "Press here", + // isPersistent: true, + // isSticky: false, + // script: pr.emitToast("You pressed it") + // }); + PR.prototype.showScriptNotification = function(options) { + options = options || {}; + + return this._push("showScriptNotification", [q(options.title), + q(options.message), options.isPersistent, options.isSticky, + options.script.toJson()].join(", ")); + }; + + // __updateConfig(options)__ + // + // `@param {Object} options` The options to configure. Included: + // `config_data_server_uri` + // `config_enable_data_server` + // `config_feature_weather_underground_enabled` + // `config_http_liberal_ssl` + // `config_last_weather_underground_check` + // `config_probe_running_software_enabled` + // `config_probe_running_software_frequency` + // `config_probes_enabled` + // `config_restrict_data_wifi` + // `@returns {Object}` A new PurpleRobot instance. + // + // Example + // + // pr.updateConfig({ + // config_enable_data_server: true, + // config_restrict_data_wifi: false + // }); + PR.prototype.updateConfig = function(options) { + return this._push("updateConfig", [JSON.stringify(options)].join(", ")); + }; + + // __updateTrigger(options)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Adds or updates a Purple Robot trigger to be run at a time and with a + // recurrence rule. + // + // Example + // + // The following would emit a toast daily at the same time: + // + // pr.updateTrigger({ + // script: pr.emitToast("butter"), + // startAt: "20140505T020304", + // endAt: "20140505T020404" + // }); + PR.prototype.updateTrigger = function(options) { + options = options || {}; + + var timestamp = (new Date()).getTime(); + var triggerId = options.triggerId || ("TRIGGER-" + timestamp); + + function formatDate (date){ + function formatYear(date){ + return date.getFullYear(); + } + + function formatMonth(date){ + return ("0" + parseInt(1+date.getMonth())).slice(-2); + } + + function formatDays(date){ + return ("0" + parseInt(date.getDate())).slice(-2); + } + + function formatHours(date){ + return ("0" + date.getHours()).slice(-2); + } + + function formatMinutes(date){ + return ("0" + date.getMinutes()).slice(-2); + } + + function formatSeconds (date){ + return ("0" + date.getSeconds()).slice(-2); + } + + return formatYear(date) + formatMonth(date) + formatDays(date) + "T" + + formatHours(date) + formatMinutes(date) + formatSeconds(date); + + } + + var triggerJson = JSON.stringify({ + type: options.type || "datetime", + name: triggerId, + identifier: triggerId, + action: options.script.toString(), + datetime_start: formatDate(options.startAt), + datetime_end: formatDate(options.endAt), + datetime_repeat: options.repeatRule || "FREQ=DAILY;INTERVAL=1", + datetime_random: (options.random === true) || false, + fire_on_boot: true && (options.fire_on_boot !== false) + }); + + return this._push("updateTrigger", q(triggerId) + ", " + triggerJson); + }; + + // __updateWidget(parameters)__ + PR.prototype.updateWidget = function(parameters) { + throw new Error("PurpleRobot.prototype.updateWidget not implemented yet"); + }; + + // __version()__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Returns the current version string for Purple Robot. + // + // Example + // + // pr.version(); + PR.prototype.version = function() { + return this._push("version"); + }; + + // __vibrate(pattern)__ + // + // `@returns {Object}` A new PurpleRobot instance. + // + // Vibrates the phone with a preset pattern. + // + // Examples + // + // pr.vibrate("buzz"); + // pr.vibrate("blip"); + // pr.vibrate("sos"); + PR.prototype.vibrate = function(pattern) { + pattern = pattern || "buzz"; + + return this._push("vibrate", q(pattern)); + }; + + // __widgets()__ + PR.prototype.widgets = function() { + throw new Error("PurpleRobot.prototype.widgets not implemented yet"); + }; + + // ## More complex examples + // + // Example of nesting + // + // var playTone = pr.playDefaultTone(); + // var toast = pr.emitToast("sorry"); + // var dialog1 = pr.showNativeDialog( + // "dialog 1", "are you happy?", "Yes", "No", playTone, toast + // ); + // pr.scheduleScript("dialog 1", 10, "minutes", dialog1) + // .execute(); + // + // Example of chaining + // + // pr.playDefaultTone().emitToast("hey there").execute(); + + root.PurpleRobot = PurpleRobot; +}.call(this)); diff --git a/www/lib/PurpleRobotClient/purple-robot.min.js b/www/lib/PurpleRobotClient/purple-robot.min.js new file mode 100644 index 00000000..e8cd1496 --- /dev/null +++ b/www/lib/PurpleRobotClient/purple-robot.min.js @@ -0,0 +1,15 @@ +(function(){function b(a){a=a||{};this.className="PurpleRobot";this._serverUrl=a.serverUrl||"http://localhost:12345/json/submit";this._script=a.script||""}function e(a,b,c){this.methodName=a;this.argument=b;this.expectedArgument=c;this.message=' received an unexpected argument "';this.toString=function(){return["PurpleRobot.",this.methodName,this.message,this.argument,'" expected: ',this.expectedArgument].join("")}}function c(a){return"'"+a+"'"}var f=window;b.apiVersion="1.5.10.0";b.setEnvironment= +function(a){if("production"!==a&&"debug"!==a&&"web"!==a)throw new e("setEnvironment",a,'["production", "debug", "web"]');this.env=a;return this};b.prototype._push=function(a,c){var d=["PurpleRobot.",a,"(",c,");"].join("");return new b({serverUrl:this._serverUrl,script:[this._script,d].join(" ").trim()})};b.prototype._stringify=function(a){return null!==a&&"object"===typeof a&&a.className===this.className?a.toStringExpression():JSON.stringify(a)};b.prototype.toString=function(){return this._script}; +b.prototype.toStringExpression=function(){return"(function() { return "+this._script+" })()"};b.prototype.toJson=function(){return JSON.stringify(this.toString())};b.prototype.execute=function(a){var c=JSON.stringify({command:"execute_script",script:this.toString()});if("web"!==b.env){var d=new XMLHttpRequest;d.onreadystatechange=function(){a&&d.readyState===XMLHttpRequest.DONE&&(null===d.response?a.fail&&a.fail():a.done&&a.done(JSON.parse(d.response).payload))};d.open("POST",this._serverUrl,!0); +d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.send("json="+c)}else console.log('PurpleRobot POSTing to "'+this._serverUrl+'": '+c)};b.prototype.save=function(){localStorage.prQueue=localStorage.prQueue||"";localStorage.prQueue+=this.toString();return this};b.prototype.restore=function(){localStorage.prQueue=localStorage.prQueue||"";this._script=localStorage.prQueue;return this};b.prototype.destroy=function(){delete localStorage.prQueue;return this};b.prototype.isEqual=function(a, +c){var d=this._stringify(a)+" == "+this._stringify(c);return new b({serverUrl:this._serverUrl,script:[this._script,d].join(" ").trim()})};b.prototype.ifThenElse=function(a,c,d){return new b({serverUrl:this._serverUrl,script:[this._script,"if ("+a.toString()+") { "+c.toString()+" } else { "+d.toString()+" }"].join(" ").trim()})};b.prototype.doNothing=function(){return new b({serverUrl:this._serverUrl,script:this._script})};b.prototype.addNamespace=function(a){return this._push("addNamespace",""+c(a))}; +b.prototype.broadcastIntent=function(a,b){return this._push("broadcastIntent",[c(a),JSON.stringify(b||null)].join(", "))};b.prototype.cancelScriptNotification=function(){return this._push("cancelScriptNotification")};b.prototype.clearNativeDialogs=function(a){return a?this._push("clearNativeDialogs",c(a)):this._push("clearNativeDialogs")};b.prototype.clearTriggers=function(){return this._push("clearTriggers")};b.prototype.dateFromTimestamp=function(a){return this._push("dateFromTimestamp",a)};b.prototype.deleteTrigger= +function(a){return this._push("deleteTrigger",c(a))};b.prototype.disableTrigger=function(a){return this._push("disableTrigger",c(a))};b.prototype.emitReading=function(a,b){return this._push("emitReading",c(a)+", "+JSON.stringify(b))};b.prototype.emitToast=function(a,b){b="boolean"===typeof b?b:!0;return this._push("emitToast",c(a)+", "+b)};b.prototype.enableTrigger=function(a){return this._push("enableTrigger",c(a))};b.prototype.fetchConfig=function(){return this._push("fetchConfig")};b.prototype.fetchEncryptedString= +function(a,b){return"undefined"===typeof b?this._push("fetchEncryptedString",c(a)):this._push("fetchEncryptedString",c(b)+", "+c(a))};b.prototype.fetchNamespace=function(a){return this._push("fetchNamespace",""+c(a))};b.prototype.fetchNamespaces=function(){return this._push("fetchNamespaces")};b.prototype.fetchTrigger=function(a){return this._push("fetchTrigger",""+c(a))};b.prototype.fetchTriggerIds=function(){return this._push("fetchTriggerIds")};b.prototype.fetchUserId=function(){return this._push("fetchUserId")}; +b.prototype.fetchWidget=function(a){throw Error("PurpleRobot.prototype.fetchWidget not implemented yet");};b.prototype.fireTrigger=function(a){return this._push("fireTrigger",c(a))};b.prototype.formatDate=function(a){throw Error("PurpleRobot.prototype.formatDate not implemented yet");};b.prototype.launchApplication=function(a){return this._push("launchApplication",c(a))};b.prototype.launchInternalUrl=function(a){return this._push("launchInternalUrl",""+c(a))};b.prototype.launchUrl=function(a){return this._push("launchUrl", +c(a))};b.prototype.loadLibrary=function(a){throw Error("PurpleRobot.prototype.loadLibrary not implemented yet");};b.prototype.log=function(a,b){return this._push("log",c(a)+", "+JSON.stringify(b))};b.prototype.models=function(){throw Error("PurpleRobot.prototype.models not implemented yet");};b.prototype.now=function(){return this._push("now")};b.prototype.packageForApplicationName=function(a){return this._push("packageForApplicationName",""+c(a))};b.prototype.parseDate=function(a){throw Error("PurpleRobot.prototype.parseDate not implemented yet"); +};b.prototype.persistEncryptedString=function(a,b,d){return"undefined"===typeof d?this._push("persistEncryptedString",c(a)+", "+c(b)):this._push("persistEncryptedString",c(d)+", "+c(a)+", "+c(b))};b.prototype.playDefaultTone=function(){return this._push("playDefaultTone")};b.prototype.playTone=function(a){return this._push("playTone",c(a))};b.prototype.predictions=function(){throw Error("PurpleRobot.prototype.predictions not implemented yet");};b.prototype.readings=function(){throw Error("PurpleRobot.prototype.readings not implemented yet"); +};b.prototype.readUrl=function(a){return this._push("readUrl",c(a))};b.prototype.resetTrigger=function(a){return this._push("resetTrigger",c(a))};b.prototype.runScript=function(a){return this._push("runScript",a.toJson())};b.prototype.scheduleScript=function(a,b,d){b="(function() { var now = new Date(); var scheduled = new Date(now.getTime() + "+b+" * 60000); var pad = function(n) { return n < 10 ? '0' + n : n; }; return '' + scheduled.getFullYear() + pad(scheduled.getMonth() + 1) + pad(scheduled.getDate()) + 'T' + pad(scheduled.getHours()) + pad(scheduled.getMinutes()) + pad(scheduled.getSeconds()); })()"; +return this._push("scheduleScript",c(a)+", "+b+", "+d.toJson())};b.prototype.setUserId=function(a){return this._push("setUserId",c(a))};b.prototype.showApplicationLaunchNotification=function(a){throw Error("PurpleRobot.prototype.showApplicationLaunchNotification not implemented yet");};b.prototype.showNativeDialog=function(a){var b=a.tag||null,d=a.priority||0;return this._push("showNativeDialog",[c(a.title),c(a.message),c(a.buttonLabelA),c(a.buttonLabelB),a.scriptA.toJson(),a.scriptB.toJson(),JSON.stringify(b), +d].join(", "))};b.prototype.showScriptNotification=function(a){a=a||{};return this._push("showScriptNotification",[c(a.title),c(a.message),a.isPersistent,a.isSticky,a.script.toJson()].join(", "))};b.prototype.updateConfig=function(a){return this._push("updateConfig",""+JSON.stringify(a))};b.prototype.updateTrigger=function(a){a=a||{};var b=(new Date).getTime(),b=a.triggerId||"TRIGGER-"+b;a=JSON.stringify({type:a.type||"datetime",name:b,identifier:b,action:a.script.toString(),datetime_start:a.startAt, +datetime_end:a.endAt,datetime_repeat:a.repeatRule||"FREQ=DAILY;INTERVAL=1"});return this._push("updateTrigger",c(b)+", "+a)};b.prototype.updateWidget=function(a){throw Error("PurpleRobot.prototype.updateWidget not implemented yet");};b.prototype.version=function(){return this._push("version")};b.prototype.vibrate=function(a){return this._push("vibrate",c(a||"buzz"))};b.prototype.widgets=function(){throw Error("PurpleRobot.prototype.widgets not implemented yet");};f.PurpleRobot=b}).call(this); diff --git a/www/lib/angular-animate/.bower.json b/www/lib/angular-animate/.bower.json new file mode 100644 index 00000000..19570b38 --- /dev/null +++ b/www/lib/angular-animate/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-animate", + "version": "1.2.16", + "main": "./angular-animate.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-animate", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "4eccd8ec8356a33bf3a98958d7a73b71290d3985" + }, + "_source": "git://github.com/angular/bower-angular-animate.git", + "_target": "1.2.16", + "_originalSource": "angular-animate" +} \ No newline at end of file diff --git a/www/lib/angular-animate/README.md b/www/lib/angular-animate/README.md new file mode 100644 index 00000000..de4c61b8 --- /dev/null +++ b/www/lib/angular-animate/README.md @@ -0,0 +1,54 @@ +# bower-angular-animate + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-animate +``` + +Add a ` +``` + +And add `ngAnimate` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngAnimate']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-animate/angular-animate.js b/www/lib/angular-animate/angular-animate.js new file mode 100644 index 00000000..9a0af80f --- /dev/null +++ b/www/lib/angular-animate/angular-animate.js @@ -0,0 +1,1616 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/* jshint maxlen: false */ + +/** + * @ngdoc module + * @name ngAnimate + * @description + * + * # ngAnimate + * + * The `ngAnimate` module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives. + * + * + *
+ * + * # Usage + * + * To see animations in action, all that is required is to define the appropriate CSS classes + * or to register a JavaScript animation via the myModule.animation() function. The directives that support animation automatically are: + * `ngRepeat`, `ngInclude`, `ngIf`, `ngSwitch`, `ngShow`, `ngHide`, `ngView` and `ngClass`. Custom directives can take advantage of animation + * by using the `$animate` service. + * + * Below is a more detailed breakdown of the supported animation events provided by pre-existing ng directives: + * + * | Directive | Supported Animations | + * |---------------------------------------------------------- |----------------------------------------------------| + * | {@link ng.directive:ngRepeat#usage_animations ngRepeat} | enter, leave and move | + * | {@link ngRoute.directive:ngView#usage_animations ngView} | enter and leave | + * | {@link ng.directive:ngInclude#usage_animations ngInclude} | enter and leave | + * | {@link ng.directive:ngSwitch#usage_animations ngSwitch} | enter and leave | + * | {@link ng.directive:ngIf#usage_animations ngIf} | enter and leave | + * | {@link ng.directive:ngClass#usage_animations ngClass} | add and remove | + * | {@link ng.directive:ngShow#usage_animations ngShow & ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#usage_animations form} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link ng.directive:ngModel#usage_animations ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * + * You can find out more information about animations upon visiting each directive page. + * + * Below is an example of how to apply animations to a directive that supports animation hooks: + * + * ```html + * + * + * + * + * ``` + * + * Keep in mind that if an animation is running, any child elements cannot be animated until the parent element's + * animation has completed. + * + *

CSS-defined Animations

+ * The animate service will automatically apply two CSS classes to the animated element and these two CSS classes + * are designed to contain the start and end CSS styling. Both CSS transitions and keyframe animations are supported + * and can be used to play along with this naming structure. + * + * The following code below demonstrates how to perform animations using **CSS transitions** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * The following code below demonstrates how to perform animations using **CSS animations** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * Both CSS3 animations and transitions can be used together and the animate service will figure out the correct duration and delay timing. + * + * Upon DOM mutation, the event class is added first (something like `ng-enter`), then the browser prepares itself to add + * the active class (in this case `ng-enter-active`) which then triggers the animation. The animation module will automatically + * detect the CSS code to determine when the animation ends. Once the animation is over then both CSS classes will be + * removed from the DOM. If a browser does not support CSS transitions or CSS animations then the animation will start and end + * immediately resulting in a DOM element that is at its final state. This final state is when the DOM element + * has no CSS transition/animation classes applied to it. + * + *

CSS Staggering Animations

+ * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module, as of 1.2.0, supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * -webkit-transition: 1s linear all; + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * -webkit-transition-delay: 0.1s; + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then these two values + * must be set to 0 to avoid an accidental CSS inheritance */ + * -webkit-transition-duration: 0s; + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if more than 10ms has passed after the last animation has been fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * $timeout(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * }, 100, false); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + *

JavaScript-defined Animations

+ * In the event that you do not want to use CSS3 transitions or CSS3 animations or if you wish to offer animations on browsers that do not + * yet support CSS transitions/animations, then you can make use of JavaScript animations defined inside of your AngularJS module. + * + * ```js + * //!annotate="YourApp" Your AngularJS Module|Replace this or ngModule with the module that you used to define your application. + * var ngModule = angular.module('YourApp', ['ngAnimate']); + * ngModule.animation('.my-crazy-animation', function() { + * return { + * enter: function(element, done) { + * //run the animation here and call done when the animation is complete + * return function(cancelled) { + * //this (optional) function will be called when the animation + * //completes or when the animation is cancelled (the cancelled + * //flag will be set to true if cancelled). + * }; + * }, + * leave: function(element, done) { }, + * move: function(element, done) { }, + * + * //animation that can be triggered before the class is added + * beforeAddClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is added + * addClass: function(element, className, done) { }, + * + * //animation that can be triggered before the class is removed + * beforeRemoveClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is removed + * removeClass: function(element, className, done) { } + * }; + * }); + * ``` + * + * JavaScript-defined animations are created with a CSS-like class selector and a collection of events which are set to run + * a javascript callback function. When an animation is triggered, $animate will look for a matching animation which fits + * the element's CSS class attribute value and then run the matching animation event function (if found). + * In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function will + * be executed. It should be also noted that only simple, single class selectors are allowed (compound class selectors are not supported). + * + * Within a JavaScript animation, an object containing various event callback animation functions is expected to be returned. + * As explained above, these callbacks are triggered based on the animation event. Therefore if an enter animation is run, + * and the JavaScript animation is found, then the enter callback will handle that animation (in addition to the CSS keyframe animation + * or transition code that is defined via a stylesheet). + * + */ + +angular.module('ngAnimate', ['ng']) + + /** + * @ngdoc provider + * @name $animateProvider + * @description + * + * The `$animateProvider` allows developers to register JavaScript animation event handlers directly inside of a module. + * When an animation is triggered, the $animate service will query the $animate service to find any animations that match + * the provided name value. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + + //this private service is only used within CSS-enabled animations + //IE8 + IE9 do not support rAF natively, but that is fine since they + //also don't support transitions and keyframes which means that the code + //below will never be used by the two browsers. + .factory('$$animateReflow', ['$$rAF', '$document', function($$rAF, $document) { + var bod = $document[0].body; + return function(fn) { + //the returned function acts as the cancellation function + return $$rAF(function() { + //the line below will force the browser to perform a repaint + //so that all the animated elements within the animation frame + //will be properly updated and drawn on screen. This is + //required to perform multi-class CSS based animations with + //Firefox. DO NOT REMOVE THIS LINE. + var a = bod.offsetWidth + 1; + fn(); + }); + }; + }]) + + .config(['$provide', '$animateProvider', function($provide, $animateProvider) { + var noop = angular.noop; + var forEach = angular.forEach; + var selectors = $animateProvider.$$selectors; + + var ELEMENT_NODE = 1; + var NG_ANIMATE_STATE = '$$ngAnimateState'; + var NG_ANIMATE_CLASS_NAME = 'ng-animate'; + var rootAnimateState = {running: true}; + + function extractElementNode(element) { + for(var i = 0; i < element.length; i++) { + var elm = element[i]; + if(elm.nodeType == ELEMENT_NODE) { + return elm; + } + } + } + + function stripCommentsFromElement(element) { + return angular.element(extractElementNode(element)); + } + + function isMatchingElement(elm1, elm2) { + return extractElementNode(elm1) == extractElementNode(elm2); + } + + $provide.decorator('$animate', ['$delegate', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', + function($delegate, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document) { + + var globalAnimationCounter = 0; + $rootElement.data(NG_ANIMATE_STATE, rootAnimateState); + + // disable animations during bootstrap, but once we bootstrapped, wait again + // for another digest until enabling animations. The reason why we digest twice + // is because all structural animations (enter, leave and move) all perform a + // post digest operation before animating. If we only wait for a single digest + // to pass then the structural animation would render its animation on page load. + // (which is what we're trying to avoid when the application first boots up.) + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + rootAnimateState.running = false; + }); + }); + + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + function lookup(name) { + if (name) { + var matches = [], + flagMap = {}, + classes = name.substr(1).split('.'); + + //the empty string value is the default animation + //operation which performs CSS transition and keyframe + //animations sniffing. This is always included for each + //element animation procedure if the browser supports + //transitions and/or keyframe animations. The default + //animation is added to the top of the list to prevent + //any previous animations from affecting the element styling + //prior to the element being animated. + if ($sniffer.transitions || $sniffer.animations) { + matches.push($injector.get(selectors[''])); + } + + for(var i=0; i < classes.length; i++) { + var klass = classes[i], + selectorFactoryName = selectors[klass]; + if(selectorFactoryName && !flagMap[klass]) { + matches.push($injector.get(selectorFactoryName)); + flagMap[klass] = true; + } + } + return matches; + } + } + + function animationRunner(element, animationEvent, className) { + //transcluded directives may sometimes fire an animation using only comment nodes + //best to catch this early on to prevent any animation operations from occurring + var node = element[0]; + if(!node) { + return; + } + + var isSetClassOperation = animationEvent == 'setClass'; + var isClassBased = isSetClassOperation || + animationEvent == 'addClass' || + animationEvent == 'removeClass'; + + var classNameAdd, classNameRemove; + if(angular.isArray(className)) { + classNameAdd = className[0]; + classNameRemove = className[1]; + className = classNameAdd + ' ' + classNameRemove; + } + + var currentClassName = element.attr('class'); + var classes = currentClassName + ' ' + className; + if(!isAnimatableClassName(classes)) { + return; + } + + var beforeComplete = noop, + beforeCancel = [], + before = [], + afterComplete = noop, + afterCancel = [], + after = []; + + var animationLookup = (' ' + classes).replace(/\s+/g,'.'); + forEach(lookup(animationLookup), function(animationFactory) { + var created = registerAnimation(animationFactory, animationEvent); + if(!created && isSetClassOperation) { + registerAnimation(animationFactory, 'addClass'); + registerAnimation(animationFactory, 'removeClass'); + } + }); + + function registerAnimation(animationFactory, event) { + var afterFn = animationFactory[event]; + var beforeFn = animationFactory['before' + event.charAt(0).toUpperCase() + event.substr(1)]; + if(afterFn || beforeFn) { + if(event == 'leave') { + beforeFn = afterFn; + //when set as null then animation knows to skip this phase + afterFn = null; + } + after.push({ + event : event, fn : afterFn + }); + before.push({ + event : event, fn : beforeFn + }); + return true; + } + } + + function run(fns, cancellations, allCompleteFn) { + var animations = []; + forEach(fns, function(animation) { + animation.fn && animations.push(animation); + }); + + var count = 0; + function afterAnimationComplete(index) { + if(cancellations) { + (cancellations[index] || noop)(); + if(++count < animations.length) return; + cancellations = null; + } + allCompleteFn(); + } + + //The code below adds directly to the array in order to work with + //both sync and async animations. Sync animations are when the done() + //operation is called right away. DO NOT REFACTOR! + forEach(animations, function(animation, index) { + var progress = function() { + afterAnimationComplete(index); + }; + switch(animation.event) { + case 'setClass': + cancellations.push(animation.fn(element, classNameAdd, classNameRemove, progress)); + break; + case 'addClass': + cancellations.push(animation.fn(element, classNameAdd || className, progress)); + break; + case 'removeClass': + cancellations.push(animation.fn(element, classNameRemove || className, progress)); + break; + default: + cancellations.push(animation.fn(element, progress)); + break; + } + }); + + if(cancellations && cancellations.length === 0) { + allCompleteFn(); + } + } + + return { + node : node, + event : animationEvent, + className : className, + isClassBased : isClassBased, + isSetClassOperation : isSetClassOperation, + before : function(allCompleteFn) { + beforeComplete = allCompleteFn; + run(before, beforeCancel, function() { + beforeComplete = noop; + allCompleteFn(); + }); + }, + after : function(allCompleteFn) { + afterComplete = allCompleteFn; + run(after, afterCancel, function() { + afterComplete = noop; + allCompleteFn(); + }); + }, + cancel : function() { + if(beforeCancel) { + forEach(beforeCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + beforeComplete(true); + } + if(afterCancel) { + forEach(afterCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + afterComplete(true); + } + } + }; + } + + /** + * @ngdoc service + * @name $animate + * @function + * + * @description + * The `$animate` service provides animation detection support while performing DOM operations (enter, leave and move) as well as during addClass and removeClass operations. + * When any of these operations are run, the $animate service + * will examine any JavaScript-defined animations (which are defined by using the $animateProvider provider object) + * as well as any CSS-defined animations against the CSS classes present on the element once the DOM operation is run. + * + * The `$animate` service is used behind the scenes with pre-existing directives and animation with these directives + * will work out of the box without any extra configuration. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + return { + /** + * @ngdoc method + * @name $animate#enter + * @function + * + * @description + * Appends the element to the parentElement element that resides in the document and then runs the enter animation. Once + * the animation is started, the following CSS classes will be present on the element for the duration of the animation: + * + * Below is a breakdown of each step that occurs during enter animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.enter(...) is called | class="my-animation" | + * | 2. element is inserted into the parentElement element or beside the afterElement element | class="my-animation" | + * | 3. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 4. the .ng-enter class is added to the element | class="my-animation ng-animate ng-enter" | + * | 5. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-enter" | + * | 6. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-enter" | + * | 7. the .ng-enter-active and .ng-animate-active classes are added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-enter ng-enter-active" | + * | 8. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-enter ng-enter-active" | + * | 9. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * @param {DOMElement} element the element that will be the focus of the enter animation + * @param {DOMElement} parentElement the parent element of the element that will be the focus of the enter animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the enter animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + enter : function(element, parentElement, afterElement, doneCallback) { + this.enabled(false, element); + $delegate.enter(element, parentElement, afterElement); + $rootScope.$$postDigest(function() { + element = stripCommentsFromElement(element); + performAnimation('enter', 'ng-enter', element, parentElement, afterElement, noop, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#leave + * @function + * + * @description + * Runs the leave animation operation and, upon completion, removes the element from the DOM. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during leave animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.leave(...) is called | class="my-animation" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 3. the .ng-leave class is added to the element | class="my-animation ng-animate ng-leave" | + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-leave" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-leave" | + * | 6. the .ng-leave-active and .ng-animate-active classes is added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-leave ng-leave-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-leave ng-leave-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 9. The element is removed from the DOM | ... | + * | 10. The doneCallback() callback is fired (if provided) | ... | + * + * @param {DOMElement} element the element that will be the focus of the leave animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + leave : function(element, doneCallback) { + cancelChildAnimations(element); + this.enabled(false, element); + $rootScope.$$postDigest(function() { + performAnimation('leave', 'ng-leave', stripCommentsFromElement(element), null, null, function() { + $delegate.leave(element); + }, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#move + * @function + * + * @description + * Fires the move DOM operation. Just before the animation starts, the animate service will either append it into the parentElement container or + * add the element directly after the afterElement element if present. Then the move animation will be run. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during move animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.move(...) is called | class="my-animation" | + * | 2. element is moved into the parentElement element or beside the afterElement element | class="my-animation" | + * | 3. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 4. the .ng-move class is added to the element | class="my-animation ng-animate ng-move" | + * | 5. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate ng-move" | + * | 6. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate ng-move" | + * | 7. the .ng-move-active and .ng-animate-active classes is added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active ng-move ng-move-active" | + * | 8. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active ng-move ng-move-active" | + * | 9. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * @param {DOMElement} element the element that will be the focus of the move animation + * @param {DOMElement} parentElement the parentElement element of the element that will be the focus of the move animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the move animation + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + move : function(element, parentElement, afterElement, doneCallback) { + cancelChildAnimations(element); + this.enabled(false, element); + $delegate.move(element, parentElement, afterElement); + $rootScope.$$postDigest(function() { + element = stripCommentsFromElement(element); + performAnimation('move', 'ng-move', element, parentElement, afterElement, noop, doneCallback); + }); + }, + + /** + * @ngdoc method + * @name $animate#addClass + * + * @description + * Triggers a custom animation event based off the className variable and then attaches the className value to the element as a CSS class. + * Unlike the other animation methods, the animate service will suffix the className value with {@type -add} in order to provide + * the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if no CSS transitions + * or keyframes are defined on the -add or base CSS class). + * + * Below is a breakdown of each step that occurs during addClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |------------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.addClass(element, 'super') is called | class="my-animation" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation ng-animate" | + * | 3. the .super-add class are added to the element | class="my-animation ng-animate super-add" | + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation ng-animate super-add" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation ng-animate super-add" | + * | 6. the .super, .super-add-active and .ng-animate-active classes are added (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active super super-add super-add-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation super super-add super-add-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation super" | + * | 9. The super class is kept on the element | class="my-animation super" | + * | 10. The doneCallback() callback is fired (if provided) | class="my-animation super" | + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be added to the element and then animated + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + addClass : function(element, className, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('addClass', className, element, null, null, function() { + $delegate.addClass(element, className); + }, doneCallback); + }, + + /** + * @ngdoc method + * @name $animate#removeClass + * + * @description + * Triggers a custom animation event based off the className variable and then removes the CSS class provided by the className value + * from the element. Unlike the other animation methods, the animate service will suffix the className value with {@type -remove} in + * order to provide the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if + * no CSS transitions or keyframes are defined on the -remove or base CSS classes). + * + * Below is a breakdown of each step that occurs during removeClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |-----------------------------------------------------------------------------------------------|---------------------------------------------| + * | 1. $animate.removeClass(element, 'super') is called | class="my-animation super" | + * | 2. $animate runs any JavaScript-defined animations on the element | class="my-animation super ng-animate" | + * | 3. the .super-remove class are added to the element | class="my-animation super ng-animate super-remove"| + * | 4. $animate scans the element styles to get the CSS transition/animation duration and delay | class="my-animation super ng-animate super-remove" | + * | 5. $animate waits for 10ms (this performs a reflow) | class="my-animation super ng-animate super-remove" | + * | 6. the .super-remove-active and .ng-animate-active classes are added and .super is removed (this triggers the CSS transition/animation) | class="my-animation ng-animate ng-animate-active super-remove super-remove-active" | + * | 7. $animate waits for X milliseconds for the animation to complete | class="my-animation ng-animate ng-animate-active super-remove super-remove-active" | + * | 8. The animation ends and all generated CSS classes are removed from the element | class="my-animation" | + * | 9. The doneCallback() callback is fired (if provided) | class="my-animation" | + * + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be animated and then removed from the element + * @param {function()=} doneCallback the callback function that will be called once the animation is complete + */ + removeClass : function(element, className, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('removeClass', className, element, null, null, function() { + $delegate.removeClass(element, className); + }, doneCallback); + }, + + /** + * + * @ngdoc function + * @name $animate#setClass + * @function + * @description Adds and/or removes the given CSS classes to and from the element. + * Once complete, the done() callback will be fired (if provided). + * @param {DOMElement} element the element which will it's CSS classes changed + * removed from it + * @param {string} add the CSS classes which will be added to the element + * @param {string} remove the CSS class which will be removed from the element + * @param {Function=} done the callback function (if provided) that will be fired after the + * CSS classes have been set on the element + */ + setClass : function(element, add, remove, doneCallback) { + element = stripCommentsFromElement(element); + performAnimation('setClass', [add, remove], element, null, null, function() { + $delegate.setClass(element, add, remove); + }, doneCallback); + }, + + /** + * @ngdoc method + * @name $animate#enabled + * @function + * + * @param {boolean=} value If provided then set the animation on or off. + * @param {DOMElement=} element If provided then the element will be used to represent the enable/disable operation + * @return {boolean} Current animation state. + * + * @description + * Globally enables/disables animations. + * + */ + enabled : function(value, element) { + switch(arguments.length) { + case 2: + if(value) { + cleanup(element); + } else { + var data = element.data(NG_ANIMATE_STATE) || {}; + data.disabled = true; + element.data(NG_ANIMATE_STATE, data); + } + break; + + case 1: + rootAnimateState.disabled = !value; + break; + + default: + value = !rootAnimateState.disabled; + break; + } + return !!value; + } + }; + + /* + all animations call this shared animation triggering function internally. + The animationEvent variable refers to the JavaScript animation event that will be triggered + and the className value is the name of the animation that will be applied within the + CSS code. Element, parentElement and afterElement are provided DOM elements for the animation + and the onComplete callback will be fired once the animation is fully complete. + */ + function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, doneCallback) { + + var runner = animationRunner(element, animationEvent, className); + if(!runner) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return; + } + + className = runner.className; + var elementEvents = angular.element._data(runner.node); + elementEvents = elementEvents && elementEvents.events; + + if (!parentElement) { + parentElement = afterElement ? afterElement.parent() : element.parent(); + } + + var ngAnimateState = element.data(NG_ANIMATE_STATE) || {}; + var runningAnimations = ngAnimateState.active || {}; + var totalActiveAnimations = ngAnimateState.totalActive || 0; + var lastAnimation = ngAnimateState.last; + + //only allow animations if the currently running animation is not structural + //or if there is no animation running at all + var skipAnimations = runner.isClassBased ? + ngAnimateState.disabled || (lastAnimation && !lastAnimation.isClassBased) : + false; + + //skip the animation if animations are disabled, a parent is already being animated, + //the element is not currently attached to the document body or then completely close + //the animation if any matching animations are not found at all. + //NOTE: IE8 + IE9 should close properly (run closeAnimation()) in case an animation was found. + if (skipAnimations || animationsDisabled(element, parentElement)) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return; + } + + var skipAnimation = false; + if(totalActiveAnimations > 0) { + var animationsToCancel = []; + if(!runner.isClassBased) { + if(animationEvent == 'leave' && runningAnimations['ng-leave']) { + skipAnimation = true; + } else { + //cancel all animations when a structural animation takes place + for(var klass in runningAnimations) { + animationsToCancel.push(runningAnimations[klass]); + cleanup(element, klass); + } + runningAnimations = {}; + totalActiveAnimations = 0; + } + } else if(lastAnimation.event == 'setClass') { + animationsToCancel.push(lastAnimation); + cleanup(element, className); + } + else if(runningAnimations[className]) { + var current = runningAnimations[className]; + if(current.event == animationEvent) { + skipAnimation = true; + } else { + animationsToCancel.push(current); + cleanup(element, className); + } + } + + if(animationsToCancel.length > 0) { + forEach(animationsToCancel, function(operation) { + operation.cancel(); + }); + } + } + + if(runner.isClassBased && !runner.isSetClassOperation && !skipAnimation) { + skipAnimation = (animationEvent == 'addClass') == element.hasClass(className); //opposite of XOR + } + + if(skipAnimation) { + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + fireDoneCallbackAsync(); + return; + } + + if(animationEvent == 'leave') { + //there's no need to ever remove the listener since the element + //will be removed (destroyed) after the leave animation ends or + //is cancelled midway + element.one('$destroy', function(e) { + var element = angular.element(this); + var state = element.data(NG_ANIMATE_STATE); + if(state) { + var activeLeaveAnimation = state.active['ng-leave']; + if(activeLeaveAnimation) { + activeLeaveAnimation.cancel(); + cleanup(element, 'ng-leave'); + } + } + }); + } + + //the ng-animate class does nothing, but it's here to allow for + //parent animations to find and cancel child animations when needed + element.addClass(NG_ANIMATE_CLASS_NAME); + + var localAnimationCount = globalAnimationCounter++; + totalActiveAnimations++; + runningAnimations[className] = runner; + + element.data(NG_ANIMATE_STATE, { + last : runner, + active : runningAnimations, + index : localAnimationCount, + totalActive : totalActiveAnimations + }); + + //first we run the before animations and when all of those are complete + //then we perform the DOM operation and run the next set of animations + fireBeforeCallbackAsync(); + runner.before(function(cancelled) { + var data = element.data(NG_ANIMATE_STATE); + cancelled = cancelled || + !data || !data.active[className] || + (runner.isClassBased && data.active[className].event != animationEvent); + + fireDOMOperation(); + if(cancelled === true) { + closeAnimation(); + } else { + fireAfterCallbackAsync(); + runner.after(closeAnimation); + } + }); + + function fireDOMCallback(animationPhase) { + var eventName = '$animate:' + animationPhase; + if(elementEvents && elementEvents[eventName] && elementEvents[eventName].length > 0) { + $$asyncCallback(function() { + element.triggerHandler(eventName, { + event : animationEvent, + className : className + }); + }); + } + } + + function fireBeforeCallbackAsync() { + fireDOMCallback('before'); + } + + function fireAfterCallbackAsync() { + fireDOMCallback('after'); + } + + function fireDoneCallbackAsync() { + fireDOMCallback('close'); + if(doneCallback) { + $$asyncCallback(function() { + doneCallback(); + }); + } + } + + //it is less complicated to use a flag than managing and canceling + //timeouts containing multiple callbacks. + function fireDOMOperation() { + if(!fireDOMOperation.hasBeenRun) { + fireDOMOperation.hasBeenRun = true; + domOperation(); + } + } + + function closeAnimation() { + if(!closeAnimation.hasBeenRun) { + closeAnimation.hasBeenRun = true; + var data = element.data(NG_ANIMATE_STATE); + if(data) { + /* only structural animations wait for reflow before removing an + animation, but class-based animations don't. An example of this + failing would be when a parent HTML tag has a ng-class attribute + causing ALL directives below to skip animations during the digest */ + if(runner && runner.isClassBased) { + cleanup(element, className); + } else { + $$asyncCallback(function() { + var data = element.data(NG_ANIMATE_STATE) || {}; + if(localAnimationCount == data.index) { + cleanup(element, className, animationEvent); + } + }); + element.data(NG_ANIMATE_STATE, data); + } + } + fireDoneCallbackAsync(); + } + } + } + + function cancelChildAnimations(element) { + var node = extractElementNode(element); + if (node) { + var nodes = angular.isFunction(node.getElementsByClassName) ? + node.getElementsByClassName(NG_ANIMATE_CLASS_NAME) : + node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME); + forEach(nodes, function(element) { + element = angular.element(element); + var data = element.data(NG_ANIMATE_STATE); + if(data && data.active) { + forEach(data.active, function(runner) { + runner.cancel(); + }); + } + }); + } + } + + function cleanup(element, className) { + if(isMatchingElement(element, $rootElement)) { + if(!rootAnimateState.disabled) { + rootAnimateState.running = false; + rootAnimateState.structural = false; + } + } else if(className) { + var data = element.data(NG_ANIMATE_STATE) || {}; + + var removeAnimations = className === true; + if(!removeAnimations && data.active && data.active[className]) { + data.totalActive--; + delete data.active[className]; + } + + if(removeAnimations || !data.totalActive) { + element.removeClass(NG_ANIMATE_CLASS_NAME); + element.removeData(NG_ANIMATE_STATE); + } + } + } + + function animationsDisabled(element, parentElement) { + if (rootAnimateState.disabled) return true; + + if(isMatchingElement(element, $rootElement)) { + return rootAnimateState.disabled || rootAnimateState.running; + } + + do { + //the element did not reach the root element which means that it + //is not apart of the DOM. Therefore there is no reason to do + //any animations on it + if(parentElement.length === 0) break; + + var isRoot = isMatchingElement(parentElement, $rootElement); + var state = isRoot ? rootAnimateState : parentElement.data(NG_ANIMATE_STATE); + var result = state && (!!state.disabled || state.running || state.totalActive > 0); + if(isRoot || result) { + return result; + } + + if(isRoot) return true; + } + while(parentElement = parentElement.parent()); + + return true; + } + }]); + + $animateProvider.register('', ['$window', '$sniffer', '$timeout', '$$animateReflow', + function($window, $sniffer, $timeout, $$animateReflow) { + // Detect proper transitionend/animationend event names. + var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + + // If unprefixed events are not supported but webkit-prefixed are, use the latter. + // Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. + // Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` + // but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. + // Register both events in case `window.onanimationend` is not supported because of that, + // do the same for `transitionend` as Safari is likely to exhibit similar behavior. + // Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit + // therefore there is no reason to test anymore for other vendor prefixes: http://caniuse.com/#search=transition + if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; + } else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; + } + + if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; + } else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; + } + + var DURATION_KEY = 'Duration'; + var PROPERTY_KEY = 'Property'; + var DELAY_KEY = 'Delay'; + var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; + var NG_ANIMATE_PARENT_KEY = '$$ngAnimateKey'; + var NG_ANIMATE_CSS_DATA_KEY = '$$ngAnimateCSS3Data'; + var NG_ANIMATE_BLOCK_CLASS_NAME = 'ng-animate-block-transitions'; + var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; + var CLOSING_TIME_BUFFER = 1.5; + var ONE_SECOND = 1000; + + var lookupCache = {}; + var parentCounter = 0; + var animationReflowQueue = []; + var cancelAnimationReflow; + function afterReflow(element, callback) { + if(cancelAnimationReflow) { + cancelAnimationReflow(); + } + animationReflowQueue.push(callback); + cancelAnimationReflow = $$animateReflow(function() { + forEach(animationReflowQueue, function(fn) { + fn(); + }); + + animationReflowQueue = []; + cancelAnimationReflow = null; + lookupCache = {}; + }); + } + + var closingTimer = null; + var closingTimestamp = 0; + var animationElementQueue = []; + function animationCloseHandler(element, totalTime) { + var node = extractElementNode(element); + element = angular.element(node); + + //this item will be garbage collected by the closing + //animation timeout + animationElementQueue.push(element); + + //but it may not need to cancel out the existing timeout + //if the timestamp is less than the previous one + var futureTimestamp = Date.now() + totalTime; + if(futureTimestamp <= closingTimestamp) { + return; + } + + $timeout.cancel(closingTimer); + + closingTimestamp = futureTimestamp; + closingTimer = $timeout(function() { + closeAllAnimations(animationElementQueue); + animationElementQueue = []; + }, totalTime, false); + } + + function closeAllAnimations(elements) { + forEach(elements, function(element) { + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(elementData) { + (elementData.closeAnimationFn || noop)(); + } + }); + } + + function getElementAnimationDetails(element, cacheKey) { + var data = cacheKey ? lookupCache[cacheKey] : null; + if(!data) { + var transitionDuration = 0; + var transitionDelay = 0; + var animationDuration = 0; + var animationDelay = 0; + var transitionDelayStyle; + var animationDelayStyle; + var transitionDurationStyle; + var transitionPropertyStyle; + + //we want all the styles defined before and after + forEach(element, function(element) { + if (element.nodeType == ELEMENT_NODE) { + var elementStyles = $window.getComputedStyle(element) || {}; + + transitionDurationStyle = elementStyles[TRANSITION_PROP + DURATION_KEY]; + + transitionDuration = Math.max(parseMaxTime(transitionDurationStyle), transitionDuration); + + transitionPropertyStyle = elementStyles[TRANSITION_PROP + PROPERTY_KEY]; + + transitionDelayStyle = elementStyles[TRANSITION_PROP + DELAY_KEY]; + + transitionDelay = Math.max(parseMaxTime(transitionDelayStyle), transitionDelay); + + animationDelayStyle = elementStyles[ANIMATION_PROP + DELAY_KEY]; + + animationDelay = Math.max(parseMaxTime(animationDelayStyle), animationDelay); + + var aDuration = parseMaxTime(elementStyles[ANIMATION_PROP + DURATION_KEY]); + + if(aDuration > 0) { + aDuration *= parseInt(elementStyles[ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY], 10) || 1; + } + + animationDuration = Math.max(aDuration, animationDuration); + } + }); + data = { + total : 0, + transitionPropertyStyle: transitionPropertyStyle, + transitionDurationStyle: transitionDurationStyle, + transitionDelayStyle: transitionDelayStyle, + transitionDelay: transitionDelay, + transitionDuration: transitionDuration, + animationDelayStyle: animationDelayStyle, + animationDelay: animationDelay, + animationDuration: animationDuration + }; + if(cacheKey) { + lookupCache[cacheKey] = data; + } + } + return data; + } + + function parseMaxTime(str) { + var maxValue = 0; + var values = angular.isString(str) ? + str.split(/\s*,\s*/) : + []; + forEach(values, function(value) { + maxValue = Math.max(parseFloat(value) || 0, maxValue); + }); + return maxValue; + } + + function getCacheKey(element) { + var parentElement = element.parent(); + var parentID = parentElement.data(NG_ANIMATE_PARENT_KEY); + if(!parentID) { + parentElement.data(NG_ANIMATE_PARENT_KEY, ++parentCounter); + parentID = parentCounter; + } + return parentID + '-' + extractElementNode(element).getAttribute('class'); + } + + function animateSetup(animationEvent, element, className, calculationDecorator) { + var cacheKey = getCacheKey(element); + var eventCacheKey = cacheKey + ' ' + className; + var itemIndex = lookupCache[eventCacheKey] ? ++lookupCache[eventCacheKey].total : 0; + + var stagger = {}; + if(itemIndex > 0) { + var staggerClassName = className + '-stagger'; + var staggerCacheKey = cacheKey + ' ' + staggerClassName; + var applyClasses = !lookupCache[staggerCacheKey]; + + applyClasses && element.addClass(staggerClassName); + + stagger = getElementAnimationDetails(element, staggerCacheKey); + + applyClasses && element.removeClass(staggerClassName); + } + + /* the animation itself may need to add/remove special CSS classes + * before calculating the anmation styles */ + calculationDecorator = calculationDecorator || + function(fn) { return fn(); }; + + element.addClass(className); + + var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {}; + + var timings = calculationDecorator(function() { + return getElementAnimationDetails(element, eventCacheKey); + }); + + var transitionDuration = timings.transitionDuration; + var animationDuration = timings.animationDuration; + if(transitionDuration === 0 && animationDuration === 0) { + element.removeClass(className); + return false; + } + + element.data(NG_ANIMATE_CSS_DATA_KEY, { + running : formerData.running || 0, + itemIndex : itemIndex, + stagger : stagger, + timings : timings, + closeAnimationFn : noop + }); + + //temporarily disable the transition so that the enter styles + //don't animate twice (this is here to avoid a bug in Chrome/FF). + var isCurrentlyAnimating = formerData.running > 0 || animationEvent == 'setClass'; + if(transitionDuration > 0) { + blockTransitions(element, className, isCurrentlyAnimating); + } + + //staggering keyframe animations work by adjusting the `animation-delay` CSS property + //on the given element, however, the delay value can only calculated after the reflow + //since by that time $animate knows how many elements are being animated. Therefore, + //until the reflow occurs the element needs to be blocked (where the keyframe animation + //is set to `none 0s`). This blocking mechanism should only be set for when a stagger + //animation is detected and when the element item index is greater than 0. + if(animationDuration > 0 && stagger.animationDelay > 0 && stagger.animationDuration === 0) { + blockKeyframeAnimations(element); + } + + return true; + } + + function isStructuralAnimation(className) { + return className == 'ng-enter' || className == 'ng-move' || className == 'ng-leave'; + } + + function blockTransitions(element, className, isAnimating) { + if(isStructuralAnimation(className) || !isAnimating) { + extractElementNode(element).style[TRANSITION_PROP + PROPERTY_KEY] = 'none'; + } else { + element.addClass(NG_ANIMATE_BLOCK_CLASS_NAME); + } + } + + function blockKeyframeAnimations(element) { + extractElementNode(element).style[ANIMATION_PROP] = 'none 0s'; + } + + function unblockTransitions(element, className) { + var prop = TRANSITION_PROP + PROPERTY_KEY; + var node = extractElementNode(element); + if(node.style[prop] && node.style[prop].length > 0) { + node.style[prop] = ''; + } + element.removeClass(NG_ANIMATE_BLOCK_CLASS_NAME); + } + + function unblockKeyframeAnimations(element) { + var prop = ANIMATION_PROP; + var node = extractElementNode(element); + if(node.style[prop] && node.style[prop].length > 0) { + node.style[prop] = ''; + } + } + + function animateRun(animationEvent, element, className, activeAnimationComplete) { + var node = extractElementNode(element); + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(node.getAttribute('class').indexOf(className) == -1 || !elementData) { + activeAnimationComplete(); + return; + } + + var activeClassName = ''; + forEach(className.split(' '), function(klass, i) { + activeClassName += (i > 0 ? ' ' : '') + klass + '-active'; + }); + + var stagger = elementData.stagger; + var timings = elementData.timings; + var itemIndex = elementData.itemIndex; + var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration); + var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay); + var maxDelayTime = maxDelay * ONE_SECOND; + + var startTime = Date.now(); + var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT; + + var style = '', appliedStyles = []; + if(timings.transitionDuration > 0) { + var propertyStyle = timings.transitionPropertyStyle; + if(propertyStyle.indexOf('all') == -1) { + style += CSS_PREFIX + 'transition-property: ' + propertyStyle + ';'; + style += CSS_PREFIX + 'transition-duration: ' + timings.transitionDurationStyle + ';'; + appliedStyles.push(CSS_PREFIX + 'transition-property'); + appliedStyles.push(CSS_PREFIX + 'transition-duration'); + } + } + + if(itemIndex > 0) { + if(stagger.transitionDelay > 0 && stagger.transitionDuration === 0) { + var delayStyle = timings.transitionDelayStyle; + style += CSS_PREFIX + 'transition-delay: ' + + prepareStaggerDelay(delayStyle, stagger.transitionDelay, itemIndex) + '; '; + appliedStyles.push(CSS_PREFIX + 'transition-delay'); + } + + if(stagger.animationDelay > 0 && stagger.animationDuration === 0) { + style += CSS_PREFIX + 'animation-delay: ' + + prepareStaggerDelay(timings.animationDelayStyle, stagger.animationDelay, itemIndex) + '; '; + appliedStyles.push(CSS_PREFIX + 'animation-delay'); + } + } + + if(appliedStyles.length > 0) { + //the element being animated may sometimes contain comment nodes in + //the jqLite object, so we're safe to use a single variable to house + //the styles since there is always only one element being animated + var oldStyle = node.getAttribute('style') || ''; + node.setAttribute('style', oldStyle + ' ' + style); + } + + element.on(css3AnimationEvents, onAnimationProgress); + element.addClass(activeClassName); + elementData.closeAnimationFn = function() { + onEnd(); + activeAnimationComplete(); + }; + + var staggerTime = itemIndex * (Math.max(stagger.animationDelay, stagger.transitionDelay) || 0); + var animationTime = (maxDelay + maxDuration) * CLOSING_TIME_BUFFER; + var totalTime = (staggerTime + animationTime) * ONE_SECOND; + + elementData.running++; + animationCloseHandler(element, totalTime); + return onEnd; + + // This will automatically be called by $animate so + // there is no need to attach this internally to the + // timeout done method. + function onEnd(cancelled) { + element.off(css3AnimationEvents, onAnimationProgress); + element.removeClass(activeClassName); + animateClose(element, className); + var node = extractElementNode(element); + for (var i in appliedStyles) { + node.style.removeProperty(appliedStyles[i]); + } + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if(Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + activeAnimationComplete(); + } + } + } + + function prepareStaggerDelay(delayStyle, staggerDelay, index) { + var style = ''; + forEach(delayStyle.split(','), function(val, i) { + style += (i > 0 ? ',' : '') + + (index * staggerDelay + parseInt(val, 10)) + 's'; + }); + return style; + } + + function animateBefore(animationEvent, element, className, calculationDecorator) { + if(animateSetup(animationEvent, element, className, calculationDecorator)) { + return function(cancelled) { + cancelled && animateClose(element, className); + }; + } + } + + function animateAfter(animationEvent, element, className, afterAnimationComplete) { + if(element.data(NG_ANIMATE_CSS_DATA_KEY)) { + return animateRun(animationEvent, element, className, afterAnimationComplete); + } else { + animateClose(element, className); + afterAnimationComplete(); + } + } + + function animate(animationEvent, element, className, animationComplete) { + //If the animateSetup function doesn't bother returning a + //cancellation function then it means that there is no animation + //to perform at all + var preReflowCancellation = animateBefore(animationEvent, element, className); + if(!preReflowCancellation) { + animationComplete(); + return; + } + + //There are two cancellation functions: one is before the first + //reflow animation and the second is during the active state + //animation. The first function will take care of removing the + //data from the element which will not make the 2nd animation + //happen in the first place + var cancel = preReflowCancellation; + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + //once the reflow is complete then we point cancel to + //the new cancellation function which will remove all of the + //animation properties from the active animation + cancel = animateAfter(animationEvent, element, className, animationComplete); + }); + + return function(cancelled) { + (cancel || noop)(cancelled); + }; + } + + function animateClose(element, className) { + element.removeClass(className); + var data = element.data(NG_ANIMATE_CSS_DATA_KEY); + if(data) { + if(data.running) { + data.running--; + } + if(!data.running || data.running === 0) { + element.removeData(NG_ANIMATE_CSS_DATA_KEY); + } + } + } + + return { + enter : function(element, animationCompleted) { + return animate('enter', element, 'ng-enter', animationCompleted); + }, + + leave : function(element, animationCompleted) { + return animate('leave', element, 'ng-leave', animationCompleted); + }, + + move : function(element, animationCompleted) { + return animate('move', element, 'ng-move', animationCompleted); + }, + + beforeSetClass : function(element, add, remove, animationCompleted) { + var className = suffixClasses(remove, '-remove') + ' ' + + suffixClasses(add, '-add'); + var cancellationMethod = animateBefore('setClass', element, className, function(fn) { + /* when classes are removed from an element then the transition style + * that is applied is the transition defined on the element without the + * CSS class being there. This is how CSS3 functions outside of ngAnimate. + * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */ + var klass = element.attr('class'); + element.removeClass(remove); + element.addClass(add); + var timings = fn(); + element.attr('class', klass); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + beforeAddClass : function(element, className, animationCompleted) { + var cancellationMethod = animateBefore('addClass', element, suffixClasses(className, '-add'), function(fn) { + + /* when a CSS class is added to an element then the transition style that + * is applied is the transition defined on the element when the CSS class + * is added at the time of the animation. This is how CSS3 functions + * outside of ngAnimate. */ + element.addClass(className); + var timings = fn(); + element.removeClass(className); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + setClass : function(element, add, remove, animationCompleted) { + remove = suffixClasses(remove, '-remove'); + add = suffixClasses(add, '-add'); + var className = remove + ' ' + add; + return animateAfter('setClass', element, className, animationCompleted); + }, + + addClass : function(element, className, animationCompleted) { + return animateAfter('addClass', element, suffixClasses(className, '-add'), animationCompleted); + }, + + beforeRemoveClass : function(element, className, animationCompleted) { + var cancellationMethod = animateBefore('removeClass', element, suffixClasses(className, '-remove'), function(fn) { + /* when classes are removed from an element then the transition style + * that is applied is the transition defined on the element without the + * CSS class being there. This is how CSS3 functions outside of ngAnimate. + * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */ + var klass = element.attr('class'); + element.removeClass(className); + var timings = fn(); + element.attr('class', klass); + return timings; + }); + + if(cancellationMethod) { + afterReflow(element, function() { + unblockTransitions(element, className); + unblockKeyframeAnimations(element); + animationCompleted(); + }); + return cancellationMethod; + } + animationCompleted(); + }, + + removeClass : function(element, className, animationCompleted) { + return animateAfter('removeClass', element, suffixClasses(className, '-remove'), animationCompleted); + } + }; + + function suffixClasses(classes, suffix) { + var className = ''; + classes = angular.isArray(classes) ? classes : classes.split(/\s+/); + forEach(classes, function(klass, i) { + if(klass && klass.length > 0) { + className += (i > 0 ? ' ' : '') + klass + suffix; + } + }); + return className; + } + }]); + }]); + + +})(window, window.angular); diff --git a/www/lib/angular-animate/angular-animate.min.js b/www/lib/angular-animate/angular-animate.min.js new file mode 100644 index 00000000..55971e54 --- /dev/null +++ b/www/lib/angular-animate/angular-animate.min.js @@ -0,0 +1,27 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(s,g,P){'use strict';g.module("ngAnimate",["ng"]).factory("$$animateReflow",["$$rAF","$document",function(g,s){return function(e){return g(function(){e()})}}]).config(["$provide","$animateProvider",function(ga,G){function e(e){for(var p=0;p=x&&b>=v&&f()}var l=e(b);a=b.data(n);if(-1!=l.getAttribute("class").indexOf(c)&&a){var r="";p(c.split(" "),function(a,b){r+=(0` to your `index.html`: + +```html + +``` + +And add `ngCookies` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngCookies']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngCookies). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-cookies/angular-cookies.js b/www/lib/angular-cookies/angular-cookies.js new file mode 100644 index 00000000..f43d44dc --- /dev/null +++ b/www/lib/angular-cookies/angular-cookies.js @@ -0,0 +1,196 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngCookies + * @description + * + * # ngCookies + * + * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies. + * + * + *
+ * + * See {@link ngCookies.$cookies `$cookies`} and + * {@link ngCookies.$cookieStore `$cookieStore`} for usage. + */ + + +angular.module('ngCookies', ['ng']). + /** + * @ngdoc service + * @name $cookies + * + * @description + * Provides read/write access to browser's cookies. + * + * Only a simple Object is exposed and by adding or removing properties to/from this object, new + * cookies are created/deleted at the end of current $eval. + * The object's properties can only be strings. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + + + + + + */ + factory('$cookies', ['$rootScope', '$browser', function ($rootScope, $browser) { + var cookies = {}, + lastCookies = {}, + lastBrowserCookies, + runEval = false, + copy = angular.copy, + isUndefined = angular.isUndefined; + + //creates a poller fn that copies all cookies from the $browser to service & inits the service + $browser.addPollFn(function() { + var currentCookies = $browser.cookies(); + if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl + lastBrowserCookies = currentCookies; + copy(currentCookies, lastCookies); + copy(currentCookies, cookies); + if (runEval) $rootScope.$apply(); + } + })(); + + runEval = true; + + //at the end of each eval, push cookies + //TODO: this should happen before the "delayed" watches fire, because if some cookies are not + // strings or browser refuses to store some cookies, we update the model in the push fn. + $rootScope.$watch(push); + + return cookies; + + + /** + * Pushes all the cookies from the service to the browser and verifies if all cookies were + * stored. + */ + function push() { + var name, + value, + browserCookies, + updated; + + //delete any cookies deleted in $cookies + for (name in lastCookies) { + if (isUndefined(cookies[name])) { + $browser.cookies(name, undefined); + } + } + + //update all cookies updated in $cookies + for(name in cookies) { + value = cookies[name]; + if (!angular.isString(value)) { + value = '' + value; + cookies[name] = value; + } + if (value !== lastCookies[name]) { + $browser.cookies(name, value); + updated = true; + } + } + + //verify what was actually stored + if (updated){ + updated = false; + browserCookies = $browser.cookies(); + + for (name in cookies) { + if (cookies[name] !== browserCookies[name]) { + //delete or reset all cookies that the browser dropped from $cookies + if (isUndefined(browserCookies[name])) { + delete cookies[name]; + } else { + cookies[name] = browserCookies[name]; + } + updated = true; + } + } + } + } + }]). + + + /** + * @ngdoc service + * @name $cookieStore + * @requires $cookies + * + * @description + * Provides a key-value (string-object) storage, that is backed by session cookies. + * Objects put or retrieved from this storage are automatically serialized or + * deserialized by angular's toJson/fromJson. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + */ + factory('$cookieStore', ['$cookies', function($cookies) { + + return { + /** + * @ngdoc method + * @name $cookieStore#get + * + * @description + * Returns the value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {Object} Deserialized cookie value. + */ + get: function(key) { + var value = $cookies[key]; + return value ? angular.fromJson(value) : value; + }, + + /** + * @ngdoc method + * @name $cookieStore#put + * + * @description + * Sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {Object} value Value to be stored. + */ + put: function(key, value) { + $cookies[key] = angular.toJson(value); + }, + + /** + * @ngdoc method + * @name $cookieStore#remove + * + * @description + * Remove given cookie + * + * @param {string} key Id of the key-value pair to delete. + */ + remove: function(key) { + delete $cookies[key]; + } + }; + + }]); + + +})(window, window.angular); diff --git a/www/lib/angular-cookies/angular-cookies.min.js b/www/lib/angular-cookies/angular-cookies.min.js new file mode 100644 index 00000000..4d4527f3 --- /dev/null +++ b/www/lib/angular-cookies/angular-cookies.min.js @@ -0,0 +1,8 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(e,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&e.$apply())})();k=!0;e.$watch(function(){var a,d,e;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)d=c[a],f.isString(d)||(d=""+d,c[a]=d),d!==g[a]&&(b.cookies(a,d),e=!0);if(e)for(a in d=b.cookies(),c)c[a]!==d[a]&&(m(d[a])?delete c[a]:c[a]=d[a])});return c}]).factory("$cookieStore", +["$cookies",function(e){return{get:function(b){return(b=e[b])?f.fromJson(b):b},put:function(b,c){e[b]=f.toJson(c)},remove:function(b){delete e[b]}}}])})(window,window.angular); +//# sourceMappingURL=angular-cookies.min.js.map diff --git a/www/lib/angular-cookies/angular-cookies.min.js.map b/www/lib/angular-cookies/angular-cookies.min.js.map new file mode 100644 index 00000000..1d3c5d32 --- /dev/null +++ b/www/lib/angular-cookies/angular-cookies.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-cookies.min.js", +"lineCount":7, +"mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAmBtCD,CAAAE,OAAA,CAAe,WAAf,CAA4B,CAAC,IAAD,CAA5B,CAAAC,QAAA,CA4BW,UA5BX,CA4BuB,CAAC,YAAD,CAAe,UAAf,CAA2B,QAAS,CAACC,CAAD,CAAaC,CAAb,CAAuB,CAAA,IACxEC,EAAU,EAD8D,CAExEC,EAAc,EAF0D,CAGxEC,CAHwE,CAIxEC,EAAU,CAAA,CAJ8D,CAKxEC,EAAOV,CAAAU,KALiE,CAMxEC,EAAcX,CAAAW,YAGlBN,EAAAO,UAAA,CAAmB,QAAQ,EAAG,CAC5B,IAAIC,EAAiBR,CAAAC,QAAA,EACjBE,EAAJ,EAA0BK,CAA1B,GACEL,CAGA,CAHqBK,CAGrB,CAFAH,CAAA,CAAKG,CAAL,CAAqBN,CAArB,CAEA,CADAG,CAAA,CAAKG,CAAL,CAAqBP,CAArB,CACA,CAAIG,CAAJ,EAAaL,CAAAU,OAAA,EAJf,CAF4B,CAA9B,CAAA,EAUAL,EAAA,CAAU,CAAA,CAKVL,EAAAW,OAAA,CASAC,QAAa,EAAG,CAAA,IACVC,CADU,CAEVC,CAFU,CAIVC,CAGJ,KAAKF,CAAL,GAAaV,EAAb,CACMI,CAAA,CAAYL,CAAA,CAAQW,CAAR,CAAZ,CAAJ,EACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBhB,CAAvB,CAKJ,KAAIgB,CAAJ,GAAYX,EAAZ,CACEY,CAKA,CALQZ,CAAA,CAAQW,CAAR,CAKR,CAJKjB,CAAAoB,SAAA,CAAiBF,CAAjB,CAIL,GAHEA,CACA,CADQ,EACR,CADaA,CACb,CAAAZ,CAAA,CAAQW,CAAR,CAAA,CAAgBC,CAElB,EAAIA,CAAJ,GAAcX,CAAA,CAAYU,CAAZ,CAAd,GACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBC,CAAvB,CACA,CAAAC,CAAA,CAAU,CAAA,CAFZ,CAOF,IAAIA,CAAJ,CAIE,IAAKF,CAAL,GAFAI,EAEaf,CAFID,CAAAC,QAAA,EAEJA,CAAAA,CAAb,CACMA,CAAA,CAAQW,CAAR,CAAJ,GAAsBI,CAAA,CAAeJ,CAAf,CAAtB,GAEMN,CAAA,CAAYU,CAAA,CAAeJ,CAAf,CAAZ,CAAJ,CACE,OAAOX,CAAA,CAAQW,CAAR,CADT,CAGEX,CAAA,CAAQW,CAAR,CAHF,CAGkBI,CAAA,CAAeJ,CAAf,CALpB,CAhCU,CAThB,CAEA,OAAOX,EA1BqE,CAA3D,CA5BvB,CAAAH,QAAA,CA0HW,cA1HX;AA0H2B,CAAC,UAAD,CAAa,QAAQ,CAACmB,CAAD,CAAW,CAErD,MAAO,KAWAC,QAAQ,CAACC,CAAD,CAAM,CAEjB,MAAO,CADHN,CACG,CADKI,CAAA,CAASE,CAAT,CACL,EAAQxB,CAAAyB,SAAA,CAAiBP,CAAjB,CAAR,CAAkCA,CAFxB,CAXd,KA0BAQ,QAAQ,CAACF,CAAD,CAAMN,CAAN,CAAa,CACxBI,CAAA,CAASE,CAAT,CAAA,CAAgBxB,CAAA2B,OAAA,CAAeT,CAAf,CADQ,CA1BrB,QAuCGU,QAAQ,CAACJ,CAAD,CAAM,CACpB,OAAOF,CAAA,CAASE,CAAT,CADa,CAvCjB,CAF8C,CAAhC,CA1H3B,CAnBsC,CAArC,CAAA,CA8LEzB,MA9LF,CA8LUA,MAAAC,QA9LV;", +"sources":["angular-cookies.js"], +"names":["window","angular","undefined","module","factory","$rootScope","$browser","cookies","lastCookies","lastBrowserCookies","runEval","copy","isUndefined","addPollFn","currentCookies","$apply","$watch","push","name","value","updated","isString","browserCookies","$cookies","get","key","fromJson","put","toJson","remove"] +} diff --git a/www/lib/angular-cookies/bower.json b/www/lib/angular-cookies/bower.json new file mode 100644 index 00000000..cf5f05a0 --- /dev/null +++ b/www/lib/angular-cookies/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-cookies", + "version": "1.2.16", + "main": "./angular-cookies.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/www/lib/angular-mocks/.bower.json b/www/lib/angular-mocks/.bower.json new file mode 100644 index 00000000..ce38275c --- /dev/null +++ b/www/lib/angular-mocks/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-mocks", + "version": "1.2.16", + "main": "./angular-mocks.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-mocks", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "e429a011d88c402430329449500f352751d1a137" + }, + "_source": "git://github.com/angular/bower-angular-mocks.git", + "_target": "1.2.16", + "_originalSource": "angular-mocks" +} \ No newline at end of file diff --git a/www/lib/angular-mocks/README.md b/www/lib/angular-mocks/README.md new file mode 100644 index 00000000..3448d284 --- /dev/null +++ b/www/lib/angular-mocks/README.md @@ -0,0 +1,42 @@ +# bower-angular-mocks + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngMock). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-mocks +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/guide/dev_guide.unit-testing). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-mocks/angular-mocks.js b/www/lib/angular-mocks/angular-mocks.js new file mode 100644 index 00000000..da804b4a --- /dev/null +++ b/www/lib/angular-mocks/angular-mocks.js @@ -0,0 +1,2163 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) { + +'use strict'; + +/** + * @ngdoc object + * @name angular.mock + * @description + * + * Namespace from 'angular-mocks.js' which contains testing related code. + */ +angular.mock = {}; + +/** + * ! This is a private undocumented service ! + * + * @name $browser + * + * @description + * This service is a mock implementation of {@link ng.$browser}. It provides fake + * implementation for commonly used browser apis that are hard to test, e.g. setTimeout, xhr, + * cookies, etc... + * + * The api of this service is the same as that of the real {@link ng.$browser $browser}, except + * that there are several helper methods available which can be used in tests. + */ +angular.mock.$BrowserProvider = function() { + this.$get = function() { + return new angular.mock.$Browser(); + }; +}; + +angular.mock.$Browser = function() { + var self = this; + + this.isMock = true; + self.$$url = "http://server/"; + self.$$lastUrl = self.$$url; // used by url polling fn + self.pollFns = []; + + // TODO(vojta): remove this temporary api + self.$$completeOutstandingRequest = angular.noop; + self.$$incOutstandingRequestCount = angular.noop; + + + // register url polling fn + + self.onUrlChange = function(listener) { + self.pollFns.push( + function() { + if (self.$$lastUrl != self.$$url) { + self.$$lastUrl = self.$$url; + listener(self.$$url); + } + } + ); + + return listener; + }; + + self.cookieHash = {}; + self.lastCookieHash = {}; + self.deferredFns = []; + self.deferredNextId = 0; + + self.defer = function(fn, delay) { + delay = delay || 0; + self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: self.deferredNextId}); + self.deferredFns.sort(function(a,b){ return a.time - b.time;}); + return self.deferredNextId++; + }; + + + /** + * @name $browser#defer.now + * + * @description + * Current milliseconds mock time. + */ + self.defer.now = 0; + + + self.defer.cancel = function(deferId) { + var fnIndex; + + angular.forEach(self.deferredFns, function(fn, index) { + if (fn.id === deferId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + self.deferredFns.splice(fnIndex, 1); + return true; + } + + return false; + }; + + + /** + * @name $browser#defer.flush + * + * @description + * Flushes all pending requests and executes the defer callbacks. + * + * @param {number=} number of milliseconds to flush. See {@link #defer.now} + */ + self.defer.flush = function(delay) { + if (angular.isDefined(delay)) { + self.defer.now += delay; + } else { + if (self.deferredFns.length) { + self.defer.now = self.deferredFns[self.deferredFns.length-1].time; + } else { + throw new Error('No deferred tasks to be flushed'); + } + } + + while (self.deferredFns.length && self.deferredFns[0].time <= self.defer.now) { + self.deferredFns.shift().fn(); + } + }; + + self.$$baseHref = ''; + self.baseHref = function() { + return this.$$baseHref; + }; +}; +angular.mock.$Browser.prototype = { + +/** + * @name $browser#poll + * + * @description + * run all fns in pollFns + */ + poll: function poll() { + angular.forEach(this.pollFns, function(pollFn){ + pollFn(); + }); + }, + + addPollFn: function(pollFn) { + this.pollFns.push(pollFn); + return pollFn; + }, + + url: function(url, replace) { + if (url) { + this.$$url = url; + return this; + } + + return this.$$url; + }, + + cookies: function(name, value) { + if (name) { + if (angular.isUndefined(value)) { + delete this.cookieHash[name]; + } else { + if (angular.isString(value) && //strings only + value.length <= 4096) { //strict cookie storage limits + this.cookieHash[name] = value; + } + } + } else { + if (!angular.equals(this.cookieHash, this.lastCookieHash)) { + this.lastCookieHash = angular.copy(this.cookieHash); + this.cookieHash = angular.copy(this.cookieHash); + } + return this.cookieHash; + } + }, + + notifyWhenNoOutstandingRequests: function(fn) { + fn(); + } +}; + + +/** + * @ngdoc provider + * @name $exceptionHandlerProvider + * + * @description + * Configures the mock implementation of {@link ng.$exceptionHandler} to rethrow or to log errors + * passed into the `$exceptionHandler`. + */ + +/** + * @ngdoc service + * @name $exceptionHandler + * + * @description + * Mock implementation of {@link ng.$exceptionHandler} that rethrows or logs errors passed + * into it. See {@link ngMock.$exceptionHandlerProvider $exceptionHandlerProvider} for configuration + * information. + * + * + * ```js + * describe('$exceptionHandlerProvider', function() { + * + * it('should capture log messages and exceptions', function() { + * + * module(function($exceptionHandlerProvider) { + * $exceptionHandlerProvider.mode('log'); + * }); + * + * inject(function($log, $exceptionHandler, $timeout) { + * $timeout(function() { $log.log(1); }); + * $timeout(function() { $log.log(2); throw 'banana peel'; }); + * $timeout(function() { $log.log(3); }); + * expect($exceptionHandler.errors).toEqual([]); + * expect($log.assertEmpty()); + * $timeout.flush(); + * expect($exceptionHandler.errors).toEqual(['banana peel']); + * expect($log.log.logs).toEqual([[1], [2], [3]]); + * }); + * }); + * }); + * ``` + */ + +angular.mock.$ExceptionHandlerProvider = function() { + var handler; + + /** + * @ngdoc method + * @name $exceptionHandlerProvider#mode + * + * @description + * Sets the logging mode. + * + * @param {string} mode Mode of operation, defaults to `rethrow`. + * + * - `rethrow`: If any errors are passed into the handler in tests, it typically + * means that there is a bug in the application or test, so this mock will + * make these tests fail. + * - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log` + * mode stores an array of errors in `$exceptionHandler.errors`, to allow later + * assertion of them. See {@link ngMock.$log#assertEmpty assertEmpty()} and + * {@link ngMock.$log#reset reset()} + */ + this.mode = function(mode) { + switch(mode) { + case 'rethrow': + handler = function(e) { + throw e; + }; + break; + case 'log': + var errors = []; + + handler = function(e) { + if (arguments.length == 1) { + errors.push(e); + } else { + errors.push([].slice.call(arguments, 0)); + } + }; + + handler.errors = errors; + break; + default: + throw new Error("Unknown mode '" + mode + "', only 'log'/'rethrow' modes are allowed!"); + } + }; + + this.$get = function() { + return handler; + }; + + this.mode('rethrow'); +}; + + +/** + * @ngdoc service + * @name $log + * + * @description + * Mock implementation of {@link ng.$log} that gathers all logged messages in arrays + * (one array per logging level). These arrays are exposed as `logs` property of each of the + * level-specific log function, e.g. for level `error` the array is exposed as `$log.error.logs`. + * + */ +angular.mock.$LogProvider = function() { + var debug = true; + + function concat(array1, array2, index) { + return array1.concat(Array.prototype.slice.call(array2, index)); + } + + this.debugEnabled = function(flag) { + if (angular.isDefined(flag)) { + debug = flag; + return this; + } else { + return debug; + } + }; + + this.$get = function () { + var $log = { + log: function() { $log.log.logs.push(concat([], arguments, 0)); }, + warn: function() { $log.warn.logs.push(concat([], arguments, 0)); }, + info: function() { $log.info.logs.push(concat([], arguments, 0)); }, + error: function() { $log.error.logs.push(concat([], arguments, 0)); }, + debug: function() { + if (debug) { + $log.debug.logs.push(concat([], arguments, 0)); + } + } + }; + + /** + * @ngdoc method + * @name $log#reset + * + * @description + * Reset all of the logging arrays to empty. + */ + $log.reset = function () { + /** + * @ngdoc property + * @name $log#log.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#log}. + * + * @example + * ```js + * $log.log('Some Log'); + * var first = $log.log.logs.unshift(); + * ``` + */ + $log.log.logs = []; + /** + * @ngdoc property + * @name $log#info.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#info}. + * + * @example + * ```js + * $log.info('Some Info'); + * var first = $log.info.logs.unshift(); + * ``` + */ + $log.info.logs = []; + /** + * @ngdoc property + * @name $log#warn.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#warn}. + * + * @example + * ```js + * $log.warn('Some Warning'); + * var first = $log.warn.logs.unshift(); + * ``` + */ + $log.warn.logs = []; + /** + * @ngdoc property + * @name $log#error.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#error}. + * + * @example + * ```js + * $log.error('Some Error'); + * var first = $log.error.logs.unshift(); + * ``` + */ + $log.error.logs = []; + /** + * @ngdoc property + * @name $log#debug.logs + * + * @description + * Array of messages logged using {@link ngMock.$log#debug}. + * + * @example + * ```js + * $log.debug('Some Error'); + * var first = $log.debug.logs.unshift(); + * ``` + */ + $log.debug.logs = []; + }; + + /** + * @ngdoc method + * @name $log#assertEmpty + * + * @description + * Assert that the all of the logging methods have no logged messages. If messages present, an + * exception is thrown. + */ + $log.assertEmpty = function() { + var errors = []; + angular.forEach(['error', 'warn', 'info', 'log', 'debug'], function(logLevel) { + angular.forEach($log[logLevel].logs, function(log) { + angular.forEach(log, function (logItem) { + errors.push('MOCK $log (' + logLevel + '): ' + String(logItem) + '\n' + + (logItem.stack || '')); + }); + }); + }); + if (errors.length) { + errors.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or "+ + "an expected log message was not checked and removed:"); + errors.push(''); + throw new Error(errors.join('\n---------\n')); + } + }; + + $log.reset(); + return $log; + }; +}; + + +/** + * @ngdoc service + * @name $interval + * + * @description + * Mock implementation of the $interval service. + * + * Use {@link ngMock.$interval#flush `$interval.flush(millis)`} to + * move forward by `millis` milliseconds and trigger any functions scheduled to run in that + * time. + * + * @param {function()} fn A function that should be called repeatedly. + * @param {number} delay Number of milliseconds between each function call. + * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat + * indefinitely. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @returns {promise} A promise which will be notified on each iteration. + */ +angular.mock.$IntervalProvider = function() { + this.$get = ['$rootScope', '$q', + function($rootScope, $q) { + var repeatFns = [], + nextRepeatId = 0, + now = 0; + + var $interval = function(fn, delay, count, invokeApply) { + var deferred = $q.defer(), + promise = deferred.promise, + iteration = 0, + skipApply = (angular.isDefined(invokeApply) && !invokeApply); + + count = (angular.isDefined(count)) ? count : 0, + promise.then(null, null, fn); + + promise.$$intervalId = nextRepeatId; + + function tick() { + deferred.notify(iteration++); + + if (count > 0 && iteration >= count) { + var fnIndex; + deferred.resolve(iteration); + + angular.forEach(repeatFns, function(fn, index) { + if (fn.id === promise.$$intervalId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + repeatFns.splice(fnIndex, 1); + } + } + + if (!skipApply) $rootScope.$apply(); + } + + repeatFns.push({ + nextTime:(now + delay), + delay: delay, + fn: tick, + id: nextRepeatId, + deferred: deferred + }); + repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + + nextRepeatId++; + return promise; + }; + /** + * @ngdoc method + * @name $interval#cancel + * + * @description + * Cancels a task associated with the `promise`. + * + * @param {promise} promise A promise from calling the `$interval` function. + * @returns {boolean} Returns `true` if the task was successfully cancelled. + */ + $interval.cancel = function(promise) { + if(!promise) return false; + var fnIndex; + + angular.forEach(repeatFns, function(fn, index) { + if (fn.id === promise.$$intervalId) fnIndex = index; + }); + + if (fnIndex !== undefined) { + repeatFns[fnIndex].deferred.reject('canceled'); + repeatFns.splice(fnIndex, 1); + return true; + } + + return false; + }; + + /** + * @ngdoc method + * @name $interval#flush + * @description + * + * Runs interval tasks scheduled to be run in the next `millis` milliseconds. + * + * @param {number=} millis maximum timeout amount to flush up until. + * + * @return {number} The amount of time moved forward. + */ + $interval.flush = function(millis) { + now += millis; + while (repeatFns.length && repeatFns[0].nextTime <= now) { + var task = repeatFns[0]; + task.fn(); + task.nextTime += task.delay; + repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + } + return millis; + }; + + return $interval; + }]; +}; + + +/* jshint -W101 */ +/* The R_ISO8061_STR regex is never going to fit into the 100 char limit! + * This directive should go inside the anonymous function but a bug in JSHint means that it would + * not be enacted early enough to prevent the warning. + */ +var R_ISO8061_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/; + +function jsonStringToDate(string) { + var match; + if (match = string.match(R_ISO8061_STR)) { + var date = new Date(0), + tzHour = 0, + tzMin = 0; + if (match[9]) { + tzHour = int(match[9] + match[10]); + tzMin = int(match[9] + match[11]); + } + date.setUTCFullYear(int(match[1]), int(match[2]) - 1, int(match[3])); + date.setUTCHours(int(match[4]||0) - tzHour, + int(match[5]||0) - tzMin, + int(match[6]||0), + int(match[7]||0)); + return date; + } + return string; +} + +function int(str) { + return parseInt(str, 10); +} + +function padNumber(num, digits, trim) { + var neg = ''; + if (num < 0) { + neg = '-'; + num = -num; + } + num = '' + num; + while(num.length < digits) num = '0' + num; + if (trim) + num = num.substr(num.length - digits); + return neg + num; +} + + +/** + * @ngdoc type + * @name angular.mock.TzDate + * @description + * + * *NOTE*: this is not an injectable instance, just a globally available mock class of `Date`. + * + * Mock of the Date type which has its timezone specified via constructor arg. + * + * The main purpose is to create Date-like instances with timezone fixed to the specified timezone + * offset, so that we can test code that depends on local timezone settings without dependency on + * the time zone settings of the machine where the code is running. + * + * @param {number} offset Offset of the *desired* timezone in hours (fractions will be honored) + * @param {(number|string)} timestamp Timestamp representing the desired time in *UTC* + * + * @example + * !!!! WARNING !!!!! + * This is not a complete Date object so only methods that were implemented can be called safely. + * To make matters worse, TzDate instances inherit stuff from Date via a prototype. + * + * We do our best to intercept calls to "unimplemented" methods, but since the list of methods is + * incomplete we might be missing some non-standard methods. This can result in errors like: + * "Date.prototype.foo called on incompatible Object". + * + * ```js + * var newYearInBratislava = new TzDate(-1, '2009-12-31T23:00:00Z'); + * newYearInBratislava.getTimezoneOffset() => -60; + * newYearInBratislava.getFullYear() => 2010; + * newYearInBratislava.getMonth() => 0; + * newYearInBratislava.getDate() => 1; + * newYearInBratislava.getHours() => 0; + * newYearInBratislava.getMinutes() => 0; + * newYearInBratislava.getSeconds() => 0; + * ``` + * + */ +angular.mock.TzDate = function (offset, timestamp) { + var self = new Date(0); + if (angular.isString(timestamp)) { + var tsStr = timestamp; + + self.origDate = jsonStringToDate(timestamp); + + timestamp = self.origDate.getTime(); + if (isNaN(timestamp)) + throw { + name: "Illegal Argument", + message: "Arg '" + tsStr + "' passed into TzDate constructor is not a valid date string" + }; + } else { + self.origDate = new Date(timestamp); + } + + var localOffset = new Date(timestamp).getTimezoneOffset(); + self.offsetDiff = localOffset*60*1000 - offset*1000*60*60; + self.date = new Date(timestamp + self.offsetDiff); + + self.getTime = function() { + return self.date.getTime() - self.offsetDiff; + }; + + self.toLocaleDateString = function() { + return self.date.toLocaleDateString(); + }; + + self.getFullYear = function() { + return self.date.getFullYear(); + }; + + self.getMonth = function() { + return self.date.getMonth(); + }; + + self.getDate = function() { + return self.date.getDate(); + }; + + self.getHours = function() { + return self.date.getHours(); + }; + + self.getMinutes = function() { + return self.date.getMinutes(); + }; + + self.getSeconds = function() { + return self.date.getSeconds(); + }; + + self.getMilliseconds = function() { + return self.date.getMilliseconds(); + }; + + self.getTimezoneOffset = function() { + return offset * 60; + }; + + self.getUTCFullYear = function() { + return self.origDate.getUTCFullYear(); + }; + + self.getUTCMonth = function() { + return self.origDate.getUTCMonth(); + }; + + self.getUTCDate = function() { + return self.origDate.getUTCDate(); + }; + + self.getUTCHours = function() { + return self.origDate.getUTCHours(); + }; + + self.getUTCMinutes = function() { + return self.origDate.getUTCMinutes(); + }; + + self.getUTCSeconds = function() { + return self.origDate.getUTCSeconds(); + }; + + self.getUTCMilliseconds = function() { + return self.origDate.getUTCMilliseconds(); + }; + + self.getDay = function() { + return self.date.getDay(); + }; + + // provide this method only on browsers that already have it + if (self.toISOString) { + self.toISOString = function() { + return padNumber(self.origDate.getUTCFullYear(), 4) + '-' + + padNumber(self.origDate.getUTCMonth() + 1, 2) + '-' + + padNumber(self.origDate.getUTCDate(), 2) + 'T' + + padNumber(self.origDate.getUTCHours(), 2) + ':' + + padNumber(self.origDate.getUTCMinutes(), 2) + ':' + + padNumber(self.origDate.getUTCSeconds(), 2) + '.' + + padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z'; + }; + } + + //hide all methods not implemented in this mock that the Date prototype exposes + var unimplementedMethods = ['getUTCDay', + 'getYear', 'setDate', 'setFullYear', 'setHours', 'setMilliseconds', + 'setMinutes', 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear', + 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', + 'setYear', 'toDateString', 'toGMTString', 'toJSON', 'toLocaleFormat', 'toLocaleString', + 'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf']; + + angular.forEach(unimplementedMethods, function(methodName) { + self[methodName] = function() { + throw new Error("Method '" + methodName + "' is not implemented in the TzDate mock"); + }; + }); + + return self; +}; + +//make "tzDateInstance instanceof Date" return true +angular.mock.TzDate.prototype = Date.prototype; +/* jshint +W101 */ + +angular.mock.animate = angular.module('ngAnimateMock', ['ng']) + + .config(['$provide', function($provide) { + + var reflowQueue = []; + $provide.value('$$animateReflow', function(fn) { + var index = reflowQueue.length; + reflowQueue.push(fn); + return function cancel() { + reflowQueue.splice(index, 1); + }; + }); + + $provide.decorator('$animate', function($delegate, $$asyncCallback) { + var animate = { + queue : [], + enabled : $delegate.enabled, + triggerCallbacks : function() { + $$asyncCallback.flush(); + }, + triggerReflow : function() { + angular.forEach(reflowQueue, function(fn) { + fn(); + }); + reflowQueue = []; + } + }; + + angular.forEach( + ['enter','leave','move','addClass','removeClass','setClass'], function(method) { + animate[method] = function() { + animate.queue.push({ + event : method, + element : arguments[0], + args : arguments + }); + $delegate[method].apply($delegate, arguments); + }; + }); + + return animate; + }); + + }]); + + +/** + * @ngdoc function + * @name angular.mock.dump + * @description + * + * *NOTE*: this is not an injectable instance, just a globally available function. + * + * Method for serializing common angular objects (scope, elements, etc..) into strings, useful for + * debugging. + * + * This method is also available on window, where it can be used to display objects on debug + * console. + * + * @param {*} object - any object to turn into string. + * @return {string} a serialized string of the argument + */ +angular.mock.dump = function(object) { + return serialize(object); + + function serialize(object) { + var out; + + if (angular.isElement(object)) { + object = angular.element(object); + out = angular.element('
'); + angular.forEach(object, function(element) { + out.append(angular.element(element).clone()); + }); + out = out.html(); + } else if (angular.isArray(object)) { + out = []; + angular.forEach(object, function(o) { + out.push(serialize(o)); + }); + out = '[ ' + out.join(', ') + ' ]'; + } else if (angular.isObject(object)) { + if (angular.isFunction(object.$eval) && angular.isFunction(object.$apply)) { + out = serializeScope(object); + } else if (object instanceof Error) { + out = object.stack || ('' + object.name + ': ' + object.message); + } else { + // TODO(i): this prevents methods being logged, + // we should have a better way to serialize objects + out = angular.toJson(object, true); + } + } else { + out = String(object); + } + + return out; + } + + function serializeScope(scope, offset) { + offset = offset || ' '; + var log = [offset + 'Scope(' + scope.$id + '): {']; + for ( var key in scope ) { + if (Object.prototype.hasOwnProperty.call(scope, key) && !key.match(/^(\$|this)/)) { + log.push(' ' + key + ': ' + angular.toJson(scope[key])); + } + } + var child = scope.$$childHead; + while(child) { + log.push(serializeScope(child, offset + ' ')); + child = child.$$nextSibling; + } + log.push('}'); + return log.join('\n' + offset); + } +}; + +/** + * @ngdoc service + * @name $httpBackend + * @description + * Fake HTTP backend implementation suitable for unit testing applications that use the + * {@link ng.$http $http service}. + * + * *Note*: For fake HTTP backend implementation suitable for end-to-end testing or backend-less + * development please see {@link ngMockE2E.$httpBackend e2e $httpBackend mock}. + * + * During unit testing, we want our unit tests to run quickly and have no external dependencies so + * we don’t want to send [XHR](https://developer.mozilla.org/en/xmlhttprequest) or + * [JSONP](http://en.wikipedia.org/wiki/JSONP) requests to a real server. All we really need is + * to verify whether a certain request has been sent or not, or alternatively just let the + * application make requests, respond with pre-trained responses and assert that the end result is + * what we expect it to be. + * + * This mock implementation can be used to respond with static or dynamic responses via the + * `expect` and `when` apis and their shortcuts (`expectGET`, `whenPOST`, etc). + * + * When an Angular application needs some data from a server, it calls the $http service, which + * sends the request to a real server using $httpBackend service. With dependency injection, it is + * easy to inject $httpBackend mock (which has the same API as $httpBackend) and use it to verify + * the requests and respond with some testing data without sending a request to real server. + * + * There are two ways to specify what test data should be returned as http responses by the mock + * backend when the code under test makes http requests: + * + * - `$httpBackend.expect` - specifies a request expectation + * - `$httpBackend.when` - specifies a backend definition + * + * + * # Request Expectations vs Backend Definitions + * + * Request expectations provide a way to make assertions about requests made by the application and + * to define responses for those requests. The test will fail if the expected requests are not made + * or they are made in the wrong order. + * + * Backend definitions allow you to define a fake backend for your application which doesn't assert + * if a particular request was made or not, it just returns a trained response if a request is made. + * The test will pass whether or not the request gets made during testing. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Request expectationsBackend definitions
Syntax.expect(...).respond(...).when(...).respond(...)
Typical usagestrict unit testsloose (black-box) unit testing
Fulfills multiple requestsNOYES
Order of requests mattersYESNO
Request requiredYESNO
Response requiredoptional (see below)YES
+ * + * In cases where both backend definitions and request expectations are specified during unit + * testing, the request expectations are evaluated first. + * + * If a request expectation has no response specified, the algorithm will search your backend + * definitions for an appropriate response. + * + * If a request didn't match any expectation or if the expectation doesn't have the response + * defined, the backend definitions are evaluated in sequential order to see if any of them match + * the request. The response from the first matched definition is returned. + * + * + * # Flushing HTTP requests + * + * The $httpBackend used in production always responds to requests asynchronously. If we preserved + * this behavior in unit testing, we'd have to create async unit tests, which are hard to write, + * to follow and to maintain. But neither can the testing mock respond synchronously; that would + * change the execution of the code under test. For this reason, the mock $httpBackend has a + * `flush()` method, which allows the test to explicitly flush pending requests. This preserves + * the async api of the backend, while allowing the test to execute synchronously. + * + * + * # Unit testing with mock $httpBackend + * The following code shows how to setup and use the mock backend when unit testing a controller. + * First we create the controller under test: + * + ```js + // The controller code + function MyController($scope, $http) { + var authToken; + + $http.get('/auth.py').success(function(data, status, headers) { + authToken = headers('A-Token'); + $scope.user = data; + }); + + $scope.saveMessage = function(message) { + var headers = { 'Authorization': authToken }; + $scope.status = 'Saving...'; + + $http.post('/add-msg.py', message, { headers: headers } ).success(function(response) { + $scope.status = ''; + }).error(function() { + $scope.status = 'ERROR!'; + }); + }; + } + ``` + * + * Now we setup the mock backend and create the test specs: + * + ```js + // testing controller + describe('MyController', function() { + var $httpBackend, $rootScope, createController; + + beforeEach(inject(function($injector) { + // Set up the mock http service responses + $httpBackend = $injector.get('$httpBackend'); + // backend definition common for all tests + $httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'}); + + // Get hold of a scope (i.e. the root scope) + $rootScope = $injector.get('$rootScope'); + // The $controller service is used to create instances of controllers + var $controller = $injector.get('$controller'); + + createController = function() { + return $controller('MyController', {'$scope' : $rootScope }); + }; + })); + + + afterEach(function() { + $httpBackend.verifyNoOutstandingExpectation(); + $httpBackend.verifyNoOutstandingRequest(); + }); + + + it('should fetch authentication token', function() { + $httpBackend.expectGET('/auth.py'); + var controller = createController(); + $httpBackend.flush(); + }); + + + it('should send msg to server', function() { + var controller = createController(); + $httpBackend.flush(); + + // now you don’t care about the authentication, but + // the controller will still send the request and + // $httpBackend will respond without you having to + // specify the expectation and response for this request + + $httpBackend.expectPOST('/add-msg.py', 'message content').respond(201, ''); + $rootScope.saveMessage('message content'); + expect($rootScope.status).toBe('Saving...'); + $httpBackend.flush(); + expect($rootScope.status).toBe(''); + }); + + + it('should send auth header', function() { + var controller = createController(); + $httpBackend.flush(); + + $httpBackend.expectPOST('/add-msg.py', undefined, function(headers) { + // check if the header was send, if it wasn't the expectation won't + // match the request and the test will fail + return headers['Authorization'] == 'xxx'; + }).respond(201, ''); + + $rootScope.saveMessage('whatever'); + $httpBackend.flush(); + }); + }); + ``` + */ +angular.mock.$HttpBackendProvider = function() { + this.$get = ['$rootScope', createHttpBackendMock]; +}; + +/** + * General factory function for $httpBackend mock. + * Returns instance for unit testing (when no arguments specified): + * - passing through is disabled + * - auto flushing is disabled + * + * Returns instance for e2e testing (when `$delegate` and `$browser` specified): + * - passing through (delegating request to real backend) is enabled + * - auto flushing is enabled + * + * @param {Object=} $delegate Real $httpBackend instance (allow passing through if specified) + * @param {Object=} $browser Auto-flushing enabled if specified + * @return {Object} Instance of $httpBackend mock + */ +function createHttpBackendMock($rootScope, $delegate, $browser) { + var definitions = [], + expectations = [], + responses = [], + responsesPush = angular.bind(responses, responses.push), + copy = angular.copy; + + function createResponse(status, data, headers, statusText) { + if (angular.isFunction(status)) return status; + + return function() { + return angular.isNumber(status) + ? [status, data, headers, statusText] + : [200, status, data]; + }; + } + + // TODO(vojta): change params to: method, url, data, headers, callback + function $httpBackend(method, url, data, callback, headers, timeout, withCredentials) { + var xhr = new MockXhr(), + expectation = expectations[0], + wasExpected = false; + + function prettyPrint(data) { + return (angular.isString(data) || angular.isFunction(data) || data instanceof RegExp) + ? data + : angular.toJson(data); + } + + function wrapResponse(wrapped) { + if (!$browser && timeout && timeout.then) timeout.then(handleTimeout); + + return handleResponse; + + function handleResponse() { + var response = wrapped.response(method, url, data, headers); + xhr.$$respHeaders = response[2]; + callback(copy(response[0]), copy(response[1]), xhr.getAllResponseHeaders(), + copy(response[3] || '')); + } + + function handleTimeout() { + for (var i = 0, ii = responses.length; i < ii; i++) { + if (responses[i] === handleResponse) { + responses.splice(i, 1); + callback(-1, undefined, ''); + break; + } + } + } + } + + if (expectation && expectation.match(method, url)) { + if (!expectation.matchData(data)) + throw new Error('Expected ' + expectation + ' with different data\n' + + 'EXPECTED: ' + prettyPrint(expectation.data) + '\nGOT: ' + data); + + if (!expectation.matchHeaders(headers)) + throw new Error('Expected ' + expectation + ' with different headers\n' + + 'EXPECTED: ' + prettyPrint(expectation.headers) + '\nGOT: ' + + prettyPrint(headers)); + + expectations.shift(); + + if (expectation.response) { + responses.push(wrapResponse(expectation)); + return; + } + wasExpected = true; + } + + var i = -1, definition; + while ((definition = definitions[++i])) { + if (definition.match(method, url, data, headers || {})) { + if (definition.response) { + // if $browser specified, we do auto flush all requests + ($browser ? $browser.defer : responsesPush)(wrapResponse(definition)); + } else if (definition.passThrough) { + $delegate(method, url, data, callback, headers, timeout, withCredentials); + } else throw new Error('No response defined !'); + return; + } + } + throw wasExpected ? + new Error('No response defined !') : + new Error('Unexpected request: ' + method + ' ' + url + '\n' + + (expectation ? 'Expected ' + expectation : 'No more request expected')); + } + + /** + * @ngdoc method + * @name $httpBackend#when + * @description + * Creates a new backend definition. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current definition. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can + * return an array containing response status (number), response data (string), response + * headers (Object), and the text for the status (string). + */ + $httpBackend.when = function(method, url, data, headers) { + var definition = new MockHttpExpectation(method, url, data, headers), + chain = { + respond: function(status, data, headers, statusText) { + definition.response = createResponse(status, data, headers, statusText); + } + }; + + if ($browser) { + chain.passThrough = function() { + definition.passThrough = true; + }; + } + + definitions.push(definition); + return chain; + }; + + /** + * @ngdoc method + * @name $httpBackend#whenGET + * @description + * Creates a new backend definition for GET requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenHEAD + * @description + * Creates a new backend definition for HEAD requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenDELETE + * @description + * Creates a new backend definition for DELETE requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenPOST + * @description + * Creates a new backend definition for POST requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenPUT + * @description + * Creates a new backend definition for PUT requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives + * data string and returns true if the data is as expected. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#whenJSONP + * @description + * Creates a new backend definition for JSONP requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + createShortMethods('when'); + + + /** + * @ngdoc method + * @name $httpBackend#expect + * @description + * Creates a new request expectation. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current expectation. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can + * return an array containing response status (number), response data (string), response + * headers (Object), and the text for the status (string). + */ + $httpBackend.expect = function(method, url, data, headers) { + var expectation = new MockHttpExpectation(method, url, data, headers); + expectations.push(expectation); + return { + respond: function (status, data, headers, statusText) { + expectation.response = createResponse(status, data, headers, statusText); + } + }; + }; + + + /** + * @ngdoc method + * @name $httpBackend#expectGET + * @description + * Creates a new request expectation for GET requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. See #expect for more info. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectHEAD + * @description + * Creates a new request expectation for HEAD requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectDELETE + * @description + * Creates a new request expectation for DELETE requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPOST + * @description + * Creates a new request expectation for POST requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPUT + * @description + * Creates a new request expectation for PUT requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectPATCH + * @description + * Creates a new request expectation for PATCH requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that + * receives data string and returns true if the data is as expected, or Object if request body + * is in JSON format. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method + * @name $httpBackend#expectJSONP + * @description + * Creates a new request expectation for JSONP requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + createShortMethods('expect'); + + + /** + * @ngdoc method + * @name $httpBackend#flush + * @description + * Flushes all pending requests using the trained responses. + * + * @param {number=} count Number of responses to flush (in the order they arrived). If undefined, + * all pending requests will be flushed. If there are no pending requests when the flush method + * is called an exception is thrown (as this typically a sign of programming error). + */ + $httpBackend.flush = function(count) { + $rootScope.$digest(); + if (!responses.length) throw new Error('No pending request to flush !'); + + if (angular.isDefined(count)) { + while (count--) { + if (!responses.length) throw new Error('No more pending request to flush !'); + responses.shift()(); + } + } else { + while (responses.length) { + responses.shift()(); + } + } + $httpBackend.verifyNoOutstandingExpectation(); + }; + + + /** + * @ngdoc method + * @name $httpBackend#verifyNoOutstandingExpectation + * @description + * Verifies that all of the requests defined via the `expect` api were made. If any of the + * requests were not made, verifyNoOutstandingExpectation throws an exception. + * + * Typically, you would call this method following each test case that asserts requests using an + * "afterEach" clause. + * + * ```js + * afterEach($httpBackend.verifyNoOutstandingExpectation); + * ``` + */ + $httpBackend.verifyNoOutstandingExpectation = function() { + $rootScope.$digest(); + if (expectations.length) { + throw new Error('Unsatisfied requests: ' + expectations.join(', ')); + } + }; + + + /** + * @ngdoc method + * @name $httpBackend#verifyNoOutstandingRequest + * @description + * Verifies that there are no outstanding requests that need to be flushed. + * + * Typically, you would call this method following each test case that asserts requests using an + * "afterEach" clause. + * + * ```js + * afterEach($httpBackend.verifyNoOutstandingRequest); + * ``` + */ + $httpBackend.verifyNoOutstandingRequest = function() { + if (responses.length) { + throw new Error('Unflushed requests: ' + responses.length); + } + }; + + + /** + * @ngdoc method + * @name $httpBackend#resetExpectations + * @description + * Resets all request expectations, but preserves all backend definitions. Typically, you would + * call resetExpectations during a multiple-phase test when you want to reuse the same instance of + * $httpBackend mock. + */ + $httpBackend.resetExpectations = function() { + expectations.length = 0; + responses.length = 0; + }; + + return $httpBackend; + + + function createShortMethods(prefix) { + angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) { + $httpBackend[prefix + method] = function(url, headers) { + return $httpBackend[prefix](method, url, undefined, headers); + }; + }); + + angular.forEach(['PUT', 'POST', 'PATCH'], function(method) { + $httpBackend[prefix + method] = function(url, data, headers) { + return $httpBackend[prefix](method, url, data, headers); + }; + }); + } +} + +function MockHttpExpectation(method, url, data, headers) { + + this.data = data; + this.headers = headers; + + this.match = function(m, u, d, h) { + if (method != m) return false; + if (!this.matchUrl(u)) return false; + if (angular.isDefined(d) && !this.matchData(d)) return false; + if (angular.isDefined(h) && !this.matchHeaders(h)) return false; + return true; + }; + + this.matchUrl = function(u) { + if (!url) return true; + if (angular.isFunction(url.test)) return url.test(u); + return url == u; + }; + + this.matchHeaders = function(h) { + if (angular.isUndefined(headers)) return true; + if (angular.isFunction(headers)) return headers(h); + return angular.equals(headers, h); + }; + + this.matchData = function(d) { + if (angular.isUndefined(data)) return true; + if (data && angular.isFunction(data.test)) return data.test(d); + if (data && angular.isFunction(data)) return data(d); + if (data && !angular.isString(data)) return angular.equals(data, angular.fromJson(d)); + return data == d; + }; + + this.toString = function() { + return method + ' ' + url; + }; +} + +function createMockXhr() { + return new MockXhr(); +} + +function MockXhr() { + + // hack for testing $http, $httpBackend + MockXhr.$$lastInstance = this; + + this.open = function(method, url, async) { + this.$$method = method; + this.$$url = url; + this.$$async = async; + this.$$reqHeaders = {}; + this.$$respHeaders = {}; + }; + + this.send = function(data) { + this.$$data = data; + }; + + this.setRequestHeader = function(key, value) { + this.$$reqHeaders[key] = value; + }; + + this.getResponseHeader = function(name) { + // the lookup must be case insensitive, + // that's why we try two quick lookups first and full scan last + var header = this.$$respHeaders[name]; + if (header) return header; + + name = angular.lowercase(name); + header = this.$$respHeaders[name]; + if (header) return header; + + header = undefined; + angular.forEach(this.$$respHeaders, function(headerVal, headerName) { + if (!header && angular.lowercase(headerName) == name) header = headerVal; + }); + return header; + }; + + this.getAllResponseHeaders = function() { + var lines = []; + + angular.forEach(this.$$respHeaders, function(value, key) { + lines.push(key + ': ' + value); + }); + return lines.join('\n'); + }; + + this.abort = angular.noop; +} + + +/** + * @ngdoc service + * @name $timeout + * @description + * + * This service is just a simple decorator for {@link ng.$timeout $timeout} service + * that adds a "flush" and "verifyNoPendingTasks" methods. + */ + +angular.mock.$TimeoutDecorator = function($delegate, $browser) { + + /** + * @ngdoc method + * @name $timeout#flush + * @description + * + * Flushes the queue of pending tasks. + * + * @param {number=} delay maximum timeout amount to flush up until + */ + $delegate.flush = function(delay) { + $browser.defer.flush(delay); + }; + + /** + * @ngdoc method + * @name $timeout#verifyNoPendingTasks + * @description + * + * Verifies that there are no pending tasks that need to be flushed. + */ + $delegate.verifyNoPendingTasks = function() { + if ($browser.deferredFns.length) { + throw new Error('Deferred tasks to flush (' + $browser.deferredFns.length + '): ' + + formatPendingTasksAsString($browser.deferredFns)); + } + }; + + function formatPendingTasksAsString(tasks) { + var result = []; + angular.forEach(tasks, function(task) { + result.push('{id: ' + task.id + ', ' + 'time: ' + task.time + '}'); + }); + + return result.join(', '); + } + + return $delegate; +}; + +angular.mock.$RAFDecorator = function($delegate) { + var queue = []; + var rafFn = function(fn) { + var index = queue.length; + queue.push(fn); + return function() { + queue.splice(index, 1); + }; + }; + + rafFn.supported = $delegate.supported; + + rafFn.flush = function() { + if(queue.length === 0) { + throw new Error('No rAF callbacks present'); + } + + var length = queue.length; + for(var i=0;i'); + }; +}; + +/** + * @ngdoc module + * @name ngMock + * @description + * + * # ngMock + * + * The `ngMock` module providers support to inject and mock Angular services into unit tests. + * In addition, ngMock also extends various core ng services such that they can be + * inspected and controlled in a synchronous manner within test code. + * + * + *
+ * + */ +angular.module('ngMock', ['ng']).provider({ + $browser: angular.mock.$BrowserProvider, + $exceptionHandler: angular.mock.$ExceptionHandlerProvider, + $log: angular.mock.$LogProvider, + $interval: angular.mock.$IntervalProvider, + $httpBackend: angular.mock.$HttpBackendProvider, + $rootElement: angular.mock.$RootElementProvider +}).config(['$provide', function($provide) { + $provide.decorator('$timeout', angular.mock.$TimeoutDecorator); + $provide.decorator('$$rAF', angular.mock.$RAFDecorator); + $provide.decorator('$$asyncCallback', angular.mock.$AsyncCallbackDecorator); +}]); + +/** + * @ngdoc module + * @name ngMockE2E + * @module ngMockE2E + * @description + * + * The `ngMockE2E` is an angular module which contains mocks suitable for end-to-end testing. + * Currently there is only one mock present in this module - + * the {@link ngMockE2E.$httpBackend e2e $httpBackend} mock. + */ +angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) { + $provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator); +}]); + +/** + * @ngdoc service + * @name $httpBackend + * @module ngMockE2E + * @description + * Fake HTTP backend implementation suitable for end-to-end testing or backend-less development of + * applications that use the {@link ng.$http $http service}. + * + * *Note*: For fake http backend implementation suitable for unit testing please see + * {@link ngMock.$httpBackend unit-testing $httpBackend mock}. + * + * This implementation can be used to respond with static or dynamic responses via the `when` api + * and its shortcuts (`whenGET`, `whenPOST`, etc) and optionally pass through requests to the + * real $httpBackend for specific requests (e.g. to interact with certain remote apis or to fetch + * templates from a webserver). + * + * As opposed to unit-testing, in an end-to-end testing scenario or in scenario when an application + * is being developed with the real backend api replaced with a mock, it is often desirable for + * certain category of requests to bypass the mock and issue a real http request (e.g. to fetch + * templates or static files from the webserver). To configure the backend with this behavior + * use the `passThrough` request handler of `when` instead of `respond`. + * + * Additionally, we don't want to manually have to flush mocked out requests like we do during unit + * testing. For this reason the e2e $httpBackend automatically flushes mocked out requests + * automatically, closely simulating the behavior of the XMLHttpRequest object. + * + * To setup the application to run with this http backend, you have to create a module that depends + * on the `ngMockE2E` and your application modules and defines the fake backend: + * + * ```js + * myAppDev = angular.module('myAppDev', ['myApp', 'ngMockE2E']); + * myAppDev.run(function($httpBackend) { + * phones = [{name: 'phone1'}, {name: 'phone2'}]; + * + * // returns the current list of phones + * $httpBackend.whenGET('/phones').respond(phones); + * + * // adds a new phone to the phones array + * $httpBackend.whenPOST('/phones').respond(function(method, url, data) { + * phones.push(angular.fromJson(data)); + * }); + * $httpBackend.whenGET(/^\/templates\//).passThrough(); + * //... + * }); + * ``` + * + * Afterwards, bootstrap your app with this new module. + */ + +/** + * @ngdoc method + * @name $httpBackend#when + * @module ngMockE2E + * @description + * Creates a new backend definition. + * + * @param {string} method HTTP method. + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header + * object and returns true if the headers match the current definition. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + * + * - respond – + * `{function([status,] data[, headers, statusText]) + * | function(function(method, url, data, headers)}` + * – The respond method takes a set of static data to be returned or a function that can return + * an array containing response status (number), response data (string), response headers + * (Object), and the text for the status (string). + * - passThrough – `{function()}` – Any request matching a backend definition with + * `passThrough` handler will be passed through to the real backend (an XHR request will be made + * to the server.) + */ + +/** + * @ngdoc method + * @name $httpBackend#whenGET + * @module ngMockE2E + * @description + * Creates a new backend definition for GET requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenHEAD + * @module ngMockE2E + * @description + * Creates a new backend definition for HEAD requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenDELETE + * @module ngMockE2E + * @description + * Creates a new backend definition for DELETE requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPOST + * @module ngMockE2E + * @description + * Creates a new backend definition for POST requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPUT + * @module ngMockE2E + * @description + * Creates a new backend definition for PUT requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenPATCH + * @module ngMockE2E + * @description + * Creates a new backend definition for PATCH requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method + * @name $httpBackend#whenJSONP + * @module ngMockE2E + * @description + * Creates a new backend definition for JSONP requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ +angular.mock.e2e = {}; +angular.mock.e2e.$httpBackendDecorator = + ['$rootScope', '$delegate', '$browser', createHttpBackendMock]; + + +angular.mock.clearDataCache = function() { + var key, + cache = angular.element.cache; + + for(key in cache) { + if (Object.prototype.hasOwnProperty.call(cache,key)) { + var handle = cache[key].handle; + + handle && angular.element(handle.elem).off(); + delete cache[key]; + } + } +}; + + +if(window.jasmine || window.mocha) { + + var currentSpec = null, + isSpecRunning = function() { + return !!currentSpec; + }; + + + beforeEach(function() { + currentSpec = this; + }); + + afterEach(function() { + var injector = currentSpec.$injector; + + currentSpec.$injector = null; + currentSpec.$modules = null; + currentSpec = null; + + if (injector) { + injector.get('$rootElement').off(); + injector.get('$browser').pollFns.length = 0; + } + + angular.mock.clearDataCache(); + + // clean up jquery's fragment cache + angular.forEach(angular.element.fragments, function(val, key) { + delete angular.element.fragments[key]; + }); + + MockXhr.$$lastInstance = null; + + angular.forEach(angular.callbacks, function(val, key) { + delete angular.callbacks[key]; + }); + angular.callbacks.counter = 0; + }); + + /** + * @ngdoc function + * @name angular.mock.module + * @description + * + * *NOTE*: This function is also published on window for easy access.
+ * + * This function registers a module configuration code. It collects the configuration information + * which will be used when the injector is created by {@link angular.mock.inject inject}. + * + * See {@link angular.mock.inject inject} for usage example + * + * @param {...(string|Function|Object)} fns any number of modules which are represented as string + * aliases or as anonymous module initialization functions. The modules are used to + * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded. If an + * object literal is passed they will be register as values in the module, the key being + * the module name and the value being what is returned. + */ + window.module = angular.mock.module = function() { + var moduleFns = Array.prototype.slice.call(arguments, 0); + return isSpecRunning() ? workFn() : workFn; + ///////////////////// + function workFn() { + if (currentSpec.$injector) { + throw new Error('Injector already created, can not register a module!'); + } else { + var modules = currentSpec.$modules || (currentSpec.$modules = []); + angular.forEach(moduleFns, function(module) { + if (angular.isObject(module) && !angular.isArray(module)) { + modules.push(function($provide) { + angular.forEach(module, function(value, key) { + $provide.value(key, value); + }); + }); + } else { + modules.push(module); + } + }); + } + } + }; + + /** + * @ngdoc function + * @name angular.mock.inject + * @description + * + * *NOTE*: This function is also published on window for easy access.
+ * + * The inject function wraps a function into an injectable function. The inject() creates new + * instance of {@link auto.$injector $injector} per test, which is then used for + * resolving references. + * + * + * ## Resolving References (Underscore Wrapping) + * Often, we would like to inject a reference once, in a `beforeEach()` block and reuse this + * in multiple `it()` clauses. To be able to do this we must assign the reference to a variable + * that is declared in the scope of the `describe()` block. Since we would, most likely, want + * the variable to have the same name of the reference we have a problem, since the parameter + * to the `inject()` function would hide the outer variable. + * + * To help with this, the injected parameters can, optionally, be enclosed with underscores. + * These are ignored by the injector when the reference name is resolved. + * + * For example, the parameter `_myService_` would be resolved as the reference `myService`. + * Since it is available in the function body as _myService_, we can then assign it to a variable + * defined in an outer scope. + * + * ``` + * // Defined out reference variable outside + * var myService; + * + * // Wrap the parameter in underscores + * beforeEach( inject( function(_myService_){ + * myService = _myService_; + * })); + * + * // Use myService in a series of tests. + * it('makes use of myService', function() { + * myService.doStuff(); + * }); + * + * ``` + * + * See also {@link angular.mock.module angular.mock.module} + * + * ## Example + * Example of what a typical jasmine tests looks like with the inject method. + * ```js + * + * angular.module('myApplicationModule', []) + * .value('mode', 'app') + * .value('version', 'v1.0.1'); + * + * + * describe('MyApp', function() { + * + * // You need to load modules that you want to test, + * // it loads only the "ng" module by default. + * beforeEach(module('myApplicationModule')); + * + * + * // inject() is used to inject arguments of all given functions + * it('should provide a version', inject(function(mode, version) { + * expect(version).toEqual('v1.0.1'); + * expect(mode).toEqual('app'); + * })); + * + * + * // The inject and module method can also be used inside of the it or beforeEach + * it('should override a version and test the new version is injected', function() { + * // module() takes functions or strings (module aliases) + * module(function($provide) { + * $provide.value('version', 'overridden'); // override version here + * }); + * + * inject(function(version) { + * expect(version).toEqual('overridden'); + * }); + * }); + * }); + * + * ``` + * + * @param {...Function} fns any number of functions which will be injected using the injector. + */ + + + + var ErrorAddingDeclarationLocationStack = function(e, errorForStack) { + this.message = e.message; + this.name = e.name; + if (e.line) this.line = e.line; + if (e.sourceId) this.sourceId = e.sourceId; + if (e.stack && errorForStack) + this.stack = e.stack + '\n' + errorForStack.stack; + if (e.stackArray) this.stackArray = e.stackArray; + }; + ErrorAddingDeclarationLocationStack.prototype.toString = Error.prototype.toString; + + window.inject = angular.mock.inject = function() { + var blockFns = Array.prototype.slice.call(arguments, 0); + var errorForStack = new Error('Declaration Location'); + return isSpecRunning() ? workFn.call(currentSpec) : workFn; + ///////////////////// + function workFn() { + var modules = currentSpec.$modules || []; + + modules.unshift('ngMock'); + modules.unshift('ng'); + var injector = currentSpec.$injector; + if (!injector) { + injector = currentSpec.$injector = angular.injector(modules); + } + for(var i = 0, ii = blockFns.length; i < ii; i++) { + try { + /* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */ + injector.invoke(blockFns[i] || angular.noop, this); + /* jshint +W040 */ + } catch (e) { + if (e.stack && errorForStack) { + throw new ErrorAddingDeclarationLocationStack(e, errorForStack); + } + throw e; + } finally { + errorForStack = null; + } + } + } + }; +} + + +})(window, window.angular); diff --git a/www/lib/angular-mocks/bower.json b/www/lib/angular-mocks/bower.json new file mode 100644 index 00000000..09d2e7cf --- /dev/null +++ b/www/lib/angular-mocks/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-mocks", + "version": "1.2.16", + "main": "./angular-mocks.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/www/lib/angular-moment/angular-moment.js b/www/lib/angular-moment/angular-moment.js new file mode 100644 index 00000000..47157f7e --- /dev/null +++ b/www/lib/angular-moment/angular-moment.js @@ -0,0 +1,727 @@ + +/* angular-moment.js / v1.0.0-beta.3 / (c) 2013, 2014, 2015 Uri Shaked / MIT Licence */ + +'format amd'; +/* global define */ + +(function () { + 'use strict'; + + function isUndefinedOrNull(val) { + return angular.isUndefined(val) || val === null; + } + + function requireMoment() { + try { + return require('moment'); // Using nw.js or browserify? + } catch (e) { + throw new Error('Please install moment via npm. Please reference to: https://github.com/urish/angular-moment'); // Add wiki/troubleshooting section? + } + } + + function angularMoment(angular, moment) { + + if(typeof moment === 'undefined') { + if(typeof require === 'function') { + moment = requireMoment(); + }else{ + throw new Error('Moment cannot be found by angular-moment! Please reference to: https://github.com/urish/angular-moment'); // Add wiki/troubleshooting section? + } + } + + /** + * @ngdoc overview + * @name angularMoment + * + * @description + * angularMoment module provides moment.js functionality for angular.js apps. + */ + return angular.module('angularMoment', []) + + /** + * @ngdoc object + * @name angularMoment.config:angularMomentConfig + * + * @description + * Common configuration of the angularMoment module + */ + .constant('angularMomentConfig', { + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#preprocess + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {function} A preprocessor function that will be applied on all incoming dates + * + * @description + * Defines a preprocessor function to apply on all input dates (e.g. the input of `am-time-ago`, + * `amCalendar`, etc.). The function must return a `moment` object. + * + * @example + * // Causes angular-moment to always treat the input values as unix timestamps + * angularMomentConfig.preprocess = function(value) { + * return moment.unix(value); + * } + */ + preprocess: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#timezone + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {string} The default timezone + * + * @description + * The default timezone (e.g. 'Europe/London'). Empty string by default (does not apply + * any timezone shift). + * + * NOTE: This option requires moment-timezone >= 0.3.0. + */ + timezone: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#format + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {string} The pre-conversion format of the date + * + * @description + * Specify the format of the input date. Essentially it's a + * default and saves you from specifying a format in every + * element. Overridden by element attr. Null by default. + */ + format: null, + + /** + * @ngdoc property + * @name angularMoment.config.angularMomentConfig#statefulFilters + * @propertyOf angularMoment.config:angularMomentConfig + * @returns {boolean} Whether angular-moment filters should be stateless (or not) + * + * @description + * Specifies whether the filters included with angular-moment are stateful. + * Stateful filters will automatically re-evaluate whenever you change the timezone + * or locale settings, but may negatively impact performance. true by default. + */ + statefulFilters: true + }) + + /** + * @ngdoc object + * @name angularMoment.object:moment + * + * @description + * moment global (as provided by the moment.js library) + */ + .constant('moment', moment) + + /** + * @ngdoc object + * @name angularMoment.config:amTimeAgoConfig + * @module angularMoment + * + * @description + * configuration specific to the amTimeAgo directive + */ + .constant('amTimeAgoConfig', { + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#withoutSuffix + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {boolean} Whether to include a suffix in am-time-ago directive + * + * @description + * Defaults to false. + */ + withoutSuffix: false, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#serverTime + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {number} Server time in milliseconds since the epoch + * + * @description + * If set, time ago will be calculated relative to the given value. + * If null, local time will be used. Defaults to null. + */ + serverTime: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#titleFormat + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {string} The format of the date to be displayed in the title of the element. If null, + * the directive set the title of the element. + * + * @description + * The format of the date used for the title of the element. null by default. + */ + titleFormat: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#fullDateThreshold + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {number} The minimum number of days for showing a full date instead of relative time + * + * @description + * The threshold for displaying a full date. The default is null, which means the date will always + * be relative, and full date will never be displayed. + */ + fullDateThreshold: null, + + /** + * @ngdoc property + * @name angularMoment.config.amTimeAgoConfig#fullDateFormat + * @propertyOf angularMoment.config:amTimeAgoConfig + * @returns {string} The format to use when displaying a full date. + * + * @description + * Specify the format of the date when displayed as full date. null by default. + */ + fullDateFormat: null + }) + + /** + * @ngdoc directive + * @name angularMoment.directive:amTimeAgo + * @module angularMoment + * + * @restrict A + */ + .directive('amTimeAgo', ['$window', 'moment', 'amMoment', 'amTimeAgoConfig', function ($window, moment, amMoment, amTimeAgoConfig) { + + return function (scope, element, attr) { + var activeTimeout = null; + var currentValue; + var withoutSuffix = amTimeAgoConfig.withoutSuffix; + var titleFormat = amTimeAgoConfig.titleFormat; + var fullDateThreshold = amTimeAgoConfig.fullDateThreshold; + var fullDateFormat = amTimeAgoConfig.fullDateFormat; + var localDate = new Date().getTime(); + var modelName = attr.amTimeAgo; + var currentFrom; + var isTimeElement = ('TIME' === element[0].nodeName.toUpperCase()); + var setTitleTime = !element.attr('title'); + + function getNow() { + var now; + if (currentFrom) { + now = currentFrom; + } else if (amTimeAgoConfig.serverTime) { + var localNow = new Date().getTime(); + var nowMillis = localNow - localDate + amTimeAgoConfig.serverTime; + now = moment(nowMillis); + } + else { + now = moment(); + } + return now; + } + + function cancelTimer() { + if (activeTimeout) { + $window.clearTimeout(activeTimeout); + activeTimeout = null; + } + } + + function updateTime(momentInstance) { + var daysAgo = getNow().diff(momentInstance, 'day'); + var showFullDate = fullDateThreshold && daysAgo >= fullDateThreshold; + + if (showFullDate) { + element.text(momentInstance.format(fullDateFormat)); + } else { + element.text(momentInstance.from(getNow(), withoutSuffix)); + } + + if (titleFormat && setTitleTime) { + element.attr('title', momentInstance.local().format(titleFormat)); + } + + if (!showFullDate) { + var howOld = Math.abs(getNow().diff(momentInstance, 'minute')); + var secondsUntilUpdate = 3600; + if (howOld < 1) { + secondsUntilUpdate = 1; + } else if (howOld < 60) { + secondsUntilUpdate = 30; + } else if (howOld < 180) { + secondsUntilUpdate = 300; + } + + activeTimeout = $window.setTimeout(function () { + updateTime(momentInstance); + }, secondsUntilUpdate * 1000); + } + } + + function updateDateTimeAttr(value) { + if (isTimeElement) { + element.attr('datetime', value); + } + } + + function updateMoment() { + cancelTimer(); + if (currentValue) { + var momentValue = amMoment.preprocessDate(currentValue); + updateTime(momentValue); + updateDateTimeAttr(momentValue.toISOString()); + } + } + + scope.$watch(modelName, function (value) { + if (isUndefinedOrNull(value) || (value === '')) { + cancelTimer(); + if (currentValue) { + element.text(''); + updateDateTimeAttr(''); + currentValue = null; + } + return; + } + + currentValue = value; + updateMoment(); + }); + + if (angular.isDefined(attr.amFrom)) { + scope.$watch(attr.amFrom, function (value) { + if (isUndefinedOrNull(value) || (value === '')) { + currentFrom = null; + } else { + currentFrom = moment(value); + } + updateMoment(); + }); + } + + if (angular.isDefined(attr.amWithoutSuffix)) { + scope.$watch(attr.amWithoutSuffix, function (value) { + if (typeof value === 'boolean') { + withoutSuffix = value; + updateMoment(); + } else { + withoutSuffix = amTimeAgoConfig.withoutSuffix; + } + }); + } + + attr.$observe('amFullDateThreshold', function (newValue) { + fullDateThreshold = newValue; + updateMoment(); + }); + + attr.$observe('amFullDateFormat', function (newValue) { + fullDateFormat = newValue; + updateMoment(); + }); + + scope.$on('$destroy', function () { + cancelTimer(); + }); + + scope.$on('amMoment:localeChanged', function () { + updateMoment(); + }); + }; + }]) + + /** + * @ngdoc service + * @name angularMoment.service.amMoment + * @module angularMoment + */ + .service('amMoment', ['moment', '$rootScope', '$log', 'angularMomentConfig', function (moment, $rootScope, $log, angularMomentConfig) { + var defaultTimezone = null; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#changeLocale + * @methodOf angularMoment.service.amMoment + * + * @description + * Changes the locale for moment.js and updates all the am-time-ago directive instances + * with the new locale. Also broadcasts an `amMoment:localeChanged` event on $rootScope. + * + * @param {string} locale Locale code (e.g. en, es, ru, pt-br, etc.) + * @param {object} customization object of locale strings to override + */ + this.changeLocale = function (locale, customization) { + var result = moment.locale(locale, customization); + if (angular.isDefined(locale)) { + $rootScope.$broadcast('amMoment:localeChanged'); + + } + return result; + }; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#changeTimezone + * @methodOf angularMoment.service.amMoment + * + * @description + * Changes the default timezone for amCalendar, amDateFormat and amTimeAgo. Also broadcasts an + * `amMoment:timezoneChanged` event on $rootScope. + * + * Note: this method works only if moment-timezone > 0.3.0 is loaded + * + * @param {string} timezone Timezone name (e.g. UTC) + */ + this.changeTimezone = function (timezone) { + if (moment.tz && moment.tz.setDefault) { + moment.tz.setDefault(timezone); + $rootScope.$broadcast('amMoment:timezoneChanged'); + } else { + $log.warn('angular-moment: changeTimezone() works only with moment-timezone.js v0.3.0 or greater.'); + } + angularMomentConfig.timezone = timezone; + defaultTimezone = timezone; + }; + + /** + * @ngdoc function + * @name angularMoment.service.amMoment#preprocessDate + * @methodOf angularMoment.service.amMoment + * + * @description + * Preprocess a given value and convert it into a Moment instance appropriate for use in the + * am-time-ago directive and the filters. The behavior of this function can be overriden by + * setting `angularMomentConfig.preprocess`. + * + * @param {*} value The value to be preprocessed + * @return {Moment} A `moment` object + */ + this.preprocessDate = function (value) { + // Configure the default timezone if needed + if (defaultTimezone !== angularMomentConfig.timezone) { + this.changeTimezone(angularMomentConfig.timezone); + } + + if (angularMomentConfig.preprocess) { + return angularMomentConfig.preprocess(value); + } + + if (!isNaN(parseFloat(value)) && isFinite(value)) { + // Milliseconds since the epoch + return moment(parseInt(value, 10)); + } + + // else just returns the value as-is. + return moment(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amParse + * @module angularMoment + */ + .filter('amParse', ['moment', function (moment) { + return function (value, format) { + return moment(value, format); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amFromUnix + * @module angularMoment + */ + .filter('amFromUnix', ['moment', function (moment) { + return function (value) { + return moment.unix(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amUtc + * @module angularMoment + */ + .filter('amUtc', ['moment', function (moment) { + return function (value) { + return moment.utc(value); + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amUtcOffset + * @module angularMoment + * + * @description + * Adds a UTC offset to the given timezone object. The offset can be a number of minutes, or a string such as + * '+0300', '-0300' or 'Z'. + */ + .filter('amUtcOffset', ['amMoment', function (amMoment) { + function amUtcOffset(value, offset) { + return amMoment.preprocessDate(value).utcOffset(offset); + } + + return amUtcOffset; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amLocal + * @module angularMoment + */ + .filter('amLocal', ['moment', function (moment) { + return function (value) { + return moment.isMoment(value) ? value.local() : null; + }; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amTimezone + * @module angularMoment + * + * @description + * Apply a timezone onto a given moment object, e.g. 'America/Phoenix'). + * + * You need to include moment-timezone.js for timezone support. + */ + .filter('amTimezone', ['amMoment', 'angularMomentConfig', '$log', function (amMoment, angularMomentConfig, $log) { + function amTimezone(value, timezone) { + var aMoment = amMoment.preprocessDate(value); + + if (!timezone) { + return aMoment; + } + + if (aMoment.tz) { + return aMoment.tz(timezone); + } else { + $log.warn('angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js ?'); + return aMoment; + } + } + + return amTimezone; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amCalendar + * @module angularMoment + */ + .filter('amCalendar', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amCalendarFilter(value) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + return date.isValid() ? date.calendar() : ''; + } + + // Since AngularJS 1.3, filters have to explicitly define being stateful + // (this is no longer the default). + amCalendarFilter.$stateful = angularMomentConfig.statefulFilters; + + return amCalendarFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDifference + * @module angularMoment + */ + .filter('amDifference', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amDifferenceFilter(value, otherValue, unit, usePrecision) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + var date2 = !isUndefinedOrNull(otherValue) ? amMoment.preprocessDate(otherValue) : moment(); + + if (!date.isValid() || !date2.isValid()) { + return ''; + } + + return date.diff(date2, unit, usePrecision); + } + + amDifferenceFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDifferenceFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDateFormat + * @module angularMoment + * @function + */ + .filter('amDateFormat', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amDateFormatFilter(value, format) { + if (isUndefinedOrNull(value)) { + return ''; + } + + var date = amMoment.preprocessDate(value); + if (!date.isValid()) { + return ''; + } + + return date.format(format); + } + + amDateFormatFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDateFormatFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amDurationFormat + * @module angularMoment + * @function + */ + .filter('amDurationFormat', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amDurationFormatFilter(value, format, suffix) { + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment.duration(value, format).humanize(suffix); + } + + amDurationFormatFilter.$stateful = angularMomentConfig.statefulFilters; + + return amDurationFormatFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amTimeAgo + * @module angularMoment + * @function + */ + .filter('amTimeAgo', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) { + function amTimeAgoFilter(value, suffix, from) { + var date, dateFrom; + + if (isUndefinedOrNull(value)) { + return ''; + } + + value = amMoment.preprocessDate(value); + date = moment(value); + if (!date.isValid()) { + return ''; + } + + dateFrom = moment(from); + if (!isUndefinedOrNull(from) && dateFrom.isValid()) { + return date.from(dateFrom, suffix); + } + + return date.fromNow(suffix); + } + + amTimeAgoFilter.$stateful = angularMomentConfig.statefulFilters; + + return amTimeAgoFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amSubtract + * @module angularMoment + * @function + */ + .filter('amSubtract', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amSubtractFilter(value, amount, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).subtract(parseInt(amount, 10), type); + } + + amSubtractFilter.$stateful = angularMomentConfig.statefulFilters; + + return amSubtractFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amAdd + * @module angularMoment + * @function + */ + .filter('amAdd', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amAddFilter(value, amount, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).add(parseInt(amount, 10), type); + } + + amAddFilter.$stateful = angularMomentConfig.statefulFilters; + + return amAddFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amStartOf + * @module angularMoment + * @function + */ + .filter('amStartOf', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amStartOfFilter(value, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).startOf(type); + } + + amStartOfFilter.$stateful = angularMomentConfig.statefulFilters; + + return amStartOfFilter; + }]) + + /** + * @ngdoc filter + * @name angularMoment.filter:amEndOf + * @module angularMoment + * @function + */ + .filter('amEndOf', ['moment', 'angularMomentConfig', function (moment, angularMomentConfig) { + function amEndOfFilter(value, type) { + + if (isUndefinedOrNull(value)) { + return ''; + } + + return moment(value).endOf(type); + } + + amEndOfFilter.$stateful = angularMomentConfig.statefulFilters; + + return amEndOfFilter; + }]); + } + + if (typeof define === 'function' && define.amd) { + define(['angular', 'moment'], angularMoment); + } else if (typeof module !== 'undefined' && module && module.exports) { + angularMoment(require('angular'), require('moment')); + module.exports = 'angularMoment'; + } else { + angularMoment(angular, (typeof global !== 'undefined' ? global : window).moment); + } +})(); \ No newline at end of file diff --git a/www/lib/angular-resource/.bower.json b/www/lib/angular-resource/.bower.json new file mode 100644 index 00000000..a7e0b984 --- /dev/null +++ b/www/lib/angular-resource/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-resource", + "version": "1.2.16", + "main": "./angular-resource.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-resource", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "06a1d9f570fd47b767b019881d523a3f3416ca93" + }, + "_source": "git://github.com/angular/bower-angular-resource.git", + "_target": "1.2.16", + "_originalSource": "angular-resource" +} \ No newline at end of file diff --git a/www/lib/angular-resource/README.md b/www/lib/angular-resource/README.md new file mode 100644 index 00000000..c8ac8146 --- /dev/null +++ b/www/lib/angular-resource/README.md @@ -0,0 +1,54 @@ +# bower-angular-resource + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngResource). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-resource +``` + +Add a ` +``` + +And add `ngResource` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngResource']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngResource). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-resource/angular-resource.js b/www/lib/angular-resource/angular-resource.js new file mode 100644 index 00000000..7014984c --- /dev/null +++ b/www/lib/angular-resource/angular-resource.js @@ -0,0 +1,610 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $resourceMinErr = angular.$$minErr('$resource'); + +// Helper functions and regex to lookup a dotted path on an object +// stopping at undefined/null. The path must be composed of ASCII +// identifiers (just like $parse) +var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/; + +function isValidDottedPath(path) { + return (path != null && path !== '' && path !== 'hasOwnProperty' && + MEMBER_NAME_REGEX.test('.' + path)); +} + +function lookupDottedPath(obj, path) { + if (!isValidDottedPath(path)) { + throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path); + } + var keys = path.split('.'); + for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) { + var key = keys[i]; + obj = (obj !== null) ? obj[key] : undefined; + } + return obj; +} + +/** + * Create a shallow copy of an object and clear other fields from the destination + */ +function shallowClearAndCopy(src, dst) { + dst = dst || {}; + + angular.forEach(dst, function(value, key){ + delete dst[key]; + }); + + for (var key in src) { + if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) { + dst[key] = src[key]; + } + } + + return dst; +} + +/** + * @ngdoc module + * @name ngResource + * @description + * + * # ngResource + * + * The `ngResource` module provides interaction support with RESTful services + * via the $resource service. + * + * + *
+ * + * See {@link ngResource.$resource `$resource`} for usage. + */ + +/** + * @ngdoc service + * @name $resource + * @requires $http + * + * @description + * A factory which creates a resource object that lets you interact with + * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. + * + * The returned resource object has action methods which provide high-level behaviors without + * the need to interact with the low level {@link ng.$http $http} service. + * + * Requires the {@link ngResource `ngResource`} module to be installed. + * + * @param {string} url A parametrized URL template with parameters prefixed by `:` as in + * `/user/:username`. If you are using a URL with a port number (e.g. + * `http://example.com:8080/api`), it will be respected. + * + * If you are using a url with a suffix, just add the suffix, like this: + * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` + * or even `$resource('http://example.com/resource/:resource_id.:format')` + * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you + * can escape it with `/\.`. + * + * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in + * `actions` methods. If any of the parameter value is a function, it will be executed every time + * when a param value needs to be obtained for a request (unless the param was overridden). + * + * Each key value in the parameter object is first bound to url template if present and then any + * excess keys are appended to the url search query after the `?`. + * + * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in + * URL `/path/greet?salutation=Hello`. + * + * If the parameter value is prefixed with `@` then the value of that parameter is extracted from + * the data object (useful for non-GET operations). + * + * @param {Object.=} actions Hash with declaration of custom action that should extend + * the default set of resource actions. The declaration should be created in the format of {@link + * ng.$http#usage_parameters $http.config}: + * + * {action1: {method:?, params:?, isArray:?, headers:?, ...}, + * action2: {method:?, params:?, isArray:?, headers:?, ...}, + * ...} + * + * Where: + * + * - **`action`** – {string} – The name of action. This name becomes the name of the method on + * your resource object. + * - **`method`** – {string} – HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, + * `DELETE`, and `JSONP`. + * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of + * the parameter value is a function, it will be executed every time when a param value needs to + * be obtained for a request (unless the param was overridden). + * - **`url`** – {string} – action specific `url` override. The url templating is supported just + * like for the resource-level urls. + * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, + * see `returns` section. + * - **`transformRequest`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * - **`transformResponse`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body and headers and returns its transformed (typically deserialized) version. + * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that + * should abort the request when resolved. + * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See + * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5) + * for more information. + * - **`responseType`** - `{string}` - see + * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - + * `response` and `responseError`. Both `response` and `responseError` interceptors get called + * with `http response` object. See {@link ng.$http $http interceptors}. + * + * @returns {Object} A resource "class" object with methods for the default set of resource actions + * optionally extended with custom `actions`. The default set contains these actions: + * ```js + * { 'get': {method:'GET'}, + * 'save': {method:'POST'}, + * 'query': {method:'GET', isArray:true}, + * 'remove': {method:'DELETE'}, + * 'delete': {method:'DELETE'} }; + * ``` + * + * Calling these methods invoke an {@link ng.$http} with the specified http method, + * destination and parameters. When the data is returned from the server then the object is an + * instance of the resource class. The actions `save`, `remove` and `delete` are available on it + * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, + * read, update, delete) on server-side data like this: + * ```js + * var User = $resource('/user/:userId', {userId:'@id'}); + * var user = User.get({userId:123}, function() { + * user.abc = true; + * user.$save(); + * }); + * ``` + * + * It is important to realize that invoking a $resource object method immediately returns an + * empty reference (object or array depending on `isArray`). Once the data is returned from the + * server the existing reference is populated with the actual data. This is a useful trick since + * usually the resource is assigned to a model which is then rendered by the view. Having an empty + * object results in no rendering, once the data arrives from the server then the object is + * populated with the data and the view automatically re-renders itself showing the new data. This + * means that in most cases one never has to write a callback function for the action methods. + * + * The action methods on the class object or instance object can be invoked with the following + * parameters: + * + * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` + * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` + * - non-GET instance actions: `instance.$action([parameters], [success], [error])` + * + * Success callback is called with (value, responseHeaders) arguments. Error callback is called + * with (httpResponse) argument. + * + * Class actions return empty instance (with additional properties below). + * Instance actions return promise of the action. + * + * The Resource instances and collection have these additional properties: + * + * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this + * instance or collection. + * + * On success, the promise is resolved with the same resource instance or collection object, + * updated with data from server. This makes it easy to use in + * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view + * rendering until the resource(s) are loaded. + * + * On failure, the promise is resolved with the {@link ng.$http http response} object, without + * the `resource` property. + * + * If an interceptor object was provided, the promise will instead be resolved with the value + * returned by the interceptor. + * + * - `$resolved`: `true` after first server interaction is completed (either with success or + * rejection), `false` before that. Knowing if the Resource has been resolved is useful in + * data-binding. + * + * @example + * + * # Credit card resource + * + * ```js + // Define CreditCard class + var CreditCard = $resource('/user/:userId/card/:cardId', + {userId:123, cardId:'@id'}, { + charge: {method:'POST', params:{charge:true}} + }); + + // We can retrieve a collection from the server + var cards = CreditCard.query(function() { + // GET: /user/123/card + // server returns: [ {id:456, number:'1234', name:'Smith'} ]; + + var card = cards[0]; + // each item is an instance of CreditCard + expect(card instanceof CreditCard).toEqual(true); + card.name = "J. Smith"; + // non GET methods are mapped onto the instances + card.$save(); + // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} + // server returns: {id:456, number:'1234', name: 'J. Smith'}; + + // our custom method is mapped as well. + card.$charge({amount:9.99}); + // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} + }); + + // we can create an instance as well + var newCard = new CreditCard({number:'0123'}); + newCard.name = "Mike Smith"; + newCard.$save(); + // POST: /user/123/card {number:'0123', name:'Mike Smith'} + // server returns: {id:789, number:'0123', name: 'Mike Smith'}; + expect(newCard.id).toEqual(789); + * ``` + * + * The object returned from this function execution is a resource "class" which has "static" method + * for each action in the definition. + * + * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and + * `headers`. + * When the data is returned from the server then the object is an instance of the resource type and + * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD + * operations (create, read, update, delete) on server-side data. + + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(user) { + user.abc = true; + user.$save(); + }); + ``` + * + * It's worth noting that the success callback for `get`, `query` and other methods gets passed + * in the response that came from the server as well as $http header getter function, so one + * could rewrite the above example and get access to http headers as: + * + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(u, getResponseHeaders){ + u.abc = true; + u.$save(function(u, putResponseHeaders) { + //u => saved user object + //putResponseHeaders => $http header getter + }); + }); + ``` + * + * You can also access the raw `$http` promise via the `$promise` property on the object returned + * + ``` + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}) + .$promise.then(function(user) { + $scope.user = user; + }); + ``` + + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + * ```js + * var app = angular.module('app', ['ngResource', 'ngRoute']); + * + * // Some APIs expect a PUT request in the format URL/object/ID + * // Here we are creating an 'update' method + * app.factory('Notes', ['$resource', function($resource) { + * return $resource('/notes/:id', null, + * { + * 'update': { method:'PUT' } + * }); + * }]); + * + * // In our controller we get the ID from the URL using ngRoute and $routeParams + * // We pass in $routeParams and our Notes factory along with $scope + * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', + function($scope, $routeParams, Notes) { + * // First get a note object from the factory + * var note = Notes.get({ id:$routeParams.id }); + * $id = note.id; + * + * // Now call update passing in the ID first then the object you are updating + * Notes.update({ id:$id }, note); + * + * // This will PUT /notes/ID with the note object in the request payload + * }]); + * ``` + */ +angular.module('ngResource', ['ng']). + factory('$resource', ['$http', '$q', function($http, $q) { + + var DEFAULT_ACTIONS = { + 'get': {method:'GET'}, + 'save': {method:'POST'}, + 'query': {method:'GET', isArray:true}, + 'remove': {method:'DELETE'}, + 'delete': {method:'DELETE'} + }; + var noop = angular.noop, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + isFunction = angular.isFunction; + + /** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path + * segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); + } + + + /** + * This method is intended for encoding *key* or *value* parts of query component. We need a + * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't + * have to be encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); + } + + function Route(template, defaults) { + this.template = template; + this.defaults = defaults || {}; + this.urlParams = {}; + } + + Route.prototype = { + setUrlParams: function(config, params, actionUrl) { + var self = this, + url = actionUrl || self.template, + val, + encodedVal; + + var urlParams = self.urlParams = {}; + forEach(url.split(/\W/), function(param){ + if (param === 'hasOwnProperty') { + throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); + } + if (!(new RegExp("^\\d+$").test(param)) && param && + (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + urlParams[param] = true; + } + }); + url = url.replace(/\\:/g, ':'); + + params = params || {}; + forEach(self.urlParams, function(_, urlParam){ + val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; + if (angular.isDefined(val) && val !== null) { + encodedVal = encodeUriSegment(val); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { + return encodedVal + p1; + }); + } else { + url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, + leadingSlashes, tail) { + if (tail.charAt(0) == '/') { + return tail; + } else { + return leadingSlashes + tail; + } + }); + } + }); + + // strip trailing slashes and set the url + url = url.replace(/\/+$/, '') || '/'; + // then replace collapse `/.` if found in the last URL path segment before the query + // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` + url = url.replace(/\/\.(?=\w+($|\?))/, '.'); + // replace escaped `/\.` with `/.` + config.url = url.replace(/\/\\\./, '/.'); + + + // set params - delegate param encoding to $http + forEach(params, function(value, key){ + if (!self.urlParams[key]) { + config.params = config.params || {}; + config.params[key] = value; + } + }); + } + }; + + + function resourceFactory(url, paramDefaults, actions) { + var route = new Route(url); + + actions = extend({}, DEFAULT_ACTIONS, actions); + + function extractParams(data, actionParams){ + var ids = {}; + actionParams = extend({}, paramDefaults, actionParams); + forEach(actionParams, function(value, key){ + if (isFunction(value)) { value = value(); } + ids[key] = value && value.charAt && value.charAt(0) == '@' ? + lookupDottedPath(data, value.substr(1)) : value; + }); + return ids; + } + + function defaultResponseInterceptor(response) { + return response.resource; + } + + function Resource(value){ + shallowClearAndCopy(value || {}, this); + } + + forEach(actions, function(action, name) { + var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); + + Resource[name] = function(a1, a2, a3, a4) { + var params = {}, data, success, error; + + /* jshint -W086 */ /* (purposefully fall through case statements) */ + switch(arguments.length) { + case 4: + error = a4; + success = a3; + //fallthrough + case 3: + case 2: + if (isFunction(a2)) { + if (isFunction(a1)) { + success = a1; + error = a2; + break; + } + + success = a2; + error = a3; + //fallthrough + } else { + params = a1; + data = a2; + success = a3; + break; + } + case 1: + if (isFunction(a1)) success = a1; + else if (hasBody) data = a1; + else params = a1; + break; + case 0: break; + default: + throw $resourceMinErr('badargs', + "Expected up to 4 arguments [params, data, success, error], got {0} arguments", + arguments.length); + } + /* jshint +W086 */ /* (purposefully fall through case statements) */ + + var isInstanceCall = this instanceof Resource; + var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); + var httpConfig = {}; + var responseInterceptor = action.interceptor && action.interceptor.response || + defaultResponseInterceptor; + var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || + undefined; + + forEach(action, function(value, key) { + if (key != 'params' && key != 'isArray' && key != 'interceptor') { + httpConfig[key] = copy(value); + } + }); + + if (hasBody) httpConfig.data = data; + route.setUrlParams(httpConfig, + extend({}, extractParams(data, action.params || {}), params), + action.url); + + var promise = $http(httpConfig).then(function(response) { + var data = response.data, + promise = value.$promise; + + if (data) { + // Need to convert action.isArray to boolean in case it is undefined + // jshint -W018 + if (angular.isArray(data) !== (!!action.isArray)) { + throw $resourceMinErr('badcfg', 'Error in resource configuration. Expected ' + + 'response to contain an {0} but got an {1}', + action.isArray?'array':'object', angular.isArray(data)?'array':'object'); + } + // jshint +W018 + if (action.isArray) { + value.length = 0; + forEach(data, function(item) { + value.push(new Resource(item)); + }); + } else { + shallowClearAndCopy(data, value); + value.$promise = promise; + } + } + + value.$resolved = true; + + response.resource = value; + + return response; + }, function(response) { + value.$resolved = true; + + (error||noop)(response); + + return $q.reject(response); + }); + + promise = promise.then( + function(response) { + var value = responseInterceptor(response); + (success||noop)(value, response.headers); + return value; + }, + responseErrorInterceptor); + + if (!isInstanceCall) { + // we are creating instance / collection + // - set the initial promise + // - return the instance / collection + value.$promise = promise; + value.$resolved = false; + + return value; + } + + // instance call + return promise; + }; + + + Resource.prototype['$' + name] = function(params, success, error) { + if (isFunction(params)) { + error = success; success = params; params = {}; + } + var result = Resource[name].call(this, params, this, success, error); + return result.$promise || result; + }; + }); + + Resource.bind = function(additionalParamDefaults){ + return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); + }; + + return Resource; + } + + return resourceFactory; + }]); + + +})(window, window.angular); diff --git a/www/lib/angular-resource/angular-resource.min.js b/www/lib/angular-resource/angular-resource.min.js new file mode 100644 index 00000000..eac389ed --- /dev/null +++ b/www/lib/angular-resource/angular-resource.min.js @@ -0,0 +1,13 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&& +b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f` to your `index.html`: + +```html + +``` + +And add `ngRoute` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngRoute']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngRoute). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-route/angular-route.js b/www/lib/angular-route/angular-route.js new file mode 100644 index 00000000..f7ebda8b --- /dev/null +++ b/www/lib/angular-route/angular-route.js @@ -0,0 +1,927 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngRoute + * @description + * + * # ngRoute + * + * The `ngRoute` module provides routing and deeplinking services and directives for angular apps. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * + *
+ */ + /* global -ngRouteModule */ +var ngRouteModule = angular.module('ngRoute', ['ng']). + provider('$route', $RouteProvider); + +/** + * @ngdoc provider + * @name $routeProvider + * @function + * + * @description + * + * Used for configuring routes. + * + * ## Example + * See {@link ngRoute.$route#example $route} for an example of configuring and using `ngRoute`. + * + * ## Dependencies + * Requires the {@link ngRoute `ngRoute`} module to be installed. + */ +function $RouteProvider(){ + function inherit(parent, extra) { + return angular.extend(new (angular.extend(function() {}, {prototype:parent}))(), extra); + } + + var routes = {}; + + /** + * @ngdoc method + * @name $routeProvider#when + * + * @param {string} path Route path (matched against `$location.path`). If `$location.path` + * contains redundant trailing slash or is missing one, the route will still match and the + * `$location.path` will be updated to add or drop the trailing slash to exactly match the + * route definition. + * + * * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up + * to the next slash are matched and stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain named groups starting with a colon and ending with a star: + * e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name` + * when the route matches. + * * `path` can contain optional named groups with a question mark: e.g.`:name?`. + * + * For example, routes like `/color/:color/largecode/:largecode*\/edit` will match + * `/color/brown/largecode/code/with/slashes/edit` and extract: + * + * * `color: brown` + * * `largecode: code/with/slashes`. + * + * + * @param {Object} route Mapping information to be assigned to `$route.current` on route + * match. + * + * Object properties: + * + * - `controller` – `{(string|function()=}` – Controller fn that should be associated with + * newly created scope or the name of a {@link angular.Module#controller registered + * controller} if passed as a string. + * - `controllerAs` – `{string=}` – A controller alias name. If present the controller will be + * published to scope under the `controllerAs` name. + * - `template` – `{string=|function()=}` – html template as a string or a function that + * returns an html template as a string which should be used by {@link + * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives. + * This property takes precedence over `templateUrl`. + * + * If `template` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html + * template that should be used by {@link ngRoute.directive:ngView ngView}. + * + * If `templateUrl` is a function, it will be called with the following parameters: + * + * - `{Array.}` - route parameters extracted from the current + * `$location.path()` by applying the current route + * + * - `resolve` - `{Object.=}` - An optional map of dependencies which should + * be injected into the controller. If any of these dependencies are promises, the router + * will wait for them all to be resolved or one to be rejected before the controller is + * instantiated. + * If all the promises are resolved successfully, the values of the resolved promises are + * injected and {@link ngRoute.$route#$routeChangeSuccess $routeChangeSuccess} event is + * fired. If any of the promises are rejected the + * {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired. The map object + * is: + * + * - `key` – `{string}`: a name of a dependency to be injected into the controller. + * - `factory` - `{string|function}`: If `string` then it is an alias for a service. + * Otherwise if function, then it is {@link auto.$injector#invoke injected} + * and the return value is treated as the dependency. If the result is a promise, it is + * resolved before its value is injected into the controller. Be aware that + * `ngRoute.$routeParams` will still refer to the previous route within these resolve + * functions. Use `$route.current.params` to access the new route parameters, instead. + * + * - `redirectTo` – {(string|function())=} – value to update + * {@link ng.$location $location} path with and trigger route redirection. + * + * If `redirectTo` is a function, it will be called with the following parameters: + * + * - `{Object.}` - route parameters extracted from the current + * `$location.path()` by applying the current route templateUrl. + * - `{string}` - current `$location.path()` + * - `{Object}` - current `$location.search()` + * + * The custom `redirectTo` function is expected to return a string which will be used + * to update `$location.path()` and `$location.search()`. + * + * - `[reloadOnSearch=true]` - {boolean=} - reload route when only `$location.search()` + * or `$location.hash()` changes. + * + * If the option is set to `false` and url in the browser changes, then + * `$routeUpdate` event is broadcasted on the root scope. + * + * - `[caseInsensitiveMatch=false]` - {boolean=} - match routes without being case sensitive + * + * If the option is set to `true`, then the particular route can be matched without being + * case sensitive + * + * @returns {Object} self + * + * @description + * Adds a new route definition to the `$route` service. + */ + this.when = function(path, route) { + routes[path] = angular.extend( + {reloadOnSearch: true}, + route, + path && pathRegExp(path, route) + ); + + // create redirection for trailing slashes + if (path) { + var redirectPath = (path[path.length-1] == '/') + ? path.substr(0, path.length-1) + : path +'/'; + + routes[redirectPath] = angular.extend( + {redirectTo: path}, + pathRegExp(redirectPath, route) + ); + } + + return this; + }; + + /** + * @param path {string} path + * @param opts {Object} options + * @return {?Object} + * + * @description + * Normalizes the given path, returning a regular expression + * and the original path. + * + * Inspired by pathRexp in visionmedia/express/lib/utils.js. + */ + function pathRegExp(path, opts) { + var insensitive = opts.caseInsensitiveMatch, + ret = { + originalPath: path, + regexp: path + }, + keys = ret.keys = []; + + path = path + .replace(/([().])/g, '\\$1') + .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option){ + var optional = option === '?' ? option : null; + var star = option === '*' ? option : null; + keys.push({ name: key, optional: !!optional }); + slash = slash || ''; + return '' + + (optional ? '' : slash) + + '(?:' + + (optional ? slash : '') + + (star && '(.+?)' || '([^/]+)') + + (optional || '') + + ')' + + (optional || ''); + }) + .replace(/([\/$\*])/g, '\\$1'); + + ret.regexp = new RegExp('^' + path + '$', insensitive ? 'i' : ''); + return ret; + } + + /** + * @ngdoc method + * @name $routeProvider#otherwise + * + * @description + * Sets route definition that will be used on route change when no other route definition + * is matched. + * + * @param {Object} params Mapping information to be assigned to `$route.current`. + * @returns {Object} self + */ + this.otherwise = function(params) { + this.when(null, params); + return this; + }; + + + this.$get = ['$rootScope', + '$location', + '$routeParams', + '$q', + '$injector', + '$http', + '$templateCache', + '$sce', + function($rootScope, $location, $routeParams, $q, $injector, $http, $templateCache, $sce) { + + /** + * @ngdoc service + * @name $route + * @requires $location + * @requires $routeParams + * + * @property {Object} current Reference to the current route definition. + * The route definition contains: + * + * - `controller`: The controller constructor as define in route definition. + * - `locals`: A map of locals which is used by {@link ng.$controller $controller} service for + * controller instantiation. The `locals` contain + * the resolved values of the `resolve` map. Additionally the `locals` also contain: + * + * - `$scope` - The current route scope. + * - `$template` - The current route template HTML. + * + * @property {Object} routes Object with all route configuration Objects as its properties. + * + * @description + * `$route` is used for deep-linking URLs to controllers and views (HTML partials). + * It watches `$location.url()` and tries to map the path to an existing route definition. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * You can define routes through {@link ngRoute.$routeProvider $routeProvider}'s API. + * + * The `$route` service is typically used in conjunction with the + * {@link ngRoute.directive:ngView `ngView`} directive and the + * {@link ngRoute.$routeParams `$routeParams`} service. + * + * @example + * This example shows how changing the URL hash causes the `$route` to match a route against the + * URL, and the `ngView` pulls in the partial. + * + * Note that this example is using {@link ng.directive:script inlined templates} + * to get it working on jsfiddle as well. + * + * + * + *
+ * Choose: + * Moby | + * Moby: Ch1 | + * Gatsby | + * Gatsby: Ch4 | + * Scarlet Letter
+ * + *
+ * + *
+ * + *
$location.path() = {{$location.path()}}
+ *
$route.current.templateUrl = {{$route.current.templateUrl}}
+ *
$route.current.params = {{$route.current.params}}
+ *
$route.current.scope.name = {{$route.current.scope.name}}
+ *
$routeParams = {{$routeParams}}
+ *
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ *
+ * + * + * controller: {{name}}
+ * Book Id: {{params.bookId}}
+ * Chapter Id: {{params.chapterId}} + *
+ * + * + * angular.module('ngRouteExample', ['ngRoute']) + * + * .controller('MainController', function($scope, $route, $routeParams, $location) { + * $scope.$route = $route; + * $scope.$location = $location; + * $scope.$routeParams = $routeParams; + * }) + * + * .controller('BookController', function($scope, $routeParams) { + * $scope.name = "BookController"; + * $scope.params = $routeParams; + * }) + * + * .controller('ChapterController', function($scope, $routeParams) { + * $scope.name = "ChapterController"; + * $scope.params = $routeParams; + * }) + * + * .config(function($routeProvider, $locationProvider) { + * $routeProvider + * .when('/Book/:bookId', { + * templateUrl: 'book.html', + * controller: 'BookController', + * resolve: { + * // I will cause a 1 second delay + * delay: function($q, $timeout) { + * var delay = $q.defer(); + * $timeout(delay.resolve, 1000); + * return delay.promise; + * } + * } + * }) + * .when('/Book/:bookId/ch/:chapterId', { + * templateUrl: 'chapter.html', + * controller: 'ChapterController' + * }); + * + * // configure html5 to get links working on jsfiddle + * $locationProvider.html5Mode(true); + * }); + * + * + * + * + * it('should load and compile correct template', function() { + * element(by.linkText('Moby: Ch1')).click(); + * var content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: ChapterController/); + * expect(content).toMatch(/Book Id\: Moby/); + * expect(content).toMatch(/Chapter Id\: 1/); + * + * element(by.partialLinkText('Scarlet')).click(); + * + * content = element(by.css('[ng-view]')).getText(); + * expect(content).toMatch(/controller\: BookController/); + * expect(content).toMatch(/Book Id\: Scarlet/); + * }); + * + *
+ */ + + /** + * @ngdoc event + * @name $route#$routeChangeStart + * @eventType broadcast on root scope + * @description + * Broadcasted before a route change. At this point the route services starts + * resolving all of the dependencies needed for the route change to occur. + * Typically this involves fetching the view template as well as any dependencies + * defined in `resolve` route property. Once all of the dependencies are resolved + * `$routeChangeSuccess` is fired. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} next Future route information. + * @param {Route} current Current route information. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeSuccess + * @eventType broadcast on root scope + * @description + * Broadcasted after a route dependencies are resolved. + * {@link ngRoute.directive:ngView ngView} listens for the directive + * to instantiate the controller and render the view. + * + * @param {Object} angularEvent Synthetic event object. + * @param {Route} current Current route information. + * @param {Route|Undefined} previous Previous route information, or undefined if current is + * first route entered. + */ + + /** + * @ngdoc event + * @name $route#$routeChangeError + * @eventType broadcast on root scope + * @description + * Broadcasted if any of the resolve promises are rejected. + * + * @param {Object} angularEvent Synthetic event object + * @param {Route} current Current route information. + * @param {Route} previous Previous route information. + * @param {Route} rejection Rejection of the promise. Usually the error of the failed promise. + */ + + /** + * @ngdoc event + * @name $route#$routeUpdate + * @eventType broadcast on root scope + * @description + * + * The `reloadOnSearch` property has been set to false, and we are reusing the same + * instance of the Controller. + */ + + var forceReload = false, + $route = { + routes: routes, + + /** + * @ngdoc method + * @name $route#reload + * + * @description + * Causes `$route` service to reload the current route even if + * {@link ng.$location $location} hasn't changed. + * + * As a result of that, {@link ngRoute.directive:ngView ngView} + * creates new scope, reinstantiates the controller. + */ + reload: function() { + forceReload = true; + $rootScope.$evalAsync(updateRoute); + } + }; + + $rootScope.$on('$locationChangeSuccess', updateRoute); + + return $route; + + ///////////////////////////////////////////////////// + + /** + * @param on {string} current url + * @param route {Object} route regexp to match the url against + * @return {?Object} + * + * @description + * Check if the route matches the current url. + * + * Inspired by match in + * visionmedia/express/lib/router/router.js. + */ + function switchRouteMatcher(on, route) { + var keys = route.keys, + params = {}; + + if (!route.regexp) return null; + + var m = route.regexp.exec(on); + if (!m) return null; + + for (var i = 1, len = m.length; i < len; ++i) { + var key = keys[i - 1]; + + var val = 'string' == typeof m[i] + ? decodeURIComponent(m[i]) + : m[i]; + + if (key && val) { + params[key.name] = val; + } + } + return params; + } + + function updateRoute() { + var next = parseRoute(), + last = $route.current; + + if (next && last && next.$$route === last.$$route + && angular.equals(next.pathParams, last.pathParams) + && !next.reloadOnSearch && !forceReload) { + last.params = next.params; + angular.copy(last.params, $routeParams); + $rootScope.$broadcast('$routeUpdate', last); + } else if (next || last) { + forceReload = false; + $rootScope.$broadcast('$routeChangeStart', next, last); + $route.current = next; + if (next) { + if (next.redirectTo) { + if (angular.isString(next.redirectTo)) { + $location.path(interpolate(next.redirectTo, next.params)).search(next.params) + .replace(); + } else { + $location.url(next.redirectTo(next.pathParams, $location.path(), $location.search())) + .replace(); + } + } + } + + $q.when(next). + then(function() { + if (next) { + var locals = angular.extend({}, next.resolve), + template, templateUrl; + + angular.forEach(locals, function(value, key) { + locals[key] = angular.isString(value) ? + $injector.get(value) : $injector.invoke(value); + }); + + if (angular.isDefined(template = next.template)) { + if (angular.isFunction(template)) { + template = template(next.params); + } + } else if (angular.isDefined(templateUrl = next.templateUrl)) { + if (angular.isFunction(templateUrl)) { + templateUrl = templateUrl(next.params); + } + templateUrl = $sce.getTrustedResourceUrl(templateUrl); + if (angular.isDefined(templateUrl)) { + next.loadedTemplateUrl = templateUrl; + template = $http.get(templateUrl, {cache: $templateCache}). + then(function(response) { return response.data; }); + } + } + if (angular.isDefined(template)) { + locals['$template'] = template; + } + return $q.all(locals); + } + }). + // after route change + then(function(locals) { + if (next == $route.current) { + if (next) { + next.locals = locals; + angular.copy(next.params, $routeParams); + } + $rootScope.$broadcast('$routeChangeSuccess', next, last); + } + }, function(error) { + if (next == $route.current) { + $rootScope.$broadcast('$routeChangeError', next, last, error); + } + }); + } + } + + + /** + * @returns {Object} the current active route, by matching it against the URL + */ + function parseRoute() { + // Match a route + var params, match; + angular.forEach(routes, function(route, path) { + if (!match && (params = switchRouteMatcher($location.path(), route))) { + match = inherit(route, { + params: angular.extend({}, $location.search(), params), + pathParams: params}); + match.$$route = route; + } + }); + // No route matched; fallback to "otherwise" route + return match || routes[null] && inherit(routes[null], {params: {}, pathParams:{}}); + } + + /** + * @returns {string} interpolation of the redirect path with the parameters + */ + function interpolate(string, params) { + var result = []; + angular.forEach((string||'').split(':'), function(segment, i) { + if (i === 0) { + result.push(segment); + } else { + var segmentMatch = segment.match(/(\w+)(.*)/); + var key = segmentMatch[1]; + result.push(params[key]); + result.push(segmentMatch[2] || ''); + delete params[key]; + } + }); + return result.join(''); + } + }]; +} + +ngRouteModule.provider('$routeParams', $RouteParamsProvider); + + +/** + * @ngdoc service + * @name $routeParams + * @requires $route + * + * @description + * The `$routeParams` service allows you to retrieve the current set of route parameters. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * The route parameters are a combination of {@link ng.$location `$location`}'s + * {@link ng.$location#search `search()`} and {@link ng.$location#path `path()`}. + * The `path` parameters are extracted when the {@link ngRoute.$route `$route`} path is matched. + * + * In case of parameter name collision, `path` params take precedence over `search` params. + * + * The service guarantees that the identity of the `$routeParams` object will remain unchanged + * (but its properties will likely change) even when a route change occurs. + * + * Note that the `$routeParams` are only updated *after* a route change completes successfully. + * This means that you cannot rely on `$routeParams` being correct in route resolve functions. + * Instead you can use `$route.current.params` to access the new route's parameters. + * + * @example + * ```js + * // Given: + * // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby + * // Route: /Chapter/:chapterId/Section/:sectionId + * // + * // Then + * $routeParams ==> {chapterId:1, sectionId:2, search:'moby'} + * ``` + */ +function $RouteParamsProvider() { + this.$get = function() { return {}; }; +} + +ngRouteModule.directive('ngView', ngViewFactory); +ngRouteModule.directive('ngView', ngViewFillContentFactory); + + +/** + * @ngdoc directive + * @name ngView + * @restrict ECA + * + * @description + * # Overview + * `ngView` is a directive that complements the {@link ngRoute.$route $route} service by + * including the rendered template of the current route into the main layout (`index.html`) file. + * Every time the current route changes, the included view changes with it according to the + * configuration of the `$route` service. + * + * Requires the {@link ngRoute `ngRoute`} module to be installed. + * + * @animations + * enter - animation is used to bring new content into the browser. + * leave - animation is used to animate existing content away. + * + * The enter and leave animation occur concurrently. + * + * @scope + * @priority 400 + * @param {string=} onload Expression to evaluate whenever the view updates. + * + * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll + * $anchorScroll} to scroll the viewport after the view is updated. + * + * - If the attribute is not set, disable scrolling. + * - If the attribute is set without value, enable scrolling. + * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated + * as an expression yields a truthy value. + * @example + + +
+ Choose: + Moby | + Moby: Ch1 | + Gatsby | + Gatsby: Ch4 | + Scarlet Letter
+ +
+
+
+
+ +
$location.path() = {{main.$location.path()}}
+
$route.current.templateUrl = {{main.$route.current.templateUrl}}
+
$route.current.params = {{main.$route.current.params}}
+
$route.current.scope.name = {{main.$route.current.scope.name}}
+
$routeParams = {{main.$routeParams}}
+
+
+ + +
+ controller: {{book.name}}
+ Book Id: {{book.params.bookId}}
+
+
+ + +
+ controller: {{chapter.name}}
+ Book Id: {{chapter.params.bookId}}
+ Chapter Id: {{chapter.params.chapterId}} +
+
+ + + .view-animate-container { + position:relative; + height:100px!important; + position:relative; + background:white; + border:1px solid black; + height:40px; + overflow:hidden; + } + + .view-animate { + padding:10px; + } + + .view-animate.ng-enter, .view-animate.ng-leave { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s; + + display:block; + width:100%; + border-left:1px solid black; + + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + padding:10px; + } + + .view-animate.ng-enter { + left:100%; + } + .view-animate.ng-enter.ng-enter-active { + left:0; + } + .view-animate.ng-leave.ng-leave-active { + left:-100%; + } + + + + angular.module('ngViewExample', ['ngRoute', 'ngAnimate']) + .config(['$routeProvider', '$locationProvider', + function($routeProvider, $locationProvider) { + $routeProvider + .when('/Book/:bookId', { + templateUrl: 'book.html', + controller: 'BookCtrl', + controllerAs: 'book' + }) + .when('/Book/:bookId/ch/:chapterId', { + templateUrl: 'chapter.html', + controller: 'ChapterCtrl', + controllerAs: 'chapter' + }); + + // configure html5 to get links working on jsfiddle + $locationProvider.html5Mode(true); + }]) + .controller('MainCtrl', ['$route', '$routeParams', '$location', + function($route, $routeParams, $location) { + this.$route = $route; + this.$location = $location; + this.$routeParams = $routeParams; + }]) + .controller('BookCtrl', ['$routeParams', function($routeParams) { + this.name = "BookCtrl"; + this.params = $routeParams; + }]) + .controller('ChapterCtrl', ['$routeParams', function($routeParams) { + this.name = "ChapterCtrl"; + this.params = $routeParams; + }]); + + + + + it('should load and compile correct template', function() { + element(by.linkText('Moby: Ch1')).click(); + var content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: ChapterCtrl/); + expect(content).toMatch(/Book Id\: Moby/); + expect(content).toMatch(/Chapter Id\: 1/); + + element(by.partialLinkText('Scarlet')).click(); + + content = element(by.css('[ng-view]')).getText(); + expect(content).toMatch(/controller\: BookCtrl/); + expect(content).toMatch(/Book Id\: Scarlet/); + }); + +
+ */ + + +/** + * @ngdoc event + * @name ngView#$viewContentLoaded + * @eventType emit on the current ngView scope + * @description + * Emitted every time the ngView content is reloaded. + */ +ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate']; +function ngViewFactory( $route, $anchorScroll, $animate) { + return { + restrict: 'ECA', + terminal: true, + priority: 400, + transclude: 'element', + link: function(scope, $element, attr, ctrl, $transclude) { + var currentScope, + currentElement, + previousElement, + autoScrollExp = attr.autoscroll, + onloadExp = attr.onload || ''; + + scope.$on('$routeChangeSuccess', update); + update(); + + function cleanupLastView() { + if(previousElement) { + previousElement.remove(); + previousElement = null; + } + if(currentScope) { + currentScope.$destroy(); + currentScope = null; + } + if(currentElement) { + $animate.leave(currentElement, function() { + previousElement = null; + }); + previousElement = currentElement; + currentElement = null; + } + } + + function update() { + var locals = $route.current && $route.current.locals, + template = locals && locals.$template; + + if (angular.isDefined(template)) { + var newScope = scope.$new(); + var current = $route.current; + + // Note: This will also link all children of ng-view that were contained in the original + // html. If that content contains controllers, ... they could pollute/change the scope. + // However, using ng-view on an element with additional content does not make sense... + // Note: We can't remove them in the cloneAttchFn of $transclude as that + // function is called before linking the content, which would apply child + // directives to non existing elements. + var clone = $transclude(newScope, function(clone) { + $animate.enter(clone, null, currentElement || $element, function onNgViewEnter () { + if (angular.isDefined(autoScrollExp) + && (!autoScrollExp || scope.$eval(autoScrollExp))) { + $anchorScroll(); + } + }); + cleanupLastView(); + }); + + currentElement = clone; + currentScope = current.scope = newScope; + currentScope.$emit('$viewContentLoaded'); + currentScope.$eval(onloadExp); + } else { + cleanupLastView(); + } + } + } + }; +} + +// This directive is called during the $transclude call of the first `ngView` directive. +// It will replace and compile the content of the element with the loaded template. +// We need this directive so that the element content is already filled when +// the link function of another directive on the same element as ngView +// is called. +ngViewFillContentFactory.$inject = ['$compile', '$controller', '$route']; +function ngViewFillContentFactory($compile, $controller, $route) { + return { + restrict: 'ECA', + priority: -400, + link: function(scope, $element) { + var current = $route.current, + locals = current.locals; + + $element.html(locals.$template); + + var link = $compile($element.contents()); + + if (current.controller) { + locals.$scope = scope; + var controller = $controller(current.controller, locals); + if (current.controllerAs) { + scope[current.controllerAs] = controller; + } + $element.data('$ngControllerController', controller); + $element.children().data('$ngControllerController', controller); + } + + link(scope); + } + }; +} + + +})(window, window.angular); diff --git a/www/lib/angular-route/angular-route.min.js b/www/lib/angular-route/angular-route.min.js new file mode 100644 index 00000000..aef1fd60 --- /dev/null +++ b/www/lib/angular-route/angular-route.min.js @@ -0,0 +1,14 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(n,e,A){'use strict';function x(s,g,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,w){function y(){p&&(p.remove(),p=null);h&&(h.$destroy(),h=null);l&&(k.leave(l,function(){p=null}),p=l,l=null)}function v(){var b=s.current&&s.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),d=s.current;l=w(b,function(d){k.enter(d,null,l||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||g()});y()});h=d.scope=b;h.$emit("$viewContentLoaded");h.$eval(u)}else y()} +var h,l,p,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",v);v()}}}function z(e,g,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var w=e(c.contents());b.controller&&(f.$scope=a,f=g(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));w(a)}}}n=e.module("ngRoute",["ng"]).provider("$route",function(){function s(a,c){return e.extend(new (e.extend(function(){}, +{prototype:a})),c)}function g(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},k=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;k.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var k={};this.when=function(a,c){k[a]=e.extend({reloadOnSearch:!0},c,a&&g(a,c));if(a){var b= +"/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";k[b]=e.extend({redirectTo:a},g(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,g,n,v,h){function l(){var d=p(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!u)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)u=!1,a.$broadcast("$routeChangeStart", +d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(t(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?g.get(d):g.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=h.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl= +b,c=n.get(b,{cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function p(){var a,b;e.forEach(k,function(f,k){var q;if(q=!b){var g=c.path();q=f.keys;var l={};if(f.regexp)if(g=f.regexp.exec(g)){for(var h=1,p=g.length;h` to your `index.html`: + +```html + +``` + +And add `ngSanitize` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngSanitize']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngSanitize). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-sanitize/angular-sanitize.js b/www/lib/angular-sanitize/angular-sanitize.js new file mode 100644 index 00000000..b670812d --- /dev/null +++ b/www/lib/angular-sanitize/angular-sanitize.js @@ -0,0 +1,624 @@ +/** + * @license AngularJS v1.2.16 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $sanitizeMinErr = angular.$$minErr('$sanitize'); + +/** + * @ngdoc module + * @name ngSanitize + * @description + * + * # ngSanitize + * + * The `ngSanitize` module provides functionality to sanitize HTML. + * + * + *
+ * + * See {@link ngSanitize.$sanitize `$sanitize`} for usage. + */ + +/* + * HTML Parser By Misko Hevery (misko@hevery.com) + * based on: HTML Parser By John Resig (ejohn.org) + * Original code by Erik Arvidsson, Mozilla Public License + * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js + * + * // Use like so: + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + */ + + +/** + * @ngdoc service + * @name $sanitize + * @function + * + * @description + * The input is sanitized by parsing the html into tokens. All safe tokens (from a whitelist) are + * then serialized back to properly escaped html string. This means that no unsafe input can make + * it into the returned string, however, since our parser is more strict than a typical browser + * parser, it's possible that some obscure input, which would be recognized as valid HTML by a + * browser, won't make it through the sanitizer. + * The whitelist is configured using the functions `aHrefSanitizationWhitelist` and + * `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider `$compileProvider`}. + * + * @param {string} html Html input. + * @returns {string} Sanitized html. + * + * @example + + + +
+ Snippet: + + + + + + + + + + + + + + + + + + + + + + + + + +
DirectiveHowSourceRendered
ng-bind-htmlAutomatically uses $sanitize
<div ng-bind-html="snippet">
</div>
ng-bind-htmlBypass $sanitize by explicitly trusting the dangerous value +
<div ng-bind-html="deliberatelyTrustDangerousSnippet()">
+</div>
+
ng-bindAutomatically escapes
<div ng-bind="snippet">
</div>
+
+
+ + it('should sanitize the html snippet by default', function() { + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('

an html\nclick here\nsnippet

'); + }); + + it('should inline raw snippet if bound to a trusted value', function() { + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()). + toBe("

an html\n" + + "click here\n" + + "snippet

"); + }); + + it('should escape snippet without any filter', function() { + expect(element(by.css('#bind-default div')).getInnerHtml()). + toBe("<p style=\"color:blue\">an html\n" + + "<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" + + "snippet</p>"); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new text'); + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('new text'); + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()).toBe( + 'new text'); + expect(element(by.css('#bind-default div')).getInnerHtml()).toBe( + "new <b onclick=\"alert(1)\">text</b>"); + }); +
+
+ */ +function $SanitizeProvider() { + this.$get = ['$$sanitizeUri', function($$sanitizeUri) { + return function(html) { + var buf = []; + htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) { + return !/^unsafe/.test($$sanitizeUri(uri, isImage)); + })); + return buf.join(''); + }; + }]; +} + +function sanitizeText(chars) { + var buf = []; + var writer = htmlSanitizeWriter(buf, angular.noop); + writer.chars(chars); + return buf.join(''); +} + + +// Regular Expressions for parsing tags and attributes +var START_TAG_REGEXP = + /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/, + END_TAG_REGEXP = /^<\s*\/\s*([\w:-]+)[^>]*>/, + ATTR_REGEXP = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g, + BEGIN_TAG_REGEXP = /^/g, + DOCTYPE_REGEXP = /]*?)>/i, + CDATA_REGEXP = //g, + // Match everything outside of normal chars and " (quote character) + NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g; + + +// Good source of info about elements and attributes +// http://dev.w3.org/html5/spec/Overview.html#semantics +// http://simon.html5.org/html-elements + +// Safe Void Elements - HTML5 +// http://dev.w3.org/html5/spec/Overview.html#void-elements +var voidElements = makeMap("area,br,col,hr,img,wbr"); + +// Elements that you can, intentionally, leave open (and which close themselves) +// http://dev.w3.org/html5/spec/Overview.html#optional-tags +var optionalEndTagBlockElements = makeMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), + optionalEndTagInlineElements = makeMap("rp,rt"), + optionalEndTagElements = angular.extend({}, + optionalEndTagInlineElements, + optionalEndTagBlockElements); + +// Safe Block Elements - HTML5 +var blockElements = angular.extend({}, optionalEndTagBlockElements, makeMap("address,article," + + "aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5," + + "h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")); + +// Inline Elements - HTML5 +var inlineElements = angular.extend({}, optionalEndTagInlineElements, makeMap("a,abbr,acronym,b," + + "bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," + + "samp,small,span,strike,strong,sub,sup,time,tt,u,var")); + + +// Special Elements (can contain anything) +var specialElements = makeMap("script,style"); + +var validElements = angular.extend({}, + voidElements, + blockElements, + inlineElements, + optionalEndTagElements); + +//Attributes that have href and hence need to be sanitized +var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap"); +var validAttrs = angular.extend({}, uriAttrs, makeMap( + 'abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,'+ + 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,'+ + 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,'+ + 'scope,scrolling,shape,size,span,start,summary,target,title,type,'+ + 'valign,value,vspace,width')); + +function makeMap(str) { + var obj = {}, items = str.split(','), i; + for (i = 0; i < items.length; i++) obj[items[i]] = true; + return obj; +} + + +/** + * @example + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + * @param {string} html string + * @param {object} handler + */ +function htmlParser( html, handler ) { + var index, chars, match, stack = [], last = html; + stack.last = function() { return stack[ stack.length - 1 ]; }; + + while ( html ) { + chars = true; + + // Make sure we're not in a script or style element + if ( !stack.last() || !specialElements[ stack.last() ] ) { + + // Comment + if ( html.indexOf("", index) === index) { + if (handler.comment) handler.comment( html.substring( 4, index ) ); + html = html.substring( index + 3 ); + chars = false; + } + // DOCTYPE + } else if ( DOCTYPE_REGEXP.test(html) ) { + match = html.match( DOCTYPE_REGEXP ); + + if ( match ) { + html = html.replace( match[0], ''); + chars = false; + } + // end tag + } else if ( BEGING_END_TAGE_REGEXP.test(html) ) { + match = html.match( END_TAG_REGEXP ); + + if ( match ) { + html = html.substring( match[0].length ); + match[0].replace( END_TAG_REGEXP, parseEndTag ); + chars = false; + } + + // start tag + } else if ( BEGIN_TAG_REGEXP.test(html) ) { + match = html.match( START_TAG_REGEXP ); + + if ( match ) { + html = html.substring( match[0].length ); + match[0].replace( START_TAG_REGEXP, parseStartTag ); + chars = false; + } + } + + if ( chars ) { + index = html.indexOf("<"); + + var text = index < 0 ? html : html.substring( 0, index ); + html = index < 0 ? "" : html.substring( index ); + + if (handler.chars) handler.chars( decodeEntities(text) ); + } + + } else { + html = html.replace(new RegExp("(.*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'), + function(all, text){ + text = text.replace(COMMENT_REGEXP, "$1").replace(CDATA_REGEXP, "$1"); + + if (handler.chars) handler.chars( decodeEntities(text) ); + + return ""; + }); + + parseEndTag( "", stack.last() ); + } + + if ( html == last ) { + throw $sanitizeMinErr('badparse', "The sanitizer was unable to parse the following block " + + "of html: {0}", html); + } + last = html; + } + + // Clean up any remaining tags + parseEndTag(); + + function parseStartTag( tag, tagName, rest, unary ) { + tagName = angular.lowercase(tagName); + if ( blockElements[ tagName ] ) { + while ( stack.last() && inlineElements[ stack.last() ] ) { + parseEndTag( "", stack.last() ); + } + } + + if ( optionalEndTagElements[ tagName ] && stack.last() == tagName ) { + parseEndTag( "", tagName ); + } + + unary = voidElements[ tagName ] || !!unary; + + if ( !unary ) + stack.push( tagName ); + + var attrs = {}; + + rest.replace(ATTR_REGEXP, + function(match, name, doubleQuotedValue, singleQuotedValue, unquotedValue) { + var value = doubleQuotedValue + || singleQuotedValue + || unquotedValue + || ''; + + attrs[name] = decodeEntities(value); + }); + if (handler.start) handler.start( tagName, attrs, unary ); + } + + function parseEndTag( tag, tagName ) { + var pos = 0, i; + tagName = angular.lowercase(tagName); + if ( tagName ) + // Find the closest opened tag of the same type + for ( pos = stack.length - 1; pos >= 0; pos-- ) + if ( stack[ pos ] == tagName ) + break; + + if ( pos >= 0 ) { + // Close all the open elements, up the stack + for ( i = stack.length - 1; i >= pos; i-- ) + if (handler.end) handler.end( stack[ i ] ); + + // Remove the open elements from the stack + stack.length = pos; + } + } +} + +var hiddenPre=document.createElement("pre"); +var spaceRe = /^(\s*)([\s\S]*?)(\s*)$/; +/** + * decodes all entities into regular string + * @param value + * @returns {string} A string with decoded entities. + */ +function decodeEntities(value) { + if (!value) { return ''; } + + // Note: IE8 does not preserve spaces at the start/end of innerHTML + // so we must capture them and reattach them afterward + var parts = spaceRe.exec(value); + var spaceBefore = parts[1]; + var spaceAfter = parts[3]; + var content = parts[2]; + if (content) { + hiddenPre.innerHTML=content.replace(//g, '>'); +} + +/** + * create an HTML/XML writer which writes to buffer + * @param {Array} buf use buf.jain('') to get out sanitized html string + * @returns {object} in the form of { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * } + */ +function htmlSanitizeWriter(buf, uriValidator){ + var ignore = false; + var out = angular.bind(buf, buf.push); + return { + start: function(tag, attrs, unary){ + tag = angular.lowercase(tag); + if (!ignore && specialElements[tag]) { + ignore = tag; + } + if (!ignore && validElements[tag] === true) { + out('<'); + out(tag); + angular.forEach(attrs, function(value, key){ + var lkey=angular.lowercase(key); + var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background'); + if (validAttrs[lkey] === true && + (uriAttrs[lkey] !== true || uriValidator(value, isImage))) { + out(' '); + out(key); + out('="'); + out(encodeEntities(value)); + out('"'); + } + }); + out(unary ? '/>' : '>'); + } + }, + end: function(tag){ + tag = angular.lowercase(tag); + if (!ignore && validElements[tag] === true) { + out(''); + } + if (tag == ignore) { + ignore = false; + } + }, + chars: function(chars){ + if (!ignore) { + out(encodeEntities(chars)); + } + } + }; +} + + +// define ngSanitize module and register $sanitize service +angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider); + +/* global sanitizeText: false */ + +/** + * @ngdoc filter + * @name linky + * @function + * + * @description + * Finds links in text input and turns them into html links. Supports http/https/ftp/mailto and + * plain email address links. + * + * Requires the {@link ngSanitize `ngSanitize`} module to be installed. + * + * @param {string} text Input text. + * @param {string} target Window (_blank|_self|_parent|_top) or named frame to open links in. + * @returns {string} Html-linkified text. + * + * @usage + + * + * @example + + + +
+ Snippet: + + + + + + + + + + + + + + + + + + + + + +
FilterSourceRendered
linky filter +
<div ng-bind-html="snippet | linky">
</div>
+
+
+
linky target +
<div ng-bind-html="snippetWithTarget | linky:'_blank'">
</div>
+
+
+
no filter
<div ng-bind="snippet">
</div>
+ + + it('should linkify the snippet with urls', function() { + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(4); + }); + + it('should not linkify snippet without the linky filter', function() { + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#escaped-html a')).count()).toEqual(0); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new http://link.'); + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('new http://link.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(1); + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()) + .toBe('new http://link.'); + }); + + it('should work with the target property', function() { + expect(element(by.id('linky-target')). + element(by.binding("snippetWithTarget | linky:'_blank'")).getText()). + toBe('http://angularjs.org/'); + expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank'); + }); + + + */ +angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { + var LINKY_URL_REGEXP = + /((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>]/, + MAILTO_REGEXP = /^mailto:/; + + return function(text, target) { + if (!text) return text; + var match; + var raw = text; + var html = []; + var url; + var i; + while ((match = raw.match(LINKY_URL_REGEXP))) { + // We can not end in these as they are sometimes found at the end of the sentence + url = match[0]; + // if we did not match ftp/http/mailto then assume mailto + if (match[2] == match[3]) url = 'mailto:' + url; + i = match.index; + addText(raw.substr(0, i)); + addLink(url, match[0].replace(MAILTO_REGEXP, '')); + raw = raw.substring(i + match[0].length); + } + addText(raw); + return $sanitize(html.join('')); + + function addText(text) { + if (!text) { + return; + } + html.push(sanitizeText(text)); + } + + function addLink(url, text) { + html.push(''); + addText(text); + html.push(''); + } + }; +}]); + + +})(window, window.angular); diff --git a/www/lib/angular-sanitize/angular-sanitize.min.js b/www/lib/angular-sanitize/angular-sanitize.min.js new file mode 100644 index 00000000..08964713 --- /dev/null +++ b/www/lib/angular-sanitize/angular-sanitize.min.js @@ -0,0 +1,14 @@ +/* + AngularJS v1.2.16 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,h,q){'use strict';function E(a){var e=[];s(e,h.noop).chars(a);return e.join("")}function k(a){var e={};a=a.split(",");var d;for(d=0;d=c;d--)e.end&&e.end(f[d]);f.length=c}}var b,g,f=[],l=a;for(f.last=function(){return f[f.length-1]};a;){g=!0;if(f.last()&&x[f.last()])a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(b,a){a=a.replace(H,"$1").replace(I,"$1");e.chars&&e.chars(r(a));return""}),c("",f.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e",b)===b&&(e.comment&&e.comment(a.substring(4,b)),a=a.substring(b+3),g=!1);else if(y.test(a)){if(b=a.match(y))a= +a.replace(b[0],""),g=!1}else if(J.test(a)){if(b=a.match(z))a=a.substring(b[0].length),b[0].replace(z,c),g=!1}else K.test(a)&&(b=a.match(A))&&(a=a.substring(b[0].length),b[0].replace(A,d),g=!1);g&&(b=a.indexOf("<"),g=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),e.chars&&e.chars(r(g)))}if(a==l)throw L("badparse",a);l=a}c()}function r(a){if(!a)return"";var e=M.exec(a);a=e[1];var d=e[3];if(e=e[2])n.innerHTML=e.replace(//g,">")}function s(a,e){var d=!1,c=h.bind(a,a.push);return{start:function(a,g,f){a=h.lowercase(a);!d&&x[a]&&(d=a);d||!0!==C[a]||(c("<"),c(a),h.forEach(g,function(d,f){var g=h.lowercase(f),k="img"===a&&"src"===g||"background"===g;!0!==O[g]||!0===D[g]&&!e(d,k)||(c(" "),c(f),c('="'),c(B(d)),c('"'))}),c(f?"/>":">"))},end:function(a){a=h.lowercase(a);d||!0!==C[a]||(c(""));a==d&&(d=!1)},chars:function(a){d|| +c(B(a))}}}var L=h.$$minErr("$sanitize"),A=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,z=/^<\s*\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,K=/^]*?)>/i,I=/]/,d=/^mailto:/;return function(c,b){function g(a){a&&m.push(E(a))}function f(a,c){m.push("');g(c);m.push("")}if(!c)return c;for(var l,k=c,m=[],n,p;l=k.match(e);)n=l[0],l[2]==l[3]&&(n="mailto:"+n),p=l.index,g(k.substr(0,p)),f(n,l[0].replace(d,"")),k=k.substring(p+l[0].length);g(k);return a(m.join(""))}}])})(window,window.angular); +//# sourceMappingURL=angular-sanitize.min.js.map diff --git a/www/lib/angular-sanitize/angular-sanitize.min.js.map b/www/lib/angular-sanitize/angular-sanitize.min.js.map new file mode 100644 index 00000000..dbf6b259 --- /dev/null +++ b/www/lib/angular-sanitize/angular-sanitize.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-sanitize.min.js", +"lineCount":13, +"mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAiJtCC,QAASA,EAAY,CAACC,CAAD,CAAQ,CAC3B,IAAIC,EAAM,EACGC,EAAAC,CAAmBF,CAAnBE,CAAwBN,CAAAO,KAAxBD,CACbH,MAAA,CAAaA,CAAb,CACA,OAAOC,EAAAI,KAAA,CAAS,EAAT,CAJoB,CAmE7BC,QAASA,EAAO,CAACC,CAAD,CAAM,CAAA,IAChBC,EAAM,EAAIC,EAAAA,CAAQF,CAAAG,MAAA,CAAU,GAAV,CAAtB,KAAsCC,CACtC,KAAKA,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgBF,CAAAG,OAAhB,CAA8BD,CAAA,EAA9B,CAAmCH,CAAA,CAAIC,CAAA,CAAME,CAAN,CAAJ,CAAA,CAAgB,CAAA,CACnD,OAAOH,EAHa,CAmBtBK,QAASA,EAAU,CAAEC,CAAF,CAAQC,CAAR,CAAkB,CAiFnCC,QAASA,EAAa,CAAEC,CAAF,CAAOC,CAAP,CAAgBC,CAAhB,CAAsBC,CAAtB,CAA8B,CAClDF,CAAA,CAAUrB,CAAAwB,UAAA,CAAkBH,CAAlB,CACV,IAAKI,CAAA,CAAeJ,CAAf,CAAL,CACE,IAAA,CAAQK,CAAAC,KAAA,EAAR,EAAwBC,CAAA,CAAgBF,CAAAC,KAAA,EAAhB,CAAxB,CAAA,CACEE,CAAA,CAAa,EAAb,CAAiBH,CAAAC,KAAA,EAAjB,CAICG,EAAA,CAAwBT,CAAxB,CAAL,EAA0CK,CAAAC,KAAA,EAA1C,EAA0DN,CAA1D,EACEQ,CAAA,CAAa,EAAb,CAAiBR,CAAjB,CAKF,EAFAE,CAEA,CAFQQ,CAAA,CAAcV,CAAd,CAER,EAFmC,CAAC,CAACE,CAErC,GACEG,CAAAM,KAAA,CAAYX,CAAZ,CAEF,KAAIY,EAAQ,EAEZX,EAAAY,QAAA,CAAaC,CAAb,CACE,QAAQ,CAACC,CAAD,CAAQC,CAAR,CAAcC,CAAd,CAAiCC,CAAjC,CAAoDC,CAApD,CAAmE,CAMzEP,CAAA,CAAMI,CAAN,CAAA,CAAcI,CAAA,CALFH,CAKE,EAJTC,CAIS,EAHTC,CAGS,EAFT,EAES,CAN2D,CAD7E,CASItB,EAAAwB,MAAJ,EAAmBxB,CAAAwB,MAAA,CAAerB,CAAf,CAAwBY,CAAxB,CAA+BV,CAA/B,CA5B+B,CA+BpDM,QAASA,EAAW,CAAET,CAAF,CAAOC,CAAP,CAAiB,CAAA,IAC/BsB,EAAM,CADyB,CACtB7B,CAEb,IADAO,CACA,CADUrB,CAAAwB,UAAA,CAAkBH,CAAlB,CACV,CAEE,IAAMsB,CAAN,CAAYjB,CAAAX,OAAZ,CAA2B,CAA3B,CAAqC,CAArC,EAA8B4B,CAA9B,EACOjB,CAAA,CAAOiB,CAAP,CADP,EACuBtB,CADvB,CAAwCsB,CAAA,EAAxC;AAIF,GAAY,CAAZ,EAAKA,CAAL,CAAgB,CAEd,IAAM7B,CAAN,CAAUY,CAAAX,OAAV,CAAyB,CAAzB,CAA4BD,CAA5B,EAAiC6B,CAAjC,CAAsC7B,CAAA,EAAtC,CACMI,CAAA0B,IAAJ,EAAiB1B,CAAA0B,IAAA,CAAalB,CAAA,CAAOZ,CAAP,CAAb,CAGnBY,EAAAX,OAAA,CAAe4B,CAND,CATmB,CAhHF,IAC/BE,CAD+B,CACxB1C,CADwB,CACVuB,EAAQ,EADE,CACEC,EAAOV,CAG5C,KAFAS,CAAAC,KAEA,CAFamB,QAAQ,EAAG,CAAE,MAAOpB,EAAA,CAAOA,CAAAX,OAAP,CAAsB,CAAtB,CAAT,CAExB,CAAQE,CAAR,CAAA,CAAe,CACbd,CAAA,CAAQ,CAAA,CAGR,IAAMuB,CAAAC,KAAA,EAAN,EAAuBoB,CAAA,CAAiBrB,CAAAC,KAAA,EAAjB,CAAvB,CAmDEV,CASA,CATOA,CAAAiB,QAAA,CAAiBc,MAAJ,CAAW,kBAAX,CAAgCtB,CAAAC,KAAA,EAAhC,CAA+C,QAA/C,CAAyD,GAAzD,CAAb,CACL,QAAQ,CAACsB,CAAD,CAAMC,CAAN,CAAW,CACjBA,CAAA,CAAOA,CAAAhB,QAAA,CAAaiB,CAAb,CAA6B,IAA7B,CAAAjB,QAAA,CAA2CkB,CAA3C,CAAyD,IAAzD,CAEHlC,EAAAf,MAAJ,EAAmBe,CAAAf,MAAA,CAAesC,CAAA,CAAeS,CAAf,CAAf,CAEnB,OAAO,EALU,CADd,CASP,CAAArB,CAAA,CAAa,EAAb,CAAiBH,CAAAC,KAAA,EAAjB,CA5DF,KAAyD,CAGvD,GAA8B,CAA9B,GAAKV,CAAAoC,QAAA,CAAa,SAAb,CAAL,CAEER,CAEA,CAFQ5B,CAAAoC,QAAA,CAAa,IAAb,CAAmB,CAAnB,CAER,CAAc,CAAd,EAAKR,CAAL,EAAmB5B,CAAAqC,YAAA,CAAiB,QAAjB,CAAwBT,CAAxB,CAAnB,GAAsDA,CAAtD,GACM3B,CAAAqC,QAEJ,EAFqBrC,CAAAqC,QAAA,CAAiBtC,CAAAuC,UAAA,CAAgB,CAAhB,CAAmBX,CAAnB,CAAjB,CAErB,CADA5B,CACA,CADOA,CAAAuC,UAAA,CAAgBX,CAAhB,CAAwB,CAAxB,CACP,CAAA1C,CAAA,CAAQ,CAAA,CAHV,CAJF,KAUO,IAAKsD,CAAAC,KAAA,CAAoBzC,CAApB,CAAL,CAGL,IAFAmB,CAEA,CAFQnB,CAAAmB,MAAA,CAAYqB,CAAZ,CAER,CACExC,CACA;AADOA,CAAAiB,QAAA,CAAcE,CAAA,CAAM,CAAN,CAAd,CAAwB,EAAxB,CACP,CAAAjC,CAAA,CAAQ,CAAA,CAFV,CAHK,IAQA,IAAKwD,CAAAD,KAAA,CAA4BzC,CAA5B,CAAL,CAGL,IAFAmB,CAEA,CAFQnB,CAAAmB,MAAA,CAAYwB,CAAZ,CAER,CACE3C,CAEA,CAFOA,CAAAuC,UAAA,CAAgBpB,CAAA,CAAM,CAAN,CAAArB,OAAhB,CAEP,CADAqB,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAkB0B,CAAlB,CAAkC/B,CAAlC,CACA,CAAA1B,CAAA,CAAQ,CAAA,CAHV,CAHK,IAUK0D,EAAAH,KAAA,CAAsBzC,CAAtB,CAAL,GACLmB,CADK,CACGnB,CAAAmB,MAAA,CAAY0B,CAAZ,CADH,IAIH7C,CAEA,CAFOA,CAAAuC,UAAA,CAAgBpB,CAAA,CAAM,CAAN,CAAArB,OAAhB,CAEP,CADAqB,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAkB4B,CAAlB,CAAoC3C,CAApC,CACA,CAAAhB,CAAA,CAAQ,CAAA,CANL,CAUFA,EAAL,GACE0C,CAKA,CALQ5B,CAAAoC,QAAA,CAAa,GAAb,CAKR,CAHIH,CAGJ,CAHmB,CAAR,CAAAL,CAAA,CAAY5B,CAAZ,CAAmBA,CAAAuC,UAAA,CAAgB,CAAhB,CAAmBX,CAAnB,CAG9B,CAFA5B,CAEA,CAFe,CAAR,CAAA4B,CAAA,CAAY,EAAZ,CAAiB5B,CAAAuC,UAAA,CAAgBX,CAAhB,CAExB,CAAI3B,CAAAf,MAAJ,EAAmBe,CAAAf,MAAA,CAAesC,CAAA,CAAeS,CAAf,CAAf,CANrB,CAzCuD,CA+DzD,GAAKjC,CAAL,EAAaU,CAAb,CACE,KAAMoC,EAAA,CAAgB,UAAhB,CAC4C9C,CAD5C,CAAN,CAGFU,CAAA,CAAOV,CAvEM,CA2EfY,CAAA,EA/EmC,CA2IrCY,QAASA,EAAc,CAACuB,CAAD,CAAQ,CAC7B,GAAI,CAACA,CAAL,CAAc,MAAO,EAIrB,KAAIC,EAAQC,CAAAC,KAAA,CAAaH,CAAb,CACRI,EAAAA,CAAcH,CAAA,CAAM,CAAN,CAClB,KAAII,EAAaJ,CAAA,CAAM,CAAN,CAEjB,IADIK,CACJ,CADcL,CAAA,CAAM,CAAN,CACd,CACEM,CAAAC,UAKA,CALoBF,CAAApC,QAAA,CAAgB,IAAhB,CAAqB,MAArB,CAKpB,CAAAoC,CAAA,CAAU,aAAA,EAAiBC,EAAjB,CACRA,CAAAE,YADQ,CACgBF,CAAAG,UAE5B,OAAON,EAAP,CAAqBE,CAArB,CAA+BD,CAlBF,CA4B/BM,QAASA,EAAc,CAACX,CAAD,CAAQ,CAC7B,MAAOA,EAAA9B,QAAA,CACG,IADH;AACS,OADT,CAAAA,QAAA,CAEG0C,CAFH,CAE4B,QAAQ,CAACZ,CAAD,CAAO,CAC9C,MAAO,IAAP,CAAcA,CAAAa,WAAA,CAAiB,CAAjB,CAAd,CAAoC,GADU,CAF3C,CAAA3C,QAAA,CAKG,IALH,CAKS,MALT,CAAAA,QAAA,CAMG,IANH,CAMS,MANT,CADsB,CAoB/B7B,QAASA,EAAkB,CAACD,CAAD,CAAM0E,CAAN,CAAmB,CAC5C,IAAIC,EAAS,CAAA,CAAb,CACIC,EAAMhF,CAAAiF,KAAA,CAAa7E,CAAb,CAAkBA,CAAA4B,KAAlB,CACV,OAAO,OACEU,QAAQ,CAACtB,CAAD,CAAMa,CAAN,CAAaV,CAAb,CAAmB,CAChCH,CAAA,CAAMpB,CAAAwB,UAAA,CAAkBJ,CAAlB,CACD2D,EAAAA,CAAL,EAAehC,CAAA,CAAgB3B,CAAhB,CAAf,GACE2D,CADF,CACW3D,CADX,CAGK2D,EAAL,EAAsC,CAAA,CAAtC,GAAeG,CAAA,CAAc9D,CAAd,CAAf,GACE4D,CAAA,CAAI,GAAJ,CAcA,CAbAA,CAAA,CAAI5D,CAAJ,CAaA,CAZApB,CAAAmF,QAAA,CAAgBlD,CAAhB,CAAuB,QAAQ,CAAC+B,CAAD,CAAQoB,CAAR,CAAY,CACzC,IAAIC,EAAKrF,CAAAwB,UAAA,CAAkB4D,CAAlB,CAAT,CACIE,EAAmB,KAAnBA,GAAWlE,CAAXkE,EAAqC,KAArCA,GAA4BD,CAA5BC,EAAyD,YAAzDA,GAAgDD,CAC3B,EAAA,CAAzB,GAAIE,CAAA,CAAWF,CAAX,CAAJ,EACsB,CAAA,CADtB,GACGG,CAAA,CAASH,CAAT,CADH,EAC8B,CAAAP,CAAA,CAAad,CAAb,CAAoBsB,CAApB,CAD9B,GAEEN,CAAA,CAAI,GAAJ,CAIA,CAHAA,CAAA,CAAII,CAAJ,CAGA,CAFAJ,CAAA,CAAI,IAAJ,CAEA,CADAA,CAAA,CAAIL,CAAA,CAAeX,CAAf,CAAJ,CACA,CAAAgB,CAAA,CAAI,GAAJ,CANF,CAHyC,CAA3C,CAYA,CAAAA,CAAA,CAAIzD,CAAA,CAAQ,IAAR,CAAe,GAAnB,CAfF,CALgC,CAD7B,KAwBAqB,QAAQ,CAACxB,CAAD,CAAK,CACdA,CAAA,CAAMpB,CAAAwB,UAAA,CAAkBJ,CAAlB,CACD2D,EAAL,EAAsC,CAAA,CAAtC,GAAeG,CAAA,CAAc9D,CAAd,CAAf,GACE4D,CAAA,CAAI,IAAJ,CAEA,CADAA,CAAA,CAAI5D,CAAJ,CACA,CAAA4D,CAAA,CAAI,GAAJ,CAHF,CAKI5D,EAAJ,EAAW2D,CAAX,GACEA,CADF,CACW,CAAA,CADX,CAPc,CAxBb,OAmCE5E,QAAQ,CAACA,CAAD,CAAO,CACb4E,CAAL;AACEC,CAAA,CAAIL,CAAA,CAAexE,CAAf,CAAJ,CAFgB,CAnCjB,CAHqC,CAha9C,IAAI4D,EAAkB/D,CAAAyF,SAAA,CAAiB,WAAjB,CAAtB,CAwJI3B,EACG,4FAzJP,CA0JEF,EAAiB,2BA1JnB,CA2JEzB,EAAc,yEA3JhB,CA4JE0B,EAAmB,IA5JrB,CA6JEF,EAAyB,SA7J3B,CA8JER,EAAiB,qBA9JnB,CA+JEM,EAAiB,qBA/JnB,CAgKEL,EAAe,yBAhKjB,CAkKEwB,EAA0B,gBAlK5B,CA2KI7C,EAAetB,CAAA,CAAQ,wBAAR,CAIfiF,EAAAA,CAA8BjF,CAAA,CAAQ,gDAAR,CAC9BkF,EAAAA,CAA+BlF,CAAA,CAAQ,OAAR,CADnC,KAEIqB,EAAyB9B,CAAA4F,OAAA,CAAe,EAAf,CACeD,CADf,CAEeD,CAFf,CAF7B,CAOIjE,EAAgBzB,CAAA4F,OAAA,CAAe,EAAf,CAAmBF,CAAnB,CAAgDjF,CAAA,CAAQ,4KAAR,CAAhD,CAPpB;AAYImB,EAAiB5B,CAAA4F,OAAA,CAAe,EAAf,CAAmBD,CAAnB,CAAiDlF,CAAA,CAAQ,2JAAR,CAAjD,CAZrB,CAkBIsC,EAAkBtC,CAAA,CAAQ,cAAR,CAlBtB,CAoBIyE,EAAgBlF,CAAA4F,OAAA,CAAe,EAAf,CACe7D,CADf,CAEeN,CAFf,CAGeG,CAHf,CAIeE,CAJf,CApBpB,CA2BI0D,EAAW/E,CAAA,CAAQ,0CAAR,CA3Bf,CA4BI8E,EAAavF,CAAA4F,OAAA,CAAe,EAAf,CAAmBJ,CAAnB,CAA6B/E,CAAA,CAC1C,ySAD0C,CAA7B,CA5BjB;AA0LI8D,EAAUsB,QAAAC,cAAA,CAAuB,KAAvB,CA1Ld,CA2LI5B,EAAU,wBAsGdlE,EAAA+F,OAAA,CAAe,YAAf,CAA6B,EAA7B,CAAAC,SAAA,CAA0C,WAA1C,CA7UAC,QAA0B,EAAG,CAC3B,IAAAC,KAAA,CAAY,CAAC,eAAD,CAAkB,QAAQ,CAACC,CAAD,CAAgB,CACpD,MAAO,SAAQ,CAAClF,CAAD,CAAO,CACpB,IAAIb,EAAM,EACVY,EAAA,CAAWC,CAAX,CAAiBZ,CAAA,CAAmBD,CAAnB,CAAwB,QAAQ,CAACgG,CAAD,CAAMd,CAAN,CAAe,CAC9D,MAAO,CAAC,SAAA5B,KAAA,CAAeyC,CAAA,CAAcC,CAAd,CAAmBd,CAAnB,CAAf,CADsD,CAA/C,CAAjB,CAGA,OAAOlF,EAAAI,KAAA,CAAS,EAAT,CALa,CAD8B,CAA1C,CADe,CA6U7B,CAuGAR,EAAA+F,OAAA,CAAe,YAAf,CAAAM,OAAA,CAAoC,OAApC,CAA6C,CAAC,WAAD,CAAc,QAAQ,CAACC,CAAD,CAAY,CAAA,IACzEC,EACE,mEAFuE,CAGzEC,EAAgB,UAEpB,OAAO,SAAQ,CAACtD,CAAD,CAAOuD,CAAP,CAAe,CAoB5BC,QAASA,EAAO,CAACxD,CAAD,CAAO,CAChBA,CAAL,EAGAjC,CAAAe,KAAA,CAAU9B,CAAA,CAAagD,CAAb,CAAV,CAJqB,CAOvByD,QAASA,EAAO,CAACC,CAAD,CAAM1D,CAAN,CAAY,CAC1BjC,CAAAe,KAAA,CAAU,KAAV,CACIhC,EAAA6G,UAAA,CAAkBJ,CAAlB,CAAJ;CACExF,CAAAe,KAAA,CAAU,UAAV,CAEA,CADAf,CAAAe,KAAA,CAAUyE,CAAV,CACA,CAAAxF,CAAAe,KAAA,CAAU,IAAV,CAHF,CAKAf,EAAAe,KAAA,CAAU,QAAV,CACAf,EAAAe,KAAA,CAAU4E,CAAV,CACA3F,EAAAe,KAAA,CAAU,IAAV,CACA0E,EAAA,CAAQxD,CAAR,CACAjC,EAAAe,KAAA,CAAU,MAAV,CAX0B,CA1B5B,GAAI,CAACkB,CAAL,CAAW,MAAOA,EAMlB,KALA,IAAId,CAAJ,CACI0E,EAAM5D,CADV,CAEIjC,EAAO,EAFX,CAGI2F,CAHJ,CAII9F,CACJ,CAAQsB,CAAR,CAAgB0E,CAAA1E,MAAA,CAAUmE,CAAV,CAAhB,CAAA,CAEEK,CAMA,CANMxE,CAAA,CAAM,CAAN,CAMN,CAJIA,CAAA,CAAM,CAAN,CAIJ,EAJgBA,CAAA,CAAM,CAAN,CAIhB,GAJ0BwE,CAI1B,CAJgC,SAIhC,CAJ4CA,CAI5C,EAHA9F,CAGA,CAHIsB,CAAAS,MAGJ,CAFA6D,CAAA,CAAQI,CAAAC,OAAA,CAAW,CAAX,CAAcjG,CAAd,CAAR,CAEA,CADA6F,CAAA,CAAQC,CAAR,CAAaxE,CAAA,CAAM,CAAN,CAAAF,QAAA,CAAiBsE,CAAjB,CAAgC,EAAhC,CAAb,CACA,CAAAM,CAAA,CAAMA,CAAAtD,UAAA,CAAc1C,CAAd,CAAkBsB,CAAA,CAAM,CAAN,CAAArB,OAAlB,CAER2F,EAAA,CAAQI,CAAR,CACA,OAAOR,EAAA,CAAUrF,CAAAT,KAAA,CAAU,EAAV,CAAV,CAlBqB,CAL+C,CAAlC,CAA7C,CAzjBsC,CAArC,CAAA,CA0mBET,MA1mBF,CA0mBUA,MAAAC,QA1mBV;", +"sources":["angular-sanitize.js"], +"names":["window","angular","undefined","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","makeMap","str","obj","items","split","i","length","htmlParser","html","handler","parseStartTag","tag","tagName","rest","unary","lowercase","blockElements","stack","last","inlineElements","parseEndTag","optionalEndTagElements","voidElements","push","attrs","replace","ATTR_REGEXP","match","name","doubleQuotedValue","singleQuotedValue","unquotedValue","decodeEntities","start","pos","end","index","stack.last","specialElements","RegExp","all","text","COMMENT_REGEXP","CDATA_REGEXP","indexOf","lastIndexOf","comment","substring","DOCTYPE_REGEXP","test","BEGING_END_TAGE_REGEXP","END_TAG_REGEXP","BEGIN_TAG_REGEXP","START_TAG_REGEXP","$sanitizeMinErr","value","parts","spaceRe","exec","spaceBefore","spaceAfter","content","hiddenPre","innerHTML","textContent","innerText","encodeEntities","NON_ALPHANUMERIC_REGEXP","charCodeAt","uriValidator","ignore","out","bind","validElements","forEach","key","lkey","isImage","validAttrs","uriAttrs","$$minErr","optionalEndTagBlockElements","optionalEndTagInlineElements","extend","document","createElement","module","provider","$SanitizeProvider","$get","$$sanitizeUri","uri","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","target","addText","addLink","url","isDefined","raw","substr"] +} diff --git a/www/lib/angular-sanitize/bower.json b/www/lib/angular-sanitize/bower.json new file mode 100644 index 00000000..1160f22f --- /dev/null +++ b/www/lib/angular-sanitize/bower.json @@ -0,0 +1,8 @@ +{ + "name": "angular-sanitize", + "version": "1.2.16", + "main": "./angular-sanitize.js", + "dependencies": { + "angular": "1.2.16" + } +} diff --git a/www/lib/angular-scenario/.bower.json b/www/lib/angular-scenario/.bower.json new file mode 100644 index 00000000..f33be682 --- /dev/null +++ b/www/lib/angular-scenario/.bower.json @@ -0,0 +1,18 @@ +{ + "name": "angular-scenario", + "version": "1.2.16", + "main": "./angular-scenario.js", + "dependencies": { + "angular": "1.2.16" + }, + "homepage": "https://github.com/angular/bower-angular-scenario", + "_release": "1.2.16", + "_resolution": { + "type": "version", + "tag": "v1.2.16", + "commit": "387bd67cc4863655aed0f889956cdeb4acdb03ae" + }, + "_source": "git://github.com/angular/bower-angular-scenario.git", + "_target": "1.2.16", + "_originalSource": "angular-scenario" +} \ No newline at end of file diff --git a/www/lib/angular-scenario/README.md b/www/lib/angular-scenario/README.md new file mode 100644 index 00000000..7f80a8c5 --- /dev/null +++ b/www/lib/angular-scenario/README.md @@ -0,0 +1,42 @@ +# bower-angular-scenario + +This repo is for distribution on `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngScenario). +Please file issues and pull requests against that repo. + +## Install + +Install with `bower`: + +```shell +bower install angular-scenario +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/www/lib/angular-scenario/angular-scenario.js b/www/lib/angular-scenario/angular-scenario.js new file mode 100644 index 00000000..81491c59 --- /dev/null +++ b/www/lib/angular-scenario/angular-scenario.js @@ -0,0 +1,33464 @@ +/*! + * jQuery JavaScript Library v1.10.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03T13:48Z + */ +(function( window, undefined ) {'use strict'; + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +// + +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<10 + // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + location = window.location, + document = window.document, + docElem = document.documentElement, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.10.2", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( jQuery.support.ownLast ) { + for ( key in obj ) { + return core_hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations. + // Note: this method belongs to the css module but it's needed here for the support module. + // If support gets modularized, this method should be moved back to the css module. + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +/*! + * Sizzle CSS Selector Engine v1.10.2 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03 + */ +(function( window, undefined ) { + +var i, + support, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rsibling = new RegExp( whitespace + "*[+~]" ), + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent.attachEvent && parent !== parent.top ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + div.innerHTML = "
"; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Support: Opera 10-12/IE8 + // ^= $= *= and empty values + // Should not select anything + // Support: Windows 8 Native Apps + // The type attribute is restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "t", "" ); + + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val === undefined ? + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null : + val; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; + } + }); +} + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function( support ) { + + var all, a, input, select, fragment, opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
a"; + + // Finish early in limited (non-browser) environments + all = div.getElementsByTagName("*") || []; + a = div.getElementsByTagName("a")[ 0 ]; + if ( !a || !a.style || !all.length ) { + return support; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName("tbody").length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName("link").length; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; + + // Will be defined later + support.inlineBlockNeedsLayout = false; + support.shrinkWrapBlocks = false; + support.pixelPosition = false; + support.deleteExpando = true; + support.noCloneEvent = true; + support.reliableMarginRight = true; + support.boxSizingReliable = true; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: IE<9 + // Iteration over object's inherited properties before its own. + for ( i in jQuery( support ) ) { + break; + } + support.ownLast = i !== "0"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior. + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + support.boxSizing = div.offsetWidth === 4; + }); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})({}); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "applet": true, + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + data = null, + i = 0, + elem = this[0]; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n\f]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // Use proper attribute retrieval(#6932, #12072) + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { + optionSet = true; + } + } + + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; + + jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var fn = jQuery.expr.attrHandle[ name ], + ret = isXML ? + undefined : + /* jshint eqeqeq: false */ + (jQuery.expr.attrHandle[ name ] = undefined) != + getter( elem, name, isXML ) ? + + name.toLowerCase() : + null; + jQuery.expr.attrHandle[ name ] = fn; + return ret; + } : + function( elem, name, isXML ) { + return isXML ? + undefined : + elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + }; +}); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = + // Some attributes are constructed with empty-string values when not defined + function( elem, name, isXML ) { + var ret; + return isXML ? + undefined : + (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + }; + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ret.specified ? + ret.value : + undefined; + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !jQuery.support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + cur = ret.push( cur ); + break; + } + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( isSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map( this, function( elem ) { + return [ elem.nextSibling, elem.parentNode ]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + var next = args[ i++ ], + parent = args[ i++ ]; + + if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + // Allow new content to include elements from the context set + }, true ); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback, allowIntersection ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback, allowIntersection ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery._evalUrl( node.src ); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + }, + + _evalUrl: function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } +}); +jQuery.fn.extend({ + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("');return a.join("")})}},fileButton:function(b,c,d){if(!(arguments.length<3)){a.call(this,c);var e=this;if(c.validate)this.validate=c.validate;var g=CKEDITOR.tools.extend({}, +c),i=g.onClick;g.className=(g.className?g.className+" ":"")+"cke_dialog_ui_button";g.onClick=function(a){var d=c["for"];if(!i||i.call(this,a)!==false){b.getContentElement(d[0],d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(c["for"][0],c["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,g,d)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(d,e,g){if(!(arguments.length<3)){var i=[], +n=e.html;n.charAt(0)!="<"&&(n=""+n+"");var l=e.focus;if(l){var o=this.focus;this.focus=function(){(typeof l=="function"?l:o).call(this);this.fire("focus")};if(e.isFocusable)this.isFocusable=this.isFocusable;this.keyboardFocusable=true}CKEDITOR.ui.dialog.uiElement.call(this,d,e,i,"span",null,null,"");i=i.join("").match(a);n=n.match(b)||["","",""];if(c.test(n[1])){n[1]=n[1].slice(0,-1);n[2]="/"+n[2]}g.push([n[1]," ",i[1]||"",n[2]].join(""))}}}(),fieldset:function(a,b,c,d,e){var g=e.label; +this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,e,d,"fieldset",null,null,function(){var a=[];g&&a.push(""+g+"");for(var b=0;b0;)a.remove(0);return this},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(a,b){this.getInputElement().$.checked=a;!b&&this.fire("change",{value:a})},getValue:function(){return this.getInputElement().$.checked}, +accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(a,b){if(!CKEDITOR.env.ie||CKEDITOR.env.version>8)return c.onChange.apply(this,arguments);a.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;b.propertyName=="checked"&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",b);return null}},keyboardFocusable:true},g,true);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement, +{setValue:function(a,b){for(var c=this._.children,d,e=0;e0?new CKEDITOR.dom.element(a.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,d=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog, +c[1].toLowerCase(),a[e]);return this},reset:function(){function a(){c.$.open();var f="";d.size&&(f=d.size-(CKEDITOR.env.ie?7:0));var r=b.frameId+"_input";c.$.write(['','
+ ``` + +- `tabReplace` and `useBR` that were used in different places are also unified + into the global options object and are to be set using `configure(options)`. + This function is documented in our [API docs][]. Also note that these + parameters are gone from `highlightBlock` and `fixMarkup` which are now also + rely on `configure`. + +- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which + was used to register languages with the library in favor of two new methods: + `registerLanguage` and `getLanguage`. Both are documented in our [API docs][]. + +- Result returned from `highlight` and `highlightAuto` no longer contains two + separate attributes contributing to relevance score, `relevance` and + `keyword_count`. They are now unified in `relevance`. + +Another technically compatible change that nonetheless might need attention: + +- The structure of the NPM package was refactored, so if you had installed it + locally, you'll have to update your paths. The usual `require('highlight.js')` + works as before. This is contributed by [Dmitry Smolin][]. + +New features: + +- Languages now can be recognized by multiple names like "js" for JavaScript or + "html" for, well, HTML (which earlier insisted on calling it "xml"). These + aliases can be specified in the class attribute of the code container in your + HTML as well as in various API calls. For now there are only a few very common + aliases but we'll expand it in the future. All of them are listed in the + [class reference][]. + +- Language detection can now be restricted to a subset of languages relevant in + a given context — a web page or even a single highlighting call. This is + especially useful for node.js build that includes all the known languages. + Another example is a StackOverflow-style site where users specify languages + as tags rather than in the markdown-formatted code snippets. This is + documented in the [API reference][] (see methods `highlightAuto` and + `configure`). + +- Language definition syntax streamlined with [variants][] and + [beginKeywords][]. + +New languages and styles: + +- *Oxygene* by [Carlo Kok][] +- *Mathematica* by [Daniel Kvasnička][] +- *Autohotkey* by [Seongwon Lee][] +- *Atelier* family of styles in 10 variants by [Bram de Haan][] +- *Paraíso* styles by [Jan T. Sott][] + +Miscelleanous improvements: + +- Highlighting `=>` prompts in Clojure. +- [Jeremy Hull][] fixed a lot of styles for consistency. +- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html]. +- Objective C and C# now properly highlight titles in method definition. +- Big overhaul of relevance counting for a number of languages. Please do report + bugs about mis-detection of non-trivial code snippets! + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html +[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html +[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion +[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d +[php-html]: https://twitter.com/highlightjs/status/408890903017689088 + +[Carlo Kok]: https://github.com/carlokok +[Bram de Haan]: https://github.com/atelierbram +[Daniel Kvasnička]: https://github.com/dkvasnicka +[Dmitry Smolin]: https://github.com/dimsmol +[Jeremy Hull]: https://github.com/sourrust +[Seongwon Lee]: https://github.com/dlimpid +[Jan T. Sott]: https://github.com/idleberg + + +## Version 7.5 + +A catch-up release dealing with some of the accumulated contributions. This one +is probably will be the last before the 8.0 which will be slightly backwards +incompatible regarding some advanced use-cases. + +One outstanding change in this version is the addition of 6 languages to the +[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and +Makefile. It now weighs about 6K more but we're going to keep it under 30K. + +New languages: + +- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud] +- [LiveCode Server][lcs] by [Ralf Bitter][revig] +- Scilab by [Sylvestre Ledru][sylvestre] +- basic support for Makefile by [Ivan Sagalaev][isagalaev] + +Improvements: + +- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}` + regexps. +- Clojure now allows a function call in the beginning of s-expressions + `(($filter "myCount") (arr 1 2 3 4 5))`. +- Haskell's got new keywords and now recognizes more things like pragmas, + preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep] + for the implementation and to [Jeremy Hull][sourrust] for guiding it. +- Miscelleanous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#. + +[mehdid]: https://github.com/mehdid +[nbraud]: https://github.com/nbraud +[revig]: https://github.com/revig +[lcs]: http://livecode.com/developers/guides/server/ +[sylvestre]: https://github.com/sylvestre +[isagalaev]: https://github.com/isagalaev +[treep]: https://github.com/treep +[sourrust]: https://github.com/sourrust +[d]: http://highlightjs.org/download/ + + +## New core developers + +The latest long period of almost complete inactivity in the project coincided +with growing interest to it led to a decision that now seems completely obvious: +we need more core developers. + +So without further ado let me welcome to the core team two long-time +contributors: [Jeremy Hull][] and [Oleg +Efimov][]. + +Hope now we'll be able to work through stuff faster! + +P.S. The historical commit is [here][1] for the record. + +[Jeremy Hull]: https://github.com/sourrust +[Oleg Efimov]: https://github.com/sannis +[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f + + +## Version 7.4 + +This long overdue version is a snapshot of the current source tree with all the +changes that happened during the past year. Sorry for taking so long! + +Along with the changes in code highlight.js has finally got its new home at +, moving from its craddle on Software Maniacs which it +outgrew a long time ago. Be sure to report any bugs about the site to +. + +On to what's new… + +New languages: + +- Handlebars templates by [Robin Ward][] +- Oracle Rules Language by [Jason Jacobson][] +- F# by [Joans Follesø][] +- AsciiDoc and Haml by [Dan Allen][] +- Lasso by [Eric Knibbe][] +- SCSS by [Kurt Emch][] +- VB.NET by [Poren Chiang][] +- Mizar by [Kelley van Evert][] + +[Robin Ward]: https://github.com/eviltrout +[Jason Jacobson]: https://github.com/jayce7 +[Joans Follesø]: https://github.com/follesoe +[Dan Allen]: https://github.com/mojavelinux +[Eric Knibbe]: https://github.com/EricFromCanada +[Kurt Emch]: https://github.com/kemch +[Poren Chiang]: https://github.com/rschiang +[Kelley van Evert]: https://github.com/kelleyvanevert + +New style themes: + +- Monokai Sublime by [noformnocontent][] +- Railscasts by [Damien White][] +- Obsidian by [Alexander Marenin][] +- Docco by [Simon Madine][] +- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything) +- Foundation by [Dan Allen][] + +[noformnocontent]: http://nn.mit-license.org/ +[Damien White]: https://github.com/visoft +[Alexander Marenin]: https://github.com/ioncreature +[Simon Madine]: https://github.com/thingsinjars +[Ivan Sagalaev]: https://github.com/isagalaev + +Other notable changes: + +- Corrected many corner cases in CSS. +- Dropped Python 2 version of the build tool. +- Implemented building for the AMD format. +- Updated Rust keywords (thanks to [Dmitry Medvinsky][]). +- Literal regexes can now be used in language definitions. +- CoffeeScript highlighting is now significantly more robust and rich due to + input from [Cédric Néhémie][]. + +[Dmitry Medvinsky]: https://github.com/dmedvinsky +[Cédric Néhémie]: https://github.com/abe33 + + +## Version 7.3 + +- Since this version highlight.js no longer works in IE version 8 and older. + It's made it possible to reduce the library size and dramatically improve code + readability and made it easier to maintain. Time to go forward! + +- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and + Brainfuck (by [Evgeny Stepanischev][bolk]). + +- Improvements to existing languages: + + - interpreter prompt in Python (`>>>` and `...`) + - @-properties and classes in CoffeeScript + - E4X in JavaScript (by [Oleg Efimov][oe]) + - new keywords in Perl (by [Kirk Kimmel][kk]) + - big Ruby syntax update (by [Vasily Polovnyov][vast]) + - small fixes in Bash + +- Also Oleg Efimov did a great job of moving all the docs for language and style + developers and contributors from the old wiki under the source code in the + "docs" directory. Now these docs are nicely presented at + . + +[ng]: https://github.com/nathan11g +[dd]: https://github.com/drdrang +[bolk]: https://github.com/bolknote +[oe]: https://github.com/Sannis +[kk]: https://github.com/kimmel +[vast]: https://github.com/vast + + +## Version 7.2 + +A regular bug-fix release without any significant new features. Enjoy! + + +## Version 7.1 + +A Summer crop: + +- [Marc Fornos][mf] made the definition for Clojure along with the matching + style Rainbow (which, of course, works for other languages too). +- CoffeeScript support continues to improve getting support for regular + expressions. +- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the + [project by Chris Kempson][tm0]. +- Thanks to [Casey Duncun][cd] the library can now be built in the popular + [AMD format][amd]. +- And last but not least, we've got a fair number of correctness and consistency + fixes, including a pretty significant refactoring of Ruby. + +[mf]: https://github.com/mfornos +[tm]: http://jmblog.github.com/color-themes-for-highlightjs/ +[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme +[cd]: https://github.com/caseman +[amd]: http://requirejs.org/docs/whyamd.html + + +## Version 7.0 + +The reason for the new major version update is a global change of keyword syntax +which resulted in the library getting smaller once again. For example, the +hosted build is 2K less than at the previous version while supporting two new +languages. + +Notable changes: + +- The library now works not only in a browser but also with [node.js][]. It is + installable with `npm install highlight.js`. [API][] docs are available on our + wiki. + +- The new unique feature (apparently) among syntax highlighters is highlighting + *HTTP* headers and an arbitrary language in the request body. The most useful + languages here are *XML* and *JSON* both of which highlight.js does support. + Here's [the detailed post][p] about the feature. + +- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an + emulation of*XCode* IDE by [Angel Olloqui][ao]. + +- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc] + and *GLSL* by [Sergey Tikhomirov][st]. + +- *Nginx* syntax has become a million times smaller and more universal thanks to + remaking it in a more generic manner that doesn't require listing all the + directives in the known universe. + +- Function titles are now highlighted in *PHP*. + +- *Haskell* and *VHDL* were significantly reworked to be more rich and correct + by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik]. + +And last but not least, many bugs have been fixed around correctness and +language detection. + +Overall highlight.js currently supports 51 languages and 20 style themes. + +[node.js]: http://nodejs.org/ +[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api +[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/ +[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +[ao]: https://github.com/angelolloqui +[ar]: https://github.com/raleksandar +[jc]: https://github.com/jcheng5 +[st]: https://github.com/tikhomirov +[sr]: https://github.com/sourrust +[ik]: https://github.com/ikalnitsky + + +## Version 6.2 + +A lot of things happened in highlight.js since the last version! We've got nine +new contributors, the discussion group came alive, and the main branch on GitHub +now counts more than 350 followers. Here are most significant results coming +from all this activity: + +- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and + experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av], + [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis + Bardadym][db] and [John Crepezzi][jc]. + +- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of + another well-known highlighter Google Code Prettify by [Aahan Krish][ak]. + +- A vast number of [correctness fixes and code refactorings][log], mostly made + by [Oleg Efimov][oe] and [Evgeny Stepanischev][es]. + +[av]: https://github.com/vlasovskikh +[am]: https://github.com/myadzel +[dn]: https://github.com/dnagir +[oe]: https://github.com/Sannis +[db]: https://github.com/btd +[jc]: https://github.com/seejohnrun +[lm]: http://grigio.org/ +[ak]: https://github.com/geekpanth3r +[es]: https://github.com/bolknote +[log]: https://github.com/isagalaev/highlight.js/commits/ + + +## Version 6.1 — Solarized + +[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][] +style theme famous for being based on the intricate color theory to achieve +correct contrast and color perception. It is now available for highlight.js in +both variants — light and dark. + +This version also adds a new original style Arta. Its author pumbur maintains a +[heavily modified fork of highlight.js][pb] on GitHub. + +[jh]: https://github.com/sourrust +[solarized]: http://ethanschoonover.com/solarized +[pb]: https://github.com/pumbur/highlight.js + + +## Version 6.0 + +New major version of the highlighter has been built on a significantly +refactored syntax. Due to this it's even smaller than the previous one while +supporting more languages! + +New languages are: + +- Haskell by [Jeremy Hull][sourrust] +- Erlang in two varieties — module and REPL — made collectively by [Nikolay + Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov] +- Objective C by [Valerii Hiora][vhbit] +- Vala by [Antono Vasiljev][antono] +- Go by [Stephan Kountso][steplg] + +[sourrust]: https://github.com/sourrust +[desh]: http://desh.su/ +[arhibot]: https://github.com/arhibot +[ignatov]: https://github.com/ignatov +[vhbit]: https://github.com/vhbit +[antono]: https://github.com/antono +[steplg]: https://github.com/steplg + +Also this version is marginally faster and fixes a number of small long-standing +bugs. + +Developer overview of the new language syntax is available in a [blog post about +recent beta release][beta]. + +[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/ + +P.S. New version is not yet available on a Yandex' CDN, so for now you have to +download [your own copy][d]. + +[d]: /soft/highlight/en/download/ + + +## Version 5.14 + +Fixed bugs in HTML/XML detection and relevance introduced in previous +refactoring. + +Also test.html now shows the second best result of language detection by +relevance. + + +## Version 5.13 + +Past weekend began with a couple of simple additions for existing languages but +ended up in a big code refactoring bringing along nice improvements for language +developers. + +### For users + +- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard. +- Description of HTML has got new tags from [HTML 5][]. +- CSS-styles have been unified to use consistent padding and also have lost + pop-outs with names of detected languages. +- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake и VHDL. + +This makes total number of languages supported by highlight.js to reach 35. + +Bug fixes: + +- Custom classes on `
` tags are not being overridden anymore
+- More correct highlighting of code blocks inside non-`
` containers:
+  highlighter now doesn't insist on replacing them with its own container and
+  just replaces the contents.
+- Small fixes in browser compatibility and heuristics.
+
+[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
+[html 5]: http://en.wikipedia.org/wiki/HTML5
+[ik]: http://kalnitsky.org.ua/
+
+### For developers
+
+The most significant change is the ability to include language submodes right
+under `contains` instead of defining explicit named submodes in the main array:
+
+    contains: [
+      'string',
+      'number',
+      {begin: '\\n', end: hljs.IMMEDIATE_RE}
+    ]
+
+This is useful for auxiliary modes needed only in one place to define parsing.
+Note that such modes often don't have `className` and hence won't generate a
+separate `` in the resulting markup. This is similar in effect to
+`noMarkup: true`. All existing languages have been refactored accordingly.
+
+Test file test.html has at last become a real test. Now it not only puts the
+detected language name under the code snippet but also tests if it matches the
+expected one. Test summary is displayed right above all language snippets.
+
+
+## CDN
+
+Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
+[Link up][l]!
+
+[yandex]: http://yandex.com/
+[l]: http://softwaremaniacs.org/soft/highlight/en/download/
+
+
+## Version 5.10 — "Paris".
+
+Though I'm on a vacation in Paris, I decided to release a new version with a
+couple of small fixes:
+
+- Tomas Vitvar discovered that TAB replacement doesn't always work when used
+  with custom markup in code
+- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
+
+
+## Version 5.9
+
+A long-awaited version is finally released.
+
+New languages:
+
+- Andrew Fedorov made a definition for Lua
+- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
+  Nginx config
+- [Vladimir Moskva][vm] made a definition for TeX
+
+[pl]: http://kung-fu-tzu.ru/
+[vm]: http://fulc.ru/
+
+Fixes for existing languages:
+
+- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
+  [YARD][] inline documentation
+- the definition of SQL has become more solid and now it shouldn't be overly
+  greedy when it comes to language detection
+
+[ls]: http://gnuu.org/
+[yard]: http://yardoc.org/
+
+The highlighter has become more usable as a library allowing to do highlighting
+from initialization code of JS frameworks and in ajax methods (see.
+readme.eng.txt).
+
+Also this version drops support for the [WordPress][wp] plugin. Everyone is
+welcome to [pick up its maintenance][p] if needed.
+
+[wp]: http://wordpress.org/
+[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
+
+
+## Version 5.8
+
+- Jan Berkel has contributed a definition for Scala. +1 to hotness!
+- All CSS-styles are rewritten to work only inside `
` tags to avoid
+  conflicts with host site styles.
+
+
+## Version 5.7.
+
+Fixed escaping of quotes in VBScript strings.
+
+
+## Version 5.5
+
+This version brings a small change: now .ini-files allow digits, underscores and
+square brackets in key names.
+
+
+## Version 5.4
+
+Fixed small but upsetting bug in the packer which caused incorrect highlighting
+of explicitly specified languages. Thanks to Andrew Fedorov for precise
+diagnostics!
+
+
+## Version 5.3
+
+The version to fulfil old promises.
+
+The most significant change is that highlight.js now preserves custom user
+markup in code along with its own highlighting markup. This means that now it's
+possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
+[initial proposal][1] and for making a proof-of-concept patch.
+
+Also in this version:
+
+- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
+  support for CSS @-rules and Ruby symbols.
+- Yura Zaripov has sent two styles: Brown Paper and School Book.
+- Oleg Volchkov has sent a definition for [Parser 3][p3].
+
+[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
+[p3]: http://www.parser.ru/
+[vp]: http://vasily.polovnyov.ru/
+[vd]: http://dolzhenko.blogspot.com/
+
+
+## Version 5.2
+
+- at last it's possible to replace indentation TABs with something sensible (e.g. 2 or 4 spaces)
+- new keywords and built-ins for 1C by Sergey Baranov
+- a couple of small fixes to Apache highlighting
+
+
+## Version 5.1
+
+This is one of those nice version consisting entirely of new and shiny
+contributions!
+
+- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
+- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
+  original visual style for it is now available for all highlight.js languages
+  under the name "Magula".
+- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
+  languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
+  the matter.
+
+[vooon]: http://vehq.ru/about/
+[rukeba]: http://rukeba.com/
+[drake]: http://drakeguan.org/
+[ke]: http://k-evdokimenko.moikrug.ru/
+
+
+## Version 5.0
+
+The main change in the new major version of highlight.js is a mechanism for
+packing several languages along with the library itself into a single compressed
+file. Now sites using several languages will load considerably faster because
+the library won't dynamically include additional files while loading.
+
+Also this version fixes a long-standing bug with Javascript highlighting that
+couldn't distinguish between regular expressions and division operations.
+
+And as usually there were a couple of minor correctness fixes.
+
+Great thanks to all contributors! Keep using highlight.js.
+
+
+## Version 4.3
+
+This version comes with two contributions from [Jason Diamond][jd]:
+
+- language definition for C# (yes! it was a long-missed thing!)
+- Visual Studio-like highlighting style
+
+Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
+
+[jd]: http://jason.diamond.name/weblog/
+
+
+## Version 4.2
+
+The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
+somewhat experimental meaning that for highlighting "keywords" it doesn't use
+any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
+in parentheses wherever it makes sense. I'd like to ask people programming in
+Lisp to confirm if it's a good idea and send feedback to [the forum][f].
+
+Other changes:
+
+- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
+- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
+  test.html
+- comments now allowed inside Ruby function definition
+- [MEL][] language from [Shuen-Huei Guan][drake]
+- whitespace now allowed between `
` and ``
+- better auto-detection of C++ and PHP
+- HTML allows embedded VBScript (`<% .. %>`)
+
+[f]: http://softwaremaniacs.org/forum/highlightjs/
+[voldmar]: http://voldmar.ya.ru/
+[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
+[drake]: http://drakeguan.org/
+
+
+## Version 4.1
+
+Languages:
+
+- Bash from Vah
+- DOS bat-files from Alexander Makarov (Sam)
+- Diff files from Vasily Polovnyov
+- Ini files from myself though initial idea was from Sam
+
+Styles:
+
+- Zenburn from Vladimir Epifanov, this is an imitation of a
+  [well-known theme for Vim][zenburn].
+- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
+  just one color in only three gradations :-)
+
+In other news. [One small bug][bug] was fixed, built-in keywords were added for
+Python and C++ which improved auto-detection for the latter (it was shame that
+[my wife's blog][alenacpp] had issues with it from time to time). And lastly
+thanks go to Sam for getting rid of my stylistic comments in code that were
+getting in the way of [JSMin][].
+
+[zenburn]: http://en.wikipedia.org/wiki/Zenburn
+[alenacpp]: http://alenacpp.blogspot.com/
+[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
+[jsmin]: http://code.google.com/p/jsmin-php/
+
+
+## Version 4.0
+
+New major version is a result of vast refactoring and of many contributions.
+
+Visible new features:
+
+- Highlighting of embedded languages. Currently is implemented highlighting of
+  Javascript and CSS inside HTML.
+- Bundled 5 ready-made style themes!
+
+Invisible new features:
+
+- Highlight.js no longer pollutes global namespace. Only one object and one
+  function for backward compatibility.
+- Performance is further increased by about 15%.
+
+Changing of a major version number caused by a new format of language definition
+files. If you use some third-party language files they should be updated.
+
+
+## Version 3.5
+
+A very nice version in my opinion fixing a number of small bugs and slightly
+increased speed in a couple of corner cases. Thanks to everybody who reports
+bugs in he [forum][f] and by email!
+
+There is also a new language — XML. A custom XML formerly was detected as HTML
+and didn't highlight custom tags. In this version I tried to make custom XML to
+be detected and highlighted by its own rules. Which by the way include such
+things as CDATA sections and processing instructions (``).
+
+[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
+
+
+## Version 3.3
+
+[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
+File export.html contains a little program that shows and allows to copy and
+paste an HTML code generated by the highlighter for any code snippet. This can
+be useful in situations when one can't use the script itself on a site.
+
+
+[xonix]: http://xonixx.blogspot.com/
+
+
+## Version 3.2 consists completely of contributions:
+
+- Vladimir Gubarkov has described SmallTalk
+- Yuri Ivanov has described 1C
+- Peter Leonov has packaged the highlighter as a Firefox extension
+- Vladimir Ermakov has compiled a mod for phpBB
+
+Many thanks to you all!
+
+
+## Version 3.1
+
+Three new languages are available: Django templates, SQL and Axapta. The latter
+two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
+SQL definition but I'd never started it be it from the ground up :-)
+
+The engine itself has got a long awaited feature of grouping keywords
+("keyword", "built-in function", "literal"). No more hacks!
+
+[1]: http://roudakov.ru/
+
+
+## Version 3.0
+
+It is major mainly because now highlight.js has grown large and has become
+modular. Now when you pass it a list of languages to highlight it will
+dynamically load into a browser only those languages.
+
+Also:
+
+- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
+  RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
+  languages!
+- Heuristics for C++ and HTML got better.
+- I've implemented (at last) a correct handling of backslash escapes in C-like
+  languages.
+
+There is also a small backwards incompatible change in the new version. The
+function initHighlighting that was used to initialize highlighting instead of
+initHighlightingOnLoad a long time ago no longer works. If you by chance still
+use it — replace it with the new one.
+
+[RibKit]: http://ribkit.sourceforge.net/
+
+
+## Version 2.9
+
+Highlight.js is a parser, not just a couple of regular expressions. That said
+I'm glad to announce that in the new version 2.9 has support for:
+
+- in-string substitutions for Ruby -- `#{...}`
+- strings from from numeric symbol codes (like #XX) for Delphi
+
+
+## Version 2.8
+
+A maintenance release with more tuned heuristics. Fully backwards compatible.
+
+
+## Version 2.7
+
+- Nikita Ledyaev presents highlighting for VBScript, yay!
+- A couple of bugs with escaping in strings were fixed thanks to Mickle
+- Ongoing tuning of heuristics
+
+Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
+
+
+## Version 2.4
+
+- Peter Leonov provides another improved highlighting for Perl
+- Javascript gets a new kind of keywords — "literals". These are the words
+  "true", "false" and "null"
+
+Also highlight.js homepage now lists sites that use the library. Feel free to
+add your site by [dropping me a message][mail] until I find the time to build a
+submit form.
+
+[mail]: mailto:Maniac@SoftwareManiacs.Org
+
+
+## Version 2.3
+
+This version fixes IE breakage in previous version. My apologies to all who have
+already downloaded that one!
+
+
+## Version 2.2
+
+- added highlighting for Javascript
+- at last fixed parsing of Delphi's escaped apostrophes in strings
+- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
+  Perl
+
+
+## Version 2.0
+
+- Ruby support by [Anton Kovalyov][ak]
+- speed increased by orders of magnitude due to new way of parsing
+- this same way allows now correct highlighting of keywords in some tricky
+  places (like keyword "End" at the end of Delphi classes)
+
+[ak]: http://anton.kovalyov.net/
+
+
+## Version 1.0
+
+Version 1.0 of javascript syntax highlighter is released!
+
+It's the first version available with English description. Feel free to post
+your comments and question to [highlight.js forum][forum]. And don't be afraid
+if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
+
+[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
new file mode 100644
index 00000000..422deb73
--- /dev/null
+++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of highlight.js nor the names of its contributors 
+      may be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
new file mode 100644
index 00000000..be85f6ad
--- /dev/null
+++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md
@@ -0,0 +1,171 @@
+# Highlight.js
+
+Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах,
+форумах и вообще на любых веб-страницах. Пользоваться им очень просто,
+потому что работает он автоматически: сам находит блоки кода, сам
+определяет язык, сам подсвечивает.
+
+Автоопределением языка можно управлять, когда оно не справляется само (см.
+дальше "Эвристика").
+
+
+## Простое использование
+
+Подключите библиотеку и стиль на страницу и повесть вызов подсветки на
+загрузку страницы:
+
+```html
+
+
+
+```
+
+Весь код на странице, обрамлённый в теги `
 .. 
` +будет автоматически подсвечен. Если вы используете другие теги или хотите +подсвечивать блоки кода динамически, читайте "Инициализацию вручную" ниже. + +- Вы можете скачать собственную версию "highlight.pack.js" или сослаться + на захостенный файл, как описано на странице загрузки: + + +- Стилевые темы можно найти в загруженном архиве или также использовать + захостенные. Чтобы сделать собственный стиль для своего сайта, вам + будет полезен [CSS classes reference][cr], который тоже есть в архиве. + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html + + +## node.js + +Highlight.js можно использовать в node.js. Библиотеку со всеми возможными языками можно +установить с NPM: + + npm install highlight.js + +Также её можно собрать из исходников с только теми языками, которые нужны: + + python3 tools/build.py -tnode lang1 lang2 .. + +Использование библиотеки: + +```javascript +var hljs = require('highlight.js'); + +// Если вы знаете язык +hljs.highlight(lang, code).value; + +// Автоопределение языка +hljs.highlightAuto(code).value; +``` + + +## AMD + +Highlight.js можно использовать с загрузчиком AMD-модулей. Для этого его +нужно собрать из исходников следующей командой: + +```bash +$ python3 tools/build.py -tamd lang1 lang2 .. +``` + +Она создаст файл `build/highlight.pack.js`, который является загружаемым +AMD-модулем и содержит все выбранные при сборке языки. Используется он так: + +```javascript +require(["highlight.js/build/highlight.pack"], function(hljs){ + + // Если вы знаете язык + hljs.highlight(lang, code).value; + + // Автоопределение языка + hljs.highlightAuto(code).value; +}); +``` + + +## Замена TABов + +Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на +фиксированное количество пробелов или на отдельный ``, чтобы задать ему +какой-нибудь специальный стиль: + +```html + +``` + + +## Инициализация вручную + +Если вы используете другие теги для блоков кода, вы можете инициализировать их +явно с помощью функции `highlightBlock(code)`. Она принимает DOM-элемент с +текстом расцвечиваемого кода и опционально - строчку для замены символов TAB. + +Например с использованием jQuery код инициализации может выглядеть так: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); +}); +``` + +`highlightBlock` можно также использовать, чтобы подсветить блоки кода, +добавленные на страницу динамически. Только убедитесь, что вы не делаете этого +повторно для уже раскрашенных блоков. + +Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не +`
`), включите опцию `useBR`:
+
+```javascript
+hljs.configure({useBR: true});
+$('div.code').each(function(i, e) {hljs.highlightBlock(e)});
+```
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу ``:
+
+```html
+
...
+``` + +Можно использовать рекомендованные в HTML5 названия классов: +"language-html", "language-php". Также можно назначать классы на элемент +`
`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+```html
+
...
+``` + + +## Экспорт + +В файле export.html находится небольшая программка, которая показывает и дает +скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода. +Это может понадобится например на сайте, на котором нельзя подключить сам скрипт +highlight.js. + + +## Координаты + +- Версия: 8.0 +- URL: http://highlightjs.org/ + +Лицензионное соглашение читайте в файле LICENSE. +Список авторов и соавторов читайте в файле AUTHORS.ru.txt diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js new file mode 100644 index 00000000..627f79e2 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js @@ -0,0 +1 @@ +var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBLCLM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,i:/[:"<>]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{k:d,l:c,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css new file mode 100644 index 00000000..c2a55bbe --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css @@ -0,0 +1,160 @@ +/* +Date: 17.V.2011 +Author: pumbur +*/ + +.hljs +{ + display: block; padding: 0.5em; + background: #222; +} + +.profile .hljs-header *, +.ini .hljs-title, +.nginx .hljs-title +{ + color: #fff; +} + +.hljs-comment, +.hljs-javadoc, +.hljs-preprocessor, +.hljs-preprocessor .hljs-title, +.hljs-pragma, +.hljs-shebang, +.profile .hljs-summary, +.diff, +.hljs-pi, +.hljs-doctype, +.hljs-tag, +.hljs-template_comment, +.css .hljs-rules, +.tex .hljs-special +{ + color: #444; +} + +.hljs-string, +.hljs-symbol, +.diff .hljs-change, +.hljs-regexp, +.xml .hljs-attribute, +.smalltalk .hljs-char, +.xml .hljs-value, +.ini .hljs-value, +.clojure .hljs-attribute, +.coffeescript .hljs-attribute +{ + color: #ffcc33; +} + +.hljs-number, +.hljs-addition +{ + color: #00cc66; +} + +.hljs-built_in, +.hljs-literal, +.vhdl .hljs-typename, +.go .hljs-constant, +.go .hljs-typename, +.ini .hljs-keyword, +.lua .hljs-title, +.perl .hljs-variable, +.php .hljs-variable, +.mel .hljs-variable, +.django .hljs-variable, +.css .funtion, +.smalltalk .method, +.hljs-hexcolor, +.hljs-important, +.hljs-flow, +.hljs-inheritance, +.parser3 .hljs-variable +{ + color: #32AAEE; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.css .hljs-tag, +.css .hljs-class, +.css .hljs-id, +.css .hljs-pseudo, +.css .hljs-attr_selector, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-winutils, +.tex .hljs-command, +.hljs-request, +.hljs-status +{ + color: #6644aa; +} + +.hljs-title, +.ruby .hljs-constant, +.vala .hljs-constant, +.hljs-parent, +.hljs-deletion, +.hljs-template_tag, +.css .hljs-keyword, +.objectivec .hljs-class .hljs-id, +.smalltalk .hljs-class, +.lisp .hljs-keyword, +.apache .hljs-tag, +.nginx .hljs-variable, +.hljs-envvar, +.bash .hljs-variable, +.go .hljs-built_in, +.vbscript .hljs-built_in, +.lua .hljs-built_in, +.rsl .hljs-built_in, +.tail, +.avrasm .hljs-label, +.tex .hljs-formula, +.tex .hljs-formula * +{ + color: #bb1166; +} + +.hljs-yardoctag, +.hljs-phpdoc, +.profile .hljs-header, +.ini .hljs-title, +.apache .hljs-tag, +.parser3 .hljs-title +{ + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata +{ + opacity: 0.6; +} + +.hljs, +.javascript, +.css, +.xml, +.hljs-subst, +.diff .hljs-chunk, +.css .hljs-value, +.css .hljs-attribute, +.lisp .hljs-string, +.lisp .hljs-number, +.tail .hljs-params, +.hljs-container, +.haskell *, +.erlang *, +.erlang_repl * +{ + color: #aaa; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css new file mode 100644 index 00000000..89c5fe2f --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css @@ -0,0 +1,50 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-filter .hljs-argument, +.hljs-addition, +.hljs-change, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #888; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-shebang, +.hljs-doctype, +.hljs-pi, +.hljs-javadoc, +.hljs-deletion, +.apache .hljs-sqbracket { + color: #CCC; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.ini .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.http .hljs-title, +.nginx .hljs-title, +.css .hljs-tag, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css new file mode 100644 index 00000000..4cfc77ca --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Dark Comment */ +.hljs-comment, +.hljs-title { + color: #999580; +} + +/* Atelier Dune Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Dark Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Dark Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #292824; + color: #a6a28c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css new file mode 100644 index 00000000..3501bf82 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Light Comment */ +.hljs-comment, +.hljs-title { + color: #7d7a68; +} + +/* Atelier Dune Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Light Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #fefbec; + color: #6e6b5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css new file mode 100644 index 00000000..9c26b7be --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9c9491; +} + +/* Atelier Forest Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Dark Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #2c2421; + color: #a8a19f; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css new file mode 100644 index 00000000..3de3dadb --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Light Comment */ +.hljs-comment, +.hljs-title { + color: #766e6b; +} + +/* Atelier Forest Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Light Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #f1efee; + color: #68615e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css new file mode 100644 index 00000000..df1446c1 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9e8f9e; +} + +/* Atelier Heath Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Dark Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #292329; + color: #ab9bab; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css new file mode 100644 index 00000000..a737a082 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Light Comment */ +.hljs-comment, +.hljs-title { + color: #776977; +} + +/* Atelier Heath Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Light Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #f7f3f7; + color: #695d69; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css new file mode 100644 index 00000000..43c5b4ea --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #7195a8; +} + +/* Atelier Lakeside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Dark Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #1f292e; + color: #7ea2b4; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css new file mode 100644 index 00000000..5a782694 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Light Comment */ +.hljs-comment, +.hljs-title { + color: #5a7b8c; +} + +/* Atelier Lakeside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Light Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #ebf8ff; + color: #516d7b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css new file mode 100644 index 00000000..3bea9b36 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #809980; +} + +/* Atelier Seaside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Dark Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #242924; + color: #8ca68c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css new file mode 100644 index 00000000..e86c44d6 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Light Comment */ +.hljs-comment, +.hljs-title { + color: #687d68; +} + +/* Atelier Seaside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Light Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #f0fff0; + color: #5e6e5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css new file mode 100644 index 00000000..0838fb8f --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css @@ -0,0 +1,105 @@ +/* + +Brown Paper style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 0.5em; + background:#b7a68e url(./brown_papersq.png); +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-request, +.hljs-status { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #363C69; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-number { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #802022; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.8; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png new file mode 100644 index 00000000..3813903d Binary files /dev/null and b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png differ diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css new file mode 100644 index 00000000..b9426c37 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css @@ -0,0 +1,105 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #444; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: white; +} + +.hljs, +.hljs-subst { + color: #DDD; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.ini .hljs-title, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.coffeescript .hljs-attribute { + color: #D88; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #777; +} + +.hljs-keyword, +.hljs-literal, +.hljs-title, +.css .hljs-id, +.hljs-phpdoc, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css new file mode 100644 index 00000000..ae9af353 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css @@ -0,0 +1,153 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #F0F0F0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88F +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css new file mode 100644 index 00000000..5026d6cf --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css @@ -0,0 +1,132 @@ +/* +Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #f8f8ff +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #408080; + font-style: italic +} + +.hljs-keyword, +.assignment, +.hljs-literal, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + color: #954121; +} + +.hljs-number, +.hljs-hexcolor { + color: #40a070 +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #219161; +} + +.hljs-title, +.hljs-id { + color: #19469D; +} +.hljs-params { + color: #00F; +} + +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-label, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.instancevar, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #B68 +} + +.hljs-class { + color: #458; + font-weight: bold +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-keyword, +.ruby .hljs-symbol .keymethods, +.lisp .hljs-keyword, +.tex .hljs-special, +.input_number { + color: #990073 +} + +.builtin, +.constructor, +.hljs-built_in, +.lisp .hljs-title { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} + +.tex .hljs-formula { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css new file mode 100644 index 00000000..be505362 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css @@ -0,0 +1,113 @@ +/* + +FAR Style (c) MajestiC + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000080; +} + +.hljs, +.hljs-subst { + color: #0FF; +} + +.hljs-string, +.ruby .hljs-string, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.css .hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.clojure .hljs-title, +.coffeescript .hljs-attribute { + color: #FF0; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.hljs-winutils, +.hljs-flow, +.hljs-change, +.hljs-envvar, +.bash .hljs-variable, +.tex .hljs-special, +.clojure .hljs-built_in { + color: #FFF; +} + +.hljs-comment, +.hljs-phpdoc, +.hljs-javadoc, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-deletion, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.clojure .hljs-attribute { + color: #0F0; +} + +.python .hljs-decorator, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.xml .hljs-pi, +.diff .hljs-header, +.hljs-chunk, +.hljs-shebang, +.nginx .hljs-built_in, +.hljs-prompt { + color: #008080; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css new file mode 100644 index 00000000..0710a10f --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css @@ -0,0 +1,133 @@ +/* +Description: Foundation 4 docs style for highlight.js +Author: Dan Allen +Website: http://foundation.zurb.com/docs/ +Version: 1.0 +Date: 2013-04-02 +*/ + +.hljs { + display: block; padding: 0.5em; + background: #eee; +} + +.hljs-header, +.hljs-decorator, +.hljs-annotation { + color: #000077; +} + +.hljs-horizontal_rule, +.hljs-link_url, +.hljs-emphasis, +.hljs-attribute { + color: #070; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-link_label, +.hljs-strong, +.hljs-value, +.hljs-string, +.scss .hljs-value .hljs-string { + color: #d14; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-blockquote, +.hljs-comment { + color: #998; + font-style: italic; +} + +.asciidoc .hljs-title, +.hljs-function .hljs-title { + color: #900; +} + +.hljs-class { + color: #458; +} + +.hljs-id, +.hljs-pseudo, +.hljs-constant, +.hljs-hexcolor { + color: teal; +} + +.hljs-variable { + color: #336699; +} + +.hljs-bullet, +.hljs-javadoc { + color: #997700; +} + +.hljs-pi, +.hljs-doctype { + color: #3344bb; +} + +.hljs-code, +.hljs-number { + color: #099; +} + +.hljs-important { + color: #f00; +} + +.smartquote, +.hljs-label { + color: #970; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #579; +} + +.hljs-reserved, +.hljs-keyword, +.scss .hljs-value { + color: #000; +} + +.hljs-regexp { + background-color: #fff0ff; + color: #880088; +} + +.hljs-symbol { + color: #990073; +} + +.hljs-symbol .hljs-string { + color: #a60; +} + +.hljs-tag { + color: #007700; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #088; +} + +.hljs-at_rule .hljs-preprocessor { + color: #808; +} + +.scss .hljs-tag, +.scss .hljs-attribute { + color: #339; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css new file mode 100644 index 00000000..5517086b --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css @@ -0,0 +1,125 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #333; + background: #f8f8f8 +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14 +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #009926 +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073 +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css new file mode 100644 index 00000000..5cc49b68 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css @@ -0,0 +1,147 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #800; +} + +.hljs-keyword, +.method, +.hljs-list .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp, +.coffeescript .hljs-attribute { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-literal, +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-attribute { + color: #066; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.hljs-variable, +.clojure .hljs-title { + color: #606; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #444; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css new file mode 100644 index 00000000..3e810c5f --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css @@ -0,0 +1,122 @@ +/* + +Intellij Idea-like styling (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.diff .hljs-header { + color: #808080; + font-style: italic; +} + +.hljs-annotation, +.hljs-decorator, +.hljs-preprocessor, +.hljs-pragma, +.hljs-doctype, +.hljs-pi, +.hljs-chunk, +.hljs-shebang, +.apache .hljs-cbracket, +.hljs-prompt, +.http .hljs-title { + color: #808000; +} + +.hljs-tag, +.hljs-pi { + background: #efefef; +} + +.hljs-tag .hljs-title, +.hljs-id, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-literal, +.hljs-keyword, +.hljs-hexcolor, +.css .hljs-function, +.ini .hljs-title, +.css .hljs-class, +.hljs-list .hljs-title, +.clojure .hljs-title, +.nginx .hljs-title, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-rules .hljs-keyword, +.hljs-number, +.hljs-date, +.hljs-regexp, +.tex .hljs-special { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp { + font-weight: normal; +} + +.hljs-string, +.hljs-value, +.hljs-filter .hljs-argument, +.css .hljs-function .hljs-params, +.apache .hljs-tag { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-char, +.tex .hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-phpdoc, +.hljs-yardoctag, +.hljs-javadoctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-envvar, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.diff .hljs-change { + background: #bccff9; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css new file mode 100644 index 00000000..66f7c193 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css @@ -0,0 +1,105 @@ +/* + IR_Black style (c) Vasily Mikhailitchenko +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-shebang, +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #7c7c7c; +} + +.hljs-keyword, +.hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #96CBFE; +} + +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title, +.nginx .hljs-title { + color: #FFFFB6; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.coffeescript .hljs-attribute { + color: #A8FF60; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-decorator, +.tex .hljs-special, +.haskell .hljs-type, +.hljs-constant, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.nginx .hljs-built_in { + color: #FFFFB6; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.hljs-variable, +.vbscript, +.hljs-literal { + color: #C6C5FE; +} + +.css .hljs-tag { + color: #96CBFE; +} + +.css .hljs-rules .hljs-property, +.css .hljs-id { + color: #FFFFB6; +} + +.css .hljs-class { + color: #FFF; +} + +.hljs-hexcolor { + color: #C6C5FE; +} + +.hljs-number { + color:#FF73FD; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css new file mode 100644 index 00000000..bc69a377 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css @@ -0,0 +1,122 @@ +/* +Description: Magula style for highligh.js +Author: Ruslan Keba +Website: http://rukeba.com/ +Version: 1.0 +Date: 2009-01-03 +Music: Aphex Twin / Xtal +*/ + +.hljs { + display: block; padding: 0.5em; + background-color: #f4f4f4; +} + +.hljs, +.hljs-subst, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-cbracket, +.coffeescript .hljs-attribute { + color: #050; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk { + color: #777; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.hljs-change, +.tex .hljs-special { + color: #800; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.hljs-prompt, +.clojure .hljs-attribute { + color: #00e; +} + +.hljs-keyword, +.hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.xml .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: navy; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +/* --- */ +.apache .hljs-tag { + font-weight: bold; + color: blue; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css new file mode 100644 index 00000000..bfe2495b --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css @@ -0,0 +1,62 @@ +/* + Five-color theme from a single blue hue. +*/ +.hljs { + display: block; padding: 0.5em; + background: #EAEEF3; color: #00193A; +} + +.hljs-keyword, +.hljs-title, +.hljs-important, +.hljs-request, +.hljs-header, +.hljs-javadoctag { + font-weight: bold; +} + +.hljs-comment, +.hljs-chunk, +.hljs-template_comment { + color: #738191; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-built_in, +.hljs-literal, +.hljs-filename, +.hljs-value, +.hljs-addition, +.hljs-tag, +.hljs-argument, +.hljs-link_label, +.hljs-blockquote, +.hljs-header { + color: #0048AB; +} + +.hljs-decorator, +.hljs-prompt, +.hljs-yardoctag, +.hljs-subst, +.hljs-symbol, +.hljs-doctype, +.hljs-regexp, +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-attribute, +.hljs-attr_selector, +.hljs-javadoc, +.hljs-xmlDocTag, +.hljs-deletion, +.hljs-shebang, +.hljs-string .hljs-variable, +.hljs-link_url, +.hljs-bullet, +.hljs-sqbracket, +.hljs-phony { + color: #4C81C9; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css new file mode 100644 index 00000000..34cd4f9e --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css @@ -0,0 +1,127 @@ +/* +Monokai style - ported by Luigi Maselli - http://grigio.org +*/ + +.hljs { + display: block; padding: 0.5em; + background: #272822; +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-keyword, +.hljs-literal, +.hljs-strong, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: #F92672; +} + +.hljs { + color: #DDD; +} + +.hljs .hljs-constant, +.asciidoc .hljs-code { + color: #66D9EF; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-link_label, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-value, +.hljs-regexp { + color: #BF79DB; +} + +.hljs-link_url, +.hljs-tag .hljs-value, +.hljs-string, +.hljs-bullet, +.hljs-subst, +.hljs-title, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #A6E22E; +} + +.hljs-comment, +.java .hljs-annotation, +.smartquote, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715E; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css new file mode 100644 index 00000000..2d216333 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css @@ -0,0 +1,149 @@ +/* + +Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #23241f; +} + +.hljs, +.hljs-tag, +.css .hljs-rules, +.css .hljs-value, +.css .hljs-function +.hljs-preprocessor, +.hljs-pragma { + color: #f8f8f2; +} + +.hljs-strongemphasis, +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-blockquote, +.hljs-horizontal_rule, +.hljs-number, +.hljs-regexp, +.alias .hljs-keyword, +.hljs-literal, +.hljs-hexcolor { + color: #ae81ff; +} + +.hljs-tag .hljs-value, +.hljs-code, +.hljs-title, +.css .hljs-class, +.hljs-class .hljs-title:last-child { + color: #a6e22e; +} + +.hljs-link_url { + font-size: 80%; +} + +.hljs-strong, +.hljs-strongemphasis { + font-weight: bold; +} + +.hljs-emphasis, +.hljs-strongemphasis, +.hljs-class .hljs-title:last-child { + font-style: italic; +} + +.hljs-keyword, +.hljs-function, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-header, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-tag .hljs-title, +.hljs-value, +.alias .hljs-keyword:first-child, +.css .hljs-tag, +.css .unit, +.css .hljs-important { + color: #F92672; +} + +.hljs-function .hljs-keyword, +.hljs-class .hljs-keyword:first-child, +.hljs-constant, +.css .hljs-attribute { + color: #66d9ef; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #f8f8f2; +} + +.hljs-string, +.css .hljs-id, +.hljs-subst, +.haskell .hljs-type, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.hljs-link_label, +.hljs-link_url { + color: #e6db74; +} + +.hljs-comment, +.hljs-javadoc, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715e; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata, +.xml .php, +.php .xml { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css new file mode 100644 index 00000000..68259fc8 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css @@ -0,0 +1,154 @@ +/** + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +.hljs { + display: block; padding: 0.5em; + background: #282B2E; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.css .hljs-id, +.tex .hljs-special { + color: #93C763; +} + +.hljs-number { + color: #FFCD22; +} + +.hljs { + color: #E0E2E4; +} + +.css .hljs-tag, +.css .hljs-pseudo { + color: #D0D2B5; +} + +.hljs-attribute, +.hljs .hljs-constant { + color: #668BB0; +} + +.xml .hljs-attribute { + color: #B3B689; +} + +.xml .hljs-tag .hljs-value { + color: #E8E2B7; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-class, +.hljs-hexcolor { + color: #93C763; +} + +.hljs-regexp { + color: #D39745; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #A082BD; +} + +.hljs-doctype { + color: #557182; +} + +.hljs-link_url, +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #8CBBAD; +} + +.hljs-string { + color: #EC7600; +} + +.hljs-comment, +.java .hljs-annotation, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #818E96; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-at_rule .hljs-keyword, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css new file mode 100644 index 00000000..55d02f1d --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css @@ -0,0 +1,93 @@ +/* + Paraíso (dark) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #8d8687; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #2f1e2e; + color: #a39e9b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css new file mode 100644 index 00000000..d29ee1b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css @@ -0,0 +1,93 @@ +/* + Paraíso (light) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #776e71; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #e7e9db; + color: #4f424c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css new file mode 100644 index 00000000..86307929 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css @@ -0,0 +1,106 @@ +/* + +Pojoaque Style by Jason Tate +http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +Based on Solarized Style from http://ethanschoonover.com/solarized + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #DCCF8F; + background: url(./pojoaque.jpg) repeat scroll left top #181914; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; + font-style: italic; +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.method, +.hljs-addition, +.css .hljs-tag, +.clojure .hljs-title, +.nginx .hljs-title { + color: #B64926; +} + +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #468966; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-identifier, +.hljs-id { + color: #FFB03B; +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type { + color: #b58900; +} + +.css .hljs-attribute { + color: #b89859; +} + +.css .hljs-number, +.css .hljs-hexcolor { + color: #DCCF8F; +} + +.css .hljs-class { + color: #d3a60c; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #cb4b16; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg new file mode 100644 index 00000000..9c07d4ab Binary files /dev/null and b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg differ diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css new file mode 100644 index 00000000..83d0cde5 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css @@ -0,0 +1,182 @@ +/* + +Railscasts-like style (c) Visoft, Inc. (Damien White) + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #232323; + color: #E6E1DC; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-shebang { + color: #BC9458; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.method, +.hljs-list .hljs-title { + color: #C26230; +} + +.hljs-string, +.hljs-number, +.hljs-regexp, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.markdown .hljs-link_label { + color: #A5C261; +} + +.hljs-subst { + color: #519F50; +} + +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-tag .hljs-title, +.hljs-doctype, +.hljs-sub .hljs-identifier, +.hljs-pi, +.input_number { + color: #E8BF6A; +} + +.hljs-identifier { + color: #D0D0FF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: none; +} + +.hljs-constant { + color: #DA4939; +} + + +.hljs-symbol, +.hljs-built_in, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-identifier, +.markdown .hljs-link_url, +.hljs-attribute { + color: #6D9CBE; +} + +.markdown .hljs-link_url { + text-decoration: underline; +} + + + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #D0D0FF; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #8996A8 !important; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #A5C261; +} + +.hljs-title, +.hljs-decorator, +.css .hljs-function { + color: #FFC66D; +} + +.diff .hljs-header, +.hljs-chunk { + background-color: #2F33AB; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; + display: inline-block; + width: 100%; +} + +.hljs-addition { + background-color: #144212; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css new file mode 100644 index 00000000..08142466 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css @@ -0,0 +1,112 @@ +/* + +Style with support for rainbow parens + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #474949; color: #D1D9E1; +} + + +.hljs-body, +.hljs-collection { + color: #D1D9E1; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #969896; + font-style: italic; +} + +.hljs-keyword, +.clojure .hljs-attribute, +.hljs-winutils, +.javascript .hljs-title, +.hljs-addition, +.css .hljs-tag { + color: #cc99cc; +} + +.hljs-number { color: #f99157; } + +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #8abeb7; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.hljs-identifier +{ + color: #b5bd68; +} + +.hljs-class .hljs-keyword +{ + color: #f2777a; +} + +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-label, +.hljs-id, +.lisp .hljs-title, +.clojure .hljs-title .hljs-built_in { + color: #ffcc66; +} + +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword, +.clojure .hljs-title .hljs-built_in { + font-weight: bold; +} + +.hljs-attribute, +.clojure .hljs-title { + color: #81a2be; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #f99157; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css new file mode 100644 index 00000000..a36e8362 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css @@ -0,0 +1,113 @@ +/* + +School Book style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 15px 0.5em 0.5em 30px; + font-size: 11px !important; + line-height:16px !important; +} + +pre{ + background:#f6f6ae url(./school_book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #3E5915; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket { + color: #E60415; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png new file mode 100644 index 00000000..956e9790 Binary files /dev/null and b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png differ diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css new file mode 100644 index 00000000..970d5f81 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #002b36; + color: #839496; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css new file mode 100644 index 00000000..8e1f4365 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #93a1a1; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css new file mode 100644 index 00000000..8816520c --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css @@ -0,0 +1,160 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #E28964; +} + +.hljs-function .hljs-keyword, +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title { + color: #99CF50; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #65B042; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.hljs-shebang, +.hljs-prompt { + color: #89BDFF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: underline; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number { + color: #3387CC; +} + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #3E87E3; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #8996A8; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #DD7B3B; +} + +.css .hljs-function { + color: #DAD085; +} + +.diff .hljs-header, +.hljs-chunk, +.tex .hljs-formula { + background-color: #0E2231; + color: #F8F8F8; + font-style: italic; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; +} + +.hljs-addition { + background-color: #253B22; + color: #F8F8F8; +} + +.hljs-deletion { + background-color: #420E09; + color: #F8F8F8; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css new file mode 100644 index 00000000..e63ab3de --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Blue Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #7285b7; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ff9da4; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #ffc58f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffeead; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #d1f1a9; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #99ffff; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #bbdaff; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ebbbff; +} + +.hljs { + display: block; + background: #002451; + color: white; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css new file mode 100644 index 00000000..3bbf367d --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Bright Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d54e53; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #e78c45; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #e7c547; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b9ca4a; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #70c0b1; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #7aa6da; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #c397d8; +} + +.hljs { + display: block; + background: black; + color: #eaeaea; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css new file mode 100644 index 00000000..b8de0dbf --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Eighties Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #999999; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f2777a; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99157; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffcc66; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #99cc99; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #66cccc; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6699cc; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #cc99cc; +} + +.hljs { + display: block; + background: #2d2d2d; + color: #cccccc; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css new file mode 100644 index 00000000..54ceb585 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css new file mode 100644 index 00000000..a81a2e85 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css @@ -0,0 +1,90 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #8e908c; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #c82829; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f5871f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #eab700; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #718c00; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #3e999f; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #4271ae; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #8959a8; +} + +.hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css new file mode 100644 index 00000000..5ebf4541 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css @@ -0,0 +1,89 @@ +/* + +Visual Studio-like style based on original C# coloring by Jason Diamond + +*/ +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.apache .hljs-cbracket { + color: #008000; +} + +.hljs-keyword, +.hljs-id, +.hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.xml .hljs-tag, +.xml .hljs-tag .hljs-value { + color: #00f; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.apache .hljs-tag, +.hljs-date, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #a31515; +} + +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.hljs-preprocessor, +.hljs-pragma, +.userType, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-special, +.hljs-prompt { + color: #2b91af; +} + +.hljs-phpdoc, +.hljs-javadoc, +.hljs-xmlDocTag { + color: #808080; +} + +.vhdl .hljs-typename { font-weight: bold; } +.vhdl .hljs-string { color: #666666; } +.vhdl .hljs-literal { color: #a31515; } +.vhdl .hljs-attribute { color: #00B0E8; } + +.xml .hljs-attribute { color: #f00; } diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css new file mode 100644 index 00000000..8d54da72 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css @@ -0,0 +1,158 @@ +/* + +XCode style (c) Angel Garcia + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #fff; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #006a00; +} + +.hljs-keyword, +.hljs-literal, +.nginx .hljs-title { + color: #aa0d91; +} +.method, +.hljs-list .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string { + color: #c41a16; +} +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-title, +.clojure .hljs-built_in, +.hljs-function .hljs-title, +.coffeescript .hljs-attribute { + color: #1c00cf; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.clojure .hljs-attribute { + color: #5c2699; +} + +.hljs-variable { + color: #3f6e74; +} +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #643820; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} + +.method .hljs-id { + color: #000; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css new file mode 100644 index 00000000..3e6a6871 --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css @@ -0,0 +1,116 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #3F3F3F; + color: #DCDCDC; +} + +.hljs-keyword, +.hljs-tag, +.css .hljs-class, +.css .hljs-id, +.lisp .hljs-title, +.nginx .hljs-title, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #E3CEAB; +} + +.django .hljs-template_tag, +.django .hljs-variable, +.django .hljs-filter .hljs-argument { + color: #DCDCDC; +} + +.hljs-number, +.hljs-date { + color: #8CD0D3; +} + +.dos .hljs-envvar, +.dos .hljs-stream, +.hljs-variable, +.apache .hljs-sqbracket { + color: #EFDCBC; +} + +.dos .hljs-flow, +.diff .hljs-change, +.python .exception, +.python .hljs-built_in, +.hljs-literal, +.tex .hljs-special { + color: #EFEFAF; +} + +.diff .hljs-chunk, +.hljs-subst { + color: #8F8F8F; +} + +.dos .hljs-keyword, +.python .hljs-decorator, +.hljs-title, +.haskell .hljs-type, +.diff .hljs-header, +.ruby .hljs-class .hljs-parent, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.hljs-prompt { + color: #efef8f; +} + +.dos .hljs-winutils, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-string { + color: #DCA3A3; +} + +.diff .hljs-deletion, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.sql .hljs-aggregate, +.hljs-javadoc, +.smalltalk .hljs-class, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.css .hljs-rules .hljs-value, +.hljs-attr_selector, +.hljs-pseudo, +.apache .hljs-cbracket, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #CC9393; +} + +.hljs-shebang, +.diff .hljs-addition, +.hljs-comment, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype { + color: #7F9F7F; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/www/lib/ckeditor/plugins/codesnippet/plugin.js b/www/lib/ckeditor/plugins/codesnippet/plugin.js new file mode 100644 index 00000000..7301255b --- /dev/null +++ b/www/lib/ckeditor/plugins/codesnippet/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){CKEDITOR.tools.extend(this,a);this.queue=[];this.init?this.init(CKEDITOR.tools.bind(function(){for(var a;a=this.queue.pop();)a.call(this);this.ready=!0},this)):this.ready=!0}function l(a){var b=a.config.codeSnippet_codeClass,c=/\r?\n/g,h=new CKEDITOR.dom.element("textarea");a.widgets.add("codeSnippet",{allowedContent:"pre; code(language-*)",requiredContent:"pre",styleableElements:"pre",template:'
',dialog:"codeSnippet",pathName:a.lang.codesnippet.pathName, +mask:!0,parts:{pre:"pre",code:"code"},highlight:function(){var e=this,f=this.data,b=function(a){e.parts.code.setHtml(k?a:a.replace(c,"
"))};b(CKEDITOR.tools.htmlEncode(f.code));a._.codesnippet.highlighter.highlight(f.code,f.lang,function(e){a.fire("lockSnapshot");b(e);a.fire("unlockSnapshot")})},data:function(){var a=this.data,b=this.oldData;a.code&&this.parts.code.setHtml(CKEDITOR.tools.htmlEncode(a.code));b&&a.lang!=b.lang&&this.parts.code.removeClass("language-"+b.lang);a.lang&&(this.parts.code.addClass("language-"+ +a.lang),this.highlight());this.oldData=CKEDITOR.tools.copy(a)},upcast:function(e,f){if("pre"==e.name){for(var c=[],d=e.children,i,j=d.length-1;0<=j;j--)i=d[j],(i.type!=CKEDITOR.NODE_TEXT||!i.value.match(m))&&c.push(i);var g;if(!(1!=c.length||"code"!=(g=c[0]).name))if(!(1!=g.children.length||g.children[0].type!=CKEDITOR.NODE_TEXT)){if(c=a._.codesnippet.langsRegex.exec(g.attributes["class"]))f.lang=c[1];h.setHtml(g.getHtml());f.code=h.getValue();g.addClass(b);return e}}},downcast:function(a){var c= +a.getFirst("code");c.children.length=0;c.removeClass(b);c.add(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.code)));return a}});var m=/^[\s\n\r]*$/}var k=!CKEDITOR.env.ie||8
',f.auto,'
');for(d=0;d");var e=i[d].split("/"),l=e[0],n=e[1]||l;e[1]||(l="#"+l.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));e=c.lang.colorbutton.colors[n]||n;h.push('')}k&&h.push('");h.push("
',f.more,"
");return h.join("")}function p(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var j=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(o("TextColor","fore",f.textColorTitle,10),o("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF"; +CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}}; \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js b/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js new file mode 100644 index 00000000..d91dcc65 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/dialogs/colordialog.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("colordialog",function(t){function n(){f.getById(o).removeStyle("background-color");p.getContentElement("picker","selectedColor").setValue("");j&&j.removeAttribute("aria-selected");j=null}function u(a){var a=a.data.getTarget(),b;if("td"==a.getName()&&(b=a.getChild(0).getHtml()))j=a,j.setAttribute("aria-selected",!0),p.getContentElement("picker","selectedColor").setValue(b)}function y(a){for(var a=a.replace(/^#/,""),b=0,c=[];2>=b;b++)c[b]=parseInt(a.substr(2*b,2),16);return"#"+ +(165<=0.2126*c[0]+0.7152*c[1]+0.0722*c[2]?"000":"fff")}function v(a){!a.name&&(a=new CKEDITOR.event(a));var b=!/mouse/.test(a.name),c=a.data.getTarget(),e;if("td"==c.getName()&&(e=c.getChild(0).getHtml()))q(a),b?g=c:w=c,b&&(c.setStyle("border-color",y(e)),c.setStyle("border-style","dotted")),f.getById(k).setStyle("background-color",e),f.getById(l).setHtml(e)}function q(a){if(a=!/mouse/.test(a.name)&&g){var b=a.getChild(0).getHtml();a.setStyle("border-color",b);a.setStyle("border-style","solid")}!g&& +!w&&(f.getById(k).removeStyle("background-color"),f.getById(l).setHtml(" "))}function z(a){var b=a.data,c=b.getTarget(),e=b.getKeystroke(),d="rtl"==t.lang.dir;switch(e){case 38:if(a=c.getParent().getPrevious())a=a.getChild([c.getIndex()]),a.focus();b.preventDefault();break;case 40:if(a=c.getParent().getNext())(a=a.getChild([c.getIndex()]))&&1==a.type&&a.focus();b.preventDefault();break;case 32:case 13:u(a);b.preventDefault();break;case d?37:39:if(a=c.getNext())1==a.type&&(a.focus(),b.preventDefault(!0)); +else if(a=c.getParent().getNext())if((a=a.getChild([0]))&&1==a.type)a.focus(),b.preventDefault(!0);break;case d?39:37:if(a=c.getPrevious())a.focus(),b.preventDefault(!0);else if(a=c.getParent().getPrevious())a=a.getLast(),a.focus(),b.preventDefault(!0)}}var r=CKEDITOR.dom.element,f=CKEDITOR.document,h=t.lang.colordialog,p,x={type:"html",html:" "},j,g,w,m=function(a){return CKEDITOR.tools.getNextId()+"_"+a},k=m("hicolor"),l=m("hicolortext"),o=m("selhicolor"),i;(function(){function a(a,d){for(var s= +a;sg;g++)b(e.$,"#"+c[f]+c[g]+c[s])}}function b(a,c){var b=new r(a.insertCell(-1));b.setAttribute("class","ColorCell");b.setAttribute("tabIndex",-1);b.setAttribute("role","gridcell");b.on("keydown",z);b.on("click",u);b.on("focus",v);b.on("blur",q);b.setStyle("background-color",c);b.setStyle("border","1px solid "+c);b.setStyle("width","14px");b.setStyle("height","14px");var d=m("color_table_cell"); +b.setAttribute("aria-labelledby",d);b.append(CKEDITOR.dom.element.createFromHtml(''+c+"",CKEDITOR.document))}i=CKEDITOR.dom.element.createFromHtml('
'+h.options+'
');i.on("mouseover",v);i.on("mouseout",q);var c="00 33 66 99 cc ff".split(" ");a(0,0);a(3,0);a(0, +3);a(3,3);var e=new r(i.$.insertRow(-1));e.setAttribute("role","row");for(var d=0;6>d;d++)b(e.$,"#"+c[d]+c[d]+c[d]);for(d=0;12>d;d++)b(e.$,"#000000")})();return{title:h.title,minWidth:360,minHeight:220,onLoad:function(){p=this},onHide:function(){n();var a=g.getChild(0).getHtml();g.setStyle("border-color",a);g.setStyle("border-style","solid");f.getById(k).removeStyle("background-color");f.getById(l).setHtml(" ");g=null},contents:[{id:"picker",label:h.title,accessKey:"I",elements:[{type:"hbox", +padding:0,widths:["70%","10%","30%"],children:[{type:"html",html:"
",onLoad:function(){CKEDITOR.document.getById(this.domId).append(i)},focus:function(){(g||this.getElement().getElementsByTag("td").getItem(0)).focus()}},x,{type:"vbox",padding:0,widths:["70%","5%","25%"],children:[{type:"html",html:""+h.highlight+'\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t
 
'+h.selected+ +'\t\t\t\t\t\t\t\t\t\t\t\t
'},{type:"text",label:h.selected,labelStyle:"display:none",id:"selectedColor",style:"width: 76px;margin-top:4px",onChange:function(){try{f.getById(o).setStyle("background-color",this.getValue())}catch(a){n()}}},x,{type:"button",id:"clear",label:h.clear,onClick:n}]}]}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/af.js b/www/lib/ckeditor/plugins/colordialog/lang/af.js new file mode 100644 index 00000000..9a6d5746 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","af",{clear:"Herstel",highlight:"Aktief",options:"Kleuropsies",selected:"Geselekteer",title:"Kies kleur"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ar.js b/www/lib/ckeditor/plugins/colordialog/lang/ar.js new file mode 100644 index 00000000..3b4a4977 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ar",{clear:"مسح",highlight:"تحديد",options:"اختيارات الألوان",selected:"اللون المختار",title:"اختر اللون"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/bg.js b/www/lib/ckeditor/plugins/colordialog/lang/bg.js new file mode 100644 index 00000000..f57a3a9c --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bg",{clear:"Изчистване",highlight:"Осветяване",options:"Цветови опции",selected:"Изберете цвят",title:"Изберете цвят"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/bn.js b/www/lib/ckeditor/plugins/colordialog/lang/bn.js new file mode 100644 index 00000000..1cd50972 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/bs.js b/www/lib/ckeditor/plugins/colordialog/lang/bs.js new file mode 100644 index 00000000..e8ea577b --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","bs",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ca.js b/www/lib/ckeditor/plugins/colordialog/lang/ca.js new file mode 100644 index 00000000..9e76e9e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ca",{clear:"Neteja",highlight:"Destacat",options:"Opcions del color",selected:"Color Seleccionat",title:"Seleccioni el color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/cs.js b/www/lib/ckeditor/plugins/colordialog/lang/cs.js new file mode 100644 index 00000000..4de1f1fc --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cs",{clear:"Vyčistit",highlight:"Zvýraznit",options:"Nastavení barvy",selected:"Vybráno",title:"Výběr barvy"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/cy.js b/www/lib/ckeditor/plugins/colordialog/lang/cy.js new file mode 100644 index 00000000..6536226b --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","cy",{clear:"Clirio",highlight:"Uwcholeuo",options:"Opsiynau Lliw",selected:"Lliw a Ddewiswyd",title:"Dewis lliw"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/da.js b/www/lib/ckeditor/plugins/colordialog/lang/da.js new file mode 100644 index 00000000..df1c5c85 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","da",{clear:"Nulstil",highlight:"Markér",options:"Farvemuligheder",selected:"Valgt farve",title:"Vælg farve"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/de.js b/www/lib/ckeditor/plugins/colordialog/lang/de.js new file mode 100644 index 00000000..7ccd5b6b --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","de",{clear:"Entfernen",highlight:"Hervorheben",options:"Farbeoptionen",selected:"Ausgewählte Farbe",title:"Farbe wählen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/el.js b/www/lib/ckeditor/plugins/colordialog/lang/el.js new file mode 100644 index 00000000..1447a1c4 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","el",{clear:"Εκκαθάριση",highlight:"Σήμανση",options:"Επιλογές Χρωμάτων",selected:"Επιλεγμένο Χρώμα",title:"Επιλογή χρώματος"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/en-au.js b/www/lib/ckeditor/plugins/colordialog/lang/en-au.js new file mode 100644 index 00000000..cdde12b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-au",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js b/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js new file mode 100644 index 00000000..535acfca --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-ca",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js b/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js new file mode 100644 index 00000000..1ec95ff2 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en-gb",{clear:"Clear",highlight:"Highlight",options:"Colour Options",selected:"Selected Colour",title:"Select colour"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/en.js b/www/lib/ckeditor/plugins/colordialog/lang/en.js new file mode 100644 index 00000000..21a79bc0 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","en",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/eo.js b/www/lib/ckeditor/plugins/colordialog/lang/eo.js new file mode 100644 index 00000000..aaa8cf96 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eo",{clear:"Forigi",highlight:"Detaloj",options:"Opcioj pri koloroj",selected:"Selektita koloro",title:"Selekti koloron"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/es.js b/www/lib/ckeditor/plugins/colordialog/lang/es.js new file mode 100644 index 00000000..ae4688f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","es",{clear:"Borrar",highlight:"Muestra",options:"Opciones de colores",selected:"Elegido",title:"Elegir color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/et.js b/www/lib/ckeditor/plugins/colordialog/lang/et.js new file mode 100644 index 00000000..4a51ac6b --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","et",{clear:"Eemalda",highlight:"Näidis",options:"Värvi valikud",selected:"Valitud värv",title:"Värvi valimine"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/eu.js b/www/lib/ckeditor/plugins/colordialog/lang/eu.js new file mode 100644 index 00000000..09a91290 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","eu",{clear:"Garbitu",highlight:"Nabarmendu",options:"Kolore Aukerak",selected:"Hautatutako Kolorea",title:"Kolorea Hautatu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/fa.js b/www/lib/ckeditor/plugins/colordialog/lang/fa.js new file mode 100644 index 00000000..8b0de9df --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fa",{clear:"پاک کردن",highlight:"متمایز",options:"گزینه​های رنگ",selected:"رنگ انتخاب شده",title:"انتخاب رنگ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/fi.js b/www/lib/ckeditor/plugins/colordialog/lang/fi.js new file mode 100644 index 00000000..8a9a1fe3 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fi",{clear:"Poista",highlight:"Korostus",options:"Värin ominaisuudet",selected:"Valittu",title:"Valitse väri"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/fo.js b/www/lib/ckeditor/plugins/colordialog/lang/fo.js new file mode 100644 index 00000000..575a9d47 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fo",{clear:"Strika",highlight:"Framheva",options:"Litmøguleikar",selected:"Valdur litur",title:"Vel lit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js b/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js new file mode 100644 index 00000000..d321a839 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr-ca",{clear:"Effacer",highlight:"Surligner",options:"Options de couleur",selected:"Couleur sélectionnée",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/fr.js b/www/lib/ckeditor/plugins/colordialog/lang/fr.js new file mode 100644 index 00000000..b99e1b92 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","fr",{clear:"Effacer",highlight:"Détails",options:"Option des couleurs",selected:"Couleur choisie",title:"Choisir une couleur"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/gl.js b/www/lib/ckeditor/plugins/colordialog/lang/gl.js new file mode 100644 index 00000000..13fcd5fb --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gl",{clear:"Limpar",highlight:"Resaltar",options:"Opcións de cor",selected:"Cor seleccionado",title:"Seleccione unha cor"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/gu.js b/www/lib/ckeditor/plugins/colordialog/lang/gu.js new file mode 100644 index 00000000..658cb5a3 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","gu",{clear:"સાફ કરવું",highlight:"હાઈઈટ",options:"રંગના વિકલ્પ",selected:"પસંદ કરેલો રંગ",title:"રંગ પસંદ કરો"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/he.js b/www/lib/ckeditor/plugins/colordialog/lang/he.js new file mode 100644 index 00000000..c5700716 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","he",{clear:"ניקוי",highlight:"סימון",options:"אפשרויות צבע",selected:"בחירה",title:"בחירת צבע"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/hi.js b/www/lib/ckeditor/plugins/colordialog/lang/hi.js new file mode 100644 index 00000000..d14f1a84 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hi",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/hr.js b/www/lib/ckeditor/plugins/colordialog/lang/hr.js new file mode 100644 index 00000000..5a99c466 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hr",{clear:"Očisti",highlight:"Istaknuto",options:"Opcije boje",selected:"Odabrana boja",title:"Odaberi boju"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/hu.js b/www/lib/ckeditor/plugins/colordialog/lang/hu.js new file mode 100644 index 00000000..f905e8f0 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","hu",{clear:"Ürítés",highlight:"Nagyítás",options:"Szín opciók",selected:"Kiválasztott",title:"Válasszon színt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/is.js b/www/lib/ckeditor/plugins/colordialog/lang/is.js new file mode 100644 index 00000000..35044395 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","is",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/it.js b/www/lib/ckeditor/plugins/colordialog/lang/it.js new file mode 100644 index 00000000..cb5ca860 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","it",{clear:"cancella",highlight:"Evidenzia",options:"Opzioni colore",selected:"Seleziona il colore",title:"Selezionare il colore"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ja.js b/www/lib/ckeditor/plugins/colordialog/lang/ja.js new file mode 100644 index 00000000..01f28518 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ja",{clear:"クリア",highlight:"ハイライト",options:"カラーオプション",selected:"選択された色",title:"色選択"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ka.js b/www/lib/ckeditor/plugins/colordialog/lang/ka.js new file mode 100644 index 00000000..d11c4849 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ka",{clear:"გასუფთავება",highlight:"ჩვენება",options:"ფერის პარამეტრები",selected:"არჩეული ფერი",title:"ფერის შეცვლა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/km.js b/www/lib/ckeditor/plugins/colordialog/lang/km.js new file mode 100644 index 00000000..9be3d0f0 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","km",{clear:"សម្អាត",highlight:"បន្លិច​ពណ៌",options:"ជម្រើស​ពណ៌",selected:"ពណ៌​ដែល​បាន​រើស",title:"រើស​ពណ៌"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ko.js b/www/lib/ckeditor/plugins/colordialog/lang/ko.js new file mode 100644 index 00000000..25715bf3 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ko",{clear:"제거",highlight:"하이라이트",options:"색상 옵션",selected:"색상 선택됨",title:"색상 선택"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ku.js b/www/lib/ckeditor/plugins/colordialog/lang/ku.js new file mode 100644 index 00000000..5b590758 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ku",{clear:"پاکیکەوە",highlight:"نیشانکردن",options:"هەڵبژاردەی ڕەنگەکان",selected:"ڕەنگی هەڵبژێردراو",title:"هەڵبژاردنی ڕەنگ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/lt.js b/www/lib/ckeditor/plugins/colordialog/lang/lt.js new file mode 100644 index 00000000..4e3f2506 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lt",{clear:"Išvalyti",highlight:"Paryškinti",options:"Spalvos nustatymai",selected:"Pasirinkta spalva",title:"Pasirinkite spalvą"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/lv.js b/www/lib/ckeditor/plugins/colordialog/lang/lv.js new file mode 100644 index 00000000..0e4c7b8b --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","lv",{clear:"Notīrīt",highlight:"Paraugs",options:"Krāsas uzstādījumi",selected:"Izvēlētā krāsa",title:"Izvēlies krāsu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/mk.js b/www/lib/ckeditor/plugins/colordialog/lang/mk.js new file mode 100644 index 00000000..870e2325 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mk",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/mn.js b/www/lib/ckeditor/plugins/colordialog/lang/mn.js new file mode 100644 index 00000000..0547d82c --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","mn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ms.js b/www/lib/ckeditor/plugins/colordialog/lang/ms.js new file mode 100644 index 00000000..65c6e817 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ms",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/nb.js b/www/lib/ckeditor/plugins/colordialog/lang/nb.js new file mode 100644 index 00000000..dab73fd5 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nb",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/nl.js b/www/lib/ckeditor/plugins/colordialog/lang/nl.js new file mode 100644 index 00000000..c2ed1223 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","nl",{clear:"Wissen",highlight:"Actief",options:"Kleuropties",selected:"Geselecteerde kleur",title:"Selecteer kleur"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/no.js b/www/lib/ckeditor/plugins/colordialog/lang/no.js new file mode 100644 index 00000000..7a853026 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","no",{clear:"Tøm",highlight:"Merk",options:"Alternativer for farge",selected:"Valgt",title:"Velg farge"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/pl.js b/www/lib/ckeditor/plugins/colordialog/lang/pl.js new file mode 100644 index 00000000..3be00f6e --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pl",{clear:"Wyczyść",highlight:"Zaznacz",options:"Opcje koloru",selected:"Wybrany",title:"Wybierz kolor"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js b/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js new file mode 100644 index 00000000..90c14fd7 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt-br",{clear:"Limpar",highlight:"Grifar",options:"Opções de Cor",selected:"Cor Selecionada",title:"Selecione uma Cor"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/pt.js b/www/lib/ckeditor/plugins/colordialog/lang/pt.js new file mode 100644 index 00000000..ac11b30d --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","pt",{clear:"Limpar",highlight:"Realçar",options:"Opções da Cor",selected:"Cor Selecionada",title:"Selecionar Cor"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ro.js b/www/lib/ckeditor/plugins/colordialog/lang/ro.js new file mode 100644 index 00000000..85d83ffb --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ro",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ru.js b/www/lib/ckeditor/plugins/colordialog/lang/ru.js new file mode 100644 index 00000000..7fe16d27 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ru",{clear:"Очистить",highlight:"Под курсором",options:"Настройки цвета",selected:"Выбранный цвет",title:"Выберите цвет"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/si.js b/www/lib/ckeditor/plugins/colordialog/lang/si.js new file mode 100644 index 00000000..54bb6924 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","si",{clear:"පැහැදිලි",highlight:"මතුකර පෙන්වන්න",options:"වර්ණ විකල්ප",selected:"තෙරු වර්ණ",title:"වර්ණ තෝරන්න"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/sk.js b/www/lib/ckeditor/plugins/colordialog/lang/sk.js new file mode 100644 index 00000000..be5f13a3 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sk",{clear:"Vyčistiť",highlight:"Zvýrazniť",options:"Možnosti farby",selected:"Vybraná farba",title:"Vyberte farbu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/sl.js b/www/lib/ckeditor/plugins/colordialog/lang/sl.js new file mode 100644 index 00000000..610c269a --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sl",{clear:"Počisti",highlight:"Poudarjeno",options:"Barvne Možnosti",selected:"Izbrano",title:"Izberi barvo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/sq.js b/www/lib/ckeditor/plugins/colordialog/lang/sq.js new file mode 100644 index 00000000..f739ac4d --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sq",{clear:"Pastro",highlight:"Thekso",options:"Përzgjedhjet e Ngjyrave",selected:"Ngjyra e Përzgjedhur",title:"Përzgjidh një ngjyrë"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js b/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js new file mode 100644 index 00000000..cd518c98 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr-latn",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/sr.js b/www/lib/ckeditor/plugins/colordialog/lang/sr.js new file mode 100644 index 00000000..227ed2ea --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sr",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/sv.js b/www/lib/ckeditor/plugins/colordialog/lang/sv.js new file mode 100644 index 00000000..d527156a --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","sv",{clear:"Rensa",highlight:"Markera",options:"Färgalternativ",selected:"Vald färg",title:"Välj färg"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/th.js b/www/lib/ckeditor/plugins/colordialog/lang/th.js new file mode 100644 index 00000000..8f352d9d --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","th",{clear:"Clear",highlight:"Highlight",options:"Color Options",selected:"Selected Color",title:"Select color"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/tr.js b/www/lib/ckeditor/plugins/colordialog/lang/tr.js new file mode 100644 index 00000000..c416c061 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tr",{clear:"Temizle",highlight:"İşaretle",options:"Renk Seçenekleri",selected:"Seçilmiş",title:"Renk seç"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/tt.js b/www/lib/ckeditor/plugins/colordialog/lang/tt.js new file mode 100644 index 00000000..df9d32ae --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","tt",{clear:"Бушату",highlight:"Билгеләү",options:"Төс көйләүләре",selected:"Сайланган төсләр",title:"Төс сайлау"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/ug.js b/www/lib/ckeditor/plugins/colordialog/lang/ug.js new file mode 100644 index 00000000..f89a948c --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","ug",{clear:"تازىلا",highlight:"يورۇت",options:"رەڭ تاللانمىسى",selected:"رەڭ تاللاڭ",title:"رەڭ تاللاڭ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/uk.js b/www/lib/ckeditor/plugins/colordialog/lang/uk.js new file mode 100644 index 00000000..c59d1de8 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","uk",{clear:"Очистити",highlight:"Колір, на який вказує курсор",options:"Опції кольорів",selected:"Обраний колір",title:"Обрати колір"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/vi.js b/www/lib/ckeditor/plugins/colordialog/lang/vi.js new file mode 100644 index 00000000..dae8623e --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","vi",{clear:"Xóa bỏ",highlight:"Màu chọn",options:"Tùy chọn màu",selected:"Màu đã chọn",title:"Chọn màu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js b/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js new file mode 100644 index 00000000..25e3b000 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh-cn",{clear:"清除",highlight:"高亮",options:"颜色选项",selected:"选择颜色",title:"选择颜色"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/lang/zh.js b/www/lib/ckeditor/plugins/colordialog/lang/zh.js new file mode 100644 index 00000000..57868b94 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("colordialog","zh",{clear:"清除",highlight:"高亮",options:"色彩選項",selected:"選取的色彩",title:"選取色彩"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/colordialog/plugin.js b/www/lib/ckeditor/plugins/colordialog/plugin.js new file mode 100644 index 00000000..9f393004 --- /dev/null +++ b/www/lib/ckeditor/plugins/colordialog/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.colordialog={requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var c=new CKEDITOR.dialogCommand("colordialog");c.editorFocus=!1;b.addCommand("colordialog",c);CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(c,f){var d=function(a){this.removeListener("ok", +d);this.removeListener("cancel",d);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;c.call(f,a)},e=function(a){a.on("ok",d);a.on("cancel",d)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)e(b._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){e(this);b.onLoad=a;"function"==typeof a&& +a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt b/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt new file mode 100644 index 00000000..8e09cb23 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 5 Missing: 0 +cs.js Found: 5 Missing: 0 +cy.js Found: 5 Missing: 0 +da.js Found: 5 Missing: 0 +de.js Found: 5 Missing: 0 +el.js Found: 5 Missing: 0 +eo.js Found: 5 Missing: 0 +et.js Found: 5 Missing: 0 +fa.js Found: 5 Missing: 0 +fi.js Found: 5 Missing: 0 +fr.js Found: 5 Missing: 0 +gu.js Found: 5 Missing: 0 +he.js Found: 5 Missing: 0 +hr.js Found: 5 Missing: 0 +it.js Found: 5 Missing: 0 +nb.js Found: 5 Missing: 0 +nl.js Found: 5 Missing: 0 +no.js Found: 5 Missing: 0 +pl.js Found: 5 Missing: 0 +tr.js Found: 5 Missing: 0 +ug.js Found: 5 Missing: 0 +uk.js Found: 5 Missing: 0 +vi.js Found: 5 Missing: 0 +zh-cn.js Found: 5 Missing: 0 diff --git a/www/lib/ckeditor/plugins/devtools/lang/ar.js b/www/lib/ckeditor/plugins/devtools/lang/ar.js new file mode 100644 index 00000000..c781fcfc --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ar",{title:"معلومات العنصر",dialogName:"إسم نافذة الحوار",tabName:"إسم التبويب",elementId:"إسم العنصر",elementType:"نوع العنصر"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/bg.js b/www/lib/ckeditor/plugins/devtools/lang/bg.js new file mode 100644 index 00000000..6432b5d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","bg",{title:"Информация за елемента",dialogName:"Име на диалоговия прозорец",tabName:"Име на таб",elementId:"ID на елемента",elementType:"Тип на елемента"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/ca.js b/www/lib/ckeditor/plugins/devtools/lang/ca.js new file mode 100644 index 00000000..7505a8d8 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ca",{title:"Informació de l'element",dialogName:"Nom de la finestra de quadre de diàleg",tabName:"Nom de la pestanya",elementId:"ID de l'element",elementType:"Tipus d'element"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/cs.js b/www/lib/ckeditor/plugins/devtools/lang/cs.js new file mode 100644 index 00000000..5a2573fe --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cs",{title:"Informace o prvku",dialogName:"Název dialogového okna",tabName:"Název karty",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/cy.js b/www/lib/ckeditor/plugins/devtools/lang/cy.js new file mode 100644 index 00000000..ffd1c8ac --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","cy",{title:"Gwybodaeth am yr Elfen",dialogName:"Enw ffenestr y deialog",tabName:"Enw'r tab",elementId:"ID yr Elfen",elementType:"Math yr elfen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/da.js b/www/lib/ckeditor/plugins/devtools/lang/da.js new file mode 100644 index 00000000..5bac0651 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","da",{title:"Information på elementet",dialogName:"Dialogboks",tabName:"Tab beskrivelse",elementId:"ID på element",elementType:"Type af element"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/de.js b/www/lib/ckeditor/plugins/devtools/lang/de.js new file mode 100644 index 00000000..6b350ca3 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","de",{title:"Elementinformation",dialogName:"Dialogfenstername",tabName:"Reitername",elementId:"Element ID",elementType:"Elementtyp"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/el.js b/www/lib/ckeditor/plugins/devtools/lang/el.js new file mode 100644 index 00000000..3b53133d --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","el",{title:"Πληροφορίες Στοιχείου",dialogName:"Όνομα παραθύρου διαλόγου",tabName:"Όνομα καρτέλας",elementId:"Αναγνωριστικό Στοιχείου",elementType:"Τύπος στοιχείου"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/en-gb.js b/www/lib/ckeditor/plugins/devtools/lang/en-gb.js new file mode 100644 index 00000000..bdadf923 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en-gb",{title:"Element Information",dialogName:"Dialogue window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/en.js b/www/lib/ckeditor/plugins/devtools/lang/en.js new file mode 100644 index 00000000..e3022855 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","en",{title:"Element Information",dialogName:"Dialog window name",tabName:"Tab name",elementId:"Element ID",elementType:"Element type"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/eo.js b/www/lib/ckeditor/plugins/devtools/lang/eo.js new file mode 100644 index 00000000..bc67c556 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eo",{title:"Informo pri la elemento",dialogName:"Nomo de la dialogfenestro",tabName:"Langetnomo",elementId:"ID de la elemento",elementType:"Tipo de la elemento"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/es.js b/www/lib/ckeditor/plugins/devtools/lang/es.js new file mode 100644 index 00000000..681809ed --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","es",{title:"Información del Elemento",dialogName:"Nombre de la ventana de diálogo",tabName:"Nombre de la pestaña",elementId:"ID del Elemento",elementType:"Tipo del elemento"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/et.js b/www/lib/ckeditor/plugins/devtools/lang/et.js new file mode 100644 index 00000000..548e5865 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","et",{title:"Elemendi andmed",dialogName:"Dialoogiakna nimi",tabName:"Saki nimi",elementId:"Elemendi ID",elementType:"Elemendi liik"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/eu.js b/www/lib/ckeditor/plugins/devtools/lang/eu.js new file mode 100644 index 00000000..ec05883a --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","eu",{title:"Elementuaren Informazioa",dialogName:"Elkarrizketa leihoaren izena",tabName:"Fitxaren izena",elementId:"Elementuaren ID-a",elementType:"Elementu mota"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/fa.js b/www/lib/ckeditor/plugins/devtools/lang/fa.js new file mode 100644 index 00000000..d89f8fe3 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fa",{title:"اطلاعات عنصر",dialogName:"نام پنجره محاوره‌ای",tabName:"نام برگه",elementId:"ID عنصر",elementType:"نوع عنصر"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/fi.js b/www/lib/ckeditor/plugins/devtools/lang/fi.js new file mode 100644 index 00000000..0eef32cc --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fi",{title:"Elementin tiedot",dialogName:"Dialogi-ikkunan nimi",tabName:"Välilehden nimi",elementId:"Elementin ID",elementType:"Elementin tyyppi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js b/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js new file mode 100644 index 00000000..074bd4f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr-ca",{title:"Information de l'élément",dialogName:"Nom de la fenêtre",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/fr.js b/www/lib/ckeditor/plugins/devtools/lang/fr.js new file mode 100644 index 00000000..b0686908 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","fr",{title:"Information sur l'élément",dialogName:"Nom de la fenêtre de dialogue",tabName:"Nom de l'onglet",elementId:"ID de l'élément",elementType:"Type de l'élément"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/gl.js b/www/lib/ckeditor/plugins/devtools/lang/gl.js new file mode 100644 index 00000000..11e1c2a6 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gl",{title:"Información do elemento",dialogName:"Nome da xanela de diálogo",tabName:"Nome da lapela",elementId:"ID do elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/gu.js b/www/lib/ckeditor/plugins/devtools/lang/gu.js new file mode 100644 index 00000000..e7ef6677 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/gu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","gu",{title:"પ્રાથમિક માહિતી",dialogName:"વિન્ડોનું નામ",tabName:"ટેબનું નામ",elementId:"પ્રાથમિક આઈડી",elementType:"પ્રાથમિક પ્રકાર"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/he.js b/www/lib/ckeditor/plugins/devtools/lang/he.js new file mode 100644 index 00000000..aaf968ad --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","he",{title:"מידע על האלמנט",dialogName:"שם הדיאלוג",tabName:"שם הטאב",elementId:"ID של האלמנט",elementType:"סוג האלמנט"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/hr.js b/www/lib/ckeditor/plugins/devtools/lang/hr.js new file mode 100644 index 00000000..0ec29f36 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hr",{title:"Informacije elementa",dialogName:"Naziv prozora za dijalog",tabName:"Naziva jahača",elementId:"ID elementa",elementType:"Vrsta elementa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/hu.js b/www/lib/ckeditor/plugins/devtools/lang/hu.js new file mode 100644 index 00000000..2f3c5653 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","hu",{title:"Elem információ",dialogName:"Párbeszédablak neve",tabName:"Fül neve",elementId:"Elem ID",elementType:"Elem típusa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/id.js b/www/lib/ckeditor/plugins/devtools/lang/id.js new file mode 100644 index 00000000..e988b2f4 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","id",{title:"Informasi Elemen",dialogName:"Nama jendela dialog",tabName:"Nama tab",elementId:"ID Elemen",elementType:"Tipe elemen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/it.js b/www/lib/ckeditor/plugins/devtools/lang/it.js new file mode 100644 index 00000000..79a18eab --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","it",{title:"Informazioni elemento",dialogName:"Nome finestra di dialogo",tabName:"Nome Tab",elementId:"ID Elemento",elementType:"Tipo elemento"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/ja.js b/www/lib/ckeditor/plugins/devtools/lang/ja.js new file mode 100644 index 00000000..6e7bc0fd --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ja",{title:"エレメント情報",dialogName:"ダイアログウィンドウ名",tabName:"タブ名",elementId:"エレメントID",elementType:"要素タイプ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/km.js b/www/lib/ckeditor/plugins/devtools/lang/km.js new file mode 100644 index 00000000..d9de2802 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","km",{title:"ព័ត៌មាន​នៃ​ធាតុ",dialogName:"ឈ្មោះ​ប្រអប់​វីនដូ",tabName:"ឈ្មោះ​ផ្ទាំង",elementId:"អត្តលេខ​ធាតុ",elementType:"ប្រភេទ​ធាតុ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/ko.js b/www/lib/ckeditor/plugins/devtools/lang/ko.js new file mode 100644 index 00000000..a41c6a8e --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ko",{title:"구성 요소 정보",dialogName:"다이얼로그 윈도우 이름",tabName:"탭 이름",elementId:"요소 ID",elementType:"요소 형식"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/ku.js b/www/lib/ckeditor/plugins/devtools/lang/ku.js new file mode 100644 index 00000000..12372f43 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ku",{title:"زانیاری توخم",dialogName:"ناوی پەنجەرەی دیالۆگ",tabName:"ناوی بازدەر تاب",elementId:"ناسنامەی توخم",elementType:"جۆری توخم"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/lt.js b/www/lib/ckeditor/plugins/devtools/lang/lt.js new file mode 100644 index 00000000..8ed88b6f --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/lt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lt",{title:"Elemento informacija",dialogName:"Dialogo lango pavadinimas",tabName:"Auselės pavadinimas",elementId:"Elemento ID",elementType:"Elemento tipas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/lv.js b/www/lib/ckeditor/plugins/devtools/lang/lv.js new file mode 100644 index 00000000..95a2d235 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","lv",{title:"Elementa informācija",dialogName:"Dialoga loga nosaukums",tabName:"Cilnes nosaukums",elementId:"Elementa ID",elementType:"Elementa tips"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/nb.js b/www/lib/ckeditor/plugins/devtools/lang/nb.js new file mode 100644 index 00000000..0a8bd3d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nb",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/nl.js b/www/lib/ckeditor/plugins/devtools/lang/nl.js new file mode 100644 index 00000000..587fedfb --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","nl",{title:"Elementinformatie",dialogName:"Naam dialoogvenster",tabName:"Tabnaam",elementId:"Element ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/no.js b/www/lib/ckeditor/plugins/devtools/lang/no.js new file mode 100644 index 00000000..7461a121 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","no",{title:"Elementinformasjon",dialogName:"Navn på dialogvindu",tabName:"Navn på fane",elementId:"Element-ID",elementType:"Elementtype"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/pl.js b/www/lib/ckeditor/plugins/devtools/lang/pl.js new file mode 100644 index 00000000..1ef3d228 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pl",{title:"Informacja o elemencie",dialogName:"Nazwa okna dialogowego",tabName:"Nazwa zakładki",elementId:"ID elementu",elementType:"Typ elementu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/pt-br.js b/www/lib/ckeditor/plugins/devtools/lang/pt-br.js new file mode 100644 index 00000000..f75850fc --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt-br",{title:"Informação do Elemento",dialogName:"Nome da janela de diálogo",tabName:"Nome da aba",elementId:"ID do Elemento",elementType:"Tipo do elemento"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/pt.js b/www/lib/ckeditor/plugins/devtools/lang/pt.js new file mode 100644 index 00000000..a9c96a8c --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","pt",{title:"Informação do Elemento",dialogName:"Nome da janela do diálogo",tabName:"Nome do Separador",elementId:"Id. do Elemento",elementType:"Tipo de Elemento"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/ru.js b/www/lib/ckeditor/plugins/devtools/lang/ru.js new file mode 100644 index 00000000..36c4b1de --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ru",{title:"Информация об элементе",dialogName:"Имя окна диалога",tabName:"Имя вкладки",elementId:"ID элемента",elementType:"Тип элемента"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/si.js b/www/lib/ckeditor/plugins/devtools/lang/si.js new file mode 100644 index 00000000..a1fb3707 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","si",{title:"මුලද්‍රව්‍ය ",dialogName:"දෙබස් කවුළුවේ නම",tabName:"තීරුවේ නම",elementId:"මුලද්‍රව්‍ය කේතය",elementType:"මුලද්‍රව්‍ය වර්ගය"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/sk.js b/www/lib/ckeditor/plugins/devtools/lang/sk.js new file mode 100644 index 00000000..e80a613d --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sk",{title:"Informácie o prvku",dialogName:"Názov okna dialógu",tabName:"Názov záložky",elementId:"ID prvku",elementType:"Typ prvku"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/sl.js b/www/lib/ckeditor/plugins/devtools/lang/sl.js new file mode 100644 index 00000000..6f1df087 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sl",{title:"Podatki elementa",dialogName:"Ime pogovornega okna",tabName:"Ime zavihka",elementId:"ID elementa",elementType:"Tip elementa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/sq.js b/www/lib/ckeditor/plugins/devtools/lang/sq.js new file mode 100644 index 00000000..bb173c47 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sq",{title:"Të dhënat e elementit",dialogName:"Emri i dritares së dialogut",tabName:"Emri i fletës",elementId:"ID e elementit",elementType:"Lloji i elementit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/sv.js b/www/lib/ckeditor/plugins/devtools/lang/sv.js new file mode 100644 index 00000000..1c73e5e9 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","sv",{title:"Elementinformation",dialogName:"Dialogrutans namn",tabName:"Fliknamn",elementId:"Elementet-ID",elementType:"Elementet-typ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/tr.js b/www/lib/ckeditor/plugins/devtools/lang/tr.js new file mode 100644 index 00000000..293d3ced --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tr",{title:"Eleman Bilgisi",dialogName:"İletişim pencere ismi",tabName:"Sekme adı",elementId:"Eleman ID",elementType:"Eleman türü"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/tt.js b/www/lib/ckeditor/plugins/devtools/lang/tt.js new file mode 100644 index 00000000..e3f94b34 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","tt",{title:"Элемент тасвирламасы",dialogName:"Диалог тәрәзәсе исеме",tabName:"Өстәмә бит исеме",elementId:"Элемент идентификаторы",elementType:"Элемент төре"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/ug.js b/www/lib/ckeditor/plugins/devtools/lang/ug.js new file mode 100644 index 00000000..b5c98762 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","ug",{title:"ئېلېمېنت ئۇچۇرى",dialogName:"سۆزلەشكۈ كۆزنەك ئاتى",tabName:"Tab ئاتى",elementId:"ئېلېمېنت كىملىكى",elementType:"ئېلېمېنت تىپى"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/uk.js b/www/lib/ckeditor/plugins/devtools/lang/uk.js new file mode 100644 index 00000000..3974ef87 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","uk",{title:"Відомості про Елемент",dialogName:"Заголовок діалогового вікна",tabName:"Назва вкладки",elementId:"Ідентифікатор Елемента",elementType:"Тип Елемента"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/vi.js b/www/lib/ckeditor/plugins/devtools/lang/vi.js new file mode 100644 index 00000000..08076e51 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","vi",{title:"Thông tin thành ph",dialogName:"Tên hộp tho",tabName:"Tên th",elementId:"Mã thành ph",elementType:"Loại thành ph"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js b/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js new file mode 100644 index 00000000..ae1b8e0b --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh-cn",{title:"元素信息",dialogName:"对话框窗口名称",tabName:"选项卡名称",elementId:"元素 ID",elementType:"元素类型"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/lang/zh.js b/www/lib/ckeditor/plugins/devtools/lang/zh.js new file mode 100644 index 00000000..613e9edf --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("devtools","zh",{title:"元件資訊",dialogName:"對話視窗名稱",tabName:"標籤名稱",elementId:"元件 ID",elementType:"元件類型"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/devtools/plugin.js b/www/lib/ckeditor/plugins/devtools/plugin.js new file mode 100644 index 00000000..be0a2de6 --- /dev/null +++ b/www/lib/ckeditor/plugins/devtools/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("devtools",{lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,gu,he,hr,hu,id,it,ja,km,ko,ku,lt,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",init:function(i){i._.showDialogDefinitionTooltips=1},onLoad:function(){CKEDITOR.document.appendStyleText(CKEDITOR.config.devtools_styles||"#cke_tooltip { padding: 5px; border: 2px solid #333; background: #ffffff }#cke_tooltip h2 { font-size: 1.1em; border-bottom: 1px solid; margin: 0; padding: 1px; }#cke_tooltip ul { padding: 0pt; list-style-type: none; }")}}); +(function(){function i(a,c,b,f){var a=a.lang.devtools,j=''+(b?b.type:"content")+"",c="

"+a.title+"

  • "+a.dialogName+" : "+c.getName()+"
  • "+a.tabName+" : "+f+"
  • ";b&&(c+="
  • "+a.elementId+" : "+b.id+"
  • ");c+="
  • "+a.elementType+" : "+j+"
  • ";return c+"
"}function k(d, +c,b,f,j,g){var e=c.getDocumentPosition(),h={"z-index":CKEDITOR.dialog._.currentZIndex+10,top:e.y+c.getSize("height")+"px"};a.setHtml(d(b,f,j,g));a.show();"rtl"==b.lang.dir?(d=CKEDITOR.document.getWindow().getViewPaneSize(),h.right=d.width-e.x-c.getSize("width")+"px"):h.left=e.x+"px";a.setStyles(h)}var a;CKEDITOR.on("reset",function(){a&&a.remove();a=null});CKEDITOR.on("dialogDefinition",function(d){var c=d.editor;if(c._.showDialogDefinitionTooltips){a||(a=CKEDITOR.dom.element.createFromHtml('
', +CKEDITOR.document),a.hide(),a.on("mouseover",function(){this.show()}),a.on("mouseout",function(){this.hide()}),a.appendTo(CKEDITOR.document.getBody()));var b=d.data.definition.dialog,f=c.config.devtools_textCallback||i;b.on("load",function(){for(var d=b.parts.tabs.getChildren(),g,e=0,h=d.count();e
');a.ui.space("contents").append(b);b=a.editable(b);b.detach=CKEDITOR.tools.override(b.detach,function(a){return function(){a.apply(this,arguments);this.remove()}});a.setData(a.getData(1),c);a.fire("contentDom")})}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js b/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js new file mode 100644 index 00000000..28d043f5 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/dialogs/docprops.js @@ -0,0 +1,25 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("docProps",function(g){function p(a,d){var e=function(){b(this);d(this,this._.parentDialog)},b=function(a){a.removeListener("ok",e);a.removeListener("cancel",b)},f=function(a){a.on("ok",e);a.on("cancel",b)};g.execCommand(a);if(g._.storedDialogs.colordialog)f(g._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(b){if(b.data.name==a){var d=b.data.definition;b.removeListener();d.onLoad=CKEDITOR.tools.override(d.onLoad,function(a){return function(){f(this);d.onLoad= +a;"function"==typeof a&&a.call(this)}})}})}function l(){var a=this.getDialog().getContentElement("general",this.id+"Other");a&&("other"==this.getValue()?(a.getInputElement().removeAttribute("readOnly"),a.focus(),a.getElement().removeClass("cke_disabled")):(a.getInputElement().setAttribute("readOnly",!0),a.getElement().addClass("cke_disabled")))}function i(a,d,e){return function(b,f,c){f=k;b="undefined"!=typeof e?e:this.getValue();!b&&a in f?f[a].remove():b&&a in f?f[a].setAttribute("content",b):b&& +(f=new CKEDITOR.dom.element("meta",g.document),f.setAttribute(d?"http-equiv":"name",a),f.setAttribute("content",b),c.append(f))}}function j(a,d){return function(){var e=k,e=a in e?e[a].getAttribute("content")||"":"";if(d)return e;this.setValue(e);return null}}function m(a){return function(d,e,b,f){f.removeAttribute("margin"+a);d=this.getValue();""!==d?f.setStyle("margin-"+a,CKEDITOR.tools.cssLength(d)):f.removeStyle("margin-"+a)}}function n(a,d,e){a.removeStyle(d);a.getComputedStyle(d)!=e&&a.setStyle(d, +e)}var c=g.lang.docprops,h=g.lang.common,k={},o=function(a,d,e){return{type:"hbox",padding:0,widths:["60%","40%"],children:[CKEDITOR.tools.extend({type:"text",id:a,label:c[d]},e||{},1),{type:"button",id:a+"Choose",label:c.chooseColor,className:"colorChooser",onClick:function(){var b=this;p("colordialog",function(d){var e=b.getDialog();e.getContentElement(e._.currentTabId,a).setValue(d.getContentElement("picker","selectedColor").getValue())})}}]}},q="javascript:void((function(){"+encodeURIComponent("document.open();"+ +(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+'document.write( \''+c.previewHtml+"' );document.close();")+"})())";return{title:c.title,minHeight:330,minWidth:500,onShow:function(){for(var a=g.document,d=a.getElementsByTag("html").getItem(0),e=a.getHead(),b=a.getBody(),f={},c=a.getElementsByTag("meta"),h=c.count(),i=0;i'],["XHTML 1.0 Transitional",''],["XHTML 1.0 Strict",''],["XHTML 1.0 Frameset",''], +["HTML 5",""],["HTML 4.01 Transitional",''],["HTML 4.01 Strict",''],["HTML 4.01 Frameset",''],["HTML 3.2",''],["HTML 2.0",''],[c.other, +"other"]],onChange:l,setup:function(){if(g.docType&&(this.setValue(g.docType),!this.getValue())){this.setValue("other");var a=this.getDialog().getContentElement("general","docTypeOther");a&&a.setValue(g.docType)}l.call(this)},commit:function(a,d,c,b,f){f||(a=this.getValue(),d=this.getDialog().getContentElement("general","docTypeOther"),g.docType="other"==a?d?d.getValue():"":a)}},{type:"text",id:"docTypeOther",label:c.docTypeOther}]},{type:"checkbox",id:"xhtmlDec",label:c.xhtmlDec,setup:function(){this.setValue(!!g.xmlDeclaration)}, +commit:function(a,d,c,b,f){f||(this.getValue()?(g.xmlDeclaration='',d.setAttribute("xmlns","http://www.w3.org/1999/xhtml")):(g.xmlDeclaration="",d.removeAttribute("xmlns")))}}]},{id:"design",label:c.design,elements:[{type:"hbox",widths:["60%","40%"],children:[{type:"vbox",children:[o("txtColor","txtColor",{setup:function(a,d,c,b){this.setValue(b.getComputedStyle("color"))},commit:function(a,d,c,b,f){if(this.isChanged()|| +f)b.removeAttribute("text"),(a=this.getValue())?b.setStyle("color",a):b.removeStyle("color")}}),o("bgColor","bgColor",{setup:function(a,d,c,b){a=b.getComputedStyle("background-color")||"";this.setValue("transparent"==a?"":a)},commit:function(a,d,c,b,f){if(this.isChanged()||f)b.removeAttribute("bgcolor"),(a=this.getValue())?b.setStyle("background-color",a):n(b,"background-color","transparent")}}),{type:"hbox",widths:["60%","40%"],padding:1,children:[{type:"text",id:"bgImage",label:c.bgImage,setup:function(a, +d,c,b){a=b.getComputedStyle("background-image")||"";a="none"==a?"":a.replace(/url\(\s*(["']?)\s*([^\)]*)\s*\1\s*\)/i,function(a,b,d){return d});this.setValue(a)},commit:function(a,d,c,b){b.removeAttribute("background");(a=this.getValue())?b.setStyle("background-image","url("+a+")"):n(b,"background-image","none")}},{type:"button",id:"bgImageChoose",label:h.browseServer,style:"display:inline-block;margin-top:10px;",hidden:!0,filebrowser:"design:bgImage"}]},{type:"checkbox",id:"bgFixed",label:c.bgFixed, +setup:function(a,d,c,b){this.setValue("fixed"==b.getComputedStyle("background-attachment"))},commit:function(a,d,c,b){this.getValue()?b.setStyle("background-attachment","fixed"):n(b,"background-attachment","scroll")}}]},{type:"vbox",children:[{type:"html",id:"marginTitle",html:'
'+c.margin+"
"},{type:"text",id:"marginTop",label:c.marginTop,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-top")||b.getAttribute("margintop")||"")},commit:m("top")},{type:"hbox",children:[{type:"text",id:"marginLeft",label:c.marginLeft,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,d,c,b){this.setValue(b.getStyle("margin-left")||b.getAttribute("marginleft")||"")},commit:m("left")},{type:"text",id:"marginRight",label:c.marginRight,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center", +setup:function(a,d,c,b){this.setValue(b.getStyle("margin-right")||b.getAttribute("marginright")||"")},commit:m("right")}]},{type:"text",id:"marginBottom",label:c.marginBottom,style:"width: 80px; text-align: center",align:"center",inputStyle:"text-align: center",setup:function(a,c,e,b){this.setValue(b.getStyle("margin-bottom")||b.getAttribute("marginbottom")||"")},commit:m("bottom")}]}]}]},{id:"meta",label:c.meta,elements:[{type:"textarea",id:"metaKeywords",label:c.metaKeywords,setup:j("keywords"), +commit:i("keywords")},{type:"textarea",id:"metaDescription",label:c.metaDescription,setup:j("description"),commit:i("description")},{type:"text",id:"metaAuthor",label:c.metaAuthor,setup:j("author"),commit:i("author")},{type:"text",id:"metaCopyright",label:c.metaCopyright,setup:j("copyright"),commit:i("copyright")}]},{id:"preview",label:h.preview,elements:[{type:"html",id:"previewHtml",html:'', +onLoad:function(){this.getDialog().on("selectPage",function(a){if("preview"==a.data.page){var c=this;setTimeout(function(){var a=CKEDITOR.document.getById("cke_docProps_preview_iframe").getFrameDocument(),b=a.getElementsByTag("html").getItem(0),f=a.getHead(),g=a.getBody();c.commitContent(a,b,f,g,1)},50)}});CKEDITOR.document.getById("cke_docProps_preview_iframe").getAscendant("table").setStyle("height","100%")}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png b/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png new file mode 100644 index 00000000..ed286a25 Binary files /dev/null and b/www/lib/ckeditor/plugins/docprops/icons/docprops-rtl.png differ diff --git a/www/lib/ckeditor/plugins/docprops/icons/docprops.png b/www/lib/ckeditor/plugins/docprops/icons/docprops.png new file mode 100644 index 00000000..8bfdcb91 Binary files /dev/null and b/www/lib/ckeditor/plugins/docprops/icons/docprops.png differ diff --git a/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png b/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png new file mode 100644 index 00000000..4a966da0 Binary files /dev/null and b/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png differ diff --git a/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png b/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png new file mode 100644 index 00000000..a66c8697 Binary files /dev/null and b/www/lib/ckeditor/plugins/docprops/icons/hidpi/docprops.png differ diff --git a/www/lib/ckeditor/plugins/docprops/lang/af.js b/www/lib/ckeditor/plugins/docprops/lang/af.js new file mode 100644 index 00000000..dbda4d7b --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","af",{bgColor:"Agtergrond kleur",bgFixed:"Vasgeklemde Agtergrond",bgImage:"Agtergrond Beeld URL",charset:"Karakterstel Kodeering",charsetASCII:"ASCII",charsetCE:"Sentraal Europa",charsetCR:"Cyrillic",charsetCT:"Chinees Traditioneel (Big5)",charsetGR:"Grieks",charsetJP:"Japanees",charsetKR:"Koreans",charsetOther:"Ander Karakterstel Kodeering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Kies",design:"Design",docTitle:"Bladsy Opskrif", +docType:"Dokument Opskrif Soort",docTypeOther:"Ander Dokument Opskrif Soort",label:"Dokument Eienskappe",margin:"Bladsy Rante",marginBottom:"Onder",marginLeft:"Links",marginRight:"Regs",marginTop:"Bo",meta:"Meta Data",metaAuthor:"Skrywer",metaCopyright:"Kopiereg",metaDescription:"Dokument Beskrywing",metaKeywords:"Dokument Index Sleutelwoorde(comma verdeelt)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Dokument Eienskappe", +txtColor:"Tekskleur",xhtmlDec:"Voeg XHTML verklaring by"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ar.js b/www/lib/ckeditor/plugins/docprops/lang/ar.js new file mode 100644 index 00000000..bd26b491 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ar",{bgColor:"لون الخلفية",bgFixed:"جعلها علامة مائية",bgImage:"رابط الصورة الخلفية",charset:"ترميز الحروف",charsetASCII:"ASCII",charsetCE:"أوروبا الوسطى",charsetCR:"السيريلية",charsetCT:"الصينية التقليدية (Big5)",charsetGR:"اليونانية",charsetJP:"اليابانية",charsetKR:"الكورية",charsetOther:"ترميز آخر",charsetTR:"التركية",charsetUN:"Unicode (UTF-8)",charsetWE:"أوروبا الغربية",chooseColor:"اختر",design:"تصميم",docTitle:"عنوان الصفحة",docType:"ترويسة نوع الصفحة", +docTypeOther:"ترويسة نوع صفحة أخرى",label:"خصائص الصفحة",margin:"هوامش الصفحة",marginBottom:"سفلي",marginLeft:"أيسر",marginRight:"أيمن",marginTop:"علوي",meta:"المعرّفات الرأسية",metaAuthor:"الكاتب",metaCopyright:"المالك",metaDescription:"وصف الصفحة",metaKeywords:"الكلمات الأساسية (مفصولة بفواصل)َ",other:"<أخرى>",previewHtml:'

هذه مجرد كتابة بسيطةمن أجل التمثيل. CKEditor.

',title:"خصائص الصفحة",txtColor:"لون النص",xhtmlDec:"تضمين إعلانات لغة XHTMLَ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/bg.js b/www/lib/ckeditor/plugins/docprops/lang/bg.js new file mode 100644 index 00000000..5faba47d --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bg",{bgColor:"Фон",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Кодова таблица",charsetASCII:"ASCII",charsetCE:"Централна европейска",charsetCR:"Cyrillic",charsetCT:"Китайски традиционен",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Друга кодова таблица",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Изберете",design:"Дизайн",docTitle:"Заглавие на страницата", +docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Настройки на документа",margin:"Page Margins",marginBottom:"Долу",marginLeft:"Ляво",marginRight:"Дясно",marginTop:"Горе",meta:"Мета етикети",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Други...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Настройки на документа",txtColor:"Цвят на шрифт",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/bn.js b/www/lib/ckeditor/plugins/docprops/lang/bn.js new file mode 100644 index 00000000..838cbc8f --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bn",{bgColor:"ব্যাকগ্রাউন্ড রং",bgFixed:"স্ক্রলহীন ব্যাকগ্রাউন্ড",bgImage:"ব্যাকগ্রাউন্ড ছবির URL",charset:"ক্যারেক্টার সেট এনকোডিং",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"অন্য ক্যারেক্টার সেট এনকোডিং",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"পেজ শীর্ষক", +docType:"ডক্যুমেন্ট টাইপ হেডিং",docTypeOther:"অন্য ডক্যুমেন্ট টাইপ হেডিং",label:"ডক্যুমেন্ট প্রোপার্টি",margin:"পেজ মার্জিন",marginBottom:"নীচে",marginLeft:"বামে",marginRight:"ডানে",marginTop:"উপর",meta:"মেটাডেটা",metaAuthor:"লেখক",metaCopyright:"কপীরাইট",metaDescription:"ডক্যূমেন্ট বর্ণনা",metaKeywords:"ডক্যুমেন্ট ইন্ডেক্স কিওয়ার্ড (কমা দ্বারা বিচ্ছিন্ন)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"ডক্যুমেন্ট প্রোপার্টি", +txtColor:"টেক্স্ট রং",xhtmlDec:"XHTML ডেক্লারেশন যুক্ত কর"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/bs.js b/www/lib/ckeditor/plugins/docprops/lang/bs.js new file mode 100644 index 00000000..624acfc4 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","bs",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Dno",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Boja teksta",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ca.js b/www/lib/ckeditor/plugins/docprops/lang/ca.js new file mode 100644 index 00000000..6eafe7fe --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ca",{bgColor:"Color de fons",bgFixed:"Fons sense desplaçament (Fixe)",bgImage:"URL de la imatge de fons",charset:"Codificació de conjunt de caràcters",charsetASCII:"ASCII",charsetCE:"Europeu Central",charsetCR:"Ciríl·lic",charsetCT:"Xinès tradicional (Big5)",charsetGR:"Grec",charsetJP:"Japonès",charsetKR:"Coreà",charsetOther:"Una altra codificació de caràcters",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeu occidental",chooseColor:"Triar",design:"Disseny", +docTitle:"Títol de la pàgina",docType:"Capçalera de tipus de document",docTypeOther:"Un altra capçalera de tipus de document",label:"Propietats del document",margin:"Marges de pàgina",marginBottom:"Peu",marginLeft:"Esquerra",marginRight:"Dreta",marginTop:"Cap",meta:"Metadades",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripció del document",metaKeywords:"Paraules clau per a indexació (separats per coma)",other:"Altre...",previewHtml:'

Aquest és un text d\'exemple. Estàs utilitzant CKEditor.

', +title:"Propietats del document",txtColor:"Color de Text",xhtmlDec:"Incloure declaracions XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/cs.js b/www/lib/ckeditor/plugins/docprops/lang/cs.js new file mode 100644 index 00000000..568bac85 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cs",{bgColor:"Barva pozadí",bgFixed:"Nerolovatelné (Pevné) pozadí",bgImage:"URL obrázku na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Středoevropské jazyky",charsetCR:"Cyrilice",charsetCT:"Tradiční čínština (Big5)",charsetGR:"Řečtina",charsetJP:"Japonština",charsetKR:"Korejština",charsetOther:"Další znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západoevropské jazyky",chooseColor:"Výběr",design:"Vzhled",docTitle:"Titulek stránky", +docType:"Typ dokumentu",docTypeOther:"Jiný typ dokumetu",label:"Vlastnosti dokumentu",margin:"Okraje stránky",marginBottom:"Dolní",marginLeft:"Levý",marginRight:"Pravý",marginTop:"Horní",meta:"Metadata",metaAuthor:"Autor",metaCopyright:"Autorská práva",metaDescription:"Popis dokumentu",metaKeywords:"Klíčová slova (oddělená čárkou)",other:"",previewHtml:'

Toto je ukázkový text. Používáte CKEditor.

',title:"Vlastnosti dokumentu",txtColor:"Barva textu", +xhtmlDec:"Zahrnout deklarace XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/cy.js b/www/lib/ckeditor/plugins/docprops/lang/cy.js new file mode 100644 index 00000000..ef7e1cc9 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","cy",{bgColor:"Lliw Cefndir",bgFixed:"Cefndir Sefydlog (Ddim yn Sgrolio)",bgImage:"URL Delwedd Cefndir",charset:"Amgodio Set Nodau",charsetASCII:"ASCII",charsetCE:"Ewropeaidd Canol",charsetCR:"Syrilig",charsetCT:"Tsieinëeg Traddodiadol (Big5)",charsetGR:"Groeg",charsetJP:"Siapanëeg",charsetKR:"Corëeg",charsetOther:"Amgodio Set Nodau Arall",charsetTR:"Tyrceg",charsetUN:"Unicode (UTF-8)",charsetWE:"Ewropeaidd Gorllewinol",chooseColor:"Dewis",design:"Cynllunio",docTitle:"Teitl y Dudalen", +docType:"Pennawd Math y Ddogfen",docTypeOther:"Pennawd Math y Ddogfen Arall",label:"Priodweddau Dogfen",margin:"Ffin y Dudalen",marginBottom:"Gwaelod",marginLeft:"Chwith",marginRight:"Dde",marginTop:"Brig",meta:"Tagiau Meta",metaAuthor:"Awdur",metaCopyright:"Hawlfraint",metaDescription:"Disgrifiad y Ddogfen",metaKeywords:"Allweddeiriau Indecsio Dogfen (gwahanu gyda choma)",other:"Arall...",previewHtml:'

Dyma ychydig o destun sampl. Rydych chi\'n defnyddio CKEditor.

', +title:"Priodweddau Dogfen",txtColor:"Lliw y Testun",xhtmlDec:"Cynnwys Datganiadau XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/da.js b/www/lib/ckeditor/plugins/docprops/lang/da.js new file mode 100644 index 00000000..0a10cf09 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","da",{bgColor:"Baggrundsfarve",bgFixed:"Fastlåst baggrund",bgImage:"Baggrundsbillede URL",charset:"Tegnsætskode",charsetASCII:"ASCII",charsetCE:"Centraleuropæisk",charsetCR:"Kyrillisk",charsetCT:"Traditionel kinesisk (Big5)",charsetGR:"Græsk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Anden tegnsætskode",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropæisk",chooseColor:"Vælg",design:"Design",docTitle:"Sidetitel",docType:"Dokumenttype kategori", +docTypeOther:"Anden dokumenttype kategori",label:"Egenskaber for dokument",margin:"Sidemargen",marginBottom:"Nederst",marginLeft:"Venstre",marginRight:"Højre",marginTop:"Øverst",meta:"Metatags",metaAuthor:"Forfatter",metaCopyright:"Copyright",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument index nøgleord (kommasepareret)",other:"",previewHtml:'

Dette er et eksempel på noget tekst. Du benytter CKEditor.

',title:"Egenskaber for dokument", +txtColor:"Tekstfarve",xhtmlDec:"Inkludere XHTML deklartion"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/de.js b/www/lib/ckeditor/plugins/docprops/lang/de.js new file mode 100644 index 00000000..6dee2e4a --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","de",{bgColor:"Hintergrundfarbe",bgFixed:"feststehender Hintergrund",bgImage:"Hintergrundbild URL",charset:"Zeichenkodierung",charsetASCII:"ASCII",charsetCE:"Zentraleuropäisch",charsetCR:"Kyrillisch",charsetCT:"traditionell Chinesisch (Big5)",charsetGR:"Griechisch",charsetJP:"Japanisch",charsetKR:"Koreanisch",charsetOther:"Andere Zeichenkodierung",charsetTR:"Türkisch",charsetUN:"Unicode (UTF-8)",charsetWE:"Westeuropäisch",chooseColor:"Wählen",design:"Design",docTitle:"Seitentitel", +docType:"Dokumententyp",docTypeOther:"Anderer Dokumententyp",label:"Dokument-Eigenschaften",margin:"Seitenränder",marginBottom:"Unten",marginLeft:"Links",marginRight:"Rechts",marginTop:"Oben",meta:"Metadaten",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Dokument-Beschreibung",metaKeywords:"Schlüsselwörter (durch Komma getrennt)",other:"",previewHtml:'

Das ist ein Beispieltext. Du schreibst in CKEditor.

',title:"Dokument-Eigenschaften", +txtColor:"Textfarbe",xhtmlDec:"Beziehe XHTML Deklarationen ein"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/el.js b/www/lib/ckeditor/plugins/docprops/lang/el.js new file mode 100644 index 00000000..3f0999c5 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","el",{bgColor:"Χρώμα Φόντου",bgFixed:"Φόντο Χωρίς Κύλιση (Σταθερό)",bgImage:"Διεύθυνση Εικόνας Φόντου",charset:"Κωδικοποίηση Χαρακτήρων",charsetASCII:"ASCII",charsetCE:"Κεντρικής Ευρώπης",charsetCR:"Κυριλλική",charsetCT:"Παραδοσιακή Κινέζικη (Big5)",charsetGR:"Ελληνική",charsetJP:"Ιαπωνική",charsetKR:"Κορεάτικη",charsetOther:"Άλλη Κωδικοποίηση Χαρακτήρων",charsetTR:"Τουρκική",charsetUN:"Διεθνής (UTF-8)",charsetWE:"Δυτικής Ευρώπης",chooseColor:"Επιλέξτε",design:"Σχεδιασμός", +docTitle:"Τίτλος Σελίδας",docType:"Κεφαλίδα Τύπου Εγγράφου",docTypeOther:"Άλλη Κεφαλίδα Τύπου Εγγράφου",label:"Ιδιότητες Εγγράφου",margin:"Περιθώρια Σελίδας",marginBottom:"Κάτω",marginLeft:"Αριστερά",marginRight:"Δεξιά",marginTop:"Κορυφή",meta:"Μεταδεδομένα",metaAuthor:"Δημιουργός",metaCopyright:"Πνευματικά Δικαιώματα",metaDescription:"Περιγραφή Εγγράφου",metaKeywords:"Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",other:"Άλλο...",previewHtml:'

Αυτό είναι ένα παραδειγματικό κείμενο. Χρησιμοποιείτε το CKEditor.

', +title:"Ιδιότητες Εγγράφου",txtColor:"Χρώμα Κειμένου",xhtmlDec:"Να Συμπεριληφθούν οι Δηλώσεις XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/en-au.js b/www/lib/ckeditor/plugins/docprops/lang/en-au.js new file mode 100644 index 00000000..1991fce7 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-au",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/en-ca.js b/www/lib/ckeditor/plugins/docprops/lang/en-ca.js new file mode 100644 index 00000000..f135acfa --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-ca",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/en-gb.js b/www/lib/ckeditor/plugins/docprops/lang/en-gb.js new file mode 100644 index 00000000..4ae5c6f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en-gb",{bgColor:"Background Colour",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma-separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Colour",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/en.js b/www/lib/ckeditor/plugins/docprops/lang/en.js new file mode 100644 index 00000000..73926df2 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","en",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/eo.js b/www/lib/ckeditor/plugins/docprops/lang/eo.js new file mode 100644 index 00000000..182ea18b --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eo",{bgColor:"Fona Koloro",bgFixed:"Neruluma Fono",bgImage:"URL de Fona Bildo",charset:"Signara Kodo",charsetASCII:"ASCII",charsetCE:"Centra Eŭropa",charsetCR:"Cirila",charsetCT:"Tradicia Ĉina (Big5)",charsetGR:"Greka",charsetJP:"Japana",charsetKR:"Korea",charsetOther:"Alia Signara Kodo",charsetTR:"Turka",charsetUN:"Unikodo (UTF-8)",charsetWE:"Okcidenta Eŭropa",chooseColor:"Elektu",design:"Dizajno",docTitle:"Paĝotitolo",docType:"Dokumenta Tipo",docTypeOther:"Alia Dokumenta Tipo", +label:"Dokumentaj Atributoj",margin:"Paĝaj Marĝenoj",marginBottom:"Malsupra",marginLeft:"Maldekstra",marginRight:"Dekstra",marginTop:"Supra",meta:"Metadatenoj",metaAuthor:"Verkinto",metaCopyright:"Kopirajto",metaDescription:"Dokumenta Priskribo",metaKeywords:"Ŝlosilvortoj de la Dokumento (apartigitaj de komoj)",other:"",previewHtml:'

Tio estas sampla teksto. Vi estas uzanta CKEditor.

',title:"Dokumentaj Atributoj",txtColor:"Teksta Koloro", +xhtmlDec:"Inkluzivi XHTML Deklarojn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/es.js b/www/lib/ckeditor/plugins/docprops/lang/es.js new file mode 100644 index 00000000..8170464f --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","es",{bgColor:"Color de fondo",bgFixed:"Fondo fijo (no se desplaza)",bgImage:"Imagen de fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro Europeo",charsetCR:"Ruso",charsetCT:"Chino Tradicional (Big5)",charsetGR:"Griego",charsetJP:"Japonés",charsetKR:"Koreano",charsetOther:"Otra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Elegir",design:"Diseño",docTitle:"Título de página", +docType:"Tipo de documento",docTypeOther:"Otro tipo de documento",label:"Propiedades del documento",margin:"Márgenes",marginBottom:"Inferior",marginLeft:"Izquierdo",marginRight:"Derecho",marginTop:"Superior",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Copyright",metaDescription:"Descripción del documento",metaKeywords:"Palabras claves del documento separadas por coma (meta keywords)",other:"Otro...",previewHtml:'

Este es un texto de ejemplo. Usted está usando CKEditor.

', +title:"Propiedades del documento",txtColor:"Color del texto",xhtmlDec:"Incluir declaración XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/et.js b/www/lib/ckeditor/plugins/docprops/lang/et.js new file mode 100644 index 00000000..43ad55d2 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","et",{bgColor:"Taustavärv",bgFixed:"Mittekeritav tagataust",bgImage:"Taustapildi URL",charset:"Märgistiku kodeering",charsetASCII:"ASCII",charsetCE:"Kesk-Euroopa",charsetCR:"Kirillisa",charsetCT:"Hiina traditsiooniline (Big5)",charsetGR:"Kreeka",charsetJP:"Jaapani",charsetKR:"Korea",charsetOther:"Ülejäänud märgistike kodeeringud",charsetTR:"Türgi",charsetUN:"Unicode (UTF-8)",charsetWE:"Lääne-Euroopa",chooseColor:"Vali",design:"Disain",docTitle:"Lehekülje tiitel", +docType:"Dokumendi tüüppäis",docTypeOther:"Teised dokumendi tüüppäised",label:"Dokumendi omadused",margin:"Lehekülje äärised",marginBottom:"Alaserv",marginLeft:"Vasakserv",marginRight:"Paremserv",marginTop:"Ülaserv",meta:"Meta andmed",metaAuthor:"Autor",metaCopyright:"Autoriõigus",metaDescription:"Dokumendi kirjeldus",metaKeywords:"Dokumendi võtmesõnad (eraldatud komadega)",other:"",previewHtml:'

See on näidistekst. Sa kasutad CKEditori.

', +title:"Dokumendi omadused",txtColor:"Teksti värv",xhtmlDec:"Arva kaasa XHTML deklaratsioonid"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/eu.js b/www/lib/ckeditor/plugins/docprops/lang/eu.js new file mode 100644 index 00000000..16175cc1 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","eu",{bgColor:"Atzeko Kolorea",bgFixed:"Korritze gabeko Atzealdea",bgImage:"Atzeko Irudiaren URL-a",charset:"Karaktere Multzoaren Kodeketa",charsetASCII:"ASCII",charsetCE:"Erdialdeko Europakoa",charsetCR:"Zirilikoa",charsetCT:"Txinatar Tradizionala (Big5)",charsetGR:"Grekoa",charsetJP:"Japoniarra",charsetKR:"Korearra",charsetOther:"Beste Karaktere Multzoko Kodeketa",charsetTR:"Turkiarra",charsetUN:"Unicode (UTF-8)",charsetWE:"Mendebaldeko Europakoa",chooseColor:"Choose", +design:"Diseinua",docTitle:"Orriaren Izenburua",docType:"Document Type Goiburua",docTypeOther:"Beste Document Type Goiburua",label:"Dokumentuaren Ezarpenak",margin:"Orrialdearen marjinak",marginBottom:"Behean",marginLeft:"Ezkerrean",marginRight:"Eskuman",marginTop:"Goian",meta:"Meta Informazioa",metaAuthor:"Egilea",metaCopyright:"Copyright",metaDescription:"Dokumentuaren Deskribapena",metaKeywords:"Dokumentuaren Gako-hitzak (komarekin bananduta)",other:"",previewHtml:'

Hau adibideko testua da. CKEditor erabiltzen ari zara.

', +title:"Dokumentuaren Ezarpenak",txtColor:"Testu Kolorea",xhtmlDec:"XHTML Ezarpenak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/fa.js b/www/lib/ckeditor/plugins/docprops/lang/fa.js new file mode 100644 index 00000000..078e3838 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","fa",{bgColor:"رنگ پس​زمینه",bgFixed:"پس​زمینهٴ ثابت (بدون حرکت)",bgImage:"URL تصویر پسزمینه",charset:"رمزگذاری نویسه​گان",charsetASCII:"اسکی",charsetCE:"اروپای مرکزی",charsetCR:"سیریلیک",charsetCT:"چینی رسمی (Big5)",charsetGR:"یونانی",charsetJP:"ژاپنی",charsetKR:"کره​ای",charsetOther:"رمزگذاری نویسه​گان دیگر",charsetTR:"ترکی",charsetUN:"یونیکد (UTF-8)",charsetWE:"اروپای غربی",chooseColor:"انتخاب",design:"طراحی",docTitle:"عنوان صفحه",docType:"عنوان نوع سند",docTypeOther:"عنوان نوع سند دیگر", +label:"ویژگی​های سند",margin:"حاشیه​های صفحه",marginBottom:"پایین",marginLeft:"چپ",marginRight:"راست",marginTop:"بالا",meta:"فراداده",metaAuthor:"نویسنده",metaCopyright:"حق انتشار",metaDescription:"توصیف سند",metaKeywords:"کلیدواژگان نمایه​گذاری سند (با کاما جدا شوند)",other:"<سایر>",previewHtml:'

این یک متن نمونه است. شما در حال استفاده از CKEditor هستید.

',title:"ویژگی​های سند",txtColor:"رنگ متن",xhtmlDec:"شامل تعاریف XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/fi.js b/www/lib/ckeditor/plugins/docprops/lang/fi.js new file mode 100644 index 00000000..22a9740a --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fi",{bgColor:"Taustaväri",bgFixed:"Paikallaanpysyvä tausta",bgImage:"Taustakuva",charset:"Merkistökoodaus",charsetASCII:"ASCII",charsetCE:"Keskieurooppalainen",charsetCR:"Kyrillinen",charsetCT:"Kiina, perinteinen (Big5)",charsetGR:"Kreikka",charsetJP:"Japani",charsetKR:"Korealainen",charsetOther:"Muu merkistökoodaus",charsetTR:"Turkkilainen",charsetUN:"Unicode (UTF-8)",charsetWE:"Länsieurooppalainen",chooseColor:"Valitse",design:"Sommittelu",docTitle:"Sivun nimi", +docType:"Dokumentin tyyppi",docTypeOther:"Muu dokumentin tyyppi",label:"Dokumentin ominaisuudet",margin:"Sivun marginaalit",marginBottom:"Ala",marginLeft:"Vasen",marginRight:"Oikea",marginTop:"Ylä",meta:"Metatieto",metaAuthor:"Tekijä",metaCopyright:"Tekijänoikeudet",metaDescription:"Kuvaus",metaKeywords:"Hakusanat (pilkulla erotettuna)",other:"",previewHtml:'

Tämä on esimerkkitekstiä. Käytät juuri CKEditoria.

',title:"Dokumentin ominaisuudet", +txtColor:"Tekstiväri",xhtmlDec:"Lisää XHTML julistukset"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/fo.js b/www/lib/ckeditor/plugins/docprops/lang/fo.js new file mode 100644 index 00000000..ef352698 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fo",{bgColor:"Bakgrundslitur",bgFixed:"Læst bakgrund (rullar ikki)",bgImage:"Leið til bakgrundsmynd (URL)",charset:"Teknsett koda",charsetASCII:"ASCII",charsetCE:"Miðeuropa",charsetCR:"Cyrilliskt",charsetCT:"Kinesiskt traditionelt (Big5)",charsetGR:"Grikst",charsetJP:"Japanskt",charsetKR:"Koreanskt",charsetOther:"Onnur teknsett koda",charsetTR:"Turkiskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestureuropa",chooseColor:"Vel",design:"Design",docTitle:"Síðuheiti", +docType:"Dokumentslag yvirskrift",docTypeOther:"Annað dokumentslag yvirskrift",label:"Eginleikar fyri dokument",margin:"Síðubreddar",marginBottom:"Niðast",marginLeft:"Vinstra",marginRight:"Høgra",marginTop:"Ovast",meta:"META-upplýsingar",metaAuthor:"Høvundur",metaCopyright:"Upphavsrættindi",metaDescription:"Dokumentlýsing",metaKeywords:"Dokument index lyklaorð (sundurbýtt við komma)",other:"",previewHtml:'

Hetta er ein royndartekstur. Tygum brúka CKEditor.

', +title:"Eginleikar fyri dokument",txtColor:"Tekstlitur",xhtmlDec:"Viðfest XHTML deklaratiónir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js b/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js new file mode 100644 index 00000000..31a809e8 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr-ca",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage",charsetASCII:"ACSII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grecque",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage",charsetTR:"Turque",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Sélectionner",design:"Design",docTitle:"Titre de la page",docType:"Type de document", +docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Méta-données",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"Autre...",previewHtml:'

Voici un example de texte. Vous utilisez CKEditor.

',title:"Propriétés du document",txtColor:"Couleur de caractère", +xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/fr.js b/www/lib/ckeditor/plugins/docprops/lang/fr.js new file mode 100644 index 00000000..f22e2493 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","fr",{bgColor:"Couleur de fond",bgFixed:"Image fixe sans défilement",bgImage:"Image de fond",charset:"Encodage de caractère",charsetASCII:"ASCII",charsetCE:"Europe Centrale",charsetCR:"Cyrillique",charsetCT:"Chinois Traditionnel (Big5)",charsetGR:"Grec",charsetJP:"Japonais",charsetKR:"Coréen",charsetOther:"Autre encodage de caractère",charsetTR:"Turc",charsetUN:"Unicode (UTF-8)",charsetWE:"Occidental",chooseColor:"Choisissez",design:"Design",docTitle:"Titre de la page", +docType:"Type de document",docTypeOther:"Autre type de document",label:"Propriétés du document",margin:"Marges",marginBottom:"Bas",marginLeft:"Gauche",marginRight:"Droite",marginTop:"Haut",meta:"Métadonnées",metaAuthor:"Auteur",metaCopyright:"Copyright",metaDescription:"Description",metaKeywords:"Mots-clés (séparés par des virgules)",other:"",previewHtml:'

Ceci est un texte d\'exemple. Vous utilisez CKEditor.

',title:"Propriétés du document", +txtColor:"Couleur de texte",xhtmlDec:"Inclure les déclarations XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/gl.js b/www/lib/ckeditor/plugins/docprops/lang/gl.js new file mode 100644 index 00000000..f8b0c21d --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gl",{bgColor:"Cor do fondo",bgFixed:"Fondo fixo (non se despraza)",bgImage:"URL da imaxe do fondo",charset:"Codificación de caracteres",charsetASCII:"ASCII",charsetCE:"Centro europeo",charsetCR:"Cirílico",charsetCT:"Chinés tradicional (Big5)",charsetGR:"Grego",charsetJP:"Xaponés",charsetKR:"Coreano",charsetOther:"Outra codificación de caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europeo occidental",chooseColor:"Escoller",design:"Deseño", +docTitle:"Título da páxina",docType:"Cabeceira do tipo de documento",docTypeOther:"Outra cabeceira do tipo de documento",label:"Propiedades do documento",margin:"Marxes da páxina",marginBottom:"Abaixo",marginLeft:"Esquerda",marginRight:"Dereita",marginTop:"Arriba",meta:"Meta etiquetas",metaAuthor:"Autor",metaCopyright:"Dereito de autoría",metaDescription:"Descrición do documento",metaKeywords:"Palabras clave de indexación do documento (separadas por comas)",other:"Outro...",previewHtml:'

Este é un texto de exemplo. Vostede esta a empregar o CKEditor.

', +title:"Propiedades do documento",txtColor:"Cor do texto",xhtmlDec:"Incluír as declaracións XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/gu.js b/www/lib/ckeditor/plugins/docprops/lang/gu.js new file mode 100644 index 00000000..7458ffe6 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","gu",{bgColor:"બૅકગ્રાઉન્ડ રંગ",bgFixed:"સ્ક્રોલ ન થાય તેવું બૅકગ્રાઉન્ડ",bgImage:"બૅકગ્રાઉન્ડ ચિત્ર URL",charset:"કેરેક્ટર સેટ એન્કોડિંગ",charsetASCII:"ASCII",charsetCE:"મધ્ય યુરોપિઅન (Central European)",charsetCR:"સિરીલિક (Cyrillic)",charsetCT:"ચાઇનીઝ (Chinese Traditional Big5)",charsetGR:"ગ્રીક (Greek)",charsetJP:"જાપાનિઝ (Japanese)",charsetKR:"કોરીયન (Korean)",charsetOther:"અન્ય કેરેક્ટર સેટ એન્કોડિંગ",charsetTR:"ટર્કિ (Turkish)",charsetUN:"યૂનિકોડ (UTF-8)", +charsetWE:"પશ્ચિમ યુરોપિઅન (Western European)",chooseColor:"વિકલ્પ",design:"ડીસા",docTitle:"પેજ મથાળું/ટાઇટલ",docType:"ડૉક્યુમન્ટ પ્રકાર શીર્ષક",docTypeOther:"અન્ય ડૉક્યુમન્ટ પ્રકાર શીર્ષક",label:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",margin:"પેજ માર્જિન",marginBottom:"નીચે",marginLeft:"ડાબી",marginRight:"જમણી",marginTop:"ઉપર",meta:"મેટાડૅટા",metaAuthor:"લેખક",metaCopyright:"કૉપિરાઇટ",metaDescription:"ડૉક્યુમન્ટ વર્ણન",metaKeywords:"ડૉક્યુમન્ટ ઇન્ડેક્સ સંકેતશબ્દ (અલ્પવિરામ (,) થી અલગ કરો)",other:"",previewHtml:'

આ એક સેમ્પલ ટેક્ષ્ત્ છે. તમે CKEditor વાપરો છો.

', +title:"ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ",txtColor:"શબ્દનો રંગ",xhtmlDec:"XHTML સૂચના સમાવિષ્ટ કરવી"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/he.js b/www/lib/ckeditor/plugins/docprops/lang/he.js new file mode 100644 index 00000000..d71d1586 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","he",{bgColor:"צבע רקע",bgFixed:"רקע לא נגלל (צמוד)",bgImage:"כתובת של תמונת רקע",charset:"קידוד תווים",charsetASCII:"ASCII",charsetCE:"מרכז אירופאי",charsetCR:"קירילי",charsetCT:"סיני מסורתי (Big5)",charsetGR:"יווני",charsetJP:"יפני",charsetKR:"קוריאני",charsetOther:"קידוד תווים אחר",charsetTR:"טורקי",charsetUN:"יוניקוד (UTF-8)",charsetWE:"מערב אירופאי",chooseColor:"בחירה",design:"עיצוב",docTitle:"כותרת עמוד",docType:"כותר סוג מסמך",docTypeOther:"כותר סוג מסמך אחר", +label:"מאפייני מסמך",margin:"מרווחי עמוד",marginBottom:"תחתון",marginLeft:"שמאלי",marginRight:"ימני",marginTop:"עליון",meta:"תגי Meta",metaAuthor:"מחבר/ת",metaCopyright:"זכויות יוצרים",metaDescription:"תיאור המסמך",metaKeywords:"מילות מפתח של המסמך (מופרדות בפסיק)",other:"אחר...",previewHtml:'

זהו טקסט הדגמה. את/ה משתמש/ת בCKEditor.

',title:"מאפייני מסמך",txtColor:"צבע טקסט",xhtmlDec:"כלול הכרזות XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/hi.js b/www/lib/ckeditor/plugins/docprops/lang/hi.js new file mode 100644 index 00000000..68266186 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hi",{bgColor:"बैक्ग्राउन्ड रंग",bgFixed:"स्क्रॉल न करने वाला बैक्ग्राउन्ड",bgImage:"बैक्ग्राउन्ड तस्वीर URL",charset:"करेक्टर सॅट ऍन्कोडिंग",charsetASCII:"ASCII",charsetCE:"मध्य यूरोपीय (Central European)",charsetCR:"सिरीलिक (Cyrillic)",charsetCT:"चीनी (Chinese Traditional Big5)",charsetGR:"यवन (Greek)",charsetJP:"जापानी (Japanese)",charsetKR:"कोरीयन (Korean)",charsetOther:"अन्य करेक्टर सॅट ऍन्कोडिंग",charsetTR:"तुर्की (Turkish)",charsetUN:"यूनीकोड (UTF-8)",charsetWE:"पश्चिम यूरोपीय (Western European)", +chooseColor:"Choose",design:"Design",docTitle:"पेज शीर्षक",docType:"डॉक्यूमॅन्ट प्रकार शीर्षक",docTypeOther:"अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",label:"डॉक्यूमॅन्ट प्रॉपर्टीज़",margin:"पेज मार्जिन",marginBottom:"नीचे",marginLeft:"बायें",marginRight:"दायें",marginTop:"ऊपर",meta:"मॅटाडेटा",metaAuthor:"लेखक",metaCopyright:"कॉपीराइट",metaDescription:"डॉक्यूमॅन्ट करॅक्टरन",metaKeywords:"डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",other:"<अन्य>",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"डॉक्यूमॅन्ट प्रॉपर्टीज़",txtColor:"टेक्स्ट रंग",xhtmlDec:"XHTML सूचना सम्मिलित करें"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/hr.js b/www/lib/ckeditor/plugins/docprops/lang/hr.js new file mode 100644 index 00000000..3477c6f0 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hr",{bgColor:"Boja pozadine",bgFixed:"Pozadine se ne pomiče",bgImage:"URL slike pozadine",charset:"Enkodiranje znakova",charsetASCII:"ASCII",charsetCE:"Središnja Europa",charsetCR:"Ćirilica",charsetCT:"Tradicionalna kineska (Big5)",charsetGR:"Grčka",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Ostalo enkodiranje znakova",charsetTR:"Turska",charsetUN:"Unicode (UTF-8)",charsetWE:"Zapadna Europa",chooseColor:"Odaberi",design:"Dizajn",docTitle:"Naslov stranice", +docType:"Zaglavlje vrste dokumenta",docTypeOther:"Ostalo zaglavlje vrste dokumenta",label:"Svojstva dokumenta",margin:"Margine stranice",marginBottom:"Dolje",marginLeft:"Lijevo",marginRight:"Desno",marginTop:"Vrh",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne riječi dokumenta (odvojene zarezom)",other:"",previewHtml:'

Ovo je neki primjer teksta. Vi koristite CKEditor.

', +title:"Svojstva dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ubaci XHTML deklaracije"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/hu.js b/www/lib/ckeditor/plugins/docprops/lang/hu.js new file mode 100644 index 00000000..beeed2b5 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","hu",{bgColor:"Háttérszín",bgFixed:"Nem gördíthető háttér",bgImage:"Háttérkép cím",charset:"Karakterkódolás",charsetASCII:"ASCII",charsetCE:"Közép-Európai",charsetCR:"Cyrill",charsetCT:"Kínai Tradicionális (Big5)",charsetGR:"Görög",charsetJP:"Japán",charsetKR:"Koreai",charsetOther:"Más karakterkódolás",charsetTR:"Török",charsetUN:"Unicode (UTF-8)",charsetWE:"Nyugat-Európai",chooseColor:"Válasszon",design:"Design",docTitle:"Oldalcím",docType:"Dokumentum típus fejléc", +docTypeOther:"Más dokumentum típus fejléc",label:"Dokumentum tulajdonságai",margin:"Oldal margók",marginBottom:"Alsó",marginLeft:"Bal",marginRight:"Jobb",marginTop:"Felső",meta:"Meta adatok",metaAuthor:"Szerző",metaCopyright:"Szerzői jog",metaDescription:"Dokumentum leírás",metaKeywords:"Dokumentum keresőszavak (vesszővel elválasztva)",other:"",previewHtml:'

Ez itt egy példa. A CKEditor-t használod.

',title:"Dokumentum tulajdonságai",txtColor:"Betűszín", +xhtmlDec:"XHTML deklarációk beillesztése"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/id.js b/www/lib/ckeditor/plugins/docprops/lang/id.js new file mode 100644 index 00000000..9716026d --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","id",{bgColor:"Warna Latar Belakang",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Pilih",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'

This is some sample text. You are using CKEditor.

', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/is.js b/www/lib/ckeditor/plugins/docprops/lang/is.js new file mode 100644 index 00000000..9085a4f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","is",{bgColor:"Bakgrunnslitur",bgFixed:"Læstur bakgrunnur",bgImage:"Slóð bakgrunnsmyndar",charset:"Letursett",charsetASCII:"ASCII",charsetCE:"Mið-evrópskt",charsetCR:"Kýrilskt",charsetCT:"Kínverskt, hefðbundið (Big5)",charsetGR:"Grískt",charsetJP:"Japanskt",charsetKR:"Kóreskt",charsetOther:"Annað letursett",charsetTR:"Tyrkneskt",charsetUN:"Unicode (UTF-8)",charsetWE:"Vestur-evrópst",chooseColor:"Choose",design:"Design",docTitle:"Titill síðu",docType:"Flokkur skjalategunda", +docTypeOther:"Annar flokkur skjalategunda",label:"Eigindi skjals",margin:"Hliðarspássía",marginBottom:"Neðst",marginLeft:"Vinstri",marginRight:"Hægri",marginTop:"Efst",meta:"Lýsigögn",metaAuthor:"Höfundur",metaCopyright:"Höfundarréttur",metaDescription:"Lýsing skjals",metaKeywords:"Lykilorð efnisorðaskrár (aðgreind með kommum)",other:"",previewHtml:'

This is some sample text. You are using CKEditor.

',title:"Eigindi skjals",txtColor:"Litur texta", +xhtmlDec:"Fella inn XHTML lýsingu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/it.js b/www/lib/ckeditor/plugins/docprops/lang/it.js new file mode 100644 index 00000000..56edb3af --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","it",{bgColor:"Colore di sfondo",bgFixed:"Sfondo fissato",bgImage:"Immagine di sfondo",charset:"Set di caretteri",charsetASCII:"ASCII",charsetCE:"Europa Centrale",charsetCR:"Cirillico",charsetCT:"Cinese Tradizionale (Big5)",charsetGR:"Greco",charsetJP:"Giapponese",charsetKR:"Coreano",charsetOther:"Altro set di caretteri",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Occidentale",chooseColor:"Scegli",design:"Disegna",docTitle:"Titolo pagina",docType:"Intestazione DocType", +docTypeOther:"Altra intestazione DocType",label:"Proprietà del Documento",margin:"Margini",marginBottom:"In Basso",marginLeft:"A Sinistra",marginRight:"A Destra",marginTop:"In Alto",meta:"Meta Data",metaAuthor:"Autore",metaCopyright:"Copyright",metaDescription:"Descrizione documento",metaKeywords:"Chiavi di indicizzazione documento (separate da virgola)",other:"",previewHtml:'

Questo è un testo di esempio. State usando CKEditor.

',title:"Proprietà del Documento", +txtColor:"Colore testo",xhtmlDec:"Includi dichiarazione XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ja.js b/www/lib/ckeditor/plugins/docprops/lang/ja.js new file mode 100644 index 00000000..34f57912 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ja",{bgColor:"背景色",bgFixed:"スクロールしない背景",bgImage:"背景画像 URL",charset:"文字コード",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"日本語",charsetKR:"Korean",charsetOther:"他の文字セット符号化",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"色の選択",design:"デザイン",docTitle:"ページタイトル",docType:"文書タイプヘッダー",docTypeOther:"その他文書タイプヘッダー",label:"文書 プロパティ",margin:"ページ・マージン", +marginBottom:"下部",marginLeft:"左",marginRight:"右",marginTop:"上部",meta:"メタデータ",metaAuthor:"文書の作者",metaCopyright:"文書の著作権",metaDescription:"文書の概要",metaKeywords:"文書のキーワード(カンマ区切り)",other:"<その他の>",previewHtml:'

これはテキストサンプルです。 あなたは、CKEditorを使っています。

',title:"文書 プロパティ",txtColor:"テキスト色",xhtmlDec:"XHTML宣言をインクルード"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ka.js b/www/lib/ckeditor/plugins/docprops/lang/ka.js new file mode 100644 index 00000000..50f71dee --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ka",{bgColor:"ფონის ფერი",bgFixed:"უმოძრაო (ფიქსირებული) ფონი",bgImage:"ფონური სურათის URL",charset:"კოდირება",charsetASCII:"ამერიკული (ASCII)",charsetCE:"ცენტრალურ ევროპული",charsetCR:"კირილური",charsetCT:"ტრადიციული ჩინური (Big5)",charsetGR:"ბერძნული",charsetJP:"იაპონური",charsetKR:"კორეული",charsetOther:"სხვა კოდირებები",charsetTR:"თურქული",charsetUN:"უნიკოდი (UTF-8)",charsetWE:"დასავლეთ ევროპული",chooseColor:"არჩევა",design:"დიზაინი",docTitle:"გვერდის სათაური", +docType:"დოკუმენტის ტიპი",docTypeOther:"სხვა ტიპის დოკუმენტი",label:"დოკუმენტის პარამეტრები",margin:"გვერდის კიდეები",marginBottom:"ქვედა",marginLeft:"მარცხენა",marginRight:"მარჯვენა",marginTop:"ზედა",meta:"მეტაTag-ები",metaAuthor:"ავტორი",metaCopyright:"Copyright",metaDescription:"დოკუმენტის აღწერა",metaKeywords:"დოკუმენტის საკვანძო სიტყვები (მძიმით გამოყოფილი)",other:"სხვა...",previewHtml:'

ეს არის საცდელი ტექსტი. თქვენ CKEditor-ით სარგებლობთ.

', +title:"დოკუმენტის პარამეტრები",txtColor:"ტექსტის ფერი",xhtmlDec:"XHTML დეკლარაციების ჩართვა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/km.js b/www/lib/ckeditor/plugins/docprops/lang/km.js new file mode 100644 index 00000000..34272904 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","km",{bgColor:"ពណ៌​ផ្ទៃ​ក្រោយ",bgFixed:"ផ្ទៃ​ក្រោយ​គ្មាន​ការ​រំកិល (នឹង​ថ្កល់)",bgImage:"URL រូបភាព​ផ្ទៃ​ក្រោយ",charset:"ការ​អ៊ិនកូដ​តួ​អក្សរ",charsetASCII:"ASCII",charsetCE:"អឺរ៉ុប​កណ្ដាល",charsetCR:"Cyrillic",charsetCT:"ចិន​បុរាណ (Big5)",charsetGR:"ក្រិក",charsetJP:"ជប៉ុន",charsetKR:"កូរ៉េ",charsetOther:"កំណត់លេខកូតភាសាផ្សេងទៀត",charsetTR:"ទួរគី",charsetUN:"យូនីកូដ (UTF-8)",charsetWE:"អឺរ៉ុប​ខាង​លិច",chooseColor:"រើស",design:"រចនា",docTitle:"ចំណងជើងទំព័រ",docType:"ប្រភេទក្បាលទំព័រ​ឯកសារ", +docTypeOther:"ប្រភេទក្បាលទំព័រឯកសារ​ផ្សេងទៀត",label:"លក្ខណៈ​សម្បត្តិ​ឯកសារ",margin:"រឹម​ទំព័រ",marginBottom:"បាត​ក្រោម",marginLeft:"ឆ្វេង",marginRight:"ស្ដាំ",marginTop:"លើ",meta:"ស្លាក​មេតា",metaAuthor:"អ្នកនិពន្ធ",metaCopyright:"រក្សាសិទ្ធិ",metaDescription:"សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",metaKeywords:"ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",other:"ដទៃ​ទៀត...",previewHtml:'

នេះ​គឺ​ជាអក្សរ​គំរូ​ខ្លះៗ។ អ្នក​កំពុង​ប្រើ CKEditor

',title:"ការកំណត់ ឯកសារ", +txtColor:"ពណ៌អក្សរ",xhtmlDec:"បញ្ជូល XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ko.js b/www/lib/ckeditor/plugins/docprops/lang/ko.js new file mode 100644 index 00000000..168e9b17 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","ko",{bgColor:"배경색상",bgFixed:"스크롤되지 않는 배경",bgImage:"배경 이미지 URL",charset:"캐릭터셋 인코딩",charsetASCII:"ASCII",charsetCE:"중앙 유럽",charsetCR:"키릴 문자",charsetCT:"중국어 (Big5)",charsetGR:"그리스어",charsetJP:"일본어",charsetKR:"한국어",charsetOther:"다른 캐릭터셋 인코딩",charsetTR:"터키어",charsetUN:"유니코드 (UTF-8)",charsetWE:"서유럽",chooseColor:"선택하기",design:"디자인",docTitle:"페이지명",docType:"문서 헤드",docTypeOther:"다른 문서헤드",label:"문서 속성",margin:"페이지 여백",marginBottom:"아래",marginLeft:"왼쪽",marginRight:"오른쪽", +marginTop:"위",meta:"메타데이터",metaAuthor:"작성자",metaCopyright:"저작권",metaDescription:"문서 설명",metaKeywords:"문서 키워드 (콤마로 구분)",other:"<기타>",previewHtml:'

이것은 예문입니다. 여러분은 지금 CKEditor를 사용하고 있습니다.

',title:"문서 속성",txtColor:"글자 색상",xhtmlDec:"XHTML 문서정의 포함"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ku.js b/www/lib/ckeditor/plugins/docprops/lang/ku.js new file mode 100644 index 00000000..f2dd2844 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ku",{bgColor:"ڕەنگی پاشبنەما",bgFixed:"بێ هاتووچوپێکردنی (چەسپاو) پاشبنەمای وێنه",bgImage:"ناونیشانی بەستەری وێنەی پاشبنەما",charset:"دەستەی نووسەی بەکۆدکەر",charsetASCII:"ASCII",charsetCE:"ناوەڕاستی ئەوروپا",charsetCR:"سیریلیك",charsetCT:"چینی(Big5)",charsetGR:"یۆنانی",charsetJP:"ژاپۆنی",charsetKR:"کۆریا",charsetOther:"دەستەی نووسەی بەکۆدکەری تر",charsetTR:"تورکی",charsetUN:"Unicode (UTF-8)",charsetWE:"ڕۆژئاوای ئەوروپا",chooseColor:"هەڵبژێرە",design:"شێوەکار", +docTitle:"سەردێڕی پەڕه",docType:"سەرپەڕەی جۆری پەڕه",docTypeOther:"سەرپەڕەی جۆری پەڕەی تر",label:"خاسییەتی پەڕه",margin:"تەنیشت پەڕه",marginBottom:"ژێرەوه",marginLeft:"چەپ",marginRight:"ڕاست",marginTop:"سەرەوه",meta:"زانیاری مێتا",metaAuthor:"نووسەر",metaCopyright:"مافی بڵاوکردنەوەی",metaDescription:"پێناسەی لاپەڕه",metaKeywords:"بەڵگەنامەی وشەی کاریگەر(به کۆما لێکیان جیابکەوه)",other:"هیتر...",previewHtml:'

ئەمە وەك نموونەی دەقه. تۆ بەکاردەهێنیت CKEditor.

', +title:"خاسییەتی پەڕه",txtColor:"ڕەنگی دەق",xhtmlDec:"بەیاننامەکانی XHTML لەگەڵدابێت"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/lt.js b/www/lib/ckeditor/plugins/docprops/lang/lt.js new file mode 100644 index 00000000..b2e1ba95 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lt",{bgColor:"Fono spalva",bgFixed:"Neslenkantis fonas",bgImage:"Fono paveikslėlio nuoroda (URL)",charset:"Simbolių kodavimo lentelė",charsetASCII:"ASCII",charsetCE:"Centrinės Europos",charsetCR:"Kirilica",charsetCT:"Tradicinės kinų (Big5)",charsetGR:"Graikų",charsetJP:"Japonų",charsetKR:"Korėjiečių",charsetOther:"Kita simbolių kodavimo lentelė",charsetTR:"Turkų",charsetUN:"Unikodas (UTF-8)",charsetWE:"Vakarų Europos",chooseColor:"Pasirinkite",design:"Išdėstymas", +docTitle:"Puslapio antraštė",docType:"Dokumento tipo antraštė",docTypeOther:"Kita dokumento tipo antraštė",label:"Dokumento savybės",margin:"Puslapio kraštinės",marginBottom:"Apačioje",marginLeft:"Kairėje",marginRight:"Dešinėje",marginTop:"Viršuje",meta:"Meta duomenys",metaAuthor:"Autorius",metaCopyright:"Autorinės teisės",metaDescription:"Dokumento apibūdinimas",metaKeywords:"Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",other:"",previewHtml:'

Tai yra pavyzdinis tekstas. Jūs naudojate CKEditor.

', +title:"Dokumento savybės",txtColor:"Teksto spalva",xhtmlDec:"Įtraukti XHTML deklaracijas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/lv.js b/www/lib/ckeditor/plugins/docprops/lang/lv.js new file mode 100644 index 00000000..61014944 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","lv",{bgColor:"Fona krāsa",bgFixed:"Fona attēls ir fiksēts",bgImage:"Fona attēla hipersaite",charset:"Simbolu kodējums",charsetASCII:"ASCII",charsetCE:"Centrāleiropas",charsetCR:"Kirilica",charsetCT:"Ķīniešu tradicionālā (Big5)",charsetGR:"Grieķu",charsetJP:"Japāņu",charsetKR:"Korejiešu",charsetOther:"Cits simbolu kodējums",charsetTR:"Turku",charsetUN:"Unikods (UTF-8)",charsetWE:"Rietumeiropas",chooseColor:"Izvēlēties",design:"Dizains",docTitle:"Dokumenta virsraksts ", +docType:"Dokumenta tips",docTypeOther:"Cits dokumenta tips",label:"Dokumenta īpašības",margin:"Lapas robežas",marginBottom:"Apakšā",marginLeft:"Pa kreisi",marginRight:"Pa labi",marginTop:"Augšā",meta:"META dati",metaAuthor:"Autors",metaCopyright:"Autortiesības",metaDescription:"Dokumenta apraksts",metaKeywords:"Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",other:"<cits>",previewHtml:'<p>Šis ir <strong>parauga teksts</strong>. Jūs izmantojiet <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Dokumenta īpašības",txtColor:"Teksta krāsa",xhtmlDec:"Ietvert XHTML deklarācijas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/mk.js b/www/lib/ckeditor/plugins/docprops/lang/mk.js new file mode 100644 index 00000000..7f48e61c --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mk",{bgColor:"Background Color",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Other Character Set Encoding",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design", +docTitle:"Page Title",docType:"Document Type Heading",docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",marginTop:"Top",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Other...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Document Properties",txtColor:"Text Color",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/mn.js b/www/lib/ckeditor/plugins/docprops/lang/mn.js new file mode 100644 index 00000000..8907ba39 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","mn",{bgColor:"Фоно өнгө",bgFixed:"Гүйдэггүй фоно",bgImage:"Фоно зурагны URL",charset:"Encoding тэмдэгт",charsetASCII:"ASCII",charsetCE:"Төв европ",charsetCR:"Крил",charsetCT:"Хятадын уламжлалт (Big5)",charsetGR:"Гред",charsetJP:"Япон",charsetKR:"Солонгос",charsetOther:"Encoding-д өөр тэмдэгт оноох",charsetTR:"Tурк",charsetUN:"Юникод (UTF-8)",charsetWE:"Баруун европ",chooseColor:"Сонгох",design:"Design",docTitle:"Хуудасны гарчиг",docType:"Баримт бичгийн төрөл Heading", +docTypeOther:"Бусад баримт бичгийн төрөл Heading",label:"Баримт бичиг шинж чанар",margin:"Хуудасны захын зай",marginBottom:"Доод тал",marginLeft:"Зүүн тал",marginRight:"Баруун тал",marginTop:"Дээд тал",meta:"Meta өгөгдөл",metaAuthor:"Зохиогч",metaCopyright:"Зохиогчийн эрх",metaDescription:"Баримт бичгийн тайлбар",metaKeywords:"Баримт бичгийн индекс түлхүүр үг (таслалаар тусгаарлагдана)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Баримт бичиг шинж чанар",txtColor:"Фонтны өнгө",xhtmlDec:"XHTML-ийн мэдээллийг агуулах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ms.js b/www/lib/ckeditor/plugins/docprops/lang/ms.js new file mode 100644 index 00000000..fe51ef5a --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ms",{bgColor:"Warna Latarbelakang",bgFixed:"Imej Latarbelakang tanpa Skrol",bgImage:"URL Gambar Latarbelakang",charset:"Enkod Set Huruf",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Enkod Set Huruf yang Lain",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Tajuk Muka Surat", +docType:"Jenis Kepala Dokumen",docTypeOther:"Jenis Kepala Dokumen yang Lain",label:"Ciri-ciri dokumen",margin:"Margin Muka Surat",marginBottom:"Bawah",marginLeft:"Kiri",marginRight:"Kanan",marginTop:"Atas",meta:"Data Meta",metaAuthor:"Penulis",metaCopyright:"Hakcipta",metaDescription:"Keterangan Dokumen",metaKeywords:"Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",other:"<lain>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Ciri-ciri dokumen",txtColor:"Warna Text",xhtmlDec:"Masukkan pemula kod XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/nb.js b/www/lib/ckeditor/plugins/docprops/lang/nb.js new file mode 100644 index 00000000..87926ab8 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nb",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/nl.js b/www/lib/ckeditor/plugins/docprops/lang/nl.js new file mode 100644 index 00000000..7425a0aa --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","nl",{bgColor:"Achtergrondkleur",bgFixed:"Niet-scrollend (gefixeerde) achtergrond",bgImage:"Achtergrondafbeelding URL",charset:"Tekencodering",charsetASCII:"ASCII",charsetCE:"Centraal Europees",charsetCR:"Cyrillisch",charsetCT:"Traditioneel Chinees (Big5)",charsetGR:"Grieks",charsetJP:"Japans",charsetKR:"Koreaans",charsetOther:"Andere tekencodering",charsetTR:"Turks",charsetUN:"Unicode (UTF-8)",charsetWE:"West Europees",chooseColor:"Kies",design:"Ontwerp",docTitle:"Paginatitel", +docType:"Documenttype-definitie",docTypeOther:"Andere documenttype-definitie",label:"Documenteigenschappen",margin:"Pagina marges",marginBottom:"Onder",marginLeft:"Links",marginRight:"Rechts",marginTop:"Boven",meta:"Meta tags",metaAuthor:"Auteur",metaCopyright:"Auteursrechten",metaDescription:"Documentbeschrijving",metaKeywords:"Trefwoorden voor indexering (komma-gescheiden)",other:"Anders...",previewHtml:'<p>Dit is <strong>voorbeeld tekst</strong>. Je gebruikt <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Documenteigenschappen",txtColor:"Tekstkleur",xhtmlDec:"XHTML declaratie invoegen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/no.js b/www/lib/ckeditor/plugins/docprops/lang/no.js new file mode 100644 index 00000000..11dddcff --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","no",{bgColor:"Bakgrunnsfarge",bgFixed:"Lås bakgrunnsbilde",bgImage:"URL for bakgrunnsbilde",charset:"Tegnsett",charsetASCII:"ASCII",charsetCE:"Sentraleuropeisk",charsetCR:"Kyrillisk",charsetCT:"Tradisonell kinesisk(Big5)",charsetGR:"Gresk",charsetJP:"Japansk",charsetKR:"Koreansk",charsetOther:"Annet tegnsett",charsetTR:"Tyrkisk",charsetUN:"Unicode (UTF-8)",charsetWE:"Vesteuropeisk",chooseColor:"Velg",design:"Design",docTitle:"Sidetittel",docType:"Dokumenttype header", +docTypeOther:"Annet dokumenttype header",label:"Dokumentegenskaper",margin:"Sidemargin",marginBottom:"Bunn",marginLeft:"Venstre",marginRight:"Høyre",marginTop:"Topp",meta:"Meta-data",metaAuthor:"Forfatter",metaCopyright:"Kopirett",metaDescription:"Dokumentbeskrivelse",metaKeywords:"Dokument nøkkelord (kommaseparert)",other:"<annen>",previewHtml:'<p>Dette er en <strong>eksempeltekst</strong>. Du bruker <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Tekstfarge", +xhtmlDec:"Inkluder XHTML-deklarasjon"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/pl.js b/www/lib/ckeditor/plugins/docprops/lang/pl.js new file mode 100644 index 00000000..4fb43438 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pl",{bgColor:"Kolor tła",bgFixed:"Tło nieruchome (nieprzewijające się)",bgImage:"Adres URL obrazka tła",charset:"Kodowanie znaków",charsetASCII:"ASCII",charsetCE:"Środkowoeuropejskie",charsetCR:"Cyrylica",charsetCT:"Chińskie tradycyjne (Big5)",charsetGR:"Greckie",charsetJP:"Japońskie",charsetKR:"Koreańskie",charsetOther:"Inne kodowanie znaków",charsetTR:"Tureckie",charsetUN:"Unicode (UTF-8)",charsetWE:"Zachodnioeuropejskie",chooseColor:"Wybierz",design:"Projekt strony", +docTitle:"Tytuł strony",docType:"Definicja typu dokumentu",docTypeOther:"Inna definicja typu dokumentu",label:"Właściwości dokumentu",margin:"Marginesy strony",marginBottom:"Dolny",marginLeft:"Lewy",marginRight:"Prawy",marginTop:"Górny",meta:"Znaczniki meta",metaAuthor:"Autor",metaCopyright:"Prawa autorskie",metaDescription:"Opis dokumentu",metaKeywords:"Słowa kluczowe dokumentu (oddzielone przecinkami)",other:"Inne",previewHtml:'<p>To jest <strong>przykładowy tekst</strong>. Korzystasz z programu <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Właściwości dokumentu",txtColor:"Kolor tekstu",xhtmlDec:"Uwzględnij deklaracje XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/pt-br.js b/www/lib/ckeditor/plugins/docprops/lang/pt-br.js new file mode 100644 index 00000000..c671fed0 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt-br",{bgColor:"Cor do Plano de Fundo",bgFixed:"Plano de Fundo Fixo",bgImage:"URL da Imagem de Plano de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Tradicional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Escolher",design:"Design", +docTitle:"Título da Página",docType:"Cabeçalho Tipo de Documento",docTypeOther:"Outro Tipo de Documento",label:"Propriedades Documento",margin:"Margens da Página",marginBottom:"Inferior",marginLeft:"Inferior",marginRight:"Direita",marginTop:"Superior",meta:"Meta Dados",metaAuthor:"Autor",metaCopyright:"Direitos Autorais",metaDescription:"Descrição do Documento",metaKeywords:"Palavras-chave de Indexação do Documento (separadas por vírgula)",other:"<outro>",previewHtml:'<p>Este é um <strong>texto de exemplo</strong>. Você está usando <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/pt.js b/www/lib/ckeditor/plugins/docprops/lang/pt.js new file mode 100644 index 00000000..ec1514d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","pt",{bgColor:"Cor de Fundo",bgFixed:"Fundo Fixo",bgImage:"Caminho para a Imagem de Fundo",charset:"Codificação de Caracteres",charsetASCII:"ASCII",charsetCE:"Europa Central",charsetCR:"Cirílico",charsetCT:"Chinês Traditional (Big5)",charsetGR:"Grego",charsetJP:"Japonês",charsetKR:"Coreano",charsetOther:"Outra Codificação de Caracteres",charsetTR:"Turco",charsetUN:"Unicode (UTF-8)",charsetWE:"Europa Ocidental",chooseColor:"Choose",design:"Desenho",docTitle:"Título da Página", +docType:"Tipo de Cabeçalho do Documento",docTypeOther:"Outro Tipo de Cabeçalho do Documento",label:"Propriedades do Documento",margin:"Margem das Páginas",marginBottom:"Fundo",marginLeft:"Esquerda",marginRight:"Direita",marginTop:"Topo",meta:"Meta Data",metaAuthor:"Autor",metaCopyright:"Direitos de Autor",metaDescription:"Descrição do Documento",metaKeywords:"Palavras de Indexação do Documento (separadas por virgula)",other:"<outro>",previewHtml:'<p>Isto é algum <strong>texto amostra</strong>. Está a usar o <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Propriedades do Documento",txtColor:"Cor do Texto",xhtmlDec:"Incluir Declarações XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ro.js b/www/lib/ckeditor/plugins/docprops/lang/ro.js new file mode 100644 index 00000000..9aa0e6d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ro",{bgColor:"Culoarea fundalului (Background Color)",bgFixed:"Fundal neflotant, fix (Non-scrolling Background)",bgImage:"URL-ul imaginii din fundal (Background Image URL)",charset:"Encoding setului de caractere",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Chirilic",charsetCT:"Chinezesc tradiţional (Big5)",charsetGR:"Grecesc",charsetJP:"Japonez",charsetKR:"Corean",charsetOther:"Alt encoding al setului de caractere",charsetTR:"Turcesc",charsetUN:"Unicode (UTF-8)", +charsetWE:"Vest european",chooseColor:"Alege",design:"Design",docTitle:"Titlul paginii",docType:"Document Type Heading",docTypeOther:"Alt Document Type Heading",label:"Proprietăţile documentului",margin:"Marginile paginii",marginBottom:"Jos",marginLeft:"Stânga",marginRight:"Dreapta",marginTop:"Sus",meta:"Meta Tags",metaAuthor:"Autor",metaCopyright:"Drepturi de autor",metaDescription:"Descrierea documentului",metaKeywords:"Cuvinte cheie după care se va indexa documentul (separate prin virgulă)",other:"<alt>", +previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Proprietăţile documentului",txtColor:"Culoarea textului",xhtmlDec:"Include declaraţii XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ru.js b/www/lib/ckeditor/plugins/docprops/lang/ru.js new file mode 100644 index 00000000..01d585f6 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ru",{bgColor:"Цвет фона",bgFixed:"Фон прикреплён (не проматывается)",bgImage:"Ссылка на фоновое изображение",charset:"Кодировка набора символов",charsetASCII:"ASCII",charsetCE:"Центрально-европейская",charsetCR:"Кириллица",charsetCT:"Китайская традиционная (Big5)",charsetGR:"Греческая",charsetJP:"Японская",charsetKR:"Корейская",charsetOther:"Другая кодировка набора символов",charsetTR:"Турецкая",charsetUN:"Юникод (UTF-8)",charsetWE:"Западно-европейская",chooseColor:"Выберите", +design:"Дизайн",docTitle:"Заголовок страницы",docType:"Заголовок типа документа",docTypeOther:"Другой заголовок типа документа",label:"Свойства документа",margin:"Отступы страницы",marginBottom:"Нижний",marginLeft:"Левый",marginRight:"Правый",marginTop:"Верхний",meta:"Метаданные",metaAuthor:"Автор",metaCopyright:"Авторские права",metaDescription:"Описание документа",metaKeywords:"Ключевые слова документа (через запятую)",other:"Другой ...",previewHtml:'<p>Это <strong>пример</strong> текста, написанного с помощью <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Свойства документа",txtColor:"Цвет текста",xhtmlDec:"Включить объявления XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/si.js b/www/lib/ckeditor/plugins/docprops/lang/si.js new file mode 100644 index 00000000..19a7d6fa --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","si",{bgColor:"පසුබිම් වර්ණය",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"පසුබිම් ",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"මාධ්‍ය ",charsetCR:"සිරිලික් හෝඩිය",charsetCT:"චීන සම්ප්‍රදාය",charsetGR:"ග්‍රීක",charsetJP:"ජපාන",charsetKR:"Korean",charsetOther:"අනෙකුත් අක්ෂර කොටස්",charsetTR:"තුර්කි",charsetUN:"Unicode (UTF-8)",charsetWE:"බස්නාහිර ",chooseColor:"තෝරන්න",design:"Design",docTitle:"පිටු මාතෘකාව",docType:"ලිපිගොනු වර්ගයේ මාතෘකාව", +docTypeOther:"අනෙකුත් ලිපිගොනු වර්ගයේ මාතෘකා",label:"ලිපිගොනු ",margin:"පිටු සීමාවන්",marginBottom:"පහල",marginLeft:"වම",marginRight:"දකුණ",marginTop:"ඉ",meta:"Meta Tags",metaAuthor:"Author",metaCopyright:"ප්‍රකාශන ",metaDescription:"ලිපිගොනු ",metaKeywords:"ලිපිගොනු පෙලගේසමේ විශේෂ වචන (කොමා වලින් වෙන්කරන ලද)",other:"අනෙකුත්",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"පෝරමයේ ගුණ/",txtColor:"අක්ෂර වර්ණ",xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/sk.js b/www/lib/ckeditor/plugins/docprops/lang/sk.js new file mode 100644 index 00000000..b347ab05 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sk",{bgColor:"Farba pozadia",bgFixed:"Fixné pozadie",bgImage:"URL obrázka na pozadí",charset:"Znaková sada",charsetASCII:"ASCII",charsetCE:"Stredoeurópska",charsetCR:"Cyrillika",charsetCT:"Čínština tradičná (Big5)",charsetGR:"Gréčtina",charsetJP:"Japončina",charsetKR:"Korejčina",charsetOther:"Iná znaková sada",charsetTR:"Turečtina",charsetUN:"Unicode (UTF-8)",charsetWE:"Západná európa",chooseColor:"Vybrať",design:"Design",docTitle:"Titulok stránky",docType:"Typ záhlavia dokumentu", +docTypeOther:"Iný typ záhlavia dokumentu",label:"Vlastnosti dokumentu",margin:"Okraje stránky (margins)",marginBottom:"Dolný",marginLeft:"Ľavý",marginRight:"Pravý",marginTop:"Horný",meta:"Meta značky",metaAuthor:"Autor",metaCopyright:"Autorské práva (copyright)",metaDescription:"Popis dokumentu",metaKeywords:"Indexované kľúčové slová dokumentu (oddelené čiarkou)",other:"Iný...",previewHtml:'<p>Toto je nejaký <strong>ukážkový text</strong>. Používate <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Vlastnosti dokumentu",txtColor:"Farba textu",xhtmlDec:"Vložiť deklarácie XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/sl.js b/www/lib/ckeditor/plugins/docprops/lang/sl.js new file mode 100644 index 00000000..7017e1bd --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sl",{bgColor:"Barva ozadja",bgFixed:"Nepremično ozadje",bgImage:"URL slike za ozadje",charset:"Kodna tabela",charsetASCII:"ASCII",charsetCE:"Srednjeevropsko",charsetCR:"Cirilica",charsetCT:"Tradicionalno Kitajsko (Big5)",charsetGR:"Grško",charsetJP:"Japonsko",charsetKR:"Korejsko",charsetOther:"Druga kodna tabela",charsetTR:"Turško",charsetUN:"Unicode (UTF-8)",charsetWE:"Zahodnoevropsko",chooseColor:"Izberi",design:"Oblika",docTitle:"Naslov strani",docType:"Glava tipa dokumenta", +docTypeOther:"Druga glava tipa dokumenta",label:"Lastnosti dokumenta",margin:"Zamiki strani",marginBottom:"Spodaj",marginLeft:"Levo",marginRight:"Desno",marginTop:"Na vrhu",meta:"Meta podatki",metaAuthor:"Avtor",metaCopyright:"Avtorske pravice",metaDescription:"Opis strani",metaKeywords:"Ključne besede (ločene z vejicami)",other:"<drug>",previewHtml:'<p>Tole je<strong>primer besedila</strong>. Uporabljate <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Lastnosti dokumenta",txtColor:"Barva besedila", +xhtmlDec:"Vstavi XHTML deklaracije"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/sq.js b/www/lib/ckeditor/plugins/docprops/lang/sq.js new file mode 100644 index 00000000..373c7293 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sq",{bgColor:"Ngjyra e Prapavijës",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"URL e Fotografisë së Prapavijës",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Evropës Qendrore",charsetCR:"Sllave",charsetCT:"Kinezisht Tradicional (Big5)",charsetGR:"Greke",charsetJP:"Japoneze",charsetKR:"Koreane",charsetOther:"Other Character Set Encoding",charsetTR:"Turke",charsetUN:"Unicode (UTF-8)",charsetWE:"Evropiano Perëndimor",chooseColor:"Përzgjidh", +design:"Dizajni",docTitle:"Titulli i Faqes",docType:"Document Type Heading",docTypeOther:"Koka e Llojit Tjetër të Dokumentit",label:"Karakteristikat e Dokumentit",margin:"Kufijtë e Faqes",marginBottom:"Poshtë",marginLeft:"Majtas",marginRight:"Djathtas",marginTop:"Lart",meta:"Meta Tags",metaAuthor:"Autori",metaCopyright:"Të drejtat e kopjimit",metaDescription:"Përshkrimi i Dokumentit",metaKeywords:"Fjalët kyçe të indeksimit të dokumentit (të ndarë me presje)",other:"Tjera...",previewHtml:'<p>Ky është nje <strong>tekst shembull</strong>. Ju jeni duke shfrytëzuar <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Karakteristikat e Dokumentit",txtColor:"Ngjyra e Tekstit",xhtmlDec:"Përfshij XHTML Deklarimet"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js b/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js new file mode 100644 index 00000000..77312ffb --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr-latn",{bgColor:"Boja pozadine",bgFixed:"Fiksirana pozadina",bgImage:"URL pozadinske slike",charset:"Kodiranje skupa karaktera",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Ostala kodiranja skupa karaktera",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Naslov stranice", +docType:"Zaglavlje tipa dokumenta",docTypeOther:"Ostala zaglavlja tipa dokumenta",label:"Osobine dokumenta",margin:"Margine stranice",marginBottom:"Donja",marginLeft:"Leva",marginRight:"Desna",marginTop:"Gornja",meta:"Metapodaci",metaAuthor:"Autor",metaCopyright:"Autorska prava",metaDescription:"Opis dokumenta",metaKeywords:"Ključne reci za indeksiranje dokumenta (razdvojene zarezima)",other:"<остало>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Osobine dokumenta",txtColor:"Boja teksta",xhtmlDec:"Ukljuci XHTML deklaracije"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/sr.js b/www/lib/ckeditor/plugins/docprops/lang/sr.js new file mode 100644 index 00000000..f50c3e4a --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","sr",{bgColor:"Боја позадине",bgFixed:"Фиксирана позадина",bgImage:"УРЛ позадинске слике",charset:"Кодирање скупа карактера",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"Остала кодирања скупа карактера",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"Design",docTitle:"Наслов странице", +docType:"Заглавље типа документа",docTypeOther:"Остала заглавља типа документа",label:"Особине документа",margin:"Маргине странице",marginBottom:"Доња",marginLeft:"Лева",marginRight:"Десна",marginTop:"Горња",meta:"Метаподаци",metaAuthor:"Аутор",metaCopyright:"Ауторска права",metaDescription:"Опис документа",metaKeywords:"Кључне речи за индексирање документа (раздвојене зарезом)",other:"<other>",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"Особине документа",txtColor:"Боја текста",xhtmlDec:"Улључи XHTML декларације"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/sv.js b/www/lib/ckeditor/plugins/docprops/lang/sv.js new file mode 100644 index 00000000..363de9bc --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","sv",{bgColor:"Bakgrundsfärg",bgFixed:"Fast bakgrund",bgImage:"Bakgrundsbildens URL",charset:"Teckenuppsättningar",charsetASCII:"ASCII",charsetCE:"Central Europa",charsetCR:"Kyrillisk",charsetCT:"Traditionell Kinesisk (Big5)",charsetGR:"Grekiska",charsetJP:"Japanska",charsetKR:"Koreanska",charsetOther:"Övriga teckenuppsättningar",charsetTR:"Turkiska",charsetUN:"Unicode (UTF-8)",charsetWE:"Väst Europa",chooseColor:"Välj",design:"Design",docTitle:"Sidtitel",docType:"Sidhuvud", +docTypeOther:"Övriga sidhuvuden",label:"Dokumentegenskaper",margin:"Sidmarginal",marginBottom:"Botten",marginLeft:"Vänster",marginRight:"Höger",marginTop:"Topp",meta:"Metadata",metaAuthor:"Författare",metaCopyright:"Upphovsrätt",metaDescription:"Sidans beskrivning",metaKeywords:"Sidans nyckelord (kommaseparerade)",other:"Annan...",previewHtml:'<p>Detta är en <strong>exempel text</strong>. Du använder <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Dokumentegenskaper",txtColor:"Textfärg",xhtmlDec:"Inkludera XHTML deklaration"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/th.js b/www/lib/ckeditor/plugins/docprops/lang/th.js new file mode 100644 index 00000000..2befc7f7 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","th",{bgColor:"สีพื้นหลัง",bgFixed:"พื้นหลังแบบไม่มีแถบเลื่อน",bgImage:"ที่อยู่อ้างอิงออนไลน์ของรูปพื้นหลัง (Image URL)",charset:"ชุดตัวอักษร",charsetASCII:"ASCII",charsetCE:"Central European",charsetCR:"Cyrillic",charsetCT:"Chinese Traditional (Big5)",charsetGR:"Greek",charsetJP:"Japanese",charsetKR:"Korean",charsetOther:"ชุดตัวอักษรอื่นๆ",charsetTR:"Turkish",charsetUN:"Unicode (UTF-8)",charsetWE:"Western European",chooseColor:"Choose",design:"ออกแบบ",docTitle:"ชื่อไตเติ้ล", +docType:"ประเภทของเอกสาร",docTypeOther:"ประเภทเอกสารอื่นๆ",label:"คุณสมบัติของเอกสาร",margin:"ระยะขอบของหน้าเอกสาร",marginBottom:"ด้านล่าง",marginLeft:"ด้านซ้าย",marginRight:"ด้านขวา",marginTop:"ด้านบน",meta:"ข้อมูลสำหรับเสิร์ชเอนจิ้น",metaAuthor:"ผู้สร้างเอกสาร",metaCopyright:"สงวนลิขสิทธิ์",metaDescription:"ประโยคอธิบายเกี่ยวกับเอกสาร",metaKeywords:"คำสำคัญอธิบายเอกสาร (คั่นคำด้วย คอมม่า)",other:"<อื่น ๆ>",previewHtml:'<p>นี่เป็น <strong>ข้อความตัวอย่าง</strong>. คุณกำลังใช้งาน <a href="javascript:void(0)">CKEditor</a>.</p>', +title:"คุณสมบัติของเอกสาร",txtColor:"สีตัวอักษร",xhtmlDec:"รวมเอา XHTML Declarations ไว้ด้วย"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/tr.js b/www/lib/ckeditor/plugins/docprops/lang/tr.js new file mode 100644 index 00000000..00a35d43 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tr",{bgColor:"Arka Plan Rengi",bgFixed:"Sabit Arka Plan",bgImage:"Arka Plan Resim URLsi",charset:"Karakter Kümesi Kodlaması",charsetASCII:"ASCII",charsetCE:"Orta Avrupa",charsetCR:"Kiril",charsetCT:"Geleneksel Çince (Big5)",charsetGR:"Yunanca",charsetJP:"Japonca",charsetKR:"Korece",charsetOther:"Diğer Karakter Kümesi Kodlaması",charsetTR:"Türkçe",charsetUN:"Evrensel Kod (UTF-8)",charsetWE:"Batı Avrupa",chooseColor:"Seçiniz",design:"Dizayn",docTitle:"Sayfa Başlığı", +docType:"Belge Türü Başlığı",docTypeOther:"Diğer Belge Türü Başlığı",label:"Belge Özellikleri",margin:"Kenar Boşlukları",marginBottom:"Alt",marginLeft:"Sol",marginRight:"Sağ",marginTop:"Tepe",meta:"Tanım Bilgisi (Meta)",metaAuthor:"Yazar",metaCopyright:"Telif",metaDescription:"Belge Tanımı",metaKeywords:"Belge Dizinleme Anahtar Kelimeleri (virgülle ayrılmış)",other:"<diğer>",previewHtml:'<p>Bu bir <strong>örnek metindir</strong>. <a href="javascript:void(0)">CKEditor</a> kullanıyorsunuz.</p>',title:"Belge Özellikleri", +txtColor:"Yazı Rengi",xhtmlDec:"XHTML Bildirimlerini Dahil Et"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/tt.js b/www/lib/ckeditor/plugins/docprops/lang/tt.js new file mode 100644 index 00000000..c1c6ce14 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","tt",{bgColor:"Фон төсе",bgFixed:"Non-scrolling (Fixed) Background",bgImage:"Background Image URL",charset:"Character Set Encoding",charsetASCII:"ASCII",charsetCE:"Урта Ауропа",charsetCR:"Кириллик",charsetCT:"Гадәти кытай (Big5)",charsetGR:"Грек",charsetJP:"Япон",charsetKR:"Корей",charsetOther:"Other Character Set Encoding",charsetTR:"Төрек",charsetUN:"Юникод (UTF-8)",charsetWE:"Көнбатыш Ауропа",chooseColor:"Сайлау",design:"Дизайн",docTitle:"Page Title",docType:"Document Type Heading", +docTypeOther:"Other Document Type Heading",label:"Document Properties",margin:"Page Margins",marginBottom:"Аска",marginLeft:"Сул",marginRight:"Right",marginTop:"Өскә",meta:"Meta Tags",metaAuthor:"Автор",metaCopyright:"Copyright",metaDescription:"Document Description",metaKeywords:"Document Indexing Keywords (comma separated)",other:"Башка...",previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Document Properties",txtColor:"Текст төсе", +xhtmlDec:"Include XHTML Declarations"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/ug.js b/www/lib/ckeditor/plugins/docprops/lang/ug.js new file mode 100644 index 00000000..424d13a0 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","ug",{bgColor:"تەگلىك رەڭگى",bgFixed:"تەگلىك سۈرەتنى دومىلاتما",bgImage:"تەگلىك سۈرەت",charset:"ھەرپ كودلىنىشى",charsetASCII:"ASCII",charsetCE:"ئوتتۇرا ياۋرۇپا",charsetCR:"سىلاۋيانچە",charsetCT:"مۇرەككەپ خەنزۇچە (Big5)",charsetGR:"گىرېكچە",charsetJP:"ياپونچە",charsetKR:"كۆرىيەچە",charsetOther:"باشقا ھەرپ كودلىنىشى",charsetTR:"تۈركچە",charsetUN:"يۇنىكود (UTF-8)",charsetWE:"غەربىي ياۋرۇپا",chooseColor:"تاللاڭ",design:"لايىھە",docTitle:"بەت ماۋزۇسى",docType:"پۈتۈك تىپى", +docTypeOther:"باشقا پۈتۈك تىپى",label:"بەت خاسلىقى",margin:"بەت گىرۋەك",marginBottom:"ئاستى",marginLeft:"سول",marginRight:"ئوڭ",marginTop:"ئۈستى",meta:"مېتا سانلىق مەلۇمات",metaAuthor:"يازغۇچى",metaCopyright:"نەشر ھوقۇقى",metaDescription:"بەت يۈزى چۈشەندۈرۈشى",metaKeywords:"بەت يۈزى ئىندېكىس ھالقىلىق سۆزى (ئىنگلىزچە پەش [,] بىلەن ئايرىلىدۇ)",other:"باشقا",previewHtml:'<p>بۇ بىر قىسىم <strong>كۆرسەتمىگە ئىشلىتىدىغان تېكىست </strong>سىز نۆۋەتتە <a href="javascript:void(0)">CKEditor</a>.نى ئىشلىتىۋاتىسىز.</p>', +title:"بەت خاسلىقى",txtColor:"تېكىست رەڭگى",xhtmlDec:"XHTML ئېنىقلىمىسىنى ئۆز ئىچىگە ئالىدۇ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/uk.js b/www/lib/ckeditor/plugins/docprops/lang/uk.js new file mode 100644 index 00000000..c1027967 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","uk",{bgColor:"Колір тла",bgFixed:"Тло без прокрутки",bgImage:"URL зображення тла",charset:"Кодування набору символів",charsetASCII:"ASCII",charsetCE:"Центрально-європейська",charsetCR:"Кирилиця",charsetCT:"Китайська традиційна (Big5)",charsetGR:"Грецька",charsetJP:"Японська",charsetKR:"Корейська",charsetOther:"Інше кодування набору символів",charsetTR:"Турецька",charsetUN:"Юнікод (UTF-8)",charsetWE:"Західно-европейская",chooseColor:"Обрати",design:"Дизайн",docTitle:"Заголовок сторінки", +docType:"Заголовок типу документу",docTypeOther:"Інший заголовок типу документу",label:"Властивості документа",margin:"Відступи сторінки",marginBottom:"Нижній",marginLeft:"Лівий",marginRight:"Правий",marginTop:"Верхній",meta:"Мета дані",metaAuthor:"Автор",metaCopyright:"Авторські права",metaDescription:"Опис документа",metaKeywords:"Ключові слова документа (розділені комами)",other:"<інший>",previewHtml:'<p>Це приклад<strong>тексту</strong>. Ви використовуєте<a href="javascript:void(0)"> CKEditor </a>.</p>', +title:"Властивості документа",txtColor:"Колір тексту",xhtmlDec:"Ввімкнути XHTML оголошення"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/vi.js b/www/lib/ckeditor/plugins/docprops/lang/vi.js new file mode 100644 index 00000000..b4583767 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("docprops","vi",{bgColor:"Màu nền",bgFixed:"Không cuộn nền",bgImage:"URL của Hình ảnh nền",charset:"Bảng mã ký tự",charsetASCII:"ASCII",charsetCE:"Trung Âu",charsetCR:"Tiếng Kirin",charsetCT:"Tiếng Trung Quốc (Big5)",charsetGR:"Tiếng Hy Lạp",charsetJP:"Tiếng Nhật",charsetKR:"Tiếng Hàn",charsetOther:"Bảng mã ký tự khác",charsetTR:"Tiếng Thổ Nhĩ Kỳ",charsetUN:"Unicode (UTF-8)",charsetWE:"Tây Âu",chooseColor:"Chọn màu",design:"Thiết kế",docTitle:"Tiêu đề Trang",docType:"Kiểu Đề mục Tài liệu", +docTypeOther:"Kiểu Đề mục Tài liệu khác",label:"Thuộc tính Tài liệu",margin:"Đường biên của Trang",marginBottom:"Dưới",marginLeft:"Trái",marginRight:"Phải",marginTop:"Trên",meta:"Siêu dữ liệu",metaAuthor:"Tác giả",metaCopyright:"Bản quyền",metaDescription:"Mô tả tài liệu",metaKeywords:"Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",other:"<khác>",previewHtml:'<p>Đây là một số <strong>văn bản mẫu</strong>. Bạn đang sử dụng <a href="javascript:void(0)">CKEditor</a>.</p>',title:"Thuộc tính Tài liệu", +txtColor:"Màu chữ",xhtmlDec:"Bao gồm cả định nghĩa XHTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js b/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js new file mode 100644 index 00000000..d8c87e71 --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh-cn",{bgColor:"背景颜色",bgFixed:"不滚动背景图像",bgImage:"背景图像",charset:"字符编码",charsetASCII:"ASCII",charsetCE:"中欧",charsetCR:"西里尔文",charsetCT:"繁体中文 (Big5)",charsetGR:"希腊文",charsetJP:"日文",charsetKR:"韩文",charsetOther:"其它字符编码",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西欧",chooseColor:"选择",design:"设计",docTitle:"页面标题",docType:"文档类型",docTypeOther:"其它文档类型",label:"页面属性",margin:"页面边距",marginBottom:"下",marginLeft:"左",marginRight:"右",marginTop:"上",meta:"Meta 数据",metaAuthor:"作者", +metaCopyright:"版权",metaDescription:"页面说明",metaKeywords:"页面索引关键字 (用半角逗号[,]分隔)",other:"<其他>",previewHtml:'<p>这是一些<strong>演示用文字</strong>。您当前正在使用<a href="javascript:void(0)">CKEditor</a>。</p>',title:"页面属性",txtColor:"文本颜色",xhtmlDec:"包含 XHTML 声明"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/lang/zh.js b/www/lib/ckeditor/plugins/docprops/lang/zh.js new file mode 100644 index 00000000..193a57da --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("docprops","zh",{bgColor:"背景顏色",bgFixed:"非捲動 (固定) 背景",bgImage:"背景圖像 URL",charset:"字元集編碼",charsetASCII:"ASCII",charsetCE:"中歐語系",charsetCR:"斯拉夫文",charsetCT:"正體中文 (Big5)",charsetGR:"希臘文",charsetJP:"日文",charsetKR:"韓文",charsetOther:"其他字元集編碼",charsetTR:"土耳其文",charsetUN:"Unicode (UTF-8)",charsetWE:"西歐語系",chooseColor:"選擇",design:"設計模式",docTitle:"頁面標題",docType:"文件類型標題",docTypeOther:"其他文件類型標題",label:"文件屬性",margin:"頁面邊界",marginBottom:"底端",marginLeft:"左",marginRight:"右",marginTop:"頂端", +meta:"Meta 標籤",metaAuthor:"作者",metaCopyright:"版權資訊",metaDescription:"文件描述",metaKeywords:"文件索引關鍵字 (以逗號分隔)",other:"其他…",previewHtml:'<p>此為簡短的<strong>範例文字</strong>。您正在使用 <a href="javascript:void(0)">CKEditor</a>。</p>',title:"文件屬性",txtColor:"文字顏色",xhtmlDec:"包含 XHTML 宣告"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/docprops/plugin.js b/www/lib/ckeditor/plugins/docprops/plugin.js new file mode 100644 index 00000000..efbe090f --- /dev/null +++ b/www/lib/ckeditor/plugins/docprops/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("docprops",{requires:"wysiwygarea,dialog,colordialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"docprops,docprops-rtl",hidpi:!0,init:function(a){var b=new CKEDITOR.dialogCommand("docProps");b.modes={wysiwyg:a.config.fullPage};b.allowedContent={body:{styles:"*",attributes:"dir"},html:{attributes:"lang,xml:lang"}}; +b.requiredContent="body";a.addCommand("docProps",b);CKEDITOR.dialog.add("docProps",this.path+"dialogs/docprops.js");a.ui.addButton&&a.ui.addButton("DocProps",{label:a.lang.docprops.label,command:"docProps",toolbar:"document,30"})}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/dialogs/find.js b/www/lib/ckeditor/plugins/find/dialogs/find.js new file mode 100644 index 00000000..0ad6a589 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/dialogs/find.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(c){return c.type==CKEDITOR.NODE_TEXT&&0<c.getLength()&&(!o||!c.isReadOnly())}function s(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)))}var o,t=function(){return{textNode:this.textNode,offset:this.offset,character:this.textNode?this.textNode.getText().charAt(this.offset):null,hitMatchBoundary:this._.matchBoundary}},u=["find","replace"],p=[["txtFindFind","txtFindReplace"],["txtFindCaseChk", +"txtReplaceCaseChk"],["txtFindWordChk","txtReplaceWordChk"],["txtFindCyclic","txtReplaceCyclic"]],n=function(c,g){function n(a,b){var d=c.createRange();d.setStart(a.textNode,b?a.offset:a.offset+1);d.setEndAt(c.editable(),CKEDITOR.POSITION_BEFORE_END);return d}function q(a){var b=c.getSelection(),d=c.editable();b&&!a?(a=b.getRanges()[0].clone(),a.collapse(!0)):(a=c.createRange(),a.setStartAt(d,CKEDITOR.POSITION_AFTER_START));a.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);return a}var v=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1}, +fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},c.config.find_highlight,!0)),l=function(a,b){var d=this,c=new CKEDITOR.dom.walker(a);c.guard=b?s:function(a){!s(a)&&(d._.matchBoundary=!0)};c.evaluator=y;c.breakOnFalse=1;a.startContainer.type==CKEDITOR.NODE_TEXT&&(this.textNode=a.startContainer,this.offset=a.startOffset-1);this._={matchWord:b,walker:c,matchBoundary:!1}};l.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(a){var b=this.textNode; +if(null===b)return t.call(this);this._.matchBoundary=!1;if(b&&a&&0<this.offset)this.offset--;else if(b&&this.offset<b.getLength()-1)this.offset++;else{for(b=null;!b&&!(b=this._.walker[a?"previous":"next"].call(this._.walker),this._.matchWord&&!b||this._.walker._.end););this.offset=(this.textNode=b)?a?b.getLength()-1:0:0}return t.call(this)}};var r=function(a,b){this._={walker:a,cursors:[],rangeLength:b,highlightRange:null,isMatched:0}};r.prototype={toDomRange:function(){var a=c.createRange(),b=this._.cursors; +if(1>b.length){var d=this._.walker.textNode;if(d)a.setStartAfter(d);else return null}else d=b[0],b=b[b.length-1],a.setStart(d.textNode,d.offset),a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new l(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1> +this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();v.applyToRange(a,c);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();v.removeFromRange(this._.highlightRange,c);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange); +this._.highlightRange=null}},isReadOnly:function(){return!this._.highlightRange?0:this._.highlightRange.startContainer.isReadOnly()},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a);b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors; +return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,d;d=this._.cursors;d=(b=d[d.length-1])&&b.textNode?new l(n(b)):this._.walker;return new r(d,a)},getCursors:function(){return this._.cursors}};var w=function(a,b){var d=[-1];b&&(a=a.toLowerCase());for(var c=0;c<a.length;c++)for(d.push(d[c]+1);0<d[c+1]&&a.charAt(c)!=a.charAt(d[c+1]-1);)d[c+1]=d[d[c+1]-1]+1;this._={overlap:d,state:0,ignoreCase:!!b,pattern:a}};w.prototype={feedCharacter:function(a){for(this._.ignoreCase&& +(a=a.toLowerCase());;){if(a==this._.pattern.charAt(this._.state))return this._.state++,this._.state==this._.pattern.length?(this._.state=0,2):1;if(this._.state)this._.state=this._.overlap[this._.state];else return 0}return null},reset:function(){this._.state=0}};var z=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,x=function(a){if(!a)return!0;var b=a.charCodeAt(0);return 9<=b&&13>=b||8192<=b&&8202>=b||z.test(a)},e={searchRange:null,matchRange:null,find:function(a,b,d,f,e,A){this.matchRange? +(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(a.length)):this.matchRange=new r(new l(this.searchRange),a.length);for(var i=new w(a,!b),j=0,k="%";null!==k;){for(this.matchRange.moveNext();k=this.matchRange.getEndCharacter();){j=i.feedCharacter(k);if(2==j)break;this.matchRange.moveNext().hitMatchBoundary&&i.reset()}if(2==j){if(d){var h=this.matchRange.getCursors(),m=h[h.length-1],h=h[0],g=c.createRange();g.setStartAt(c.editable(),CKEDITOR.POSITION_AFTER_START); +g.setEnd(h.textNode,h.offset);h=g;m=n(m);h.trim();m.trim();h=new l(h,!0);m=new l(m,!0);if(!x(h.back().character)||!x(m.next().character))continue}this.matchRange.setMatched();!1!==e&&this.matchRange.highlight();return!0}}this.matchRange.clearMatched();this.matchRange.removeHighlight();return f&&!A?(this.searchRange=q(1),this.matchRange=null,arguments.callee.apply(this,Array.prototype.slice.call(arguments).concat([!0]))):!1},replaceCounter:0,replace:function(a,b,d,f,e,g,i){o=1;a=0;if(this.matchRange&& +this.matchRange.isMatched()&&!this.matchRange._.isReplaced&&!this.matchRange.isReadOnly()){this.matchRange.removeHighlight();b=this.matchRange.toDomRange();d=c.document.createText(d);if(!i){var j=c.getSelection();j.selectRanges([b]);c.fire("saveSnapshot")}b.deleteContents();b.insertNode(d);i||(j.selectRanges([b]),c.fire("saveSnapshot"));this.matchRange.updateFromDomRange(b);i||this.matchRange.highlight();this.matchRange._.isReplaced=!0;this.replaceCounter++;a=1}else a=this.find(b,f,e,g,!i);o=0;return a}}, +f=c.lang.find;return{title:f.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton(c,{label:c.lang.common.close})],contents:[{id:"find",label:f.find,title:f.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:f.find,onClick:function(){var a=this.getDialog(); +e.find(a.getValueOf("find","txtFindFind"),a.getValueOf("find","txtFindCaseChk"),a.getValueOf("find","txtFindWordChk"),a.getValueOf("find","txtFindCyclic"))||alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0, +label:f.matchCyclic}]}]}]},{id:"replace",label:f.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindReplace",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:f.replace,onClick:function(){var a=this.getDialog();e.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace", +"txtReplaceWordChk"),a.getValueOf("replace","txtReplaceCyclic"))||alert(f.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtReplace",label:f.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:f.replaceAll,isChanged:!1,onClick:function(){var a=this.getDialog();e.replaceCounter=0;e.searchRange=q(1);e.matchRange&&(e.matchRange.removeHighlight(),e.matchRange=null);for(c.fire("saveSnapshot");e.replace(a, +a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),!1,!0););e.replaceCounter?(alert(f.replaceSuccessMsg.replace(/%1/,e.replaceCounter)),c.fire("saveSnapshot")):alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtReplaceWordChk", +isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:f.matchCyclic}]}]}]}],onLoad:function(){var a=this,b,c=0;this.on("hide",function(){c=0});this.on("show",function(){c=1});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(f){return function(e){f.call(a,e);var g=a._.tabs[e],i;i="find"===e?"txtFindWordChk":"txtReplaceWordChk";b=a.getContentElement(e,"find"===e?"txtFindFind":"txtFindReplace");a.getContentElement(e,i);g.initialized||(CKEDITOR.document.getById(b._.inputId), +g.initialized=!0);if(c){var j,e="find"===e?1:0,g=1-e,k,h=p.length;for(k=0;k<h;k++)i=this.getContentElement(u[e],p[k][e]),j=this.getContentElement(u[g],p[k][g]),j.setValue(i.getValue())}}})},onShow:function(){e.searchRange=q();var a=this.getParentEditor().getSelection().getSelectedText(),b=this.getContentElement(g,"find"==g?"txtFindFind":"txtFindReplace");b.setValue(a);b.select();this.selectPage(g);this[("find"==g&&this._.editor.readOnly?"hide":"show")+"Page"]("replace")},onHide:function(){var a;e.matchRange&& +e.matchRange.isMatched()&&(e.matchRange.removeHighlight(),c.focus(),(a=e.matchRange.toDomRange())&&c.getSelection().selectRanges([a]));delete e.matchRange},onFocus:function(){return"replace"==g?this.getContentElement("replace","txtFindReplace"):this.getContentElement("find","txtFindFind")}}};CKEDITOR.dialog.add("find",function(c){return n(c,"find")});CKEDITOR.dialog.add("replace",function(c){return n(c,"replace")})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/icons/find-rtl.png b/www/lib/ckeditor/plugins/find/icons/find-rtl.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/www/lib/ckeditor/plugins/find/icons/find-rtl.png differ diff --git a/www/lib/ckeditor/plugins/find/icons/find.png b/www/lib/ckeditor/plugins/find/icons/find.png new file mode 100644 index 00000000..02f40cb2 Binary files /dev/null and b/www/lib/ckeditor/plugins/find/icons/find.png differ diff --git a/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png b/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/www/lib/ckeditor/plugins/find/icons/hidpi/find-rtl.png differ diff --git a/www/lib/ckeditor/plugins/find/icons/hidpi/find.png b/www/lib/ckeditor/plugins/find/icons/hidpi/find.png new file mode 100644 index 00000000..cbf9ced2 Binary files /dev/null and b/www/lib/ckeditor/plugins/find/icons/hidpi/find.png differ diff --git a/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png b/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png new file mode 100644 index 00000000..9efd8bbd Binary files /dev/null and b/www/lib/ckeditor/plugins/find/icons/hidpi/replace.png differ diff --git a/www/lib/ckeditor/plugins/find/icons/replace.png b/www/lib/ckeditor/plugins/find/icons/replace.png new file mode 100644 index 00000000..e68afcbe Binary files /dev/null and b/www/lib/ckeditor/plugins/find/icons/replace.png differ diff --git a/www/lib/ckeditor/plugins/find/lang/af.js b/www/lib/ckeditor/plugins/find/lang/af.js new file mode 100644 index 00000000..79e13e84 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","af",{find:"Soek",findOptions:"Find Options",findWhat:"Soek na:",matchCase:"Hoof/kleinletter sensitief",matchCyclic:"Soek deurlopend",matchWord:"Hele woord moet voorkom",notFoundMsg:"Teks nie gevind nie.",replace:"Vervang",replaceAll:"Vervang alles",replaceSuccessMsg:"%1 voorkoms(te) vervang.",replaceWith:"Vervang met:",title:"Soek en vervang"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ar.js b/www/lib/ckeditor/plugins/find/lang/ar.js new file mode 100644 index 00000000..e995c89d --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ar",{find:"بحث",findOptions:"Find Options",findWhat:"البحث بـ:",matchCase:"مطابقة حالة الأحرف",matchCyclic:"مطابقة دورية",matchWord:"مطابقة بالكامل",notFoundMsg:"لم يتم العثور على النص المحدد.",replace:"إستبدال",replaceAll:"إستبدال الكل",replaceSuccessMsg:"تم استبدال 1% من الحالات ",replaceWith:"إستبدال بـ:",title:"بحث واستبدال"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/bg.js b/www/lib/ckeditor/plugins/find/lang/bg.js new file mode 100644 index 00000000..844a0b27 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bg",{find:"Търсене",findOptions:"Find Options",findWhat:"Търси за:",matchCase:"Съвпадение",matchCyclic:"Циклично съвпадение",matchWord:"Съвпадение с дума",notFoundMsg:"Указаният текст не е намерен.",replace:"Препокриване",replaceAll:"Препокрий всички",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Препокрива с:",title:"Търсене и препокриване"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/bn.js b/www/lib/ckeditor/plugins/find/lang/bn.js new file mode 100644 index 00000000..f80be452 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bn",{find:"খোজো",findOptions:"Find Options",findWhat:"যা খুঁজতে হবে:",matchCase:"কেস মিলাও",matchCyclic:"Match cyclic",matchWord:"পুরা শব্দ মেলাও",notFoundMsg:"আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",replace:"রিপ্লেস",replaceAll:"সব বদলে দাও",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"যার সাথে বদলাতে হবে:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/bs.js b/www/lib/ckeditor/plugins/find/lang/bs.js new file mode 100644 index 00000000..4941067b --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","bs",{find:"Naði",findOptions:"Find Options",findWhat:"Naði šta:",matchCase:"Uporeðuj velika/mala slova",matchCyclic:"Match cyclic",matchWord:"Uporeðuj samo cijelu rijeè",notFoundMsg:"Traženi tekst nije pronaðen.",replace:"Zamjeni",replaceAll:"Zamjeni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zamjeni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ca.js b/www/lib/ckeditor/plugins/find/lang/ca.js new file mode 100644 index 00000000..85448cf4 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ca",{find:"Cerca",findOptions:"Opcions de Cerca",findWhat:"Cerca el:",matchCase:"Distingeix majúscules/minúscules",matchCyclic:"Coincidència cíclica",matchWord:"Només paraules completes",notFoundMsg:"El text especificat no s'ha trobat.",replace:"Reemplaça",replaceAll:"Reemplaça-ho tot",replaceSuccessMsg:"%1 ocurrència/es reemplaçada/es.",replaceWith:"Reemplaça amb:",title:"Cerca i reemplaça"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/cs.js b/www/lib/ckeditor/plugins/find/lang/cs.js new file mode 100644 index 00000000..a63cd194 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cs",{find:"Hledat",findOptions:"Možnosti hledání",findWhat:"Co hledat:",matchCase:"Rozlišovat velikost písma",matchCyclic:"Procházet opakovaně",matchWord:"Pouze celá slova",notFoundMsg:"Hledaný text nebyl nalezen.",replace:"Nahradit",replaceAll:"Nahradit vše",replaceSuccessMsg:"%1 nahrazení.",replaceWith:"Čím nahradit:",title:"Najít a nahradit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/cy.js b/www/lib/ckeditor/plugins/find/lang/cy.js new file mode 100644 index 00000000..3e87336f --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","cy",{find:"Chwilio",findOptions:"Opsiynau Chwilio",findWhat:"Chwilio'r term:",matchCase:"Cydweddu'r cas",matchCyclic:"Cydweddu'n gylchol",matchWord:"Cydweddu gair cyfan",notFoundMsg:"Nid oedd y testun wedi'i ddarganfod.",replace:"Amnewid Un",replaceAll:"Amnewid Pob",replaceSuccessMsg:"Amnewidiwyd %1 achlysur.",replaceWith:"Amnewid gyda:",title:"Chwilio ac Amnewid"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/da.js b/www/lib/ckeditor/plugins/find/lang/da.js new file mode 100644 index 00000000..35693e27 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","da",{find:"Søg",findOptions:"Find muligheder",findWhat:"Søg efter:",matchCase:"Forskel på store og små bogstaver",matchCyclic:"Match cyklisk",matchWord:"Kun hele ord",notFoundMsg:"Søgeteksten blev ikke fundet",replace:"Erstat",replaceAll:"Erstat alle",replaceSuccessMsg:"%1 forekomst(er) erstattet.",replaceWith:"Erstat med:",title:"Søg og erstat"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/de.js b/www/lib/ckeditor/plugins/find/lang/de.js new file mode 100644 index 00000000..5295d06e --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","de",{find:"Suchen",findOptions:"Suchoptionen",findWhat:"Suche nach:",matchCase:"Groß-Kleinschreibung beachten",matchCyclic:"Zyklische Suche",matchWord:"Nur ganze Worte suchen",notFoundMsg:"Der gesuchte Text wurde nicht gefunden.",replace:"Ersetzen",replaceAll:"Alle ersetzen",replaceSuccessMsg:"%1 vorkommen ersetzt.",replaceWith:"Ersetze mit:",title:"Suchen und Ersetzen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/el.js b/www/lib/ckeditor/plugins/find/lang/el.js new file mode 100644 index 00000000..f559f2a0 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","el",{find:"Εύρεση",findOptions:"Επιλογές Εύρεσης",findWhat:"Εύρεση για:",matchCase:"Ταίριασμα πεζών/κεφαλαίων",matchCyclic:"Αναδρομική εύρεση",matchWord:"Εύρεση μόνο πλήρων λέξεων",notFoundMsg:"Το κείμενο δεν βρέθηκε.",replace:"Αντικατάσταση",replaceAll:"Αντικατάσταση Όλων",replaceSuccessMsg:"Ο(ι) όρος(-οι) αντικαταστήθηκε(-αν) %1 φορές.",replaceWith:"Αντικατάσταση με:",title:"Εύρεση και Αντικατάσταση"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/en-au.js b/www/lib/ckeditor/plugins/find/lang/en-au.js new file mode 100644 index 00000000..ad033791 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-au",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/en-ca.js b/www/lib/ckeditor/plugins/find/lang/en-ca.js new file mode 100644 index 00000000..d217f653 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-ca",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/en-gb.js b/www/lib/ckeditor/plugins/find/lang/en-gb.js new file mode 100644 index 00000000..dfbafb7e --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en-gb",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/en.js b/www/lib/ckeditor/plugins/find/lang/en.js new file mode 100644 index 00000000..6865f0b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","en",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/eo.js b/www/lib/ckeditor/plugins/find/lang/eo.js new file mode 100644 index 00000000..9fde69e3 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eo",{find:"Serĉi",findOptions:"Opcioj pri Serĉado",findWhat:"Serĉi:",matchCase:"Kongruigi Usklecon",matchCyclic:"Cikla Serĉado",matchWord:"Tuta Vorto",notFoundMsg:"La celteksto ne estas trovita.",replace:"Anstataŭigi",replaceAll:"Anstataŭigi Ĉion",replaceSuccessMsg:"%1 anstataŭigita(j) apero(j).",replaceWith:"Anstataŭigi per:",title:"Serĉi kaj Anstataŭigi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/es.js b/www/lib/ckeditor/plugins/find/lang/es.js new file mode 100644 index 00000000..2efd39ce --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","es",{find:"Buscar",findOptions:"Opciones de búsqueda",findWhat:"Texto a buscar:",matchCase:"Coincidir may/min",matchCyclic:"Buscar en todo el contenido",matchWord:"Coincidir toda la palabra",notFoundMsg:"El texto especificado no ha sido encontrado.",replace:"Reemplazar",replaceAll:"Reemplazar Todo",replaceSuccessMsg:"La expresión buscada ha sido reemplazada %1 veces.",replaceWith:"Reemplazar con:",title:"Buscar y Reemplazar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/et.js b/www/lib/ckeditor/plugins/find/lang/et.js new file mode 100644 index 00000000..bcc39210 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","et",{find:"Otsi",findOptions:"Otsingu valikud",findWhat:"Otsitav:",matchCase:"Suur- ja väiketähtede eristamine",matchCyclic:"Jätkatakse algusest",matchWord:"Ainult terved sõnad",notFoundMsg:"Otsitud teksti ei leitud.",replace:"Asenda",replaceAll:"Asenda kõik",replaceSuccessMsg:"%1 vastet asendati.",replaceWith:"Asendus:",title:"Otsimine ja asendamine"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/eu.js b/www/lib/ckeditor/plugins/find/lang/eu.js new file mode 100644 index 00000000..f082555f --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","eu",{find:"Bilatu",findOptions:"Find Options",findWhat:"Zer bilatu:",matchCase:"Maiuskula/minuskula",matchCyclic:"Bilaketa ziklikoa",matchWord:"Esaldi osoa bilatu",notFoundMsg:"Idatzitako testua ez da topatu.",replace:"Ordezkatu",replaceAll:"Ordeztu Guztiak",replaceSuccessMsg:"Zenbat aldiz ordeztua: %1",replaceWith:"Zerekin ordeztu:",title:"Bilatu eta Ordeztu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/fa.js b/www/lib/ckeditor/plugins/find/lang/fa.js new file mode 100644 index 00000000..2339c6dd --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fa",{find:"جستجو",findOptions:"گزینه​های جستجو",findWhat:"چه چیز را مییابید:",matchCase:"همسانی در بزرگی و کوچکی نویسه​ها",matchCyclic:"همسانی با چرخه",matchWord:"همسانی با واژهٴ کامل",notFoundMsg:"متن موردنظر یافت نشد.",replace:"جایگزینی",replaceAll:"جایگزینی همهٴ یافته​ها",replaceSuccessMsg:"%1 رخداد جایگزین شد.",replaceWith:"جایگزینی با:",title:"جستجو و جایگزینی"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/fi.js b/www/lib/ckeditor/plugins/find/lang/fi.js new file mode 100644 index 00000000..79daf814 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fi",{find:"Etsi",findOptions:"Hakuasetukset",findWhat:"Etsi mitä:",matchCase:"Sama kirjainkoko",matchCyclic:"Kierrä ympäri",matchWord:"Koko sana",notFoundMsg:"Etsittyä tekstiä ei löytynyt.",replace:"Korvaa",replaceAll:"Korvaa kaikki",replaceSuccessMsg:"%1 esiintymä(ä) korvattu.",replaceWith:"Korvaa tällä:",title:"Etsi ja korvaa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/fo.js b/www/lib/ckeditor/plugins/find/lang/fo.js new file mode 100644 index 00000000..1e3dc043 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fo",{find:"Leita",findOptions:"Finn møguleikar",findWhat:"Finn:",matchCase:"Munur á stórum og smáum bókstavum",matchCyclic:"Match cyclic",matchWord:"Bert heil orð",notFoundMsg:"Leititeksturin varð ikki funnin",replace:"Yvirskriva",replaceAll:"Yvirskriva alt",replaceSuccessMsg:"%1 úrslit broytt.",replaceWith:"Yvirskriva við:",title:"Finn og broyt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/fr-ca.js b/www/lib/ckeditor/plugins/find/lang/fr-ca.js new file mode 100644 index 00000000..59a8e22c --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr-ca",{find:"Rechercher",findOptions:"Options de recherche",findWhat:"Rechercher:",matchCase:"Respecter la casse",matchCyclic:"Recherche cyclique",matchWord:"Mot entier",notFoundMsg:"Le texte indiqué est introuvable.",replace:"Remplacer",replaceAll:"Tout remplacer",replaceSuccessMsg:"%1 remplacements.",replaceWith:"Remplacer par:",title:"Rechercher et remplacer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/fr.js b/www/lib/ckeditor/plugins/find/lang/fr.js new file mode 100644 index 00000000..a7b4218e --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","fr",{find:"Trouver",findOptions:"Options de recherche",findWhat:"Expression à trouver: ",matchCase:"Respecter la casse",matchCyclic:"Boucler",matchWord:"Mot entier uniquement",notFoundMsg:"Le texte spécifié ne peut être trouvé.",replace:"Remplacer",replaceAll:"Remplacer tout",replaceSuccessMsg:"%1 occurrence(s) replacée(s).",replaceWith:"Remplacer par: ",title:"Trouver et remplacer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/gl.js b/www/lib/ckeditor/plugins/find/lang/gl.js new file mode 100644 index 00000000..be892489 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gl",{find:"Buscar",findOptions:"Buscar opcións",findWhat:"Texto a buscar:",matchCase:"Coincidir Mai./min.",matchCyclic:"Coincidencia cíclica",matchWord:"Coincidencia coa palabra completa",notFoundMsg:"Non se atopou o texto indicado.",replace:"Substituir",replaceAll:"Substituír todo",replaceSuccessMsg:"%1 concorrencia(s) substituída(s).",replaceWith:"Substituír con:",title:"Buscar e substituír"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/gu.js b/www/lib/ckeditor/plugins/find/lang/gu.js new file mode 100644 index 00000000..572afcfd --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","gu",{find:"શોધવું",findOptions:"વીકલ્પ શોધો",findWhat:"આ શોધો",matchCase:"કેસ સરખા રાખો",matchCyclic:"સરખાવવા બધા",matchWord:"બઘા શબ્દ સરખા રાખો",notFoundMsg:"તમે શોધેલી ટેક્સ્ટ નથી મળી",replace:"રિપ્લેસ/બદલવું",replaceAll:"બઘા બદલી ",replaceSuccessMsg:"%1 ફેરફારો બાદલાયા છે.",replaceWith:"આનાથી બદલો",title:"શોધવું અને બદલવું"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/he.js b/www/lib/ckeditor/plugins/find/lang/he.js new file mode 100644 index 00000000..ea4e4224 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","he",{find:"חיפוש",findOptions:"אפשרויות חיפוש",findWhat:"חיפוש מחרוזת:",matchCase:"הבחנה בין אותיות רשיות לקטנות (Case)",matchCyclic:"התאמה מחזורית",matchWord:"התאמה למילה המלאה",notFoundMsg:"הטקסט המבוקש לא נמצא.",replace:"החלפה",replaceAll:"החלפה בכל העמוד",replaceSuccessMsg:"%1 טקסטים הוחלפו.",replaceWith:"החלפה במחרוזת:",title:"חיפוש והחלפה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/hi.js b/www/lib/ckeditor/plugins/find/lang/hi.js new file mode 100644 index 00000000..d67da0a3 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hi",{find:"खोजें",findOptions:"Find Options",findWhat:"यह खोजें:",matchCase:"केस मिलायें",matchCyclic:"Match cyclic",matchWord:"पूरा शब्द मिलायें",notFoundMsg:"आपके द्वारा दिया गया टेक्स्ट नहीं मिला",replace:"रीप्लेस",replaceAll:"सभी रिप्लेस करें",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"इससे रिप्लेस करें:",title:"खोजें और बदलें"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/hr.js b/www/lib/ckeditor/plugins/find/lang/hr.js new file mode 100644 index 00000000..bcca21eb --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hr",{find:"Pronađi",findOptions:"Opcije traženja",findWhat:"Pronađi:",matchCase:"Usporedi mala/velika slova",matchCyclic:"Usporedi kružno",matchWord:"Usporedi cijele riječi",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamijeni",replaceAll:"Zamijeni sve",replaceSuccessMsg:"Zamijenjeno %1 pojmova.",replaceWith:"Zamijeni s:",title:"Pronađi i zamijeni"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/hu.js b/www/lib/ckeditor/plugins/find/lang/hu.js new file mode 100644 index 00000000..6ca2b808 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","hu",{find:"Keresés",findOptions:"Find Options",findWhat:"Keresett szöveg:",matchCase:"kis- és nagybetű megkülönböztetése",matchCyclic:"Ciklikus keresés",matchWord:"csak ha ez a teljes szó",notFoundMsg:"A keresett szöveg nem található.",replace:"Csere",replaceAll:"Az összes cseréje",replaceSuccessMsg:"%1 egyezőség cserélve.",replaceWith:"Csere erre:",title:"Keresés és csere"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/id.js b/www/lib/ckeditor/plugins/find/lang/id.js new file mode 100644 index 00000000..4257045a --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","id",{find:"Temukan",findOptions:"Opsi menemukan",findWhat:"Temukan apa:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Ganti",replaceAll:"Ganti Semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Ganti dengan:",title:"Temukan dan Ganti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/is.js b/www/lib/ckeditor/plugins/find/lang/is.js new file mode 100644 index 00000000..d69cba6b --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","is",{find:"Leita",findOptions:"Find Options",findWhat:"Leita að:",matchCase:"Gera greinarmun á¡ há¡- og lágstöfum",matchCyclic:"Match cyclic",matchWord:"Aðeins heil orð",notFoundMsg:"Leitartexti fannst ekki!",replace:"Skipta út",replaceAll:"Skipta út allsstaðar",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Skipta út fyrir:",title:"Finna og skipta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/it.js b/www/lib/ckeditor/plugins/find/lang/it.js new file mode 100644 index 00000000..2aed2adc --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","it",{find:"Trova",findOptions:"Opzioni di ricerca",findWhat:"Trova:",matchCase:"Maiuscole/minuscole",matchCyclic:"Ricerca ciclica",matchWord:"Solo parole intere",notFoundMsg:"L'elemento cercato non è stato trovato.",replace:"Sostituisci",replaceAll:"Sostituisci tutto",replaceSuccessMsg:"%1 occorrenza(e) sostituite.",replaceWith:"Sostituisci con:",title:"Cerca e Sostituisci"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ja.js b/www/lib/ckeditor/plugins/find/lang/ja.js new file mode 100644 index 00000000..f2043d1f --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ja",{find:"検索",findOptions:"検索オプション",findWhat:"検索する文字列:",matchCase:"大文字と小文字を区別する",matchCyclic:"末尾に逹したら先頭に戻る",matchWord:"単語単位で探す",notFoundMsg:"指定された文字列は見つかりませんでした。",replace:"置換",replaceAll:"すべて置換",replaceSuccessMsg:"%1 個置換しました。",replaceWith:"置換後の文字列:",title:"検索と置換"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ka.js b/www/lib/ckeditor/plugins/find/lang/ka.js new file mode 100644 index 00000000..d5d8dda9 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ka",{find:"ძებნა",findOptions:"Find Options",findWhat:"საძიებელი ტექსტი:",matchCase:"დიდი და პატარა ასოების დამთხვევა",matchCyclic:"დოკუმენტის ბოლოში გასვლის მერე თავიდან დაწყება",matchWord:"მთელი სიტყვის დამთხვევა",notFoundMsg:"მითითებული ტექსტი არ მოიძებნა.",replace:"შეცვლა",replaceAll:"ყველას შეცვლა",replaceSuccessMsg:"%1 მოძებნილი შეიცვალა.",replaceWith:"შეცვლის ტექსტი:",title:"ძებნა და შეცვლა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/km.js b/www/lib/ckeditor/plugins/find/lang/km.js new file mode 100644 index 00000000..3815f2ca --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","km",{find:"ស្វែងរក",findOptions:"ជម្រើស​ស្វែង​រក",findWhat:"ស្វែងរកអ្វី:",matchCase:"ករណី​ដំណូច",matchCyclic:"ត្រូវ​នឹង cyclic",matchWord:"ដូច​នឹង​ពាក្យ​ទាំង​មូល",notFoundMsg:"រក​មិន​ឃើញ​ពាក្យ​ដែល​បាន​បញ្ជាក់។",replace:"ជំនួស",replaceAll:"ជំនួសទាំងអស់",replaceSuccessMsg:"ការ​ជំនួស​ចំនួន %1 បាន​កើត​ឡើង។",replaceWith:"ជំនួសជាមួយ:",title:"រក​និង​ជំនួស"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ko.js b/www/lib/ckeditor/plugins/find/lang/ko.js new file mode 100644 index 00000000..e17dce40 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ko",{find:"찾기",findOptions:"Find Options",findWhat:"찾을 문자열:",matchCase:"대소문자 구분",matchCyclic:"Match cyclic",matchWord:"온전한 단어",notFoundMsg:"문자열을 찾을 수 없습니다.",replace:"바꾸기",replaceAll:"모두 바꾸기",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"바꿀 문자열:",title:"찾기 & 바꾸기"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ku.js b/www/lib/ckeditor/plugins/find/lang/ku.js new file mode 100644 index 00000000..54cc3c93 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ku",{find:"گەڕان",findOptions:"هەڵبژاردەکانی گەڕان",findWhat:"گەڕان بەدووای:",matchCase:"جیاکردنەوه لەنێوان پیتی گەورەو بچووك",matchCyclic:"گەڕان لەهەموو پەڕەکه",matchWord:"تەنەا هەموو وشەکه",notFoundMsg:"هیچ دەقه گەڕانێك نەدۆزراوه.",replace:"لەبریدانان",replaceAll:"لەبریدانانی هەمووی",replaceSuccessMsg:" پێشهاتە(ی) لەبری دانرا. %1",replaceWith:"لەبریدانان به:",title:"گەڕان و لەبریدانان"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/lt.js b/www/lib/ckeditor/plugins/find/lang/lt.js new file mode 100644 index 00000000..2c55039e --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lt",{find:"Rasti",findOptions:"Paieškos nustatymai",findWhat:"Surasti tekstą:",matchCase:"Skirti didžiąsias ir mažąsias raides",matchCyclic:"Sutampantis cikliškumas",matchWord:"Atitikti pilną žodį",notFoundMsg:"Nurodytas tekstas nerastas.",replace:"Pakeisti",replaceAll:"Pakeisti viską",replaceSuccessMsg:"%1 sutapimas(ų) buvo pakeisti.",replaceWith:"Pakeisti tekstu:",title:"Surasti ir pakeisti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/lv.js b/www/lib/ckeditor/plugins/find/lang/lv.js new file mode 100644 index 00000000..12a554cc --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","lv",{find:"Meklēt",findOptions:"Meklēt uzstādījumi",findWhat:"Meklēt:",matchCase:"Reģistrjūtīgs",matchCyclic:"Sakrist cikliski",matchWord:"Jāsakrīt pilnībā",notFoundMsg:"Norādītā frāze netika atrasta.",replace:"Nomainīt",replaceAll:"Aizvietot visu",replaceSuccessMsg:"%1 gadījums(i) aizvietoti",replaceWith:"Nomainīt uz:",title:"Meklēt un aizvietot"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/mk.js b/www/lib/ckeditor/plugins/find/lang/mk.js new file mode 100644 index 00000000..8c41cfc1 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mk",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"Replace",replaceAll:"Replace All",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/mn.js b/www/lib/ckeditor/plugins/find/lang/mn.js new file mode 100644 index 00000000..28498167 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","mn",{find:"Хайх",findOptions:"Хайх сонголтууд",findWhat:"Хайх үг/үсэг:",matchCase:"Тэнцэх төлөв",matchCyclic:"Match cyclic",matchWord:"Тэнцэх бүтэн үг",notFoundMsg:"Хайсан бичвэрийг олсонгүй.",replace:"Орлуулах",replaceAll:"Бүгдийг нь солих",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Солих үг:",title:"Хайж орлуулах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ms.js b/www/lib/ckeditor/plugins/find/lang/ms.js new file mode 100644 index 00000000..75f96037 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ms",{find:"Cari",findOptions:"Find Options",findWhat:"Perkataan yang dicari:",matchCase:"Padanan case huruf",matchCyclic:"Match cyclic",matchWord:"Padana Keseluruhan perkataan",notFoundMsg:"Text yang dicari tidak dijumpai.",replace:"Ganti",replaceAll:"Ganti semua",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Diganti dengan:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/nb.js b/www/lib/ckeditor/plugins/find/lang/nb.js new file mode 100644 index 00000000..6779f499 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nb",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/nl.js b/www/lib/ckeditor/plugins/find/lang/nl.js new file mode 100644 index 00000000..156a9da5 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","nl",{find:"Zoeken",findOptions:"Zoekopties",findWhat:"Zoeken naar:",matchCase:"Hoofdlettergevoelig",matchCyclic:"Doorlopend zoeken",matchWord:"Hele woord moet voorkomen",notFoundMsg:"De opgegeven tekst is niet gevonden.",replace:"Vervangen",replaceAll:"Alles vervangen",replaceSuccessMsg:"%1 resultaten vervangen.",replaceWith:"Vervangen met:",title:"Zoeken en vervangen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/no.js b/www/lib/ckeditor/plugins/find/lang/no.js new file mode 100644 index 00000000..e098a7c5 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","no",{find:"Søk",findOptions:"Søkealternativer",findWhat:"Søk etter:",matchCase:"Skill mellom store og små bokstaver",matchCyclic:"Søk i hele dokumentet",matchWord:"Bare hele ord",notFoundMsg:"Fant ikke søketeksten.",replace:"Erstatt",replaceAll:"Erstatt alle",replaceSuccessMsg:"%1 tilfelle(r) erstattet.",replaceWith:"Erstatt med:",title:"Søk og erstatt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/pl.js b/www/lib/ckeditor/plugins/find/lang/pl.js new file mode 100644 index 00000000..1144fd8b --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pl",{find:"Znajdź",findOptions:"Opcje wyszukiwania",findWhat:"Znajdź:",matchCase:"Uwzględnij wielkość liter",matchCyclic:"Cykliczne dopasowanie",matchWord:"Całe słowa",notFoundMsg:"Nie znaleziono szukanego hasła.",replace:"Zamień",replaceAll:"Zamień wszystko",replaceSuccessMsg:"%1 wystąpień zastąpionych.",replaceWith:"Zastąp przez:",title:"Znajdź i zamień"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/pt-br.js b/www/lib/ckeditor/plugins/find/lang/pt-br.js new file mode 100644 index 00000000..b9e438c8 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt-br",{find:"Localizar",findOptions:"Opções",findWhat:"Procurar por:",matchCase:"Coincidir Maiúsculas/Minúsculas",matchCyclic:"Coincidir cíclico",matchWord:"Coincidir a palavra inteira",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 ocorrência(s) substituída(s).",replaceWith:"Substituir por:",title:"Localizar e Substituir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/pt.js b/www/lib/ckeditor/plugins/find/lang/pt.js new file mode 100644 index 00000000..bb8c1a6a --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","pt",{find:"Procurar",findOptions:"Find Options",findWhat:"Texto a Procurar:",matchCase:"Maiúsculas/Minúsculas",matchCyclic:"Match cyclic",matchWord:"Coincidir com toda a palavra",notFoundMsg:"O texto especificado não foi encontrado.",replace:"Substituir",replaceAll:"Substituir Tudo",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Substituir por:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ro.js b/www/lib/ckeditor/plugins/find/lang/ro.js new file mode 100644 index 00000000..7ec8b9d6 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ro",{find:"Găseşte",findOptions:"Find Options",findWhat:"Găseşte:",matchCase:"Deosebeşte majuscule de minuscule (Match case)",matchCyclic:"Potrivește ciclic",matchWord:"Doar cuvintele întregi",notFoundMsg:"Textul specificat nu a fost găsit.",replace:"Înlocuieşte",replaceAll:"Înlocuieşte tot",replaceSuccessMsg:"%1 căutări înlocuite.",replaceWith:"Înlocuieşte cu:",title:"Găseşte şi înlocuieşte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ru.js b/www/lib/ckeditor/plugins/find/lang/ru.js new file mode 100644 index 00000000..b611c271 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ru",{find:"Найти",findOptions:"Опции поиска",findWhat:"Найти:",matchCase:"Учитывать регистр",matchCyclic:"По всему тексту",matchWord:"Только слово целиком",notFoundMsg:"Искомый текст не найден.",replace:"Заменить",replaceAll:"Заменить всё",replaceSuccessMsg:"Успешно заменено %1 раз(а).",replaceWith:"Заменить на:",title:"Поиск и замена"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/si.js b/www/lib/ckeditor/plugins/find/lang/si.js new file mode 100644 index 00000000..1e1d1457 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","si",{find:"Find",findOptions:"Find Options",findWhat:"Find what:",matchCase:"Match case",matchCyclic:"Match cyclic",matchWord:"Match whole word",notFoundMsg:"The specified text was not found.",replace:"හිලව් කිරීම",replaceAll:"සියල්ලම හිලව් කරන්න",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Replace with:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/sk.js b/www/lib/ckeditor/plugins/find/lang/sk.js new file mode 100644 index 00000000..11821e7a --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sk",{find:"Hľadať",findOptions:"Nájsť možnosti",findWhat:"Čo hľadať:",matchCase:"Rozlišovať malé a veľké písmená",matchCyclic:"Cykliť zhodu",matchWord:"Len celé slová",notFoundMsg:"Hľadaný text nebol nájdený.",replace:"Nahradiť",replaceAll:"Nahradiť všetko",replaceSuccessMsg:"%1 výskyt(ov) nahradených.",replaceWith:"Čím nahradiť:",title:"Nájsť a nahradiť"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/sl.js b/www/lib/ckeditor/plugins/find/lang/sl.js new file mode 100644 index 00000000..32dea7e3 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sl",{find:"Najdi",findOptions:"Find Options",findWhat:"Najdi:",matchCase:"Razlikuj velike in male črke",matchCyclic:"Primerjaj znake v cirilici",matchWord:"Samo cele besede",notFoundMsg:"Navedeno besedilo ni bilo najdeno.",replace:"Zamenjaj",replaceAll:"Zamenjaj vse",replaceSuccessMsg:"%1 pojavitev je bilo zamenjano.",replaceWith:"Zamenjaj z:",title:"Najdi in zamenjaj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/sq.js b/www/lib/ckeditor/plugins/find/lang/sq.js new file mode 100644 index 00000000..ae034f6d --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sq",{find:"Gjej",findOptions:"Gjejë Alternativat",findWhat:"Gjej çka:",matchCase:"Rasti i përputhjes",matchCyclic:"Përputh ciklikun",matchWord:"Përputh fjalën e tërë",notFoundMsg:"Teksti i caktuar nuk mundej të gjendet.",replace:"Zëvendëso",replaceAll:"Zëvendëso të gjitha",replaceSuccessMsg:"%1 rast(e) u zëvendësua(n).",replaceWith:"Zëvendëso me:",title:"Gjej dhe Zëvendëso"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/sr-latn.js b/www/lib/ckeditor/plugins/find/lang/sr-latn.js new file mode 100644 index 00000000..40a40064 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr-latn",{find:"Pretraga",findOptions:"Find Options",findWhat:"Pronadi:",matchCase:"Razlikuj mala i velika slova",matchCyclic:"Match cyclic",matchWord:"Uporedi cele reci",notFoundMsg:"Traženi tekst nije pronađen.",replace:"Zamena",replaceAll:"Zameni sve",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Zameni sa:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/sr.js b/www/lib/ckeditor/plugins/find/lang/sr.js new file mode 100644 index 00000000..57ca6296 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sr",{find:"Претрага",findOptions:"Find Options",findWhat:"Пронађи:",matchCase:"Разликуј велика и мала слова",matchCyclic:"Match cyclic",matchWord:"Упореди целе речи",notFoundMsg:"Тражени текст није пронађен.",replace:"Замена",replaceAll:"Замени све",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"Замени са:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/sv.js b/www/lib/ckeditor/plugins/find/lang/sv.js new file mode 100644 index 00000000..f86c7d28 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","sv",{find:"Sök",findOptions:"Sökalternativ",findWhat:"Sök efter:",matchCase:"Skiftläge",matchCyclic:"Matcha cykliska",matchWord:"Inkludera hela ord",notFoundMsg:"Angiven text kunde ej hittas.",replace:"Ersätt",replaceAll:"Ersätt alla",replaceSuccessMsg:"%1 förekomst(er) ersatta.",replaceWith:"Ersätt med:",title:"Sök och ersätt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/th.js b/www/lib/ckeditor/plugins/find/lang/th.js new file mode 100644 index 00000000..877ab909 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","th",{find:"ค้นหา",findOptions:"Find Options",findWhat:"ค้นหาคำว่า:",matchCase:"ตัวโหญ่-เล็ก ต้องตรงกัน",matchCyclic:"Match cyclic",matchWord:"ต้องตรงกันทุกคำ",notFoundMsg:"ไม่พบคำที่ค้นหา.",replace:"ค้นหาและแทนที่",replaceAll:"แทนที่ทั้งหมดที่พบ",replaceSuccessMsg:"%1 occurrence(s) replaced.",replaceWith:"แทนที่ด้วย:",title:"Find and Replace"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/tr.js b/www/lib/ckeditor/plugins/find/lang/tr.js new file mode 100644 index 00000000..a0fc4f0a --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tr",{find:"Bul",findOptions:"Seçenekleri Bul",findWhat:"Aranan:",matchCase:"Büyük/küçük harf duyarlı",matchCyclic:"Eşleşen döngü",matchWord:"Kelimenin tamamı uysun",notFoundMsg:"Belirtilen yazı bulunamadı.",replace:"Değiştir",replaceAll:"Tümünü Değiştir",replaceSuccessMsg:"%1 bulunanlardan değiştirildi.",replaceWith:"Bununla değiştir:",title:"Bul ve Değiştir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/tt.js b/www/lib/ckeditor/plugins/find/lang/tt.js new file mode 100644 index 00000000..90a66914 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","tt",{find:"Эзләү",findOptions:"Эзләү көйләүләре",findWhat:"Нәрсә эзләргә:",matchCase:"Баш һәм юл хәрефләрен исәпкә алу",matchCyclic:"Кабатлап эзләргә",matchWord:"Сүзләрне тулысынча гына эзләү",notFoundMsg:"Эзләнгән текст табылмады.",replace:"Алмаштыру",replaceAll:"Барысын да алмаштыру",replaceSuccessMsg:"%1 урында(ларда) алмаштырылган.",replaceWith:"Нәрсәгә алмаштыру:",title:"Эзләп табу һәм алмаштыру"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/ug.js b/www/lib/ckeditor/plugins/find/lang/ug.js new file mode 100644 index 00000000..9a3e7542 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","ug",{find:"ئىزدە",findOptions:"ئىزدەش تاللانمىسى",findWhat:"ئىزدە:",matchCase:"چوڭ كىچىك ھەرپنى پەرقلەندۈر",matchCyclic:"ئايلانما ماسلىشىش",matchWord:"پۈتۈن سۆز ماسلىشىش",notFoundMsg:"بەلگىلەنگەن تېكىستنى تاپالمىدى",replace:"ئالماشتۇر",replaceAll:"ھەممىنى ئالماشتۇر",replaceSuccessMsg:"جەمئى %1 جايدىكى ئالماشتۇرۇش تاماملاندى",replaceWith:"ئالماشتۇر:",title:"ئىزدەپ ئالماشتۇر"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/uk.js b/www/lib/ckeditor/plugins/find/lang/uk.js new file mode 100644 index 00000000..12bf2eb6 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","uk",{find:"Пошук",findOptions:"Параметри Пошуку",findWhat:"Шукати:",matchCase:"Враховувати регістр",matchCyclic:"Циклічна заміна",matchWord:"Збіг цілих слів",notFoundMsg:"Вказаний текст не знайдено.",replace:"Заміна",replaceAll:"Замінити все",replaceSuccessMsg:"%1 співпадінь(ня) замінено.",replaceWith:"Замінити на:",title:"Знайти і замінити"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/vi.js b/www/lib/ckeditor/plugins/find/lang/vi.js new file mode 100644 index 00000000..07936d94 --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","vi",{find:"Tìm kiếm",findOptions:"Tìm tùy chọn",findWhat:"Tìm chuỗi:",matchCase:"Phân biệt chữ hoa/thường",matchCyclic:"Giống một phần",matchWord:"Giống toàn bộ từ",notFoundMsg:"Không tìm thấy chuỗi cần tìm.",replace:"Thay thế",replaceAll:"Thay thế tất cả",replaceSuccessMsg:"%1 vị trí đã được thay thế.",replaceWith:"Thay bằng:",title:"Tìm kiếm và thay thế"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/zh-cn.js b/www/lib/ckeditor/plugins/find/lang/zh-cn.js new file mode 100644 index 00000000..746626af --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh-cn",{find:"查找",findOptions:"查找选项",findWhat:"查找:",matchCase:"区分大小写",matchCyclic:"循环匹配",matchWord:"全字匹配",notFoundMsg:"指定的文本没有找到。",replace:"替换",replaceAll:"全部替换",replaceSuccessMsg:"共完成 %1 处替换。",replaceWith:"替换:",title:"查找和替换"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/lang/zh.js b/www/lib/ckeditor/plugins/find/lang/zh.js new file mode 100644 index 00000000..4d6656ae --- /dev/null +++ b/www/lib/ckeditor/plugins/find/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("find","zh",{find:"尋找",findOptions:"尋找選項",findWhat:"尋找目標:",matchCase:"大小寫須相符",matchCyclic:"循環搜尋",matchWord:"全字拼寫須相符",notFoundMsg:"找不到指定的文字。",replace:"取代",replaceAll:"全部取代",replaceSuccessMsg:"已取代 %1 個指定項目。",replaceWith:"取代成:",title:"尋找及取代"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/find/plugin.js b/www/lib/ckeditor/plugins/find/plugin.js new file mode 100644 index 00000000..103b530d --- /dev/null +++ b/www/lib/ckeditor/plugins/find/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("find",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"find,find-rtl,replace",hidpi:!0,init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&& +(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("replace",this.path+"dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}}; \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/dialogs/flash.js b/www/lib/ckeditor/plugins/flash/dialogs/flash.js new file mode 100644 index 00000000..6592f8e4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/dialogs/flash.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function b(a,b,c){var k=n[this.id];if(k)for(var f=this instanceof CKEDITOR.ui.dialog.checkbox,e=0;e<k.length;e++){var d=k[e];switch(d.type){case g:if(!a)continue;if(null!==a.getAttribute(d.name)){a=a.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case o:if(!a)continue;if(d.name in c){a=c[d.name];f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case i:if(!b)continue; +if(b.getAttribute(d.name)){a=b.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"])}}}function c(a,b,c){var k=n[this.id];if(k)for(var f=""===this.getValue(),e=this instanceof CKEDITOR.ui.dialog.checkbox,d=0;d<k.length;d++){var h=k[d];switch(h.type){case g:if(!a||"data"==h.name&&b&&!a.hasAttribute("data"))continue;var l=this.getValue();f||e&&l===h["default"]?a.removeAttribute(h.name):a.setAttribute(h.name,l);break;case o:if(!a)continue; +l=this.getValue();if(f||e&&l===h["default"])h.name in c&&c[h.name].remove();else if(h.name in c)c[h.name].setAttribute("value",l);else{var p=CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>",a.getDocument());p.setAttributes({name:h.name,value:l});1>a.getChildCount()?p.appendTo(a):p.insertBefore(a.getFirst())}break;case i:if(!b)continue;l=this.getValue();f||e&&l===h["default"]?b.removeAttribute(h.name):b.setAttribute(h.name,l)}}}for(var g=1,o=2,i=4,n={id:[{type:g,name:"id"}],classid:[{type:g, +name:"classid"}],codebase:[{type:g,name:"codebase"}],pluginspage:[{type:i,name:"pluginspage"}],src:[{type:o,name:"movie"},{type:i,name:"src"},{type:g,name:"data"}],name:[{type:i,name:"name"}],align:[{type:g,name:"align"}],"class":[{type:g,name:"class"},{type:i,name:"class"}],width:[{type:g,name:"width"},{type:i,name:"width"}],height:[{type:g,name:"height"},{type:i,name:"height"}],hSpace:[{type:g,name:"hSpace"},{type:i,name:"hSpace"}],vSpace:[{type:g,name:"vSpace"},{type:i,name:"vSpace"}],style:[{type:g, +name:"style"},{type:i,name:"style"}],type:[{type:i,name:"type"}]},m="play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "),j=0;j<m.length;j++)n[m[j]]=[{type:i,name:m[j]},{type:o,name:m[j]}];m=["play","loop","menu"];for(j=0;j<m.length;j++)n[m[j]][0]["default"]=n[m[j]][1]["default"]=!0;CKEDITOR.dialog.add("flash",function(a){var g=!a.config.flashEmbedTagOnly,i=a.config.flashAddEmbedTag||a.config.flashEmbedTagOnly,k,f="<div>"+CKEDITOR.tools.htmlEncode(a.lang.common.preview)+ +'<br><div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div><div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';return{title:a.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){this.fakeImage=this.objectNode=this.embedNode=null;k=new CKEDITOR.dom.element("embed",a.document);var e=this.getSelectedElement();if(e&&e.data("cke-real-element-type")&&"flash"==e.data("cke-real-element-type")){this.fakeImage= +e;var d=a.restoreRealElement(e),h=null,b=null,c={};if("cke:object"==d.getName()){h=d;d=h.getElementsByTag("embed","cke");0<d.count()&&(b=d.getItem(0));for(var d=h.getElementsByTag("param","cke"),g=0,i=d.count();g<i;g++){var f=d.getItem(g),j=f.getAttribute("name"),f=f.getAttribute("value");c[j]=f}}else"cke:embed"==d.getName()&&(b=d);this.objectNode=h;this.embedNode=b;this.setupContent(h,b,c,e)}},onOk:function(){var e=null,d=null,b=null;if(this.fakeImage)e=this.objectNode,d=this.embedNode;else if(g&& +(e=CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>",a.document),e.setAttributes({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"})),i)d=CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>",a.document),d.setAttributes({type:"application/x-shockwave-flash",pluginspage:"http://www.macromedia.com/go/getflashplayer"}),e&&d.appendTo(e);if(e)for(var b={},c=e.getElementsByTag("param", +"cke"),f=0,j=c.count();f<j;f++)b[c.getItem(f).getAttribute("name")]=c.getItem(f);c={};f={};this.commitContent(e,d,b,c,f);e=a.createFakeElement(e||d,"cke_flash","flash",!0);e.setAttributes(f);e.setStyles(c);this.fakeImage?(e.replace(this.fakeImage),a.getSelection().selectElement(e)):a.insertElement(e)},onHide:function(){this.preview&&this.preview.setHtml("")},contents:[{id:"info",label:a.lang.common.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"], +align:"right",children:[{id:"src",type:"text",label:a.lang.common.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc),setup:b,commit:c,onLoad:function(){var a=this.getDialog(),b=function(b){k.setAttribute("src",b);a.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(k.getAttribute("src"))+'" type="application/x-shockwave-flash"></embed>')};a.preview=a.getContentElement("info","preview").getElement().getChild(3);this.on("change",function(a){a.data&& +a.data.value&&b(a.data.value)});this.getInputElement().on("change",function(){b(this.getValue())},this)}},{type:"button",id:"browse",filebrowser:"info:src",hidden:!0,style:"display:inline-block;margin-top:14px;",label:a.lang.common.browseServer}]}]},{type:"hbox",widths:["25%","25%","25%","25%","25%"],children:[{type:"text",id:"width",requiredContent:"embed[width]",style:"width:95px",label:a.lang.common.width,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1", +a.lang.common.width)),setup:b,commit:c},{type:"text",id:"height",requiredContent:"embed[height]",style:"width:95px",label:a.lang.common.height,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",a.lang.common.height)),setup:b,commit:c},{type:"text",id:"hSpace",requiredContent:"embed[hspace]",style:"width:95px",label:a.lang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace),setup:b,commit:c},{type:"text",id:"vSpace",requiredContent:"embed[vspace]", +style:"width:95px",label:a.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace),setup:b,commit:c}]},{type:"vbox",children:[{type:"html",id:"preview",style:"width:95%;",html:f}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:a.lang.common.upload,elements:[{type:"file",id:"upload",label:a.lang.common.upload,size:38},{type:"fileButton",id:"uploadButton",label:a.lang.common.uploadSubmit,filebrowser:"info:src","for":["Upload","upload"]}]},{id:"properties", +label:a.lang.flash.propertiesTab,elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"scale",type:"select",requiredContent:"embed[scale]",label:a.lang.flash.scale,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.scaleAll,"showall"],[a.lang.flash.scaleNoBorder,"noborder"],[a.lang.flash.scaleFit,"exactfit"]],setup:b,commit:c},{id:"allowScriptAccess",type:"select",requiredContent:"embed[allowscriptaccess]",label:a.lang.flash.access,"default":"",style:"width : 100%;", +items:[[a.lang.common.notSet,""],[a.lang.flash.accessAlways,"always"],[a.lang.flash.accessSameDomain,"samedomain"],[a.lang.flash.accessNever,"never"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"wmode",type:"select",requiredContent:"embed[wmode]",label:a.lang.flash.windowMode,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.windowModeWindow,"window"],[a.lang.flash.windowModeOpaque,"opaque"],[a.lang.flash.windowModeTransparent,"transparent"]], +setup:b,commit:c},{id:"quality",type:"select",requiredContent:"embed[quality]",label:a.lang.flash.quality,"default":"high",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.qualityBest,"best"],[a.lang.flash.qualityHigh,"high"],[a.lang.flash.qualityAutoHigh,"autohigh"],[a.lang.flash.qualityMedium,"medium"],[a.lang.flash.qualityAutoLow,"autolow"],[a.lang.flash.qualityLow,"low"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"align",type:"select",requiredContent:"object[align]", +label:a.lang.common.align,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.flash.alignAbsBottom,"absBottom"],[a.lang.flash.alignAbsMiddle,"absMiddle"],[a.lang.flash.alignBaseline,"baseline"],[a.lang.common.alignBottom,"bottom"],[a.lang.common.alignMiddle,"middle"],[a.lang.common.alignRight,"right"],[a.lang.flash.alignTextTop,"textTop"],[a.lang.common.alignTop,"top"]],setup:b,commit:function(a,b,f,g,i){var j=this.getValue();c.apply(this,arguments); +j&&(i.align=j)}},{type:"html",html:"<div></div>"}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"menu",label:a.lang.flash.chkMenu,"default":!0,setup:b,commit:c},{type:"checkbox",id:"play",label:a.lang.flash.chkPlay,"default":!0,setup:b,commit:c},{type:"checkbox",id:"loop",label:a.lang.flash.chkLoop,"default":!0,setup:b,commit:c},{type:"checkbox",id:"allowFullScreen",label:a.lang.flash.chkFull,"default":!0, +setup:b,commit:c}]}]}]},{id:"advanced",label:a.lang.common.advancedTab,elements:[{type:"hbox",children:[{type:"text",id:"id",requiredContent:"object[id]",label:a.lang.common.id,setup:b,commit:c}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",id:"bgcolor",requiredContent:"embed[bgcolor]",label:a.lang.flash.bgcolor,setup:b,commit:c},{type:"text",id:"class",requiredContent:"embed(cke-xyz)",label:a.lang.common.cssClass,setup:b,commit:c}]},{type:"text",id:"style",requiredContent:"embed{cke-xyz}", +validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),label:a.lang.common.cssStyle,setup:b,commit:c}]}]}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/icons/flash.png b/www/lib/ckeditor/plugins/flash/icons/flash.png new file mode 100644 index 00000000..df7b1c60 Binary files /dev/null and b/www/lib/ckeditor/plugins/flash/icons/flash.png differ diff --git a/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png b/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png new file mode 100644 index 00000000..7ad0e388 Binary files /dev/null and b/www/lib/ckeditor/plugins/flash/icons/hidpi/flash.png differ diff --git a/www/lib/ckeditor/plugins/flash/images/placeholder.png b/www/lib/ckeditor/plugins/flash/images/placeholder.png new file mode 100644 index 00000000..0bc6caa7 Binary files /dev/null and b/www/lib/ckeditor/plugins/flash/images/placeholder.png differ diff --git a/www/lib/ckeditor/plugins/flash/lang/af.js b/www/lib/ckeditor/plugins/flash/lang/af.js new file mode 100644 index 00000000..9ee64f1f --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","af",{access:"Skrip toegang",accessAlways:"Altyd",accessNever:"Nooit",accessSameDomain:"Selfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-middel",alignBaseline:"Basislyn",alignTextTop:"Teks bo",bgcolor:"Agtergrondkleur",chkFull:"Laat volledige skerm toe",chkLoop:"Herhaal",chkMenu:"Flash spyskaart aan",chkPlay:"Speel outomaties",flashvars:"Veranderlikes vir Flash",hSpace:"HSpasie",properties:"Flash eienskappe",propertiesTab:"Eienskappe",quality:"Kwaliteit", +qualityAutoHigh:"Outomaties hoog",qualityAutoLow:"Outomaties laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Skaal",scaleAll:"Wys alles",scaleFit:"Presiese pas",scaleNoBorder:"Geen rand",title:"Flash eienskappe",vSpace:"VSpasie",validateHSpace:"HSpasie moet 'n heelgetal wees.",validateSrc:"Voeg die URL in",validateVSpace:"VSpasie moet 'n heelgetal wees.",windowMode:"Venster modus",windowModeOpaque:"Ondeursigtig",windowModeTransparent:"Deursigtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ar.js b/www/lib/ckeditor/plugins/flash/lang/ar.js new file mode 100644 index 00000000..5b89e5b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ar",{access:"دخول النص البرمجي",accessAlways:"دائماً",accessNever:"مطلقاً",accessSameDomain:"نفس النطاق",alignAbsBottom:"أسفل النص",alignAbsMiddle:"وسط السطر",alignBaseline:"على السطر",alignTextTop:"أعلى النص",bgcolor:"لون الخلفية",chkFull:"ملء الشاشة",chkLoop:"تكرار",chkMenu:"تمكين قائمة فيلم الفلاش",chkPlay:"تشغيل تلقائي",flashvars:"متغيرات الفلاش",hSpace:"تباعد أفقي",properties:"خصائص الفلاش",propertiesTab:"الخصائص",quality:"جودة",qualityAutoHigh:"عالية تلقائياً", +qualityAutoLow:"منخفضة تلقائياً",qualityBest:"أفضل",qualityHigh:"عالية",qualityLow:"منخفضة",qualityMedium:"متوسطة",scale:"الحجم",scaleAll:"إظهار الكل",scaleFit:"ضبط تام",scaleNoBorder:"بلا حدود",title:"خصائص فيلم الفلاش",vSpace:"تباعد عمودي",validateHSpace:"HSpace يجب أن يكون عدداً.",validateSrc:"فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",validateVSpace:"VSpace يجب أن يكون عدداً.",windowMode:"وضع النافذة",windowModeOpaque:"غير شفاف",windowModeTransparent:"شفاف",windowModeWindow:"نافذة"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/bg.js b/www/lib/ckeditor/plugins/flash/lang/bg.js new file mode 100644 index 00000000..a60e86c5 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","bg",{access:"Достъп до скрипт",accessAlways:"Винаги",accessNever:"Никога",accessSameDomain:"Същият домейн",alignAbsBottom:"Най-долу",alignAbsMiddle:"Точно по средата",alignBaseline:"Базова линия",alignTextTop:"Върху текста",bgcolor:"Цвят на фона",chkFull:"Включи на цял екран",chkLoop:"Цикъл",chkMenu:"Разрешено Flash меню",chkPlay:"Авто. пускане",flashvars:"Променливи за Флаш",hSpace:"Хоризонтален отстъп",properties:"Настройки за флаш",propertiesTab:"Настройки",quality:"Качество", +qualityAutoHigh:"Авто. високо",qualityAutoLow:"Авто. ниско",qualityBest:"Отлично",qualityHigh:"Високо",qualityLow:"Ниско",qualityMedium:"Средно",scale:"Оразмеряване",scaleAll:"Показва всичко",scaleFit:"Според мястото",scaleNoBorder:"Без рамка",title:"Настройки за флаш",vSpace:"Вертикален отстъп",validateHSpace:"HSpace трябва да е число.",validateSrc:"Уеб адреса не трябва да е празен.",validateVSpace:"VSpace трябва да е число.",windowMode:"Режим на прозореца",windowModeOpaque:"Плътност",windowModeTransparent:"Прозрачност", +windowModeWindow:"Прозорец"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/bn.js b/www/lib/ckeditor/plugins/flash/lang/bn.js new file mode 100644 index 00000000..2eed56b1 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs নীচে",alignAbsMiddle:"Abs উপর",alignBaseline:"মূল রেখা",alignTextTop:"টেক্সট উপর",bgcolor:"বেকগ্রাউন্ড রং",chkFull:"Allow Fullscreen",chkLoop:"লূপ",chkMenu:"ফ্ল্যাশ মেনু এনাবল কর",chkPlay:"অটো প্লে",flashvars:"Variables for Flash",hSpace:"হরাইজন্টাল স্পেস",properties:"ফ্লাশ প্রোপার্টি",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"স্কেল",scaleAll:"সব দেখাও",scaleFit:"নিখুঁত ফিট",scaleNoBorder:"কোনো বর্ডার নেই",title:"ফ্ল্যাশ প্রোপার্টি",vSpace:"ভার্টিকেল স্পেস",validateHSpace:"HSpace must be a number.",validateSrc:"অনুগ্রহ করে URL লিংক টাইপ করুন",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/bs.js b/www/lib/ckeditor/plugins/flash/lang/bs.js new file mode 100644 index 00000000..4d5f4b4b --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","bs",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Molimo ukucajte URL link",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ca.js b/www/lib/ckeditor/plugins/flash/lang/ca.js new file mode 100644 index 00000000..c1e16027 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ca",{access:"Accés a scripts",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"El mateix domini",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Superior",bgcolor:"Color de Fons",chkFull:"Permetre la pantalla completa",chkLoop:"Bucle",chkMenu:"Habilita menú Flash",chkPlay:"Reprodució automàtica",flashvars:"Variables de Flash",hSpace:"Espaiat horitzontal",properties:"Propietats del Flash",propertiesTab:"Propietats", +quality:"Qualitat",qualityAutoHigh:"Alta automàtica",qualityAutoLow:"Baixa automàtica",qualityBest:"La millor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Mitjana",scale:"Escala",scaleAll:"Mostra-ho tot",scaleFit:"Mida exacta",scaleNoBorder:"Sense vores",title:"Propietats del Flash",vSpace:"Espaiat vertical",validateHSpace:"L'espaiat horitzontal ha de ser un número.",validateSrc:"La URL no pot estar buida.",validateVSpace:"L'espaiat vertical ha de ser un número.",windowMode:"Mode de la finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparent",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/cs.js b/www/lib/ckeditor/plugins/flash/lang/cs.js new file mode 100644 index 00000000..51087ed4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","cs",{access:"Přístup ke skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Ve stejné doméně",alignAbsBottom:"Zcela dolů",alignAbsMiddle:"Doprostřed",alignBaseline:"Na účaří",alignTextTop:"Na horní okraj textu",bgcolor:"Barva pozadí",chkFull:"Povolit celoobrazovkový režim",chkLoop:"Opakování",chkMenu:"Nabídka Flash",chkPlay:"Automatické spuštění",flashvars:"Proměnné pro Flash",hSpace:"Horizontální mezera",properties:"Vlastnosti Flashe",propertiesTab:"Vlastnosti", +quality:"Kvalita",qualityAutoHigh:"Vysoká - auto",qualityAutoLow:"Nízká - auto",qualityBest:"Nejlepší",qualityHigh:"Vysoká",qualityLow:"Nejnižší",qualityMedium:"Střední",scale:"Zobrazit",scaleAll:"Zobrazit vše",scaleFit:"Přizpůsobit",scaleNoBorder:"Bez okraje",title:"Vlastnosti Flashe",vSpace:"Vertikální mezera",validateHSpace:"Zadaná horizontální mezera musí být číslo.",validateSrc:"Zadejte prosím URL odkazu",validateVSpace:"Zadaná vertikální mezera musí být číslo.",windowMode:"Režim okna",windowModeOpaque:"Neprůhledné", +windowModeTransparent:"Průhledné",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/cy.js b/www/lib/ckeditor/plugins/flash/lang/cy.js new file mode 100644 index 00000000..b6ae1ef3 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","cy",{access:"Mynediad Sgript",accessAlways:"Pob amser",accessNever:"Byth",accessSameDomain:"R'un parth",alignAbsBottom:"Gwaelod Abs",alignAbsMiddle:"Canol Abs",alignBaseline:"Baslinell",alignTextTop:"Testun Top",bgcolor:"Lliw cefndir",chkFull:"Caniatàu Sgrin Llawn",chkLoop:"Lwpio",chkMenu:"Galluogi Dewislen Flash",chkPlay:"AwtoChwarae",flashvars:"Newidynnau ar gyfer Flash",hSpace:"BwlchLl",properties:"Priodweddau Flash",propertiesTab:"Priodweddau",quality:"Ansawdd", +qualityAutoHigh:"Uchel Awto",qualityAutoLow:"Isel Awto",qualityBest:"Gorau",qualityHigh:"Uchel",qualityLow:"Isel",qualityMedium:"Canolig",scale:"Graddfa",scaleAll:"Dangos pob",scaleFit:"Ffit Union",scaleNoBorder:"Dim Ymyl",title:"Priodweddau Flash",vSpace:"BwlchF",validateHSpace:"Rhaid i'r BwlchLl fod yn rhif.",validateSrc:"Ni all yr URL fod yn wag.",validateVSpace:"Rhaid i'r BwlchF fod yn rhif.",windowMode:"Modd ffenestr",windowModeOpaque:"Afloyw",windowModeTransparent:"Tryloyw",windowModeWindow:"Ffenestr"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/da.js b/www/lib/ckeditor/plugins/flash/lang/da.js new file mode 100644 index 00000000..a55294d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","da",{access:"Scriptadgang",accessAlways:"Altid",accessNever:"Aldrig",accessSameDomain:"Samme domæne",alignAbsBottom:"Absolut nederst",alignAbsMiddle:"Absolut centreret",alignBaseline:"Grundlinje",alignTextTop:"Toppen af teksten",bgcolor:"Baggrundsfarve",chkFull:"Tillad fuldskærm",chkLoop:"Gentagelse",chkMenu:"Vis Flash-menu",chkPlay:"Automatisk afspilning",flashvars:"Variabler for Flash",hSpace:"Vandret margen",properties:"Egenskaber for Flash",propertiesTab:"Egenskaber", +quality:"Kvalitet",qualityAutoHigh:"Auto høj",qualityAutoLow:"Auto lav",qualityBest:"Bedste",qualityHigh:"Høj",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skalér",scaleAll:"Vis alt",scaleFit:"Tilpas størrelse",scaleNoBorder:"Ingen ramme",title:"Egenskaber for Flash",vSpace:"Lodret margen",validateHSpace:"Vandret margen skal være et tal.",validateSrc:"Indtast hyperlink URL!",validateVSpace:"Lodret margen skal være et tal.",windowMode:"Vinduestilstand",windowModeOpaque:"Gennemsigtig (opaque)",windowModeTransparent:"Transparent", +windowModeWindow:"Vindue"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/de.js b/www/lib/ckeditor/plugins/flash/lang/de.js new file mode 100644 index 00000000..44d7237a --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","de",{access:"Skript Zugang",accessAlways:"Immer",accessNever:"Nie",accessSameDomain:"Gleiche Domain",alignAbsBottom:"Abs Unten",alignAbsMiddle:"Abs Mitte",alignBaseline:"Baseline",alignTextTop:"Text Oben",bgcolor:"Hintergrundfarbe",chkFull:"Vollbildmodus erlauben",chkLoop:"Endlosschleife",chkMenu:"Flash-Menü aktivieren",chkPlay:"Automatisch Abspielen",flashvars:"Variablen für Flash",hSpace:"Horizontal-Abstand",properties:"Flash-Eigenschaften",propertiesTab:"Eigenschaften", +quality:"Qualität",qualityAutoHigh:"Auto Hoch",qualityAutoLow:"Auto Niedrig",qualityBest:"Beste",qualityHigh:"Hoch",qualityLow:"Niedrig",qualityMedium:"Medium",scale:"Skalierung",scaleAll:"Alles anzeigen",scaleFit:"Passgenau",scaleNoBorder:"Ohne Rand",title:"Flash-Eigenschaften",vSpace:"Vertikal-Abstand",validateHSpace:"HSpace muss eine Zahl sein.",validateSrc:"Bitte geben Sie die Link-URL an",validateVSpace:"VSpace muss eine Zahl sein.",windowMode:"Fenster Modus",windowModeOpaque:"Deckend",windowModeTransparent:"Transparent", +windowModeWindow:"Fenster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/el.js b/www/lib/ckeditor/plugins/flash/lang/el.js new file mode 100644 index 00000000..4904d1b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","el",{access:"Πρόσβαση Script",accessAlways:"Πάντα",accessNever:"Ποτέ",accessSameDomain:"Ίδιο όνομα τομέα",alignAbsBottom:"Απόλυτα Κάτω",alignAbsMiddle:"Απόλυτα στη Μέση",alignBaseline:"Γραμμή Βάσης",alignTextTop:"Κορυφή Κειμένου",bgcolor:"Χρώμα Υποβάθρου",chkFull:"Να Επιτρέπεται η Προβολή σε Πλήρη Οθόνη",chkLoop:"Επανάληψη",chkMenu:"Ενεργοποίηση Flash Menu",chkPlay:"Αυτόματη Εκτέλεση",flashvars:"Μεταβλητές για Flash",hSpace:"Οριζόντιο Διάστημα",properties:"Ιδιότητες Flash", +propertiesTab:"Ιδιότητες",quality:"Ποιότητα",qualityAutoHigh:"Αυτόματη Υψηλή",qualityAutoLow:"Αυτόματη Χαμηλή",qualityBest:"Καλύτερη",qualityHigh:"Υψηλή",qualityLow:"Χαμηλή",qualityMedium:"Μεσαία",scale:"Μεγέθυνση",scaleAll:"Εμφάνιση όλων",scaleFit:"Ακριβές Μέγεθος",scaleNoBorder:"Χωρίς Περίγραμμα",title:"Ιδιότητες Flash",vSpace:"Κάθετο Διάστημα",validateHSpace:"Το HSpace πρέπει να είναι αριθμός.",validateSrc:"Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",validateVSpace:"Το VSpace πρέπει να είναι αριθμός.", +windowMode:"Τρόπος λειτουργίας παραθύρου",windowModeOpaque:"Συμπαγές",windowModeTransparent:"Διάφανο",windowModeWindow:"Παράθυρο"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/en-au.js b/www/lib/ckeditor/plugins/flash/lang/en-au.js new file mode 100644 index 00000000..e066c740 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-au",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/en-ca.js b/www/lib/ckeditor/plugins/flash/lang/en-ca.js new file mode 100644 index 00000000..9c6fdc4a --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-ca",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/en-gb.js b/www/lib/ckeditor/plugins/flash/lang/en-gb.js new file mode 100644 index 00000000..ccbc28af --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en-gb",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background colour",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/en.js b/www/lib/ckeditor/plugins/flash/lang/en.js new file mode 100644 index 00000000..13380310 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","en",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/eo.js b/www/lib/ckeditor/plugins/flash/lang/eo.js new file mode 100644 index 00000000..30218bc1 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eo",{access:"Atingi skriptojn",accessAlways:"Ĉiam",accessNever:"Neniam",accessSameDomain:"Sama domajno",alignAbsBottom:"Absoluta Malsupro",alignAbsMiddle:"Absoluta Centro",alignBaseline:"TekstoMalsupro",alignTextTop:"TekstoSupro",bgcolor:"Fona Koloro",chkFull:"Permesi tutekranon",chkLoop:"Iteracio",chkMenu:"Ebligi flaŝmenuon",chkPlay:"Aŭtomata legado",flashvars:"Variabloj por Flaŝo",hSpace:"Horizontala Spaco",properties:"Flaŝatributoj",propertiesTab:"Atributoj",quality:"Kvalito", +qualityAutoHigh:"Aŭtomate alta",qualityAutoLow:"Aŭtomate malalta",qualityBest:"Plej bona",qualityHigh:"Alta",qualityLow:"Malalta",qualityMedium:"Meza",scale:"Skalo",scaleAll:"Montri ĉion",scaleFit:"Origina grando",scaleNoBorder:"Neniu bordero",title:"Flaŝatributoj",vSpace:"Vertikala Spaco",validateHSpace:"Horizontala Spaco devas esti nombro.",validateSrc:"Bonvolu entajpi la retadreson (URL)",validateVSpace:"Vertikala Spaco devas esti nombro.",windowMode:"Fenestra reĝimo",windowModeOpaque:"Opaka", +windowModeTransparent:"Travidebla",windowModeWindow:"Fenestro"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/es.js b/www/lib/ckeditor/plugins/flash/lang/es.js new file mode 100644 index 00000000..296239e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","es",{access:"Acceso de scripts",accessAlways:"Siempre",accessNever:"Nunca",accessSameDomain:"Mismo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Línea de base",alignTextTop:"Tope del texto",bgcolor:"Color de Fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar Menú Flash",chkPlay:"Autoejecución",flashvars:"Opciones",hSpace:"Esp.Horiz",properties:"Propiedades de Flash",propertiesTab:"Propiedades",quality:"Calidad", +qualityAutoHigh:"Auto Alta",qualityAutoLow:"Auto Baja",qualityBest:"La mejor",qualityHigh:"Alta",qualityLow:"Baja",qualityMedium:"Media",scale:"Escala",scaleAll:"Mostrar todo",scaleFit:"Ajustado",scaleNoBorder:"Sin Borde",title:"Propiedades de Flash",vSpace:"Esp.Vert",validateHSpace:"Esp.Horiz debe ser un número.",validateSrc:"Por favor escriba el vínculo URL",validateVSpace:"Esp.Vert debe ser un número.",windowMode:"WindowMode",windowModeOpaque:"Opaco",windowModeTransparent:"Transparente",windowModeWindow:"Ventana"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/et.js b/www/lib/ckeditor/plugins/flash/lang/et.js new file mode 100644 index 00000000..9ac2b3cd --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","et",{access:"Skriptide ligipääs",accessAlways:"Kõigile",accessNever:"Mitte ühelegi",accessSameDomain:"Samalt domeenilt",alignAbsBottom:"Abs alla",alignAbsMiddle:"Abs keskele",alignBaseline:"Baasjoonele",alignTextTop:"Tekstist üles",bgcolor:"Tausta värv",chkFull:"Täisekraan lubatud",chkLoop:"Korduv",chkMenu:"Flashi menüü lubatud",chkPlay:"Automaatne start ",flashvars:"Flashi muutujad",hSpace:"H. vaheruum",properties:"Flashi omadused",propertiesTab:"Omadused",quality:"Kvaliteet", +qualityAutoHigh:"Automaatne kõrge",qualityAutoLow:"Automaatne madal",qualityBest:"Parim",qualityHigh:"Kõrge",qualityLow:"Madal",qualityMedium:"Keskmine",scale:"Mastaap",scaleAll:"Näidatakse kõike",scaleFit:"Täpne sobivus",scaleNoBorder:"Äärist ei ole",title:"Flashi omadused",vSpace:"V. vaheruum",validateHSpace:"H. vaheruum peab olema number.",validateSrc:"Palun kirjuta lingi URL",validateVSpace:"V. vaheruum peab olema number.",windowMode:"Akna režiim",windowModeOpaque:"Läbipaistmatu",windowModeTransparent:"Läbipaistev", +windowModeWindow:"Aken"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/eu.js b/www/lib/ckeditor/plugins/flash/lang/eu.js new file mode 100644 index 00000000..5cf12025 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","eu",{access:"Scriptak baimendu",accessAlways:"Beti",accessNever:"Inoiz ere ez",accessSameDomain:"Domeinu berdinekoak",alignAbsBottom:"Abs Behean",alignAbsMiddle:"Abs Erdian",alignBaseline:"Oinan",alignTextTop:"Testua Goian",bgcolor:"Atzeko kolorea",chkFull:"Onartu Pantaila osoa",chkLoop:"Begizta",chkMenu:"Flasharen Menua Gaitu",chkPlay:"Automatikoki Erreproduzitu",flashvars:"Flash Aldagaiak",hSpace:"HSpace",properties:"Flasharen Ezaugarriak",propertiesTab:"Ezaugarriak", +quality:"Kalitatea",qualityAutoHigh:"Auto Altua",qualityAutoLow:"Auto Baxua",qualityBest:"Hoberena",qualityHigh:"Altua",qualityLow:"Baxua",qualityMedium:"Ertaina",scale:"Eskalatu",scaleAll:"Dena erakutsi",scaleFit:"Doitu",scaleNoBorder:"Ertzik gabe",title:"Flasharen Ezaugarriak",vSpace:"VSpace",validateHSpace:"HSpace zenbaki bat izan behar da.",validateSrc:"Mesedez URL esteka idatzi",validateVSpace:"VSpace zenbaki bat izan behar da.",windowMode:"Leihoaren modua",windowModeOpaque:"Opakoa",windowModeTransparent:"Gardena", +windowModeWindow:"Leihoa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/fa.js b/www/lib/ckeditor/plugins/flash/lang/fa.js new file mode 100644 index 00000000..ac4a6092 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","fa",{access:"دسترسی به اسکریپت",accessAlways:"همیشه",accessNever:"هرگز",accessSameDomain:"همان دامنه",alignAbsBottom:"پائین مطلق",alignAbsMiddle:"وسط مطلق",alignBaseline:"خط پایه",alignTextTop:"متن بالا",bgcolor:"رنگ پس​زمینه",chkFull:"اجازه تمام صفحه",chkLoop:"اجرای پیاپی",chkMenu:"در دسترس بودن منوی فلش",chkPlay:"آغاز خودکار",flashvars:"مقادیر برای فلش",hSpace:"فاصلهٴ افقی",properties:"ویژگی​های فلش",propertiesTab:"ویژگی​ها",quality:"کیفیت",qualityAutoHigh:"بالا - خودکار", +qualityAutoLow:"پایین - خودکار",qualityBest:"بهترین",qualityHigh:"بالا",qualityLow:"پایین",qualityMedium:"متوسط",scale:"مقیاس",scaleAll:"نمایش همه",scaleFit:"جایگیری کامل",scaleNoBorder:"بدون کران",title:"ویژگی​های فلش",vSpace:"فاصلهٴ عمودی",validateHSpace:"مقدار فاصله گذاری افقی باید یک عدد باشد.",validateSrc:"لطفا URL پیوند را بنویسید",validateVSpace:"مقدار فاصله گذاری عمودی باید یک عدد باشد.",windowMode:"حالت پنجره",windowModeOpaque:"مات",windowModeTransparent:"شفاف",windowModeWindow:"پنجره"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/fi.js b/www/lib/ckeditor/plugins/flash/lang/fi.js new file mode 100644 index 00000000..c40fe43d --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fi",{access:"Skriptien pääsy",accessAlways:"Aina",accessNever:"Ei koskaan",accessSameDomain:"Sama verkkotunnus",alignAbsBottom:"Aivan alas",alignAbsMiddle:"Aivan keskelle",alignBaseline:"Alas (teksti)",alignTextTop:"Ylös (teksti)",bgcolor:"Taustaväri",chkFull:"Salli kokoruututila",chkLoop:"Toisto",chkMenu:"Näytä Flash-valikko",chkPlay:"Automaattinen käynnistys",flashvars:"Muuttujat Flash:lle",hSpace:"Vaakatila",properties:"Flash-ominaisuudet",propertiesTab:"Ominaisuudet", +quality:"Laatu",qualityAutoHigh:"Automaattinen korkea",qualityAutoLow:"Automaattinen matala",qualityBest:"Paras",qualityHigh:"Korkea",qualityLow:"Matala",qualityMedium:"Keskitaso",scale:"Levitä",scaleAll:"Näytä kaikki",scaleFit:"Tarkka koko",scaleNoBorder:"Ei rajaa",title:"Flash ominaisuudet",vSpace:"Pystytila",validateHSpace:"Vaakatilan täytyy olla numero.",validateSrc:"Linkille on kirjoitettava URL",validateVSpace:"Pystytilan täytyy olla numero.",windowMode:"Ikkuna tila",windowModeOpaque:"Läpinäkyvyys", +windowModeTransparent:"Läpinäkyvä",windowModeWindow:"Ikkuna"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/fo.js b/www/lib/ckeditor/plugins/flash/lang/fo.js new file mode 100644 index 00000000..d02410a1 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fo",{access:"Script atgongd",accessAlways:"Altíð",accessNever:"Ongantíð",accessSameDomain:"Sama navnaøki",alignAbsBottom:"Abs botnur",alignAbsMiddle:"Abs miðja",alignBaseline:"Basislinja",alignTextTop:"Tekst toppur",bgcolor:"Bakgrundslitur",chkFull:"Loyv fullan skerm",chkLoop:"Endurspæl",chkMenu:"Ger Flash skrá virkna",chkPlay:"Avspælingin byrjar sjálv",flashvars:"Variablar fyri Flash",hSpace:"Høgri breddi",properties:"Flash eginleikar",propertiesTab:"Eginleikar", +quality:"Góðska",qualityAutoHigh:"Auto høg",qualityAutoLow:"Auto Lág",qualityBest:"Besta",qualityHigh:"Høg",qualityLow:"Lág",qualityMedium:"Meðal",scale:"Skalering",scaleAll:"Vís alt",scaleFit:"Neyv skalering",scaleNoBorder:"Eingin bordi",title:"Flash eginleikar",vSpace:"Vinstri breddi",validateHSpace:"HSpace má vera eitt tal.",validateSrc:"Vinarliga skriva tilknýti (URL)",validateVSpace:"VSpace má vera eitt tal.",windowMode:"Slag av rúti",windowModeOpaque:"Ikki transparent",windowModeTransparent:"Transparent", +windowModeWindow:"Rútur"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/fr-ca.js b/www/lib/ckeditor/plugins/flash/lang/fr-ca.js new file mode 100644 index 00000000..8218f119 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr-ca",{access:"Accès au script",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur de fond",chkFull:"Permettre le plein-écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Lecture automatique",flashvars:"Variables pour Flash",hSpace:"Espacement horizontal",properties:"Propriétés de l'animation Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute auto",qualityAutoLow:"Basse auto",qualityBest:"Meilleur",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Échelle",scaleAll:"Afficher tout",scaleFit:"Ajuster aux dimensions",scaleNoBorder:"Sans bordure",title:"Propriétés de l'animation Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un entier.",validateSrc:"Veuillez saisir l'URL",validateVSpace:"L'espacement vertical doit être un entier.", +windowMode:"Mode de fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/fr.js b/www/lib/ckeditor/plugins/flash/lang/fr.js new file mode 100644 index 00000000..fdc543c6 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","fr",{access:"Accès aux scripts",accessAlways:"Toujours",accessNever:"Jamais",accessSameDomain:"Même domaine",alignAbsBottom:"Bas absolu",alignAbsMiddle:"Milieu absolu",alignBaseline:"Bas du texte",alignTextTop:"Haut du texte",bgcolor:"Couleur d'arrière-plan",chkFull:"Permettre le plein écran",chkLoop:"Boucle",chkMenu:"Activer le menu Flash",chkPlay:"Jouer automatiquement",flashvars:"Variables du Flash",hSpace:"Espacement horizontal",properties:"Propriétés du Flash", +propertiesTab:"Propriétés",quality:"Qualité",qualityAutoHigh:"Haute Auto",qualityAutoLow:"Basse Auto",qualityBest:"Meilleure",qualityHigh:"Haute",qualityLow:"Basse",qualityMedium:"Moyenne",scale:"Echelle",scaleAll:"Afficher tout",scaleFit:"Taille d'origine",scaleNoBorder:"Pas de bordure",title:"Propriétés du Flash",vSpace:"Espacement vertical",validateHSpace:"L'espacement horizontal doit être un nombre.",validateSrc:"L'adresse ne doit pas être vide.",validateVSpace:"L'espacement vertical doit être un nombre.", +windowMode:"Mode fenêtre",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Fenêtre"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/gl.js b/www/lib/ckeditor/plugins/flash/lang/gl.js new file mode 100644 index 00000000..38e85081 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","gl",{access:"Acceso de scripts",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs Inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Liña de base",alignTextTop:"Tope do texto",bgcolor:"Cor do fondo",chkFull:"Permitir pantalla completa",chkLoop:"Repetir",chkMenu:"Activar o menú do «Flash»",chkPlay:"Reprodución auomática",flashvars:"Opcións do «Flash»",hSpace:"Esp. Horiz.",properties:"Propiedades do «Flash»",propertiesTab:"Propiedades", +quality:"Calidade",qualityAutoHigh:"Alta, automática",qualityAutoLow:"Baixa, automática",qualityBest:"A mellor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Media",scale:"Escalar",scaleAll:"Amosar todo",scaleFit:"Encaixar axustando",scaleNoBorder:"Sen bordo",title:"Propiedades do «Flash»",vSpace:"Esp.Vert.",validateHSpace:"O espazado horizontal debe ser un número.",validateSrc:"O URL non pode estar baleiro.",validateVSpace:"O espazado vertical debe ser un número.",windowMode:"Modo da xanela", +windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Xanela"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/gu.js b/www/lib/ckeditor/plugins/flash/lang/gu.js new file mode 100644 index 00000000..601bb61c --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","gu",{access:"સ્ક્રીપ્ટ એક્સેસ",accessAlways:"હમેશાં",accessNever:"નહી",accessSameDomain:"એજ ડોમેન",alignAbsBottom:"Abs નીચે",alignAbsMiddle:"Abs ઉપર",alignBaseline:"આધાર લીટી",alignTextTop:"ટેક્સ્ટ ઉપર",bgcolor:"બૅકગ્રાઉન્ડ રંગ,",chkFull:"ફૂલ સ્ક્રીન કરવું",chkLoop:"લૂપ",chkMenu:"ફ્લૅશ મેન્યૂ નો પ્રયોગ કરો",chkPlay:"ઑટો/સ્વયં પ્લે",flashvars:"ફલેશ ના વિકલ્પો",hSpace:"સમસ્તરીય જગ્યા",properties:"ફ્લૅશના ગુણ",propertiesTab:"ગુણ",quality:"ગુણધર્મ",qualityAutoHigh:"ઓટો ઊંચું", +qualityAutoLow:"ઓટો નીચું",qualityBest:"શ્રેષ્ઠ",qualityHigh:"ઊંચું",qualityLow:"નીચું",qualityMedium:"મધ્યમ",scale:"સ્કેલ",scaleAll:"સ્કેલ ઓલ/બધુ બતાવો",scaleFit:"સ્કેલ એકદમ ફીટ",scaleNoBorder:"સ્કેલ બોર્ડર વગર",title:"ફ્લૅશ ગુણ",vSpace:"લંબરૂપ જગ્યા",validateHSpace:"HSpace આંકડો હોવો જોઈએ.",validateSrc:"લિંક URL ટાઇપ કરો",validateVSpace:"VSpace આંકડો હોવો જોઈએ.",windowMode:"વિન્ડો મોડ",windowModeOpaque:"અપારદર્શક",windowModeTransparent:"પારદર્શક",windowModeWindow:"વિન્ડો"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/he.js b/www/lib/ckeditor/plugins/flash/lang/he.js new file mode 100644 index 00000000..6870ea2a --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","he",{access:"גישת סקריפט",accessAlways:"תמיד",accessNever:"אף פעם",accessSameDomain:"דומיין זהה",alignAbsBottom:"לתחתית האבסולוטית",alignAbsMiddle:"מרכוז אבסולוטי",alignBaseline:"לקו התחתית",alignTextTop:"לראש הטקסט",bgcolor:"צבע רקע",chkFull:"אפשר חלון מלא",chkLoop:"לולאה",chkMenu:"אפשר תפריט פלאש",chkPlay:"ניגון אוטומטי",flashvars:"משתנים לפלאש",hSpace:"מרווח אופקי",properties:"מאפייני פלאש",propertiesTab:"מאפיינים",quality:"איכות",qualityAutoHigh:"גבוהה אוטומטית", +qualityAutoLow:"נמוכה אוטומטית",qualityBest:"מעולה",qualityHigh:"גבוהה",qualityLow:"נמוכה",qualityMedium:"ממוצעת",scale:"גודל",scaleAll:"הצג הכל",scaleFit:"התאמה מושלמת",scaleNoBorder:"ללא גבולות",title:"מאפיני פלאש",vSpace:"מרווח אנכי",validateHSpace:"המרווח האופקי חייב להיות מספר.",validateSrc:"יש להקליד את כתובת סרטון הפלאש (URL)",validateVSpace:"המרווח האנכי חייב להיות מספר.",windowMode:"מצב חלון",windowModeOpaque:"אטום",windowModeTransparent:"שקוף",windowModeWindow:"חלון"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/hi.js b/www/lib/ckeditor/plugins/flash/lang/hi.js new file mode 100644 index 00000000..2f3b6e99 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hi",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs नीचे",alignAbsMiddle:"Abs ऊपर",alignBaseline:"मूल रेखा",alignTextTop:"टेक्स्ट ऊपर",bgcolor:"बैक्ग्राउन्ड रंग",chkFull:"Allow Fullscreen",chkLoop:"लूप",chkMenu:"फ़्लैश मॅन्यू का प्रयोग करें",chkPlay:"ऑटो प्ले",flashvars:"Variables for Flash",hSpace:"हॉरिज़ॉन्टल स्पेस",properties:"फ़्लैश प्रॉपर्टीज़",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"स्केल",scaleAll:"सभी दिखायें",scaleFit:"बिल्कुल फ़िट",scaleNoBorder:"कोई बॉर्डर नहीं",title:"फ़्लैश प्रॉपर्टीज़",vSpace:"वर्टिकल स्पेस",validateHSpace:"HSpace must be a number.",validateSrc:"लिंक URL टाइप करें",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/hr.js b/www/lib/ckeditor/plugins/flash/lang/hr.js new file mode 100644 index 00000000..ae7c82f4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","hr",{access:"Script Access",accessAlways:"Uvijek",accessNever:"Nikad",accessSameDomain:"Ista domena",alignAbsBottom:"Abs dolje",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Omogući Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Omogući Flash izbornik",chkPlay:"Auto Play",flashvars:"Varijable za Flash",hSpace:"HSpace",properties:"Flash svojstva",propertiesTab:"Svojstva",quality:"Kvaliteta",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Omjer",scaleAll:"Prikaži sve",scaleFit:"Točna veličina",scaleNoBorder:"Bez okvira",title:"Flash svojstva",vSpace:"VSpace",validateHSpace:"HSpace mora biti broj.",validateSrc:"Molimo upišite URL link",validateVSpace:"VSpace mora biti broj.",windowMode:"Vrsta prozora",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/hu.js b/www/lib/ckeditor/plugins/flash/lang/hu.js new file mode 100644 index 00000000..92620909 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","hu",{access:"Szkript hozzáférés",accessAlways:"Mindig",accessNever:"Soha",accessSameDomain:"Azonos domainről",alignAbsBottom:"Legaljára",alignAbsMiddle:"Közepére",alignBaseline:"Alapvonalhoz",alignTextTop:"Szöveg tetejére",bgcolor:"Háttérszín",chkFull:"Teljes képernyő engedélyezése",chkLoop:"Folyamatosan",chkMenu:"Flash menü engedélyezése",chkPlay:"Automata lejátszás",flashvars:"Flash változók",hSpace:"Vízsz. táv",properties:"Flash tulajdonságai",propertiesTab:"Tulajdonságok", +quality:"Minőség",qualityAutoHigh:"Automata jó",qualityAutoLow:"Automata gyenge",qualityBest:"Legjobb",qualityHigh:"Jó",qualityLow:"Gyenge",qualityMedium:"Közepes",scale:"Méretezés",scaleAll:"Mindent mutat",scaleFit:"Teljes kitöltés",scaleNoBorder:"Keret nélkül",title:"Flash tulajdonságai",vSpace:"Függ. táv",validateHSpace:"A vízszintes távolsűág mezőbe csak számokat írhat.",validateSrc:"Adja meg a hivatkozás webcímét",validateVSpace:"A függőleges távolsűág mezőbe csak számokat írhat.",windowMode:"Ablak mód", +windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/id.js b/www/lib/ckeditor/plugins/flash/lang/id.js new file mode 100644 index 00000000..9272c08d --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","id",{access:"Script Access",accessAlways:"Selalu",accessNever:"Tidak Pernah",accessSameDomain:"Domain yang sama",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Dasar",alignTextTop:"Text Top",bgcolor:"Warna Latar Belakang",chkFull:"Izinkan Layar Penuh",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Mainkan Otomatis",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properti",quality:"Kualitas", +qualityAutoHigh:"Tinggi Otomatis",qualityAutoLow:"Rendah Otomatis",qualityBest:"Terbaik",qualityHigh:"Tinggi",qualityLow:"Rendah",qualityMedium:"Sedang",scale:"Scale",scaleAll:"Perlihatkan semua",scaleFit:"Exact Fit",scaleNoBorder:"Tanpa Batas",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace harus sebuah angka",validateSrc:"URL tidak boleh kosong",validateVSpace:"VSpace harus sebuah angka",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparan",windowModeWindow:"Jendela"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/is.js b/www/lib/ckeditor/plugins/flash/lang/is.js new file mode 100644 index 00000000..0b0d71b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","is",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs neðst",alignAbsMiddle:"Abs miðjuð",alignBaseline:"Grunnlína",alignTextTop:"Efri brún texta",bgcolor:"Bakgrunnslitur",chkFull:"Allow Fullscreen",chkLoop:"Endurtekning",chkMenu:"Sýna Flash-valmynd",chkPlay:"Sjálfvirk spilun",flashvars:"Variables for Flash",hSpace:"Vinstri bil",properties:"Eigindi Flash",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skali",scaleAll:"Sýna allt",scaleFit:"Fella skala að stærð",scaleNoBorder:"Án ramma",title:"Eigindi Flash",vSpace:"Hægri bil",validateHSpace:"HSpace must be a number.",validateSrc:"Sláðu inn veffang stiklunnar!",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/it.js b/www/lib/ckeditor/plugins/flash/lang/it.js new file mode 100644 index 00000000..7c5e09f4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","it",{access:"Accesso Script",accessAlways:"Sempre",accessNever:"Mai",accessSameDomain:"Solo stesso dominio",alignAbsBottom:"In basso assoluto",alignAbsMiddle:"Centrato assoluto",alignBaseline:"Linea base",alignTextTop:"In alto al testo",bgcolor:"Colore sfondo",chkFull:"Permetti la modalità tutto schermo",chkLoop:"Riavvio automatico",chkMenu:"Abilita Menu di Flash",chkPlay:"Avvio Automatico",flashvars:"Variabili per Flash",hSpace:"HSpace",properties:"Proprietà Oggetto Flash", +propertiesTab:"Proprietà",quality:"Qualità",qualityAutoHigh:"Alta Automatica",qualityAutoLow:"Bassa Automatica",qualityBest:"Massima",qualityHigh:"Alta",qualityLow:"Bassa",qualityMedium:"Intermedia",scale:"Ridimensiona",scaleAll:"Mostra Tutto",scaleFit:"Dimensione Esatta",scaleNoBorder:"Senza Bordo",title:"Proprietà Oggetto Flash",vSpace:"VSpace",validateHSpace:"L'HSpace dev'essere un numero.",validateSrc:"Devi inserire l'URL del collegamento",validateVSpace:"Il VSpace dev'essere un numero.",windowMode:"Modalità finestra", +windowModeOpaque:"Opaca",windowModeTransparent:"Trasparente",windowModeWindow:"Finestra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ja.js b/www/lib/ckeditor/plugins/flash/lang/ja.js new file mode 100644 index 00000000..8a2238b4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ja",{access:"スプリクトアクセス(AllowScriptAccess)",accessAlways:"すべての場合に通信可能(Always)",accessNever:"すべての場合に通信不可能(Never)",accessSameDomain:"同一ドメインのみに通信可能(Same domain)",alignAbsBottom:"下部(絶対的)",alignAbsMiddle:"中央(絶対的)",alignBaseline:"ベースライン",alignTextTop:"テキスト上部",bgcolor:"背景色",chkFull:"フルスクリーン許可",chkLoop:"ループ再生",chkMenu:"Flashメニュー可能",chkPlay:"再生",flashvars:"フラッシュに渡す変数(FlashVars)",hSpace:"横間隔",properties:"Flash プロパティ",propertiesTab:"プロパティ",quality:"画質",qualityAutoHigh:"自動/高", +qualityAutoLow:"自動/低",qualityBest:"品質優先",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"拡大縮小設定",scaleAll:"すべて表示",scaleFit:"上下左右にフィット",scaleNoBorder:"外が見えない様に拡大",title:"Flash プロパティ",vSpace:"縦間隔",validateHSpace:"横間隔は数値で入力してください。",validateSrc:"リンクURLを入力してください。",validateVSpace:"縦間隔は数値で入力してください。",windowMode:"ウィンドウモード",windowModeOpaque:"背景を不透明設定",windowModeTransparent:"背景を透過設定",windowModeWindow:"標準"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ka.js b/www/lib/ckeditor/plugins/flash/lang/ka.js new file mode 100644 index 00000000..fb482eca --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ka",{access:"სკრიპტის წვდომა",accessAlways:"ყოველთვის",accessNever:"არასდროს",accessSameDomain:"იგივე დომენი",alignAbsBottom:"ჩარჩოს ქვემოთა ნაწილის სწორება ტექსტისთვის",alignAbsMiddle:"ჩარჩოს შუა ნაწილის სწორება ტექსტისთვის",alignBaseline:"საბაზისო ხაზის სწორება",alignTextTop:"ტექსტი ზემოდან",bgcolor:"ფონის ფერი",chkFull:"მთელი ეკრანის დაშვება",chkLoop:"ჩაციკლვა",chkMenu:"Flash-ის მენიუს დაშვება",chkPlay:"ავტო გაშვება",flashvars:"ცვლადები Flash-ისთვის",hSpace:"ჰორიზ. სივრცე", +properties:"Flash-ის პარამეტრები",propertiesTab:"პარამეტრები",quality:"ხარისხი",qualityAutoHigh:"მაღალი (ავტომატური)",qualityAutoLow:"ძალიან დაბალი",qualityBest:"საუკეთესო",qualityHigh:"მაღალი",qualityLow:"დაბალი",qualityMedium:"საშუალო",scale:"მასშტაბირება",scaleAll:"ყველაფრის ჩვენება",scaleFit:"ზუსტი ჩასმა",scaleNoBorder:"ჩარჩოს გარეშე",title:"Flash-ის პარამეტრები",vSpace:"ვერტ. სივრცე",validateHSpace:"ჰორიზონტალური სივრცე არ უნდა იყოს ცარიელი.",validateSrc:"URL არ უნდა იყოს ცარიელი.",validateVSpace:"ვერტიკალური სივრცე არ უნდა იყოს ცარიელი.", +windowMode:"ფანჯრის რეჟიმი",windowModeOpaque:"გაუმჭვირვალე",windowModeTransparent:"გამჭვირვალე",windowModeWindow:"ფანჯარა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/km.js b/www/lib/ckeditor/plugins/flash/lang/km.js new file mode 100644 index 00000000..a4babe9e --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","km",{access:"Script Access",accessAlways:"ជានិច្ច",accessNever:"កុំ",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"បន្ទាត់ជាមូលដ្ឋាន",alignTextTop:"លើអត្ថបទ",bgcolor:"ពណ៌ផ្ទៃខាងក្រោយ",chkFull:"អនុញ្ញាត​ឲ្យ​ពេញ​អេក្រង់",chkLoop:"ចំនួនដង",chkMenu:"បង្ហាញ មឺនុយរបស់ Flash",chkPlay:"លេងដោយស្វ័យប្រវត្ត",flashvars:"អថេរ Flash",hSpace:"គំលាតទទឹង",properties:"ការកំណត់ Flash",propertiesTab:"លក្ខណៈ​សម្បត្តិ",quality:"គុណភាព", +qualityAutoHigh:"ខ្ពស់​ស្វ័យ​ប្រវត្តិ",qualityAutoLow:"ទាប​ស្វ័យ​ប្រវត្តិ",qualityBest:"ល្អ​បំផុត",qualityHigh:"ខ្ពស់",qualityLow:"ទាប",qualityMedium:"មធ្យម",scale:"ទំហំ",scaleAll:"បង្ហាញទាំងអស់",scaleFit:"ត្រូវល្មម",scaleNoBorder:"មិនបង្ហាញស៊ុម",title:"ការកំណត់ Flash",vSpace:"គំលាតបណ្តោយ",validateHSpace:"HSpace must be a number.",validateSrc:"សូមសរសេរ អាស័យដ្ឋាន URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"ភាព​ថ្លា",windowModeWindow:"វីនដូ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ko.js b/www/lib/ckeditor/plugins/flash/lang/ko.js new file mode 100644 index 00000000..514c74a8 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ko",{access:"스크립트 허용",accessAlways:"항상 허용",accessNever:"허용 안함",accessSameDomain:"Same domain",alignAbsBottom:"줄아래(Abs Bottom)",alignAbsMiddle:"줄중간(Abs Middle)",alignBaseline:"기준선",alignTextTop:"글자상단",bgcolor:"배경 색상",chkFull:"전체화면 ",chkLoop:"반복",chkMenu:"플래쉬메뉴 가능",chkPlay:"자동재생",flashvars:"Variables for Flash",hSpace:"수평여백",properties:"플래쉬 속성",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High", +qualityLow:"Low",qualityMedium:"Medium",scale:"영역",scaleAll:"모두보기",scaleFit:"영역자동조절",scaleNoBorder:"경계선없음",title:"플래쉬 등록정보",vSpace:"수직여백",validateHSpace:"HSpace must be a number.",validateSrc:"링크 URL을 입력하십시요.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ku.js b/www/lib/ckeditor/plugins/flash/lang/ku.js new file mode 100644 index 00000000..e9618955 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ku",{access:"دەستپێگەیشتنی نووسراو",accessAlways:"هەمیشه",accessNever:"هەرگیز",accessSameDomain:"هەمان دۆمەین",alignAbsBottom:"له ژێرەوه",alignAbsMiddle:"لەناوەند",alignBaseline:"هێڵەبنەڕەت",alignTextTop:"دەق لەسەرەوه",bgcolor:"ڕەنگی پاشبنەما",chkFull:"ڕێپێدان بە پڕی شاشه",chkLoop:"گرێ",chkMenu:"چالاککردنی لیستەی فلاش",chkPlay:"پێکردنی یان لێدانی خۆکار",flashvars:"گۆڕاوەکان بۆ فلاش",hSpace:"بۆشایی ئاسۆیی",properties:"خاسیەتی فلاش",propertiesTab:"خاسیەت",quality:"جۆرایەتی", +qualityAutoHigh:"بەرزی خۆکار",qualityAutoLow:"نزمی خۆکار",qualityBest:"باشترین",qualityHigh:"بەرزی",qualityLow:"نزم",qualityMedium:"مامناوەند",scale:"پێوانه",scaleAll:"نیشاندانی هەموو",scaleFit:"بەوردی بگونجێت",scaleNoBorder:"بێ پەراوێز",title:"خاسیەتی فلاش",vSpace:"بۆشایی ئەستونی",validateHSpace:"بۆشایی ئاسۆیی دەبێت ژمارە بێت.",validateSrc:"ناونیشانی بەستەر نابێت خاڵی بێت",validateVSpace:"بۆشایی ئەستونی دەبێت ژماره بێت.",windowMode:"شێوازی پەنجەره",windowModeOpaque:"ناڕوون",windowModeTransparent:"ڕۆشن", +windowModeWindow:"پەنجەره"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/lt.js b/www/lib/ckeditor/plugins/flash/lang/lt.js new file mode 100644 index 00000000..8e013f24 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lt",{access:"Skripto priėjimas",accessAlways:"Visada",accessNever:"Niekada",accessSameDomain:"Tas pats domenas",alignAbsBottom:"Absoliučią apačią",alignAbsMiddle:"Absoliutų vidurį",alignBaseline:"Apatinę liniją",alignTextTop:"Teksto viršūnę",bgcolor:"Fono spalva",chkFull:"Leisti per visą ekraną",chkLoop:"Ciklas",chkMenu:"Leisti Flash meniu",chkPlay:"Automatinis paleidimas",flashvars:"Flash kintamieji",hSpace:"Hor.Erdvė",properties:"Flash savybės",propertiesTab:"Nustatymai", +quality:"Kokybė",qualityAutoHigh:"Automatiškai Gera",qualityAutoLow:"Automatiškai Žema",qualityBest:"Geriausia",qualityHigh:"Gera",qualityLow:"Žema",qualityMedium:"Vidutinė",scale:"Mastelis",scaleAll:"Rodyti visą",scaleFit:"Tikslus atitikimas",scaleNoBorder:"Be rėmelio",title:"Flash savybės",vSpace:"Vert.Erdvė",validateHSpace:"HSpace turi būti skaičius.",validateSrc:"Prašome įvesti nuorodos URL",validateVSpace:"VSpace turi būti skaičius.",windowMode:"Lango režimas",windowModeOpaque:"Nepermatomas", +windowModeTransparent:"Permatomas",windowModeWindow:"Langas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/lv.js b/www/lib/ckeditor/plugins/flash/lang/lv.js new file mode 100644 index 00000000..30edb939 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","lv",{access:"Skripta pieeja",accessAlways:"Vienmēr",accessNever:"Nekad",accessSameDomain:"Tas pats domēns",alignAbsBottom:"Absolūti apakšā",alignAbsMiddle:"Absolūti vertikāli centrēts",alignBaseline:"Pamatrindā",alignTextTop:"Teksta augšā",bgcolor:"Fona krāsa",chkFull:"Pilnekrāns",chkLoop:"Nepārtraukti",chkMenu:"Atļaut Flash izvēlni",chkPlay:"Automātiska atskaņošana",flashvars:"Flash mainīgie",hSpace:"Horizontālā telpa",properties:"Flash īpašības",propertiesTab:"Uzstādījumi", +quality:"Kvalitāte",qualityAutoHigh:"Automātiski Augsta",qualityAutoLow:"Automātiski Zema",qualityBest:"Labākā",qualityHigh:"Augsta",qualityLow:"Zema",qualityMedium:"Vidēja",scale:"Mainīt izmēru",scaleAll:"Rādīt visu",scaleFit:"Precīzs izmērs",scaleNoBorder:"Bez rāmja",title:"Flash īpašības",vSpace:"Vertikālā telpa",validateHSpace:"Hspace jābūt skaitlim",validateSrc:"Lūdzu norādi hipersaiti",validateVSpace:"Vspace jābūt skaitlim",windowMode:"Loga režīms",windowModeOpaque:"Necaurspīdīgs",windowModeTransparent:"Caurspīdīgs", +windowModeWindow:"Logs"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/mk.js b/www/lib/ckeditor/plugins/flash/lang/mk.js new file mode 100644 index 00000000..ae22f2a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mk",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs Bottom",alignAbsMiddle:"Abs Middle",alignBaseline:"Baseline",alignTextTop:"Text Top",bgcolor:"Background color",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/mn.js b/www/lib/ckeditor/plugins/flash/lang/mn.js new file mode 100644 index 00000000..6759d77d --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","mn",{access:"Script Access",accessAlways:"Онцлогууд",accessNever:"Хэзээ ч үгүй",accessSameDomain:"Байнга",alignAbsBottom:"Abs доод талд",alignAbsMiddle:"Abs Дунд талд",alignBaseline:"Baseline",alignTextTop:"Текст дээр",bgcolor:"Дэвсгэр өнгө",chkFull:"Allow Fullscreen",chkLoop:"Давтах",chkMenu:"Флаш цэс идвэхжүүлэх",chkPlay:"Автоматаар тоглох",flashvars:"Variables for Flash",hSpace:"Хөндлөн зай",properties:"Флаш шинж чанар",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Өргөгтгөх",scaleAll:"Бүгдийг харуулах",scaleFit:"Яг тааруулах",scaleNoBorder:"Хүрээгүй",title:"Флаш шинж чанар",vSpace:"Босоо зай",validateHSpace:"HSpace must be a number.",validateSrc:"Линк URL-ээ төрөлжүүлнэ үү",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ms.js b/www/lib/ckeditor/plugins/flash/lang/ms.js new file mode 100644 index 00000000..9012a684 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","ms",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Bawah Mutlak",alignAbsMiddle:"Pertengahan Mutlak",alignBaseline:"Garis Dasar",alignTextTop:"Atas Text",bgcolor:"Warna Latarbelakang",chkFull:"Allow Fullscreen",chkLoop:"Loop",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"Ruang Melintang",properties:"Flash Properties",propertiesTab:"Properties",quality:"Quality", +qualityAutoHigh:"Auto High",qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Scale",scaleAll:"Show all",scaleFit:"Exact Fit",scaleNoBorder:"No Border",title:"Flash Properties",vSpace:"Ruang Menegak",validateHSpace:"HSpace must be a number.",validateSrc:"Sila taip sambungan URL",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/nb.js b/www/lib/ckeditor/plugins/flash/lang/nb.js new file mode 100644 index 00000000..c03f61f7 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","nb",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/nl.js b/www/lib/ckeditor/plugins/flash/lang/nl.js new file mode 100644 index 00000000..193591ba --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","nl",{access:"Script toegang",accessAlways:"Altijd",accessNever:"Nooit",accessSameDomain:"Zelfde domeinnaam",alignAbsBottom:"Absoluut-onder",alignAbsMiddle:"Absoluut-midden",alignBaseline:"Basislijn",alignTextTop:"Boven tekst",bgcolor:"Achtergrondkleur",chkFull:"Schermvullend toestaan",chkLoop:"Herhalen",chkMenu:"Flashmenu's inschakelen",chkPlay:"Automatisch afspelen",flashvars:"Variabelen voor Flash",hSpace:"HSpace",properties:"Eigenschappen Flash",propertiesTab:"Eigenschappen", +quality:"Kwaliteit",qualityAutoHigh:"Automatisch hoog",qualityAutoLow:"Automatisch laag",qualityBest:"Beste",qualityHigh:"Hoog",qualityLow:"Laag",qualityMedium:"Gemiddeld",scale:"Schaal",scaleAll:"Alles tonen",scaleFit:"Precies passend",scaleNoBorder:"Geen rand",title:"Eigenschappen Flash",vSpace:"VSpace",validateHSpace:"De HSpace moet een getal zijn.",validateSrc:"De URL mag niet leeg zijn.",validateVSpace:"De VSpace moet een getal zijn.",windowMode:"Venster modus",windowModeOpaque:"Ondoorzichtig", +windowModeTransparent:"Doorzichtig",windowModeWindow:"Venster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/no.js b/www/lib/ckeditor/plugins/flash/lang/no.js new file mode 100644 index 00000000..4f660ce4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","no",{access:"Scripttilgang",accessAlways:"Alltid",accessNever:"Aldri",accessSameDomain:"Samme domene",alignAbsBottom:"Abs bunn",alignAbsMiddle:"Abs midten",alignBaseline:"Bunnlinje",alignTextTop:"Tekst topp",bgcolor:"Bakgrunnsfarge",chkFull:"Tillat fullskjerm",chkLoop:"Loop",chkMenu:"Slå på Flash-meny",chkPlay:"Autospill",flashvars:"Variabler for flash",hSpace:"HMarg",properties:"Egenskaper for Flash-objekt",propertiesTab:"Egenskaper",quality:"Kvalitet",qualityAutoHigh:"Auto høy", +qualityAutoLow:"Auto lav",qualityBest:"Best",qualityHigh:"Høy",qualityLow:"Lav",qualityMedium:"Medium",scale:"Skaler",scaleAll:"Vis alt",scaleFit:"Skaler til å passe",scaleNoBorder:"Ingen ramme",title:"Flash-egenskaper",vSpace:"VMarg",validateHSpace:"HMarg må være et tall.",validateSrc:"Vennligst skriv inn lenkens url.",validateVSpace:"VMarg må være et tall.",windowMode:"Vindumodus",windowModeOpaque:"Opaque",windowModeTransparent:"Gjennomsiktig",windowModeWindow:"Vindu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/pl.js b/www/lib/ckeditor/plugins/flash/lang/pl.js new file mode 100644 index 00000000..aa3da87e --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pl",{access:"Dostęp skryptów",accessAlways:"Zawsze",accessNever:"Nigdy",accessSameDomain:"Ta sama domena",alignAbsBottom:"Do dołu",alignAbsMiddle:"Do środka w pionie",alignBaseline:"Do linii bazowej",alignTextTop:"Do góry tekstu",bgcolor:"Kolor tła",chkFull:"Zezwól na pełny ekran",chkLoop:"Pętla",chkMenu:"Włącz menu",chkPlay:"Autoodtwarzanie",flashvars:"Zmienne obiektu Flash",hSpace:"Odstęp poziomy",properties:"Właściwości obiektu Flash",propertiesTab:"Właściwości", +quality:"Jakość",qualityAutoHigh:"Auto wysoka",qualityAutoLow:"Auto niska",qualityBest:"Najlepsza",qualityHigh:"Wysoka",qualityLow:"Niska",qualityMedium:"Średnia",scale:"Skaluj",scaleAll:"Pokaż wszystko",scaleFit:"Dokładne dopasowanie",scaleNoBorder:"Bez obramowania",title:"Właściwości obiektu Flash",vSpace:"Odstęp pionowy",validateHSpace:"Odstęp poziomy musi być liczbą.",validateSrc:"Podaj adres URL",validateVSpace:"Odstęp pionowy musi być liczbą.",windowMode:"Tryb okna",windowModeOpaque:"Nieprzezroczyste", +windowModeTransparent:"Przezroczyste",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/pt-br.js b/www/lib/ckeditor/plugins/flash/lang/pt-br.js new file mode 100644 index 00000000..4be3e143 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt-br",{access:"Acesso ao script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Acessar Mesmo Domínio",alignAbsBottom:"Inferior Absoluto",alignAbsMiddle:"Centralizado Absoluto",alignBaseline:"Baseline",alignTextTop:"Superior Absoluto",bgcolor:"Cor do Plano de Fundo",chkFull:"Permitir tela cheia",chkLoop:"Tocar Infinitamente",chkMenu:"Habilita Menu Flash",chkPlay:"Tocar Automaticamente",flashvars:"Variáveis do Flash",hSpace:"HSpace",properties:"Propriedades do Flash", +propertiesTab:"Propriedades",quality:"Qualidade",qualityAutoHigh:"Qualidade Alta Automática",qualityAutoLow:"Qualidade Baixa Automática",qualityBest:"Qualidade Melhor",qualityHigh:"Qualidade Alta",qualityLow:"Qualidade Baixa",qualityMedium:"Qualidade Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Escala Exata",scaleNoBorder:"Sem Borda",title:"Propriedades do Flash",vSpace:"VSpace",validateHSpace:"O HSpace tem que ser um número",validateSrc:"Por favor, digite o endereço do link",validateVSpace:"O VSpace tem que ser um número.", +windowMode:"Modo da janela",windowModeOpaque:"Opaca",windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/pt.js b/www/lib/ckeditor/plugins/flash/lang/pt.js new file mode 100644 index 00000000..374ffae8 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","pt",{access:"Acesso ao Script",accessAlways:"Sempre",accessNever:"Nunca",accessSameDomain:"Mesmo dominio",alignAbsBottom:"Abs inferior",alignAbsMiddle:"Abs centro",alignBaseline:"Linha de base",alignTextTop:"Topo do texto",bgcolor:"Cor de Fundo",chkFull:"Permitir Ecrã inteiro",chkLoop:"Loop",chkMenu:"Permitir Menu do Flash",chkPlay:"Reproduzir automaticamente",flashvars:"Variaveis para o Flash",hSpace:"Esp.Horiz",properties:"Propriedades do Flash",propertiesTab:"Propriedades", +quality:"Qualidade",qualityAutoHigh:"Alta Automaticamente",qualityAutoLow:"Baixa Automaticamente",qualityBest:"Melhor",qualityHigh:"Alta",qualityLow:"Baixa",qualityMedium:"Média",scale:"Escala",scaleAll:"Mostrar tudo",scaleFit:"Tamanho Exacto",scaleNoBorder:"Sem Limites",title:"Propriedades do Flash",vSpace:"Esp.Vert",validateHSpace:"HSpace tem de ser um numero.",validateSrc:"Por favor introduza a hiperligação URL",validateVSpace:"VSpace tem de ser um numero.",windowMode:"Modo de janela",windowModeOpaque:"Opaco", +windowModeTransparent:"Transparente",windowModeWindow:"Janela"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ro.js b/www/lib/ckeditor/plugins/flash/lang/ro.js new file mode 100644 index 00000000..8be6b18f --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ro",{access:"Acces script",accessAlways:"Întotdeauna",accessNever:"Niciodată",accessSameDomain:"Același domeniu",alignAbsBottom:"Jos absolut (Abs Bottom)",alignAbsMiddle:"Mijloc absolut (Abs Middle)",alignBaseline:"Linia de jos (Baseline)",alignTextTop:"Text sus",bgcolor:"Coloarea fundalului",chkFull:"Permite pe tot ecranul",chkLoop:"Repetă (Loop)",chkMenu:"Activează meniul flash",chkPlay:"Rulează automat",flashvars:"Variabile pentru flash",hSpace:"HSpace",properties:"Proprietăţile flashului", +propertiesTab:"Proprietăți",quality:"Calitate",qualityAutoHigh:"Auto înaltă",qualityAutoLow:"Auto Joasă",qualityBest:"Cea mai bună",qualityHigh:"Înaltă",qualityLow:"Joasă",qualityMedium:"Medie",scale:"Scală",scaleAll:"Arată tot",scaleFit:"Potriveşte",scaleNoBorder:"Fără bordură (No border)",title:"Proprietăţile flashului",vSpace:"VSpace",validateHSpace:"Hspace trebuie să fie un număr.",validateSrc:"Vă rugăm să scrieţi URL-ul",validateVSpace:"VSpace trebuie să fie un număr",windowMode:"Mod fereastră", +windowModeOpaque:"Opacă",windowModeTransparent:"Transparentă",windowModeWindow:"Fereastră"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ru.js b/www/lib/ckeditor/plugins/flash/lang/ru.js new file mode 100644 index 00000000..d4f39fb5 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ru",{access:"Доступ к скриптам",accessAlways:"Всегда",accessNever:"Никогда",accessSameDomain:"В том же домене",alignAbsBottom:"По низу текста",alignAbsMiddle:"По середине текста",alignBaseline:"По базовой линии",alignTextTop:"По верху текста",bgcolor:"Цвет фона",chkFull:"Разрешить полноэкранный режим",chkLoop:"Повторять",chkMenu:"Включить меню Flash",chkPlay:"Автоматическое воспроизведение",flashvars:"Переменные для Flash",hSpace:"Гориз. отступ",properties:"Свойства Flash", +propertiesTab:"Свойства",quality:"Качество",qualityAutoHigh:"Запуск на высоком",qualityAutoLow:"Запуск на низком",qualityBest:"Лучшее",qualityHigh:"Высокое",qualityLow:"Низкое",qualityMedium:"Среднее",scale:"Масштабировать",scaleAll:"Пропорционально",scaleFit:"Заполнять",scaleNoBorder:"Заходить за границы",title:"Свойства Flash",vSpace:"Вертик. отступ",validateHSpace:"Горизонтальный отступ задается числом.",validateSrc:"Вы должны ввести ссылку",validateVSpace:"Вертикальный отступ задается числом.", +windowMode:"Взаимодействие с окном",windowModeOpaque:"Непрозрачный",windowModeTransparent:"Прозрачный",windowModeWindow:"Обычный"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/si.js b/www/lib/ckeditor/plugins/flash/lang/si.js new file mode 100644 index 00000000..6184682d --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","si",{access:"පිටපත් ප්‍රවේශය",accessAlways:"හැමවිටම",accessNever:"කිසිදා නොවේ",accessSameDomain:"එකම වසමේ",alignAbsBottom:"පතුල",alignAbsMiddle:"Abs ",alignBaseline:"පාද රේඛාව",alignTextTop:"වගන්තිය ඉහල",bgcolor:"පසුබිම් වර්ණය",chkFull:"පුර්ණ තිරය සදහා අවසර",chkLoop:"පුඩුව",chkMenu:"සක්‍රිය බබලන මෙනුව",chkPlay:"ස්‌වයංක්‍රිය ක්‍රියාත්මක වීම",flashvars:"වෙනස්වන දත්ත",hSpace:"HSpace",properties:"බබලන ගුණ",propertiesTab:"ගුණ",quality:"තත්වය",qualityAutoHigh:"ස්‌වයංක්‍රිය ", +qualityAutoLow:" ස්‌වයංක්‍රිය ",qualityBest:"වඩාත් ගැලපෙන",qualityHigh:"ඉහළ",qualityLow:"පහළ",qualityMedium:"මධ්‍ය",scale:"පරිමාණ",scaleAll:"සියල්ල ",scaleFit:"හරියටම ගැලපෙන",scaleNoBorder:"මාඉම් නොමැති",title:"බබලන ",vSpace:"VSpace",validateHSpace:"HSpace සංක්‍යාවක් විය යුතුය.",validateSrc:"URL හිස් නොවිය ",validateVSpace:"VSpace සංක්‍යාවක් විය යුතුය",windowMode:"ජනෙල ක්‍රමය",windowModeOpaque:"විනිවිද පෙනෙන",windowModeTransparent:"විනිවිද පෙනෙන",windowModeWindow:"ජනෙල"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/sk.js b/www/lib/ckeditor/plugins/flash/lang/sk.js new file mode 100644 index 00000000..e959ca02 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sk",{access:"Prístup skriptu",accessAlways:"Vždy",accessNever:"Nikdy",accessSameDomain:"Rovnaká doména",alignAbsBottom:"Úplne dole",alignAbsMiddle:"Do stredu",alignBaseline:"Na základnú čiaru",alignTextTop:"Na horný okraj textu",bgcolor:"Farba pozadia",chkFull:"Povoliť zobrazenie na celú obrazovku (fullscreen)",chkLoop:"Opakovanie",chkMenu:"Povoliť Flash Menu",chkPlay:"Automatické prehrávanie",flashvars:"Premenné pre Flash",hSpace:"H-medzera",properties:"Vlastnosti Flashu", +propertiesTab:"Vlastnosti",quality:"Kvalita",qualityAutoHigh:"Automaticky vysoká",qualityAutoLow:"Automaticky nízka",qualityBest:"Najlepšia",qualityHigh:"Vysoká",qualityLow:"Nízka",qualityMedium:"Stredná",scale:"Mierka",scaleAll:"Zobraziť všetko",scaleFit:"Roztiahnuť, aby sedelo presne",scaleNoBorder:"Bez okrajov",title:"Vlastnosti Flashu",vSpace:"V-medzera",validateHSpace:"H-medzera musí byť číslo.",validateSrc:"URL nesmie byť prázdne.",validateVSpace:"V-medzera musí byť číslo",windowMode:"Mód okna", +windowModeOpaque:"Nepriehľadný",windowModeTransparent:"Priehľadný",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/sl.js b/www/lib/ckeditor/plugins/flash/lang/sl.js new file mode 100644 index 00000000..3de6413e --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sl",{access:"Dostop skript",accessAlways:"Vedno",accessNever:"Nikoli",accessSameDomain:"Samo ista domena",alignAbsBottom:"Popolnoma na dno",alignAbsMiddle:"Popolnoma v sredino",alignBaseline:"Na osnovno črto",alignTextTop:"Besedilo na vrh",bgcolor:"Barva ozadja",chkFull:"Dovoli celozaslonski način",chkLoop:"Ponavljanje",chkMenu:"Omogoči Flash Meni",chkPlay:"Samodejno predvajaj",flashvars:"Spremenljivke za Flash",hSpace:"Vodoravni razmik",properties:"Lastnosti Flash", +propertiesTab:"Lastnosti",quality:"Kakovost",qualityAutoHigh:"Samodejno visoka",qualityAutoLow:"Samodejno nizka",qualityBest:"Najvišja",qualityHigh:"Visoka",qualityLow:"Nizka",qualityMedium:"Srednja",scale:"Povečava",scaleAll:"Pokaži vse",scaleFit:"Natančno prileganje",scaleNoBorder:"Brez obrobe",title:"Lastnosti Flash",vSpace:"Navpični razmik",validateHSpace:"Vodoravni razmik mora biti število.",validateSrc:"Vnesite URL povezave",validateVSpace:"Navpični razmik mora biti število.",windowMode:"Vrsta okna", +windowModeOpaque:"Motno",windowModeTransparent:"Prosojno",windowModeWindow:"Okno"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/sq.js b/www/lib/ckeditor/plugins/flash/lang/sq.js new file mode 100644 index 00000000..bded5272 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sq",{access:"Qasja në Skriptë",accessAlways:"Gjithnjë",accessNever:"Asnjëherë",accessSameDomain:"Fusha e Njëjtë",alignAbsBottom:"Abs në Fund",alignAbsMiddle:"Abs në Mes",alignBaseline:"Baza",alignTextTop:"Koka e Tekstit",bgcolor:"Ngjyra e Prapavijës",chkFull:"Lejo Ekran të Plotë",chkLoop:"Përsëritje",chkMenu:"Lejo Menynë për Flash",chkPlay:"Auto Play",flashvars:"Variablat për Flash",hSpace:"Hapësira Horizontale",properties:"Karakteristikat për Flash",propertiesTab:"Karakteristikat", +quality:"Kualiteti",qualityAutoHigh:"Automatikisht i Lartë",qualityAutoLow:"Automatikisht i Ulët",qualityBest:"Më i Miri",qualityHigh:"I Lartë",qualityLow:"Më i Ulti",qualityMedium:"I Mesëm",scale:"Shkalla",scaleAll:"Shfaq të Gjitha",scaleFit:"Përputhje të Plotë",scaleNoBorder:"Pa Kornizë",title:"Rekuizitat për Flash",vSpace:"Hapësira Vertikale",validateHSpace:"Hapësira Horizontale duhet të është numër.",validateSrc:"URL nuk duhet mbetur zbrazur.",validateVSpace:"Hapësira Vertikale duhet të është numër.", +windowMode:"Window mode",windowModeOpaque:"Errët",windowModeTransparent:"Tejdukshëm",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/sr-latn.js b/www/lib/ckeditor/plugins/flash/lang/sr-latn.js new file mode 100644 index 00000000..641140c3 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr-latn",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs dole",alignAbsMiddle:"Abs sredina",alignBaseline:"Bazno",alignTextTop:"Vrh teksta",bgcolor:"Boja pozadine",chkFull:"Allow Fullscreen",chkLoop:"Ponavljaj",chkMenu:"Uključi fleš meni",chkPlay:"Automatski start",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Osobine fleša",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Skaliraj",scaleAll:"Prikaži sve",scaleFit:"Popuni površinu",scaleNoBorder:"Bez ivice",title:"Osobine fleša",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Unesite URL linka",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/sr.js b/www/lib/ckeditor/plugins/flash/lang/sr.js new file mode 100644 index 00000000..c62614dc --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","sr",{access:"Script Access",accessAlways:"Always",accessNever:"Never",accessSameDomain:"Same domain",alignAbsBottom:"Abs доле",alignAbsMiddle:"Abs средина",alignBaseline:"Базно",alignTextTop:"Врх текста",bgcolor:"Боја позадине",chkFull:"Allow Fullscreen",chkLoop:"Понављај",chkMenu:"Укључи флеш мени",chkPlay:"Аутоматски старт",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Особине Флеша",propertiesTab:"Properties",quality:"Quality",qualityAutoHigh:"Auto High", +qualityAutoLow:"Auto Low",qualityBest:"Best",qualityHigh:"High",qualityLow:"Low",qualityMedium:"Medium",scale:"Скалирај",scaleAll:"Прикажи све",scaleFit:"Попуни површину",scaleNoBorder:"Без ивице",title:"Особине флеша",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"Унесите УРЛ линка",validateVSpace:"VSpace must be a number.",windowMode:"Window mode",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent",windowModeWindow:"Window"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/sv.js b/www/lib/ckeditor/plugins/flash/lang/sv.js new file mode 100644 index 00000000..7c6edcc4 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","sv",{access:"Script-tillgång",accessAlways:"Alltid",accessNever:"Aldrig",accessSameDomain:"Samma domän",alignAbsBottom:"Absolut nederkant",alignAbsMiddle:"Absolut centrering",alignBaseline:"Baslinje",alignTextTop:"Text överkant",bgcolor:"Bakgrundsfärg",chkFull:"Tillåt helskärm",chkLoop:"Upprepa/Loopa",chkMenu:"Aktivera Flashmeny",chkPlay:"Automatisk uppspelning",flashvars:"Variabler för Flash",hSpace:"Horis. marginal",properties:"Flashegenskaper",propertiesTab:"Egenskaper", +quality:"Kvalitet",qualityAutoHigh:"Auto Hög",qualityAutoLow:"Auto Låg",qualityBest:"Bäst",qualityHigh:"Hög",qualityLow:"Låg",qualityMedium:"Medium",scale:"Skala",scaleAll:"Visa allt",scaleFit:"Exakt passning",scaleNoBorder:"Ingen ram",title:"Flashegenskaper",vSpace:"Vert. marginal",validateHSpace:"HSpace måste vara ett nummer.",validateSrc:"Var god ange länkens URL",validateVSpace:"VSpace måste vara ett nummer.",windowMode:"Fönsterläge",windowModeOpaque:"Opaque",windowModeTransparent:"Transparent", +windowModeWindow:"Fönster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/th.js b/www/lib/ckeditor/plugins/flash/lang/th.js new file mode 100644 index 00000000..49932348 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","th",{access:"การเข้าถึงสคริปต์",accessAlways:"ตลอดไป",accessNever:"ไม่เลย",accessSameDomain:"โดเมนเดียวกัน",alignAbsBottom:"ชิดด้านล่างสุด",alignAbsMiddle:"กึ่งกลาง",alignBaseline:"ชิดบรรทัด",alignTextTop:"ใต้ตัวอักษร",bgcolor:"สีพื้นหลัง",chkFull:"อนุญาตให้แสดงเต็มหน้าจอได้",chkLoop:"เล่นวนรอบ Loop",chkMenu:"ให้ใช้งานเมนูของ Flash",chkPlay:"เล่นอัตโนมัติ Auto Play",flashvars:"ตัวแปรสำหรับ Flas",hSpace:"ระยะแนวนอน",properties:"คุณสมบัติของไฟล์ Flash",propertiesTab:"คุณสมบัติ", +quality:"คุณภาพ",qualityAutoHigh:"ปรับคุณภาพสูงอัตโนมัติ",qualityAutoLow:"ปรับคุณภาพต่ำอัตโนมัติ",qualityBest:"ดีที่สุด",qualityHigh:"สูง",qualityLow:"ต่ำ",qualityMedium:"ปานกลาง",scale:"อัตราส่วน Scale",scaleAll:"แสดงให้เห็นทั้งหมด Show all",scaleFit:"แสดงให้พอดีกับพื้นที่ Exact Fit",scaleNoBorder:"ไม่แสดงเส้นขอบ No Border",title:"คุณสมบัติของไฟล์ Flash",vSpace:"ระยะแนวตั้ง",validateHSpace:"HSpace ต้องเป็นจำนวนตัวเลข",validateSrc:"กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",validateVSpace:"VSpace ต้องเป็นจำนวนตัวเลข", +windowMode:"โหมดหน้าต่าง",windowModeOpaque:"ความทึบแสง",windowModeTransparent:"ความโปรงแสง",windowModeWindow:"หน้าต่าง"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/tr.js b/www/lib/ckeditor/plugins/flash/lang/tr.js new file mode 100644 index 00000000..8d76aa2b --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tr",{access:"Kod İzni",accessAlways:"Herzaman",accessNever:"Asla",accessSameDomain:"Aynı domain",alignAbsBottom:"Tam Altı",alignAbsMiddle:"Tam Ortası",alignBaseline:"Taban Çizgisi",alignTextTop:"Yazı Tepeye",bgcolor:"Arka Renk",chkFull:"Tam ekrana İzinver",chkLoop:"Döngü",chkMenu:"Flash Menüsünü Kullan",chkPlay:"Otomatik Oynat",flashvars:"Flash Değerleri",hSpace:"Yatay Boşluk",properties:"Flash Özellikleri",propertiesTab:"Özellikler",quality:"Kalite",qualityAutoHigh:"Otomatik Yükseklik", +qualityAutoLow:"Otomatik Düşüklük",qualityBest:"En iyi",qualityHigh:"Yüksek",qualityLow:"Düşük",qualityMedium:"Orta",scale:"Boyutlandır",scaleAll:"Hepsini Göster",scaleFit:"Tam Sığdır",scaleNoBorder:"Kenar Yok",title:"Flash Özellikleri",vSpace:"Dikey Boşluk",validateHSpace:"HSpace sayı olmalıdır.",validateSrc:"Lütfen köprü URL'sini yazın",validateVSpace:"VSpace sayı olmalıdır.",windowMode:"Pencere modu",windowModeOpaque:"Opak",windowModeTransparent:"Şeffaf",windowModeWindow:"Pencere"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/tt.js b/www/lib/ckeditor/plugins/flash/lang/tt.js new file mode 100644 index 00000000..db937890 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","tt",{access:"Script Access",accessAlways:"Һəрвакыт",accessNever:"Беркайчан да",accessSameDomain:"Same domain",alignAbsBottom:"Иң аска",alignAbsMiddle:"Төгәл уртада",alignBaseline:"Таяныч сызыгы",alignTextTop:"Text Top",bgcolor:"Фон төсе",chkFull:"Allow Fullscreen",chkLoop:"Әйләнеш",chkMenu:"Enable Flash Menu",chkPlay:"Auto Play",flashvars:"Variables for Flash",hSpace:"HSpace",properties:"Флеш үзлекләре",propertiesTab:"Үзлекләр",quality:"Сыйфат",qualityAutoHigh:"Авто югары сыйфат", +qualityAutoLow:"Авто түбән сыйфат",qualityBest:"Иң югары сыйфат",qualityHigh:"Югары",qualityLow:"Түбəн",qualityMedium:"Уртача",scale:"Scale",scaleAll:"Барысын күрсәтү",scaleFit:"Exact Fit",scaleNoBorder:"Чиксез",title:"Флеш үзлекләре",vSpace:"VSpace",validateHSpace:"HSpace must be a number.",validateSrc:"URL must not be empty.",validateVSpace:"VSpace must be a number.",windowMode:"Тəрəзə тәртибе",windowModeOpaque:"Үтә күренмәле",windowModeTransparent:"Үтə күренмəле",windowModeWindow:"Тəрəзə"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/ug.js b/www/lib/ckeditor/plugins/flash/lang/ug.js new file mode 100644 index 00000000..36bdb424 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","ug",{access:"قوليازما زىيارەتكە يول قوي",accessAlways:"ھەمىشە",accessNever:"ھەرگىز",accessSameDomain:"ئوخشاش دائىرىدە",alignAbsBottom:"مۇتلەق ئاستى",alignAbsMiddle:"مۇتلەق ئوتتۇرا",alignBaseline:"ئاساسىي سىزىق",alignTextTop:"تېكىست ئۈستىدە",bgcolor:"تەگلىك رەڭگى",chkFull:"پۈتۈن ئېكراننى قوزغات",chkLoop:"دەۋرىي",chkMenu:"Flash تىزىملىكنى قوزغات",chkPlay:"ئۆزلۈكىدىن چال",flashvars:"Flash ئۆزگەرگۈچى",hSpace:"توغرىسىغا ئارىلىق",properties:"Flash خاسلىق",propertiesTab:"خاسلىق", +quality:"سۈپەت",qualityAutoHigh:"يۇقىرى (ئاپتوماتىك)",qualityAutoLow:"تۆۋەن (ئاپتوماتىك)",qualityBest:"ئەڭ ياخشى",qualityHigh:"يۇقىرى",qualityLow:"تۆۋەن",qualityMedium:"ئوتتۇرا (ئاپتوماتىك)",scale:"نىسبىتى",scaleAll:"ھەممىنى كۆرسەت",scaleFit:"قەتئىي ماسلىشىش",scaleNoBorder:"گىرۋەك يوق",title:"ماۋزۇ",vSpace:"بويىغا ئارىلىق",validateHSpace:"توغرىسىغا ئارىلىق چوقۇم سان بولىدۇ",validateSrc:"ئەسلى ھۆججەت ئادرېسىنى كىرگۈزۈڭ",validateVSpace:"بويىغا ئارىلىق چوقۇم سان بولىدۇ",windowMode:"كۆزنەك ھالىتى",windowModeOpaque:"خىرە", +windowModeTransparent:"سۈزۈك",windowModeWindow:"كۆزنەك گەۋدىسى"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/uk.js b/www/lib/ckeditor/plugins/flash/lang/uk.js new file mode 100644 index 00000000..cc458daf --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","uk",{access:"Доступ до скрипта",accessAlways:"Завжди",accessNever:"Ніколи",accessSameDomain:"З того ж домена",alignAbsBottom:"По нижньому краю (abs)",alignAbsMiddle:"По середині (abs)",alignBaseline:"По базовій лінії",alignTextTop:"Текст по верхньому краю",bgcolor:"Колір фону",chkFull:"Дозволити повноекранний перегляд",chkLoop:"Циклічно",chkMenu:"Дозволити меню Flash",chkPlay:"Автопрогравання",flashvars:"Змінні Flash",hSpace:"Гориз. відступ",properties:"Властивості Flash", +propertiesTab:"Властивості",quality:"Якість",qualityAutoHigh:"Автом. відмінна",qualityAutoLow:"Автом. низька",qualityBest:"Відмінна",qualityHigh:"Висока",qualityLow:"Низька",qualityMedium:"Середня",scale:"Масштаб",scaleAll:"Показати все",scaleFit:"Поч. розмір",scaleNoBorder:"Без рамки",title:"Властивості Flash",vSpace:"Верт. відступ",validateHSpace:"Гориз. відступ повинен бути цілим числом.",validateSrc:"Будь ласка, вкажіть URL посилання",validateVSpace:"Верт. відступ повинен бути цілим числом.", +windowMode:"Віконний режим",windowModeOpaque:"Непрозорість",windowModeTransparent:"Прозорість",windowModeWindow:"Вікно"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/vi.js b/www/lib/ckeditor/plugins/flash/lang/vi.js new file mode 100644 index 00000000..17a0c1b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("flash","vi",{access:"Truy cập mã",accessAlways:"Luôn luôn",accessNever:"Không bao giờ",accessSameDomain:"Cùng tên miền",alignAbsBottom:"Dưới tuyệt đối",alignAbsMiddle:"Giữa tuyệt đối",alignBaseline:"Đường cơ sở",alignTextTop:"Phía trên chữ",bgcolor:"Màu nền",chkFull:"Cho phép toàn màn hình",chkLoop:"Lặp",chkMenu:"Cho phép bật menu của Flash",chkPlay:"Tự động chạy",flashvars:"Các biến số dành cho Flash",hSpace:"Khoảng đệm ngang",properties:"Thuộc tính Flash",propertiesTab:"Thuộc tính", +quality:"Chất lượng",qualityAutoHigh:"Cao tự động",qualityAutoLow:"Thấp tự động",qualityBest:"Tốt nhất",qualityHigh:"Cao",qualityLow:"Thấp",qualityMedium:"Trung bình",scale:"Tỷ lệ",scaleAll:"Hiển thị tất cả",scaleFit:"Vừa vặn",scaleNoBorder:"Không đường viền",title:"Thuộc tính Flash",vSpace:"Khoảng đệm dọc",validateHSpace:"Khoảng đệm ngang phải là số nguyên.",validateSrc:"Hãy đưa vào đường dẫn liên kết",validateVSpace:"Khoảng đệm dọc phải là số nguyên.",windowMode:"Chế độ cửa sổ",windowModeOpaque:"Mờ đục", +windowModeTransparent:"Trong suốt",windowModeWindow:"Cửa sổ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/zh-cn.js b/www/lib/ckeditor/plugins/flash/lang/zh-cn.js new file mode 100644 index 00000000..d7be33ba --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh-cn",{access:"允许脚本访问",accessAlways:"总是",accessNever:"从不",accessSameDomain:"同域",alignAbsBottom:"绝对底部",alignAbsMiddle:"绝对居中",alignBaseline:"基线",alignTextTop:"文本上方",bgcolor:"背景颜色",chkFull:"启用全屏",chkLoop:"循环",chkMenu:"启用 Flash 菜单",chkPlay:"自动播放",flashvars:"Flash 变量",hSpace:"水平间距",properties:"Flash 属性",propertiesTab:"属性",quality:"质量",qualityAutoHigh:"高(自动)",qualityAutoLow:"低(自动)",qualityBest:"最好",qualityHigh:"高",qualityLow:"低",qualityMedium:"中(自动)",scale:"缩放",scaleAll:"全部显示", +scaleFit:"严格匹配",scaleNoBorder:"无边框",title:"标题",vSpace:"垂直间距",validateHSpace:"水平间距必须为数字格式",validateSrc:"请输入源文件地址",validateVSpace:"垂直间距必须为数字格式",windowMode:"窗体模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"窗体"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/lang/zh.js b/www/lib/ckeditor/plugins/flash/lang/zh.js new file mode 100644 index 00000000..83af6820 --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("flash","zh",{access:"腳本存取",accessAlways:"永遠",accessNever:"從不",accessSameDomain:"相同網域",alignAbsBottom:"絕對下方",alignAbsMiddle:"絕對置中",alignBaseline:"基準線",alignTextTop:"上層文字",bgcolor:"背景顏色",chkFull:"允許全螢幕",chkLoop:"重複播放",chkMenu:"啟用 Flash 選單",chkPlay:"自動播放",flashvars:"Flash 變數",hSpace:"HSpace",properties:"Flash 屬性​​",propertiesTab:"屬性",quality:"品質",qualityAutoHigh:"自動高",qualityAutoLow:"自動低",qualityBest:"最佳",qualityHigh:"高",qualityLow:"低",qualityMedium:"中",scale:"縮放比例",scaleAll:"全部顯示", +scaleFit:"最適化",scaleNoBorder:"無框線",title:"Flash 屬性​​",vSpace:"VSpace",validateHSpace:"HSpace 必須為數字。",validateSrc:"URL 不可為空白。",validateVSpace:"VSpace 必須為數字。",windowMode:"視窗模式",windowModeOpaque:"不透明",windowModeTransparent:"透明",windowModeWindow:"視窗"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/flash/plugin.js b/www/lib/ckeditor/plugins/flash/plugin.js new file mode 100644 index 00000000..a2a786ac --- /dev/null +++ b/www/lib/ckeditor/plugins/flash/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||f.test(a.src||"")}function e(a,b){return a.createFakeParserElement(b,"cke_flash","flash",!0)}var f=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"flash", +hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b="object[classid,codebase,height,hspace,vspace,width];param[name,value];embed[height,hspace,pluginspage,src,type,vspace,width]";CKEDITOR.dialog.isTabEnabled(a,"flash","properties")&&(b+=";object[align]; embed[allowscriptaccess,quality,scale,wmode]"); +CKEDITOR.dialog.isTabEnabled(a,"flash","advanced")&&(b+=";object[id]{*}; embed[bgcolor]{*}(*)");a.addCommand("flash",new CKEDITOR.dialogCommand("flash",{allowedContent:b,requiredContent:"embed"}));a.ui.addButton&&a.ui.addButton("Flash",{label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element; +b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!d(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!d(b.children[c]))break; +return e(a,b)}return null}return e(a,b)},"cke:embed":function(b){return!d(b)?null:e(a,b)}}},5)}})})();CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/af.js b/www/lib/ckeditor/plugins/font/lang/af.js new file mode 100644 index 00000000..0473fe90 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","af",{fontSize:{label:"Grootte",voiceLabel:"Fontgrootte",panelTitle:"Fontgrootte"},label:"Font",panelTitle:"Fontnaam",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ar.js b/www/lib/ckeditor/plugins/font/lang/ar.js new file mode 100644 index 00000000..cf81e27a --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ar",{fontSize:{label:"حجم الخط",voiceLabel:"حجم الخط",panelTitle:"حجم الخط"},label:"خط",panelTitle:"حجم الخط",voiceLabel:"حجم الخط"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/bg.js b/www/lib/ckeditor/plugins/font/lang/bg.js new file mode 100644 index 00000000..62e05fe6 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bg",{fontSize:{label:"Размер",voiceLabel:"Размер на шрифт",panelTitle:"Размер на шрифт"},label:"Шрифт",panelTitle:"Име на шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/bn.js b/www/lib/ckeditor/plugins/font/lang/bn.js new file mode 100644 index 00000000..98cd2702 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bn",{fontSize:{label:"সাইজ",voiceLabel:"Font Size",panelTitle:"সাইজ"},label:"ফন্ট",panelTitle:"ফন্ট",voiceLabel:"ফন্ট"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/bs.js b/www/lib/ckeditor/plugins/font/lang/bs.js new file mode 100644 index 00000000..171cdc18 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","bs",{fontSize:{label:"Velièina",voiceLabel:"Font Size",panelTitle:"Velièina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ca.js b/www/lib/ckeditor/plugins/font/lang/ca.js new file mode 100644 index 00000000..b710fa74 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ca",{fontSize:{label:"Mida",voiceLabel:"Mida de la lletra",panelTitle:"Mida de la lletra"},label:"Tipus de lletra",panelTitle:"Tipus de lletra",voiceLabel:"Tipus de lletra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/cs.js b/www/lib/ckeditor/plugins/font/lang/cs.js new file mode 100644 index 00000000..31c3d385 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cs",{fontSize:{label:"Velikost",voiceLabel:"Velikost písma",panelTitle:"Velikost"},label:"Písmo",panelTitle:"Písmo",voiceLabel:"Písmo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/cy.js b/www/lib/ckeditor/plugins/font/lang/cy.js new file mode 100644 index 00000000..d85cdff4 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","cy",{fontSize:{label:"Maint",voiceLabel:"Maint y Ffont",panelTitle:"Maint y Ffont"},label:"Ffont",panelTitle:"Enw'r Ffont",voiceLabel:"Ffont"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/da.js b/www/lib/ckeditor/plugins/font/lang/da.js new file mode 100644 index 00000000..24b02926 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","da",{fontSize:{label:"Skriftstørrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrifttype",panelTitle:"Skrifttype",voiceLabel:"Skrifttype"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/de.js b/www/lib/ckeditor/plugins/font/lang/de.js new file mode 100644 index 00000000..71bd88de --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","de",{fontSize:{label:"Größe",voiceLabel:"Schrifgröße",panelTitle:"Größe"},label:"Schriftart",panelTitle:"Schriftart",voiceLabel:"Schriftart"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/el.js b/www/lib/ckeditor/plugins/font/lang/el.js new file mode 100644 index 00000000..ecb9a8b2 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","el",{fontSize:{label:"Μέγεθος",voiceLabel:"Μέγεθος Γραμματοσειράς",panelTitle:"Μέγεθος Γραμματοσειράς"},label:"Γραμματοσειρά",panelTitle:"Όνομα Γραμματοσειράς",voiceLabel:"Γραμματοσειρά"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/en-au.js b/www/lib/ckeditor/plugins/font/lang/en-au.js new file mode 100644 index 00000000..8b19ae02 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-au",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/en-ca.js b/www/lib/ckeditor/plugins/font/lang/en-ca.js new file mode 100644 index 00000000..a41715d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-ca",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/en-gb.js b/www/lib/ckeditor/plugins/font/lang/en-gb.js new file mode 100644 index 00000000..aa7fd0d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en-gb",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/en.js b/www/lib/ckeditor/plugins/font/lang/en.js new file mode 100644 index 00000000..c332c074 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","en",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/eo.js b/www/lib/ckeditor/plugins/font/lang/eo.js new file mode 100644 index 00000000..bf6f5123 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eo",{fontSize:{label:"Grado",voiceLabel:"Tipara grado",panelTitle:"Tipara grado"},label:"Tiparo",panelTitle:"Tipara nomo",voiceLabel:"Tiparo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/es.js b/www/lib/ckeditor/plugins/font/lang/es.js new file mode 100644 index 00000000..c452c865 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","es",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño de fuente",panelTitle:"Tamaño"},label:"Fuente",panelTitle:"Fuente",voiceLabel:"Fuente"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/et.js b/www/lib/ckeditor/plugins/font/lang/et.js new file mode 100644 index 00000000..76f2b072 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","et",{fontSize:{label:"Suurus",voiceLabel:"Kirja suurus",panelTitle:"Suurus"},label:"Kiri",panelTitle:"Kiri",voiceLabel:"Kiri"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/eu.js b/www/lib/ckeditor/plugins/font/lang/eu.js new file mode 100644 index 00000000..941c541f --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","eu",{fontSize:{label:"Tamaina",voiceLabel:"Tamaina",panelTitle:"Tamaina"},label:"Letra-tipoa",panelTitle:"Letra-tipoa",voiceLabel:"Letra-tipoa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/fa.js b/www/lib/ckeditor/plugins/font/lang/fa.js new file mode 100644 index 00000000..b4b4cfca --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fa",{fontSize:{label:"اندازه",voiceLabel:"اندازه قلم",panelTitle:"اندازه قلم"},label:"قلم",panelTitle:"نام قلم",voiceLabel:"قلم"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/fi.js b/www/lib/ckeditor/plugins/font/lang/fi.js new file mode 100644 index 00000000..59de601f --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fi",{fontSize:{label:"Koko",voiceLabel:"Kirjaisimen koko",panelTitle:"Koko"},label:"Kirjaisinlaji",panelTitle:"Kirjaisinlaji",voiceLabel:"Kirjaisinlaji"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/fo.js b/www/lib/ckeditor/plugins/font/lang/fo.js new file mode 100644 index 00000000..2080e025 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fo",{fontSize:{label:"Skriftstødd",voiceLabel:"Skriftstødd",panelTitle:"Skriftstødd"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Skrift"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/fr-ca.js b/www/lib/ckeditor/plugins/font/lang/fr-ca.js new file mode 100644 index 00000000..bcf3fc12 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr-ca",{fontSize:{label:"Taille",voiceLabel:"Taille",panelTitle:"Taille"},label:"Police",panelTitle:"Police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/fr.js b/www/lib/ckeditor/plugins/font/lang/fr.js new file mode 100644 index 00000000..32486dc7 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","fr",{fontSize:{label:"Taille",voiceLabel:"Taille de police",panelTitle:"Taille de police"},label:"Police",panelTitle:"Style de police",voiceLabel:"Police"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/gl.js b/www/lib/ckeditor/plugins/font/lang/gl.js new file mode 100644 index 00000000..74fdf0d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gl",{fontSize:{label:"Tamaño",voiceLabel:"Tamaño da letra",panelTitle:"Tamaño da letra"},label:"Tipo de letra",panelTitle:"Nome do tipo de letra",voiceLabel:"Tipo de letra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/gu.js b/www/lib/ckeditor/plugins/font/lang/gu.js new file mode 100644 index 00000000..7c1a2670 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","gu",{fontSize:{label:"ફૉન્ટ સાઇઝ/કદ",voiceLabel:"ફોન્ટ સાઈઝ",panelTitle:"ફૉન્ટ સાઇઝ/કદ"},label:"ફૉન્ટ",panelTitle:"ફૉન્ટ",voiceLabel:"ફોન્ટ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/he.js b/www/lib/ckeditor/plugins/font/lang/he.js new file mode 100644 index 00000000..a712a5a3 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","he",{fontSize:{label:"גודל",voiceLabel:"גודל",panelTitle:"גודל"},label:"גופן",panelTitle:"גופן",voiceLabel:"גופן"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/hi.js b/www/lib/ckeditor/plugins/font/lang/hi.js new file mode 100644 index 00000000..2c66d5f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hi",{fontSize:{label:"साइज़",voiceLabel:"Font Size",panelTitle:"साइज़"},label:"फ़ॉन्ट",panelTitle:"फ़ॉन्ट",voiceLabel:"फ़ॉन्ट"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/hr.js b/www/lib/ckeditor/plugins/font/lang/hr.js new file mode 100644 index 00000000..4cb480d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hr",{fontSize:{label:"Veličina",voiceLabel:"Veličina slova",panelTitle:"Veličina"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/hu.js b/www/lib/ckeditor/plugins/font/lang/hu.js new file mode 100644 index 00000000..e9edbdb1 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","hu",{fontSize:{label:"Méret",voiceLabel:"Betűméret",panelTitle:"Méret"},label:"Betűtípus",panelTitle:"Betűtípus",voiceLabel:"Betűtípus"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/id.js b/www/lib/ckeditor/plugins/font/lang/id.js new file mode 100644 index 00000000..22b03078 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","id",{fontSize:{label:"Ukuran",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/is.js b/www/lib/ckeditor/plugins/font/lang/is.js new file mode 100644 index 00000000..9fbd17d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","is",{fontSize:{label:"Leturstærð ",voiceLabel:"Font Size",panelTitle:"Leturstærð "},label:"Leturgerð ",panelTitle:"Leturgerð ",voiceLabel:"Leturgerð "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/it.js b/www/lib/ckeditor/plugins/font/lang/it.js new file mode 100644 index 00000000..146a8fb5 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","it",{fontSize:{label:"Dimensione",voiceLabel:"Dimensione Carattere",panelTitle:"Dimensione"},label:"Carattere",panelTitle:"Carattere",voiceLabel:"Carattere"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ja.js b/www/lib/ckeditor/plugins/font/lang/ja.js new file mode 100644 index 00000000..c7e579ed --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ja",{fontSize:{label:"サイズ",voiceLabel:"フォントサイズ",panelTitle:"フォントサイズ"},label:"フォント",panelTitle:"フォント",voiceLabel:"フォント"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ka.js b/www/lib/ckeditor/plugins/font/lang/ka.js new file mode 100644 index 00000000..a45a4b5c --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ka",{fontSize:{label:"ზომა",voiceLabel:"ტექსტის ზომა",panelTitle:"ტექსტის ზომა"},label:"ფონტი",panelTitle:"ფონტის სახელი",voiceLabel:"ფონტი"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/km.js b/www/lib/ckeditor/plugins/font/lang/km.js new file mode 100644 index 00000000..b817819b --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","km",{fontSize:{label:"ទំហំ",voiceLabel:"ទំហំ​អក្សរ",panelTitle:"ទំហំ​អក្សរ"},label:"ពុម្ព​អក្សរ",panelTitle:"ឈ្មោះ​ពុម្ព​អក្សរ",voiceLabel:"ពុម្ព​អក្សរ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ko.js b/www/lib/ckeditor/plugins/font/lang/ko.js new file mode 100644 index 00000000..b6b66210 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ko",{fontSize:{label:"글자 크기",voiceLabel:"Font Size",panelTitle:"글자 크기"},label:"폰트",panelTitle:"폰트",voiceLabel:"폰트"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ku.js b/www/lib/ckeditor/plugins/font/lang/ku.js new file mode 100644 index 00000000..9e2d5582 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ku",{fontSize:{label:"گەورەیی",voiceLabel:"گەورەیی فۆنت",panelTitle:"گەورەیی فۆنت"},label:"فۆنت",panelTitle:"ناوی فۆنت",voiceLabel:"فۆنت"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/lt.js b/www/lib/ckeditor/plugins/font/lang/lt.js new file mode 100644 index 00000000..c613a9d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lt",{fontSize:{label:"Šrifto dydis",voiceLabel:"Šrifto dydis",panelTitle:"Šrifto dydis"},label:"Šriftas",panelTitle:"Šriftas",voiceLabel:"Šriftas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/lv.js b/www/lib/ckeditor/plugins/font/lang/lv.js new file mode 100644 index 00000000..023b054f --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","lv",{fontSize:{label:"Izmērs",voiceLabel:"Fonta izmeŗs",panelTitle:"Izmērs"},label:"Šrifts",panelTitle:"Šrifts",voiceLabel:"Fonts"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/mk.js b/www/lib/ckeditor/plugins/font/lang/mk.js new file mode 100644 index 00000000..c47889e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mk",{fontSize:{label:"Size",voiceLabel:"Font Size",panelTitle:"Font Size"},label:"Font",panelTitle:"Font Name",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/mn.js b/www/lib/ckeditor/plugins/font/lang/mn.js new file mode 100644 index 00000000..855b36e8 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","mn",{fontSize:{label:"Хэмжээ",voiceLabel:"Үсгийн хэмжээ",panelTitle:"Үсгийн хэмжээ"},label:"Үсгийн хэлбэр",panelTitle:"Үгсийн хэлбэрийн нэр",voiceLabel:"Үгсийн хэлбэр"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ms.js b/www/lib/ckeditor/plugins/font/lang/ms.js new file mode 100644 index 00000000..bf2cac96 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ms",{fontSize:{label:"Saiz",voiceLabel:"Font Size",panelTitle:"Saiz"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/nb.js b/www/lib/ckeditor/plugins/font/lang/nb.js new file mode 100644 index 00000000..3e85a266 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nb",{fontSize:{label:"Størrelse",voiceLabel:"Skriftstørrelse",panelTitle:"Skriftstørrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/nl.js b/www/lib/ckeditor/plugins/font/lang/nl.js new file mode 100644 index 00000000..301a9424 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","nl",{fontSize:{label:"Lettergrootte",voiceLabel:"Lettergrootte",panelTitle:"Lettergrootte"},label:"Lettertype",panelTitle:"Lettertype",voiceLabel:"Lettertype"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/no.js b/www/lib/ckeditor/plugins/font/lang/no.js new file mode 100644 index 00000000..2e45e27c --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","no",{fontSize:{label:"Størrelse",voiceLabel:"Font Størrelse",panelTitle:"Størrelse"},label:"Skrift",panelTitle:"Skrift",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/pl.js b/www/lib/ckeditor/plugins/font/lang/pl.js new file mode 100644 index 00000000..f15dd769 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pl",{fontSize:{label:"Rozmiar",voiceLabel:"Rozmiar czcionki",panelTitle:"Rozmiar"},label:"Czcionka",panelTitle:"Czcionka",voiceLabel:"Czcionka"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/pt-br.js b/www/lib/ckeditor/plugins/font/lang/pt-br.js new file mode 100644 index 00000000..bfe0147b --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt-br",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da fonte",panelTitle:"Tamanho"},label:"Fonte",panelTitle:"Fonte",voiceLabel:"Fonte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/pt.js b/www/lib/ckeditor/plugins/font/lang/pt.js new file mode 100644 index 00000000..06de8cd0 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","pt",{fontSize:{label:"Tamanho",voiceLabel:"Tamanho da Letra",panelTitle:"Tamanho da Letra"},label:"Tipo de Letra",panelTitle:"Nome do Tipo de Letra",voiceLabel:"Tipo de Letra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ro.js b/www/lib/ckeditor/plugins/font/lang/ro.js new file mode 100644 index 00000000..2b101811 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ro",{fontSize:{label:"Mărime",voiceLabel:"Font Size",panelTitle:"Mărime"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ru.js b/www/lib/ckeditor/plugins/font/lang/ru.js new file mode 100644 index 00000000..c5407217 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ru",{fontSize:{label:"Размер",voiceLabel:"Размер шрифта",panelTitle:"Размер шрифта"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/si.js b/www/lib/ckeditor/plugins/font/lang/si.js new file mode 100644 index 00000000..c6246daf --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","si",{fontSize:{label:"විශාලත්වය",voiceLabel:"අක්ෂර විශාලත්වය",panelTitle:"අක්ෂර විශාලත්වය"},label:"අක්ෂරය",panelTitle:"අක්ෂර නාමය",voiceLabel:"අක්ෂර"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/sk.js b/www/lib/ckeditor/plugins/font/lang/sk.js new file mode 100644 index 00000000..e09e8d4c --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sk",{fontSize:{label:"Veľkosť",voiceLabel:"Veľkosť písma",panelTitle:"Veľkosť písma"},label:"Font",panelTitle:"Názov fontu",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/sl.js b/www/lib/ckeditor/plugins/font/lang/sl.js new file mode 100644 index 00000000..061fea48 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sl",{fontSize:{label:"Velikost",voiceLabel:"Velikost",panelTitle:"Velikost"},label:"Pisava",panelTitle:"Pisava",voiceLabel:"Pisava"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/sq.js b/www/lib/ckeditor/plugins/font/lang/sq.js new file mode 100644 index 00000000..c7c95938 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sq",{fontSize:{label:"Madhësia",voiceLabel:"Madhësia e Shkronjës",panelTitle:"Madhësia e Shkronjës"},label:"Shkronja",panelTitle:"Emri i Shkronjës",voiceLabel:"Shkronja"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/sr-latn.js b/www/lib/ckeditor/plugins/font/lang/sr-latn.js new file mode 100644 index 00000000..87604c2f --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr-latn",{fontSize:{label:"Veličina fonta",voiceLabel:"Font Size",panelTitle:"Veličina fonta"},label:"Font",panelTitle:"Font",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/sr.js b/www/lib/ckeditor/plugins/font/lang/sr.js new file mode 100644 index 00000000..5e2276d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sr",{fontSize:{label:"Величина фонта",voiceLabel:"Font Size",panelTitle:"Величина фонта"},label:"Фонт",panelTitle:"Фонт",voiceLabel:"Фонт"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/sv.js b/www/lib/ckeditor/plugins/font/lang/sv.js new file mode 100644 index 00000000..6eb9e8e0 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","sv",{fontSize:{label:"Storlek",voiceLabel:"Teckenstorlek",panelTitle:"Teckenstorlek"},label:"Typsnitt",panelTitle:"Typsnitt",voiceLabel:"Typsnitt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/th.js b/www/lib/ckeditor/plugins/font/lang/th.js new file mode 100644 index 00000000..464cab1f --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","th",{fontSize:{label:"ขนาด",voiceLabel:"Font Size",panelTitle:"ขนาด"},label:"แบบอักษร",panelTitle:"แบบอักษร",voiceLabel:"แบบอักษร"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/tr.js b/www/lib/ckeditor/plugins/font/lang/tr.js new file mode 100644 index 00000000..424f6652 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tr",{fontSize:{label:"Boyut",voiceLabel:"Font Size",panelTitle:"Boyut"},label:"Yazı Türü",panelTitle:"Yazı Türü",voiceLabel:"Font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/tt.js b/www/lib/ckeditor/plugins/font/lang/tt.js new file mode 100644 index 00000000..623cbcb4 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","tt",{fontSize:{label:"Зурлык",voiceLabel:"Шрифт зурлыклары",panelTitle:"Шрифт зурлыклары"},label:"Шрифт",panelTitle:"Шрифт исеме",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/ug.js b/www/lib/ckeditor/plugins/font/lang/ug.js new file mode 100644 index 00000000..235c677f --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","ug",{fontSize:{label:"چوڭلۇقى",voiceLabel:"خەت چوڭلۇقى",panelTitle:"چوڭلۇقى"},label:"خەت نۇسخا",panelTitle:"خەت نۇسخا",voiceLabel:"خەت نۇسخا"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/uk.js b/www/lib/ckeditor/plugins/font/lang/uk.js new file mode 100644 index 00000000..8a2387fe --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","uk",{fontSize:{label:"Розмір",voiceLabel:"Розмір шрифту",panelTitle:"Розмір"},label:"Шрифт",panelTitle:"Шрифт",voiceLabel:"Шрифт"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/vi.js b/www/lib/ckeditor/plugins/font/lang/vi.js new file mode 100644 index 00000000..e082b7b6 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","vi",{fontSize:{label:"Cỡ chữ",voiceLabel:"Kích cỡ phông",panelTitle:"Cỡ chữ"},label:"Phông",panelTitle:"Phông",voiceLabel:"Phông"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/zh-cn.js b/www/lib/ckeditor/plugins/font/lang/zh-cn.js new file mode 100644 index 00000000..370710a5 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh-cn",{fontSize:{label:"大小",voiceLabel:"文字大小",panelTitle:"大小"},label:"字体",panelTitle:"字体",voiceLabel:"字体"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/lang/zh.js b/www/lib/ckeditor/plugins/font/lang/zh.js new file mode 100644 index 00000000..a2716813 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("font","zh",{fontSize:{label:"大小",voiceLabel:"字型大小",panelTitle:"字型大小"},label:"字型",panelTitle:"字型名稱",voiceLabel:"字型"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/font/plugin.js b/www/lib/ckeditor/plugins/font/plugin.js new file mode 100644 index 00000000..dba4cae1 --- /dev/null +++ b/www/lib/ckeditor/plugins/font/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(b,a,e,h,j,n,l,o){for(var p=b.config,k=new CKEDITOR.style(l),c=j.split(";"),j=[],g={},d=0;d<c.length;d++){var f=c[d];if(f){var f=f.split("/"),m={},i=c[d]=f[0];m[e]=j[d]=f[1]||i;g[i]=new CKEDITOR.style(l,m);g[i]._.definition.name=i}else c.splice(d--,1)}b.ui.addRichCombo(a,{label:h.label,title:h.panelTitle,toolbar:"styles,"+o,allowedContent:k,requiredContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(p.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}}, +init:function(){this.startGroup(h.panelTitle);for(var b=0;b<c.length;b++){var a=c[b];this.add(a,g[a].buildPreview(),a)}},onClick:function(a){b.focus();b.fire("saveSnapshot");var c=g[a];b[this.getValue()==a?"removeStyle":"applyStyle"](c);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){for(var c=this.getValue(),a=a.data.path.elements,d=0,f;d<a.length;d++){f=a[d];for(var e in g)if(g[e].checkElementMatch(f,!0,b)){e!=c&&this.setValue(e);return}}this.setValue("",n)},this)}, +refresh:function(){b.activeFilter.check(k)||this.setState(CKEDITOR.TRISTATE_DISABLED)}})}CKEDITOR.plugins.add("font",{requires:"richcombo",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(b){var a=b.config;e(b,"Font","family",b.lang.font,a.font_names,a.font_defaultLabel,a.font_style,30);e(b,"FontSize","size", +b.lang.font.fontSize,a.fontSize_sizes,a.fontSize_defaultLabel,a.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif"; +CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]}; \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/button.js b/www/lib/ckeditor/plugins/forms/dialogs/button.js new file mode 100644 index 00000000..56a4efdd --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/button.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("button",function(b){function d(a){var b=this.getValue();b?(a.attributes[this.id]=b,"name"==this.id&&(a.attributes["data-cke-saved-name"]=b)):(delete a.attributes[this.id],"name"==this.id&&delete a.attributes["data-cke-saved-name"])}return{title:b.lang.forms.button.title,minWidth:350,minHeight:150,onShow:function(){delete this.button;var a=this.getParentEditor().getSelection().getSelectedElement();a&&a.is("input")&&a.getAttribute("type")in{button:1,reset:1,submit:1}&&(this.button= +a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.button,d=!b,c=b?CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]:new CKEDITOR.htmlParser.element("input");this.commitContent(c);var e=new CKEDITOR.htmlParser.basicWriter;c.writeHtml(e);c=CKEDITOR.dom.element.createFromHtml(e.getHtml(),a.document);d?a.insertElement(c):(c.replace(b),a.getSelection().selectElement(c))},contents:[{id:"info",label:b.lang.forms.button.title,title:b.lang.forms.button.title,elements:[{id:"name", +type:"text",label:b.lang.common.name,"default":"",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:d},{id:"value",type:"text",label:b.lang.forms.button.text,accessKey:"V","default":"",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:d},{id:"type",type:"select",label:b.lang.forms.button.type,"default":"button",accessKey:"T",items:[[b.lang.forms.button.typeBtn,"button"],[b.lang.forms.button.typeSbm,"submit"],[b.lang.forms.button.typeRst, +"reset"]],setup:function(a){this.setValue(a.getAttribute("type")||"")},commit:d}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js b/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js new file mode 100644 index 00000000..65f1be60 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/checkbox.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkbox",function(d){return{title:d.lang.forms.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){delete this.checkbox;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"checkbox"==a.getAttribute("type")&&(this.checkbox=a,this.setupContent(a))},onOk:function(){var a,b=this.checkbox;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","checkbox"),a.insertElement(b));this.commitContent({element:b})},contents:[{id:"info", +label:d.lang.forms.checkboxAndRadio.checkboxTitle,title:d.lang.forms.checkboxAndRadio.checkboxTitle,startupFocus:"txtName",elements:[{id:"txtName",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",label:d.lang.forms.checkboxAndRadio.value, +"default":"",accessKey:"V",setup:function(a){a=a.getAttribute("value");this.setValue(CKEDITOR.env.ie&&"on"==a?"":a)},commit:function(a){var b=a.element,c=this.getValue();c&&!(CKEDITOR.env.ie&&"on"==c)?b.setAttribute("value",c):CKEDITOR.env.ie?(c=new CKEDITOR.dom.element("input",b.getDocument()),b.copyAttributes(c,{value:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c):b.removeAttribute("value")}},{id:"cmbSelected",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"", +accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=!!b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="checkbox"'+(e?' checked="checked"':"")+"/>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/form.js b/www/lib/ckeditor/plugins/forms/dialogs/form.js new file mode 100644 index 00000000..86267185 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/form.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("form",function(a){var d={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.forms.form.title,minWidth:350,minHeight:200,onShow:function(){delete this.form;var b=this.getParentEditor().elementPath().contains("form",1);b&&(this.form=b,this.setupContent(b))},onOk:function(){var b,a=this.form,c=!a;c&&(b=this.getParentEditor(),a=b.document.createElement("form"),a.appendBogus());c&&b.insertElement(a);this.commitContent(a)},onLoad:function(){function a(b){this.setValue(b.getAttribute(this.id)|| +"")}function e(a){this.getValue()?a.setAttribute(this.id,this.getValue()):a.removeAttribute(this.id)}this.foreach(function(c){d[c.id]&&(c.setup=a,c.commit=e)})},contents:[{id:"info",label:a.lang.forms.form.title,title:a.lang.forms.form.title,elements:[{id:"txtName",type:"text",label:a.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name", +!1),a.removeAttribute("name"))}},{id:"action",type:"text",label:a.lang.forms.form.action,"default":"",accessKey:"T"},{type:"hbox",widths:["45%","55%"],children:[{id:"id",type:"text",label:a.lang.common.id,"default":"",accessKey:"I"},{id:"enctype",type:"select",label:a.lang.forms.form.encoding,style:"width:100%",accessKey:"E","default":"",items:[[""],["text/plain"],["multipart/form-data"],["application/x-www-form-urlencoded"]]}]},{type:"hbox",widths:["45%","55%"],children:[{id:"target",type:"select", +label:a.lang.common.target,style:"width:100%",accessKey:"M","default":"",items:[[a.lang.common.notSet,""],[a.lang.common.targetNew,"_blank"],[a.lang.common.targetTop,"_top"],[a.lang.common.targetSelf,"_self"],[a.lang.common.targetParent,"_parent"]]},{id:"method",type:"select",label:a.lang.forms.form.method,accessKey:"M","default":"GET",items:[["GET","get"],["POST","post"]]}]}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js b/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js new file mode 100644 index 00000000..f4699b7d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/hiddenfield.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("hiddenfield",function(d){return{title:d.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){delete this.hiddenField;var a=this.getParentEditor(),b=a.getSelection(),c=b.getSelectedElement();c&&(c.data("cke-real-element-type")&&"hiddenfield"==c.data("cke-real-element-type"))&&(this.hiddenField=c,c=a.restoreRealElement(this.hiddenField),this.setupContent(c),b.selectElement(this.hiddenField))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name"); +this.getValueOf("info","value");var b=this.getParentEditor(),a=CKEDITOR.env.ie&&!(8<=CKEDITOR.document.$.documentMode)?b.document.createElement('<input name="'+CKEDITOR.tools.htmlEncode(a)+'">'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title, +elements:[{id:"_cke_saved_name",type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()): +a.removeAttribute("value")}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/radio.js b/www/lib/ckeditor/plugins/forms/dialogs/radio.js new file mode 100644 index 00000000..1af693e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/radio.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("radio",function(d){return{title:d.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&("input"==a.getName()&&"radio"==a.getAttribute("type"))&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"));c&&a.insertElement(b);this.commitContent({element:b})}, +contents:[{id:"info",label:d.lang.forms.checkboxAndRadio.radioTitle,title:d.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:d.lang.forms.checkboxAndRadio.value,"default":"", +accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="radio"'+ +(e?' checked="checked"':"")+"></input>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/select.js b/www/lib/ckeditor/plugins/forms/dialogs/select.js new file mode 100644 index 00000000..a6c50e20 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/select.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("select",function(c){function h(a,b,e,d,c){a=f(a);d=d?d.createElement("OPTION"):document.createElement("OPTION");if(a&&d&&"option"==d.getName())CKEDITOR.env.ie?(isNaN(parseInt(c,10))?a.$.options.add(d.$):a.$.options.add(d.$,c),d.$.innerHTML=0<b.length?b:"",d.$.value=e):(null!==c&&c<a.getChildCount()?a.getChild(0>c?0:c).insertBeforeMe(d):a.append(d),d.setText(0<b.length?b:""),d.setValue(e));else return!1;return d}function m(a){for(var a=f(a),b=g(a),e=a.getChildren().count()-1;0<= +e;e--)a.getChild(e).$.selected&&a.getChild(e).remove();i(a,b)}function n(a,b,e,d){a=f(a);if(0>b)return!1;a=a.getChild(b);a.setText(e);a.setValue(d);return a}function k(a){for(a=f(a);a.getChild(0)&&a.getChild(0).remove(););}function j(a,b,e){var a=f(a),d=g(a);if(0>d)return!1;b=d+b;b=0>b?0:b;b=b>=a.getChildCount()?a.getChildCount()-1:b;if(d==b)return!1;var d=a.getChild(d),c=d.getText(),o=d.getValue();d.remove();d=h(a,c,o,!e?null:e,b);i(a,b);return d}function g(a){return(a=f(a))?a.$.selectedIndex:-1} +function i(a,b){a=f(a);if(0>b)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function l(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){delete this.selectBox;this.setupContent("clear");var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"select"==a.getName()){this.selectBox= +a;this.setupContent(a.getName(),a);for(var a=l(a),b=0;b<a.count();b++)this.setupContent("option",a.getItem(b))}},onOk:function(){var a=this.getParentEditor(),b=this.selectBox,e=!b;e&&(b=a.document.createElement("select"));this.commitContent(b);if(e&&(a.insertElement(b),CKEDITOR.env.ie)){var d=a.getSelection(),c=d.createBookmarks();setTimeout(function(){d.selectBookmarks(c)},0)}},contents:[{id:"info",label:c.lang.forms.select.selectInfo,title:c.lang.forms.select.selectInfo,accessKey:"",elements:[{id:"txtName", +type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.common.name,"default":"",accessKey:"N",style:"width:350px",setup:function(a,b){"clear"==a?this.setValue(this["default"]||""):"select"==a&&this.setValue(b.data("cke-saved-name")||b.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.forms.select.value, +style:"width:350px","default":"",className:"cke_disabled",onLoad:function(){this.getInputElement().setAttribute("readOnly",!0)},setup:function(a,b){"clear"==a?this.setValue(""):"option"==a&&b.getAttribute("selected")&&this.setValue(b.$.value)}},{type:"hbox",widths:["175px","170px"],children:[{id:"txtSize",type:"text",labelLayout:"horizontal",label:c.lang.forms.select.size,"default":"",accessKey:"S",style:"width:175px",validate:function(){var a=CKEDITOR.dialog.validate.integer(c.lang.common.validateNumberFailed); +return""===this.getValue()||a.apply(this)},setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("size")||"");CKEDITOR.env.webkit&&this.getInputElement().setStyle("width","86px")},commit:function(a){this.getValue()?a.setAttribute("size",this.getValue()):a.removeAttribute("size")}},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.lines)+"</span>"}]},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.opAvail)+"</span>"},{type:"hbox",widths:["115px", +"115px","100px"],children:[{type:"vbox",children:[{id:"txtOptName",type:"text",label:c.lang.forms.select.opText,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbName",label:"",title:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(this.getValue());a.setValue(b.getValue())}, +setup:function(a,b){"clear"==a?k(this):"option"==a&&h(this,b.getText(),b.getText(),this.getDialog().getParentEditor().document)},commit:function(a){var b=this.getDialog(),e=l(this),d=l(b.getContentElement("info","cmbValue")),c=b.getContentElement("info","txtValue").getValue();k(a);for(var f=0;f<e.count();f++){var g=h(a,e.getItem(f).getValue(),d.getItem(f).getValue(),b.getParentEditor().document);d.getItem(f).getValue()==c&&(g.setAttribute("selected","selected"),g.selected=!0)}}}]},{type:"vbox",children:[{id:"txtOptValue", +type:"text",label:c.lang.forms.select.opValue,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbValue",label:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(b.getValue());a.setValue(this.getValue())},setup:function(a,b){if("clear"==a)k(this);else if("option"== +a){var e=b.getValue();h(this,e,e,this.getDialog().getParentEditor().document);"selected"==b.getAttribute("selected")&&this.getDialog().getContentElement("info","txtValue").setValue(e)}}}]},{type:"vbox",padding:5,children:[{type:"button",id:"btnAdd",style:"",label:c.lang.forms.select.btnAdd,title:c.lang.forms.select.btnAdd,style:"width:100%;",onClick:function(){var a=this.getDialog();a.getParentEditor();var b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info", +"cmbName"),c=a.getContentElement("info","cmbValue");h(d,b.getValue(),b.getValue(),a.getParentEditor().document);h(c,e.getValue(),e.getValue(),a.getParentEditor().document);b.setValue("");e.setValue("")}},{type:"button",id:"btnModify",label:c.lang.forms.select.btnModify,title:c.lang.forms.select.btnModify,style:"width:100%;",onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info","cmbName"),a=a.getContentElement("info", +"cmbValue"),c=g(d);0<=c&&(n(d,c,b.getValue(),b.getValue()),n(a,c,e.getValue(),e.getValue()))}},{type:"button",id:"btnUp",style:"width:100%;",label:c.lang.forms.select.btnUp,title:c.lang.forms.select.btnUp,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,-1,a.getParentEditor().document);j(c,-1,a.getParentEditor().document)}},{type:"button",id:"btnDown",style:"width:100%;",label:c.lang.forms.select.btnDown,title:c.lang.forms.select.btnDown, +onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,1,a.getParentEditor().document);j(c,1,a.getParentEditor().document)}}]}]},{type:"hbox",widths:["40%","20%","40%"],children:[{type:"button",id:"btnSetValue",label:c.lang.forms.select.btnSetValue,title:c.lang.forms.select.btnSetValue,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue");a.getContentElement("info","txtValue").setValue(b.getValue())}}, +{type:"button",id:"btnDelete",label:c.lang.forms.select.btnDelete,title:c.lang.forms.select.btnDelete,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue"),d=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue");m(b);m(c);d.setValue("");a.setValue("")}},{id:"chkMulti",type:"checkbox",label:c.lang.forms.select.chkMulti,"default":"",accessKey:"M",value:"checked",setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("multiple")); +CKEDITOR.env.webkit&&this.getElement().getParent().setStyle("vertical-align","middle")},commit:function(a){this.getValue()?a.setAttribute("multiple",this.getValue()):a.removeAttribute("multiple")}}]}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/textarea.js b/www/lib/ckeditor/plugins/forms/dialogs/textarea.js new file mode 100644 index 00000000..de8b3187 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/textarea.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title, +elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed), +setup:function(a){this.setValue(a.hasAttribute("cols")&&a.getAttribute("cols")||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){this.setValue(a.hasAttribute("rows")&&a.getAttribute("rows")||"")},commit:function(a){this.getValue()?a.setAttribute("rows", +this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/dialogs/textfield.js b/www/lib/ckeditor/plugins/forms/dialogs/textfield.js new file mode 100644 index 00000000..46b006e2 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/dialogs/textfield.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("textfield",function(b){function e(a){var a=a.element,c=this.getValue();c?a.setAttribute(this.id,c):a.removeAttribute(this.id)}function f(a){this.setValue(a.hasAttribute(this.id)&&a.getAttribute(this.id)||"")}var g={email:1,password:1,search:1,tel:1,text:1,url:1};return{title:b.lang.forms.textfield.title,minWidth:350,minHeight:150,onShow:function(){delete this.textField;var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"input"==a.getName()&&(g[a.getAttribute("type")]|| +!a.getAttribute("type")))this.textField=a,this.setupContent(a)},onOk:function(){var a=this.getParentEditor(),c=this.textField,b=!c;b&&(c=a.document.createElement("input"),c.setAttribute("type","text"));c={element:c};b&&a.insertElement(c.element);this.commitContent(c);b||a.getSelection().selectElement(c.element)},onLoad:function(){this.foreach(function(a){if(a.getValue&&(a.setup||(a.setup=f),!a.commit))a.commit=e})},contents:[{id:"info",label:b.lang.forms.textfield.title,title:b.lang.forms.textfield.title, +elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"_cke_saved_name",type:"text",label:b.lang.forms.textfield.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.textfield.value,"default":"",accessKey:"V",commit:function(a){if(CKEDITOR.env.ie&& +!this.getValue()){var c=a.element,d=new CKEDITOR.dom.element("input",b.document);c.copyAttributes(d,{value:1});d.replace(c);a.element=d}else e.call(this,a)}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"size",type:"text",label:b.lang.forms.textfield.charWidth,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)},{id:"maxLength",type:"text",label:b.lang.forms.textfield.maxChars,"default":"",accessKey:"M",style:"width:50px", +validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}],onLoad:function(){CKEDITOR.env.ie7Compat&&this.getElement().setStyle("zoom","100%")}},{id:"type",type:"select",label:b.lang.forms.textfield.type,"default":"text",accessKey:"M",items:[[b.lang.forms.textfield.typeEmail,"email"],[b.lang.forms.textfield.typePass,"password"],[b.lang.forms.textfield.typeSearch,"search"],[b.lang.forms.textfield.typeTel,"tel"],[b.lang.forms.textfield.typeText,"text"],[b.lang.forms.textfield.typeUrl, +"url"]],setup:function(a){this.setValue(a.getAttribute("type"))},commit:function(a){var c=a.element;if(CKEDITOR.env.ie){var d=c.getAttribute("type"),e=this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('<input type="'+e+'"></input>',b.document),c.copyAttributes(d,{type:1}),d.replace(c),a.element=d)}else c.setAttribute("type",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/icons/button.png b/www/lib/ckeditor/plugins/forms/icons/button.png new file mode 100644 index 00000000..0bf68caa Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/button.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/checkbox.png b/www/lib/ckeditor/plugins/forms/icons/checkbox.png new file mode 100644 index 00000000..2f4eb2f4 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/checkbox.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/form.png b/www/lib/ckeditor/plugins/forms/icons/form.png new file mode 100644 index 00000000..08416674 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/form.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png b/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png new file mode 100644 index 00000000..fce4fccc Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hiddenfield.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png new file mode 100644 index 00000000..bd92b165 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/button.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png new file mode 100644 index 00000000..36be4aa0 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/checkbox.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png new file mode 100644 index 00000000..4a02649c Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/form.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png new file mode 100644 index 00000000..cd5f3186 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png new file mode 100644 index 00000000..d2737963 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/imagebutton.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png new file mode 100644 index 00000000..2f0c72d6 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/radio.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png new file mode 100644 index 00000000..42452e19 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/select-rtl.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png new file mode 100644 index 00000000..da2b066b Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/select.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png new file mode 100644 index 00000000..60618a5b Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png new file mode 100644 index 00000000..87073d22 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/textarea.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png b/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png new file mode 100644 index 00000000..d3c13582 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/hidpi/textfield.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/imagebutton.png b/www/lib/ckeditor/plugins/forms/icons/imagebutton.png new file mode 100644 index 00000000..162df9a3 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/imagebutton.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/radio.png b/www/lib/ckeditor/plugins/forms/icons/radio.png new file mode 100644 index 00000000..aaad523f Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/radio.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/select-rtl.png b/www/lib/ckeditor/plugins/forms/icons/select-rtl.png new file mode 100644 index 00000000..029a0d22 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/select-rtl.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/select.png b/www/lib/ckeditor/plugins/forms/icons/select.png new file mode 100644 index 00000000..44b02b9d Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/select.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png b/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png new file mode 100644 index 00000000..8a15d688 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/textarea-rtl.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/textarea.png b/www/lib/ckeditor/plugins/forms/icons/textarea.png new file mode 100644 index 00000000..58e0fa02 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/textarea.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png b/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/textfield-rtl.png differ diff --git a/www/lib/ckeditor/plugins/forms/icons/textfield.png b/www/lib/ckeditor/plugins/forms/icons/textfield.png new file mode 100644 index 00000000..054aab56 Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/icons/textfield.png differ diff --git a/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif b/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif new file mode 100644 index 00000000..953f643b Binary files /dev/null and b/www/lib/ckeditor/plugins/forms/images/hiddenfield.gif differ diff --git a/www/lib/ckeditor/plugins/forms/lang/af.js b/www/lib/ckeditor/plugins/forms/lang/af.js new file mode 100644 index 00000000..27ed76df --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/af.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","af",{button:{title:"Knop eienskappe",text:"Teks (Waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Stuur",typeRst:"Maak leeg"},checkboxAndRadio:{checkboxTitle:"Merkhokkie eienskappe",radioTitle:"Radioknoppie eienskappe",value:"Waarde",selected:"Geselekteer"},form:{title:"Vorm eienskappe",menu:"Vorm eienskappe",action:"Aksie",method:"Metode",encoding:"Kodering"},hidden:{title:"Verborge veld eienskappe",name:"Naam",value:"Waarde"},select:{title:"Keuseveld eienskappe",selectInfo:"Info", +opAvail:"Beskikbare opsies",value:"Waarde",size:"Grootte",lines:"Lyne",chkMulti:"Laat meer as een keuse toe",opText:"Teks",opValue:"Waarde",btnAdd:"Byvoeg",btnModify:"Wysig",btnUp:"Op",btnDown:"Af",btnSetValue:"Stel as geselekteerde waarde",btnDelete:"Verwyder"},textarea:{title:"Teks-area eienskappe",cols:"Kolomme",rows:"Rye"},textfield:{title:"Teksveld eienskappe",name:"Naam",value:"Waarde",charWidth:"Breedte (karakters)",maxChars:"Maksimum karakters",type:"Soort",typeText:"Teks",typePass:"Wagwoord", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ar.js b/www/lib/ckeditor/plugins/forms/lang/ar.js new file mode 100644 index 00000000..537ca014 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ar.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ar",{button:{title:"خصائص زر الضغط",text:"القيمة/التسمية",type:"نوع الزر",typeBtn:"زر",typeSbm:"إرسال",typeRst:"إعادة تعيين"},checkboxAndRadio:{checkboxTitle:"خصائص خانة الإختيار",radioTitle:"خصائص زر الخيار",value:"القيمة",selected:"محدد"},form:{title:"خصائص النموذج",menu:"خصائص النموذج",action:"اسم الملف",method:"الأسلوب",encoding:"تشفير"},hidden:{title:"خصائص الحقل المخفي",name:"الاسم",value:"القيمة"},select:{title:"خصائص اختيار الحقل",selectInfo:"اختار معلومات", +opAvail:"الخيارات المتاحة",value:"القيمة",size:"الحجم",lines:"الأسطر",chkMulti:"السماح بتحديدات متعددة",opText:"النص",opValue:"القيمة",btnAdd:"إضافة",btnModify:"تعديل",btnUp:"أعلى",btnDown:"أسفل",btnSetValue:"إجعلها محددة",btnDelete:"إزالة"},textarea:{title:"خصائص مساحة النص",cols:"الأعمدة",rows:"الصفوف"},textfield:{title:"خصائص مربع النص",name:"الاسم",value:"القيمة",charWidth:"عرض السمات",maxChars:"اقصى عدد للسمات",type:"نوع المحتوى",typeText:"نص",typePass:"كلمة مرور",typeEmail:"بريد إلكتروني",typeSearch:"بحث", +typeTel:"رقم الهاتف",typeUrl:"الرابط"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/bg.js b/www/lib/ckeditor/plugins/forms/lang/bg.js new file mode 100644 index 00000000..6761facd --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/bg.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bg",{button:{title:"Настройки на бутона",text:"Текст (стойност)",type:"Тип",typeBtn:"Бутон",typeSbm:"Добави",typeRst:"Нулиране"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Настройки на радиобутон",value:"Стойност",selected:"Избрано"},form:{title:"Настройки на формата",menu:"Настройки на формата",action:"Действие",method:"Метод",encoding:"Кодиране"},hidden:{title:"Настройки за скрито поле",name:"Име",value:"Стойност"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Налични опции",value:"Стойност",size:"Размер",lines:"линии",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Стойност",btnAdd:"Добави",btnModify:"Промени",btnUp:"На горе",btnDown:"На долу",btnSetValue:"Set as selected value",btnDelete:"Изтриване"},textarea:{title:"Опции за текстовата зона",cols:"Колони",rows:"Редове"},textfield:{title:"Настройки за текстово поле",name:"Име",value:"Стойност",charWidth:"Ширина на знаците",maxChars:"Макс. знаци",type:"Тип", +typeText:"Текст",typePass:"Парола",typeEmail:"Email",typeSearch:"Търсене",typeTel:"Телефонен номер",typeUrl:"Уеб адрес"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/bn.js b/www/lib/ckeditor/plugins/forms/lang/bn.js new file mode 100644 index 00000000..63773289 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/bn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bn",{button:{title:"বাটন প্রোপার্টি",text:"টেক্সট (ভ্যালু)",type:"প্রকার",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"চেক বক্স প্রোপার্টি",radioTitle:"রেডিও বাটন প্রোপার্টি",value:"ভ্যালু",selected:"সিলেক্টেড"},form:{title:"ফর্ম প্রোপার্টি",menu:"ফর্ম প্রোপার্টি",action:"একশ্যন",method:"পদ্ধতি",encoding:"Encoding"},hidden:{title:"গুপ্ত ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু"},select:{title:"বাছাই ফীল্ড প্রোপার্টি",selectInfo:"তথ্য", +opAvail:"অন্যান্য বিকল্প",value:"ভ্যালু",size:"সাইজ",lines:"লাইন সমূহ",chkMulti:"একাধিক সিলেকশন এলাউ কর",opText:"টেক্সট",opValue:"ভ্যালু",btnAdd:"যুক্ত",btnModify:"বদলে দাও",btnUp:"উপর",btnDown:"নীচে",btnSetValue:"বাছাই করা ভ্যালু হিসেবে সেট কর",btnDelete:"ডিলীট"},textarea:{title:"টেক্সট এরিয়া প্রোপার্টি",cols:"কলাম",rows:"রো"},textfield:{title:"টেক্সট ফীল্ড প্রোপার্টি",name:"নাম",value:"ভ্যালু",charWidth:"ক্যারেক্টার প্রশস্ততা",maxChars:"সর্বাধিক ক্যারেক্টার",type:"টাইপ",typeText:"টেক্সট",typePass:"পাসওয়ার্ড", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/bs.js b/www/lib/ckeditor/plugins/forms/lang/bs.js new file mode 100644 index 00000000..cac69a36 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/bs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","bs",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ca.js b/www/lib/ckeditor/plugins/forms/lang/ca.js new file mode 100644 index 00000000..55da8f9b --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ca",{button:{title:"Propietats del botó",text:"Text (Valor)",type:"Tipus",typeBtn:"Botó",typeSbm:"Transmet formulari",typeRst:"Reinicia formulari"},checkboxAndRadio:{checkboxTitle:"Propietats de la casella de verificació",radioTitle:"Propietats del botó d'opció",value:"Valor",selected:"Seleccionat"},form:{title:"Propietats del formulari",menu:"Propietats del formulari",action:"Acció",method:"Mètode",encoding:"Codificació"},hidden:{title:"Propietats del camp ocult", +name:"Nom",value:"Valor"},select:{title:"Propietats del camp de selecció",selectInfo:"Info",opAvail:"Opcions disponibles",value:"Valor",size:"Mida",lines:"Línies",chkMulti:"Permet múltiples seleccions",opText:"Text",opValue:"Valor",btnAdd:"Afegeix",btnModify:"Modifica",btnUp:"Amunt",btnDown:"Avall",btnSetValue:"Selecciona per defecte",btnDelete:"Elimina"},textarea:{title:"Propietats de l'àrea de text",cols:"Columnes",rows:"Files"},textfield:{title:"Propietats del camp de text",name:"Nom",value:"Valor", +charWidth:"Amplada",maxChars:"Nombre màxim de caràcters",type:"Tipus",typeText:"Text",typePass:"Contrasenya",typeEmail:"Correu electrònic",typeSearch:"Cercar",typeTel:"Número de telèfon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/cs.js b/www/lib/ckeditor/plugins/forms/lang/cs.js new file mode 100644 index 00000000..5691de93 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/cs.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cs",{button:{title:"Vlastnosti tlačítka",text:"Popisek",type:"Typ",typeBtn:"Tlačítko",typeSbm:"Odeslat",typeRst:"Obnovit"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacího políčka",radioTitle:"Vlastnosti přepínače",value:"Hodnota",selected:"Zaškrtnuto"},form:{title:"Vlastnosti formuláře",menu:"Vlastnosti formuláře",action:"Akce",method:"Metoda",encoding:"Kódování"},hidden:{title:"Vlastnosti skrytého pole",name:"Název",value:"Hodnota"},select:{title:"Vlastnosti seznamu", +selectInfo:"Info",opAvail:"Dostupná nastavení",value:"Hodnota",size:"Velikost",lines:"Řádků",chkMulti:"Povolit mnohonásobné výběry",opText:"Text",opValue:"Hodnota",btnAdd:"Přidat",btnModify:"Změnit",btnUp:"Nahoru",btnDown:"Dolů",btnSetValue:"Nastavit jako vybranou hodnotu",btnDelete:"Smazat"},textarea:{title:"Vlastnosti textové oblasti",cols:"Sloupců",rows:"Řádků"},textfield:{title:"Vlastnosti textového pole",name:"Název",value:"Hodnota",charWidth:"Šířka ve znacích",maxChars:"Maximální počet znaků", +type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hledat",typeTel:"Telefonní číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/cy.js b/www/lib/ckeditor/plugins/forms/lang/cy.js new file mode 100644 index 00000000..332c861f --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/cy.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","cy",{button:{title:"Priodweddau Botymau",text:"Testun (Gwerth)",type:"Math",typeBtn:"Botwm",typeSbm:"Anfon",typeRst:"Ailosod"},checkboxAndRadio:{checkboxTitle:"Priodweddau Blwch Ticio",radioTitle:"Priodweddau Botwm Radio",value:"Gwerth",selected:"Dewiswyd"},form:{title:"Priodweddau Ffurflen",menu:"Priodweddau Ffurflen",action:"Gweithred",method:"Dull",encoding:"Amgodio"},hidden:{title:"Priodweddau Maes Cudd",name:"Enw",value:"Gwerth"},select:{title:"Priodweddau Maes Dewis", +selectInfo:"Gwyb Dewis",opAvail:"Opsiynau ar Gael",value:"Gwerth",size:"Maint",lines:"llinellau",chkMulti:"Caniatàu aml-ddewisiadau",opText:"Testun",opValue:"Gwerth",btnAdd:"Ychwanegu",btnModify:"Newid",btnUp:"Lan",btnDown:"Lawr",btnSetValue:"Gosod fel gwerth a ddewiswyd",btnDelete:"Dileu"},textarea:{title:"Priodweddau Ardal Testun",cols:"Colofnau",rows:"Rhesi"},textfield:{title:"Priodweddau Maes Testun",name:"Enw",value:"Gwerth",charWidth:"Lled Nod",maxChars:"Uchafswm y Nodau",type:"Math",typeText:"Testun", +typePass:"Cyfrinair",typeEmail:"Ebost",typeSearch:"Chwilio",typeTel:"Rhif Ffôn",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/da.js b/www/lib/ckeditor/plugins/forms/lang/da.js new file mode 100644 index 00000000..cf4a1934 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/da.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","da",{button:{title:"Egenskaber for knap",text:"Tekst",type:"Type",typeBtn:"Knap",typeSbm:"Send",typeRst:"Nulstil"},checkboxAndRadio:{checkboxTitle:"Egenskaber for afkrydsningsfelt",radioTitle:"Egenskaber for alternativknap",value:"Værdi",selected:"Valgt"},form:{title:"Egenskaber for formular",menu:"Egenskaber for formular",action:"Handling",method:"Metode",encoding:"Kodning (encoding)"},hidden:{title:"Egenskaber for skjult felt",name:"Navn",value:"Værdi"},select:{title:"Egenskaber for liste", +selectInfo:"Generelt",opAvail:"Valgmuligheder",value:"Værdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillad flere valg",opText:"Tekst",opValue:"Værdi",btnAdd:"Tilføj",btnModify:"Redigér",btnUp:"Op",btnDown:"Ned",btnSetValue:"Sæt som valgt",btnDelete:"Slet"},textarea:{title:"Egenskaber for tekstboks",cols:"Kolonner",rows:"Rækker"},textfield:{title:"Egenskaber for tekstfelt",name:"Navn",value:"Værdi",charWidth:"Bredde (tegn)",maxChars:"Max. antal tegn",type:"Type",typeText:"Tekst",typePass:"Adgangskode", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/de.js b/www/lib/ckeditor/plugins/forms/lang/de.js new file mode 100644 index 00000000..483c7f9d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/de.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","de",{button:{title:"Button-Eigenschaften",text:"Text (Wert)",type:"Typ",typeBtn:"Button",typeSbm:"Absenden",typeRst:"Zurücksetzen"},checkboxAndRadio:{checkboxTitle:"Checkbox-Eigenschaften",radioTitle:"Optionsfeld-Eigenschaften",value:"Wert",selected:"ausgewählt"},form:{title:"Formular-Eigenschaften",menu:"Formular-Eigenschaften",action:"Action",method:"Method",encoding:"Zeichenkodierung"},hidden:{title:"Verstecktes Feld-Eigenschaften",name:"Name",value:"Wert"},select:{title:"Auswahlfeld-Eigenschaften", +selectInfo:"Info",opAvail:"Mögliche Optionen",value:"Wert",size:"Größe",lines:"Linien",chkMulti:"Erlaube Mehrfachauswahl",opText:"Text",opValue:"Wert",btnAdd:"Hinzufügen",btnModify:"Ändern",btnUp:"Hoch",btnDown:"Runter",btnSetValue:"Setze als Standardwert",btnDelete:"Entfernen"},textarea:{title:"Textfeld (mehrzeilig) Eigenschaften",cols:"Spalten",rows:"Reihen"},textfield:{title:"Textfeld (einzeilig) Eigenschaften",name:"Name",value:"Wert",charWidth:"Zeichenbreite",maxChars:"Max. Zeichen",type:"Typ", +typeText:"Text",typePass:"Passwort",typeEmail:"E-mail",typeSearch:"Suche",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/el.js b/www/lib/ckeditor/plugins/forms/lang/el.js new file mode 100644 index 00000000..2f42eff3 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/el.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","el",{button:{title:"Ιδιότητες Κουμπιού",text:"Κείμενο (Τιμή)",type:"Τύπος",typeBtn:"Κουμπί",typeSbm:"Υποβολή",typeRst:"Επαναφορά"},checkboxAndRadio:{checkboxTitle:"Ιδιότητες Κουτιού Επιλογής",radioTitle:"Ιδιότητες Κουμπιού Επιλογής",value:"Τιμή",selected:"Επιλεγμένο"},form:{title:"Ιδιότητες Φόρμας",menu:"Ιδιότητες Φόρμας",action:"Ενέργεια",method:"Μέθοδος",encoding:"Κωδικοποίηση"},hidden:{title:"Ιδιότητες Κρυφού Πεδίου",name:"Όνομα",value:"Τιμή"},select:{title:"Ιδιότητες Πεδίου Επιλογής", +selectInfo:"Πληροφορίες Πεδίου Επιλογής",opAvail:"Διαθέσιμες Επιλογές",value:"Τιμή",size:"Μέγεθος",lines:"γραμμές",chkMulti:"Να επιτρέπονται οι πολλαπλές επιλογές",opText:"Κείμενο",opValue:"Τιμή",btnAdd:"Προσθήκη",btnModify:"Τροποποίηση",btnUp:"Πάνω",btnDown:"Κάτω",btnSetValue:"Θέση ως προεπιλογή",btnDelete:"Διαγραφή"},textarea:{title:"Ιδιότητες Περιοχής Κειμένου",cols:"Στήλες",rows:"Σειρές"},textfield:{title:"Ιδιότητες Πεδίου Κειμένου",name:"Όνομα",value:"Τιμή",charWidth:"Πλάτος Χαρακτήρων",maxChars:"Μέγιστοι χαρακτήρες", +type:"Τύπος",typeText:"Κείμενο",typePass:"Κωδικός",typeEmail:"Email",typeSearch:"Αναζήτηση",typeTel:"Αριθμός Τηλεφώνου",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/en-au.js b/www/lib/ckeditor/plugins/forms/lang/en-au.js new file mode 100644 index 00000000..e144ec74 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/en-au.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-au",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/en-ca.js b/www/lib/ckeditor/plugins/forms/lang/en-ca.js new file mode 100644 index 00000000..8adf26e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/en-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-ca",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/en-gb.js b/www/lib/ckeditor/plugins/forms/lang/en-gb.js new file mode 100644 index 00000000..d72b16c6 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/en-gb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en-gb",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password", +typeEmail:"E-mail",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/en.js b/www/lib/ckeditor/plugins/forms/lang/en.js new file mode 100644 index 00000000..95cf7753 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/en.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","en",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/eo.js b/www/lib/ckeditor/plugins/forms/lang/eo.js new file mode 100644 index 00000000..26744b66 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/eo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eo",{button:{title:"Butonaj atributoj",text:"Teksto (Valoro)",type:"Tipo",typeBtn:"Butono",typeSbm:"Validigi (submit)",typeRst:"Remeti en la originstaton (Reset)"},checkboxAndRadio:{checkboxTitle:"Markobutonaj Atributoj",radioTitle:"Radiobutonaj Atributoj",value:"Valoro",selected:"Selektita"},form:{title:"Formularaj Atributoj",menu:"Formularaj Atributoj",action:"Ago",method:"Metodo",encoding:"Kodoprezento"},hidden:{title:"Atributoj de Kaŝita Kampo",name:"Nomo",value:"Valoro"}, +select:{title:"Atributoj de Elekta Kampo",selectInfo:"Informoj pri la rulummenuo",opAvail:"Elektoj Disponeblaj",value:"Valoro",size:"Grando",lines:"Linioj",chkMulti:"Permesi Plurajn Elektojn",opText:"Teksto",opValue:"Valoro",btnAdd:"Aldoni",btnModify:"Modifi",btnUp:"Supren",btnDown:"Malsupren",btnSetValue:"Agordi kiel Elektitan Valoron",btnDelete:"Forigi"},textarea:{title:"Atributoj de Teksta Areo",cols:"Kolumnoj",rows:"Linioj"},textfield:{title:"Atributoj de Teksta Kampo",name:"Nomo",value:"Valoro", +charWidth:"Signolarĝo",maxChars:"Maksimuma Nombro da Signoj",type:"Tipo",typeText:"Teksto",typePass:"Pasvorto",typeEmail:"retpoŝtadreso",typeSearch:"Serĉi",typeTel:"Telefonnumero",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/es.js b/www/lib/ckeditor/plugins/forms/lang/es.js new file mode 100644 index 00000000..e275cf88 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/es.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","es",{button:{title:"Propiedades de Botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Boton",typeSbm:"Enviar",typeRst:"Reestablecer"},checkboxAndRadio:{checkboxTitle:"Propiedades de Casilla",radioTitle:"Propiedades de Botón de Radio",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades de Formulario",menu:"Propiedades de Formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades de Campo Oculto",name:"Nombre",value:"Valor"}, +select:{title:"Propiedades de Campo de Selección",selectInfo:"Información",opAvail:"Opciones disponibles",value:"Valor",size:"Tamaño",lines:"Lineas",chkMulti:"Permitir múltiple selección",opText:"Texto",opValue:"Valor",btnAdd:"Agregar",btnModify:"Modificar",btnUp:"Subir",btnDown:"Bajar",btnSetValue:"Establecer como predeterminado",btnDelete:"Eliminar"},textarea:{title:"Propiedades de Area de Texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades de Campo de Texto",name:"Nombre",value:"Valor", +charWidth:"Caracteres de ancho",maxChars:"Máximo caracteres",type:"Tipo",typeText:"Texto",typePass:"Contraseña",typeEmail:"Correo electrónico",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/et.js b/www/lib/ckeditor/plugins/forms/lang/et.js new file mode 100644 index 00000000..0e1d62e2 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/et.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","et",{button:{title:"Nupu omadused",text:"Tekst (väärtus)",type:"Liik",typeBtn:"Nupp",typeSbm:"Saada",typeRst:"Lähtesta"},checkboxAndRadio:{checkboxTitle:"Märkeruudu omadused",radioTitle:"Raadionupu omadused",value:"Väärtus",selected:"Märgitud"},form:{title:"Vormi omadused",menu:"Vormi omadused",action:"Toiming",method:"Meetod",encoding:"Kodeering"},hidden:{title:"Varjatud lahtri omadused",name:"Nimi",value:"Väärtus"},select:{title:"Valiklahtri omadused",selectInfo:"Info", +opAvail:"Võimalikud valikud:",value:"Väärtus",size:"Suurus",lines:"ridu",chkMulti:"Võimalik mitu valikut",opText:"Tekst",opValue:"Väärtus",btnAdd:"Lisa",btnModify:"Muuda",btnUp:"Üles",btnDown:"Alla",btnSetValue:"Määra vaikimisi",btnDelete:"Kustuta"},textarea:{title:"Tekstiala omadused",cols:"Veerge",rows:"Ridu"},textfield:{title:"Tekstilahtri omadused",name:"Nimi",value:"Väärtus",charWidth:"Laius (tähemärkides)",maxChars:"Maksimaalselt tähemärke",type:"Liik",typeText:"Tekst",typePass:"Parool",typeEmail:"E-mail", +typeSearch:"Otsi",typeTel:"Telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/eu.js b/www/lib/ckeditor/plugins/forms/lang/eu.js new file mode 100644 index 00000000..cfb5e9a5 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/eu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","eu",{button:{title:"Botoiaren Ezaugarriak",text:"Testua (Balorea)",type:"Mota",typeBtn:"Botoia",typeSbm:"Bidali",typeRst:"Garbitu"},checkboxAndRadio:{checkboxTitle:"Kontrol-laukiko Ezaugarriak",radioTitle:"Aukera-botoiaren Ezaugarriak",value:"Balorea",selected:"Hautatuta"},form:{title:"Formularioaren Ezaugarriak",menu:"Formularioaren Ezaugarriak",action:"Ekintza",method:"Metodoa",encoding:"Kodeketa"},hidden:{title:"Ezkutuko Eremuaren Ezaugarriak",name:"Izena",value:"Balorea"}, +select:{title:"Hautespen Eremuaren Ezaugarriak",selectInfo:"Informazioa",opAvail:"Aukera Eskuragarriak",value:"Balorea",size:"Tamaina",lines:"lerro kopurura",chkMulti:"Hautaketa anitzak baimendu",opText:"Testua",opValue:"Balorea",btnAdd:"Gehitu",btnModify:"Aldatu",btnUp:"Gora",btnDown:"Behera",btnSetValue:"Aukeratutako balorea ezarri",btnDelete:"Ezabatu"},textarea:{title:"Testu-arearen Ezaugarriak",cols:"Zutabeak",rows:"Lerroak"},textfield:{title:"Testu Eremuaren Ezaugarriak",name:"Izena",value:"Balorea", +charWidth:"Zabalera",maxChars:"Zenbat karaktere gehienez",type:"Mota",typeText:"Testua",typePass:"Pasahitza",typeEmail:"E-posta",typeSearch:"Bilatu",typeTel:"Telefono Zenbakia",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/fa.js b/www/lib/ckeditor/plugins/forms/lang/fa.js new file mode 100644 index 00000000..326ada0d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/fa.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fa",{button:{title:"ویژگی​های دکمه",text:"متن (مقدار)",type:"نوع",typeBtn:"دکمه",typeSbm:"ثبت",typeRst:"بازنشانی (Reset)"},checkboxAndRadio:{checkboxTitle:"ویژگی​های خانهٴ گزینه​ای",radioTitle:"ویژگی​های دکمهٴ رادیویی",value:"مقدار",selected:"برگزیده"},form:{title:"ویژگی​های فرم",menu:"ویژگی​های فرم",action:"رویداد",method:"متد",encoding:"رمزنگاری"},hidden:{title:"ویژگی​های فیلد پنهان",name:"نام",value:"مقدار"},select:{title:"ویژگی​های فیلد چندگزینه​ای",selectInfo:"اطلاعات", +opAvail:"گزینه​های دردسترس",value:"مقدار",size:"اندازه",lines:"خطوط",chkMulti:"گزینش چندگانه فراهم باشد",opText:"متن",opValue:"مقدار",btnAdd:"افزودن",btnModify:"ویرایش",btnUp:"بالا",btnDown:"پائین",btnSetValue:"تنظیم به عنوان مقدار برگزیده",btnDelete:"پاککردن"},textarea:{title:"ویژگی​های ناحیهٴ متنی",cols:"ستون​ها",rows:"سطرها"},textfield:{title:"ویژگی​های فیلد متنی",name:"نام",value:"مقدار",charWidth:"پهنای نویسه",maxChars:"بیشینهٴ نویسه​ها",type:"نوع",typeText:"متن",typePass:"گذرواژه",typeEmail:"ایمیل", +typeSearch:"جستجو",typeTel:"شماره تلفن",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/fi.js b/www/lib/ckeditor/plugins/forms/lang/fi.js new file mode 100644 index 00000000..31cf6d05 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/fi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fi",{button:{title:"Painikkeen ominaisuudet",text:"Teksti (arvo)",type:"Tyyppi",typeBtn:"Painike",typeSbm:"Lähetä",typeRst:"Tyhjennä"},checkboxAndRadio:{checkboxTitle:"Valintaruudun ominaisuudet",radioTitle:"Radiopainikkeen ominaisuudet",value:"Arvo",selected:"Valittu"},form:{title:"Lomakkeen ominaisuudet",menu:"Lomakkeen ominaisuudet",action:"Toiminto",method:"Tapa",encoding:"Enkoodaus"},hidden:{title:"Piilokentän ominaisuudet",name:"Nimi",value:"Arvo"},select:{title:"Valintakentän ominaisuudet", +selectInfo:"Info",opAvail:"Ominaisuudet",value:"Arvo",size:"Koko",lines:"Rivit",chkMulti:"Salli usea valinta",opText:"Teksti",opValue:"Arvo",btnAdd:"Lisää",btnModify:"Muuta",btnUp:"Ylös",btnDown:"Alas",btnSetValue:"Aseta valituksi",btnDelete:"Poista"},textarea:{title:"Tekstilaatikon ominaisuudet",cols:"Sarakkeita",rows:"Rivejä"},textfield:{title:"Tekstikentän ominaisuudet",name:"Nimi",value:"Arvo",charWidth:"Leveys",maxChars:"Maksimi merkkimäärä",type:"Tyyppi",typeText:"Teksti",typePass:"Salasana", +typeEmail:"Sähköposti",typeSearch:"Haku",typeTel:"Puhelinnumero",typeUrl:"Osoite"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/fo.js b/www/lib/ckeditor/plugins/forms/lang/fo.js new file mode 100644 index 00000000..3ff4950e --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/fo.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fo",{button:{title:"Eginleikar fyri knøtt",text:"Tekstur",type:"Slag",typeBtn:"Knøttur",typeSbm:"Send",typeRst:"Nullstilla"},checkboxAndRadio:{checkboxTitle:"Eginleikar fyri flugubein",radioTitle:"Eginleikar fyri radioknøtt",value:"Virði",selected:"Valt"},form:{title:"Eginleikar fyri Form",menu:"Eginleikar fyri Form",action:"Hending",method:"Háttur",encoding:"Encoding"},hidden:{title:"Eginleikar fyri fjaldan teig",name:"Navn",value:"Virði"},select:{title:"Eginleikar fyri valskrá", +selectInfo:"Upplýsingar",opAvail:"Tøkir møguleikar",value:"Virði",size:"Stødd",lines:"Linjur",chkMulti:"Loyv fleiri valmøguleikum samstundis",opText:"Tekstur",opValue:"Virði",btnAdd:"Legg afturat",btnModify:"Broyt",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Set sum valt virði",btnDelete:"Strika"},textarea:{title:"Eginleikar fyri tekstumráði",cols:"kolonnur",rows:"røðir"},textfield:{title:"Eginleikar fyri tekstteig",name:"Navn",value:"Virði",charWidth:"Breidd (sjónlig tekn)",maxChars:"Mest loyvdu tekn", +type:"Slag",typeText:"Tekstur",typePass:"Loyniorð",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/fr-ca.js b/www/lib/ckeditor/plugins/forms/lang/fr-ca.js new file mode 100644 index 00000000..f44c8d63 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/fr-ca.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr-ca",{button:{title:"Propriétés du bouton",text:"Texte (Valeur)",type:"Type",typeBtn:"Bouton",typeSbm:"Soumettre",typeRst:"Réinitialiser"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom",value:"Valeur"}, +select:{title:"Propriétés du champ de sélection",selectInfo:"Info",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Monter",btnDown:"Descendre",btnSetValue:"Valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte",name:"Nom",value:"Valeur",charWidth:"Largeur de caractères", +maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"Courriel",typeSearch:"Recherche",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/fr.js b/www/lib/ckeditor/plugins/forms/lang/fr.js new file mode 100644 index 00000000..eff0fd02 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/fr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","fr",{button:{title:"Propriétés du bouton",text:"Texte (Value)",type:"Type",typeBtn:"Bouton",typeSbm:"Validation (submit)",typeRst:"Remise à zéro"},checkboxAndRadio:{checkboxTitle:"Propriétés de la case à cocher",radioTitle:"Propriétés du bouton Radio",value:"Valeur",selected:"Sélectionné"},form:{title:"Propriétés du formulaire",menu:"Propriétés du formulaire",action:"Action",method:"Méthode",encoding:"Encodage"},hidden:{title:"Propriétés du champ caché",name:"Nom", +value:"Valeur"},select:{title:"Propriétés du menu déroulant",selectInfo:"Informations sur le menu déroulant",opAvail:"Options disponibles",value:"Valeur",size:"Taille",lines:"Lignes",chkMulti:"Permettre les sélections multiples",opText:"Texte",opValue:"Valeur",btnAdd:"Ajouter",btnModify:"Modifier",btnUp:"Haut",btnDown:"Bas",btnSetValue:"Définir comme valeur sélectionnée",btnDelete:"Supprimer"},textarea:{title:"Propriétés de la zone de texte",cols:"Colonnes",rows:"Lignes"},textfield:{title:"Propriétés du champ texte", +name:"Nom",value:"Valeur",charWidth:"Taille des caractères",maxChars:"Nombre maximum de caractères",type:"Type",typeText:"Texte",typePass:"Mot de passe",typeEmail:"E-mail",typeSearch:"Rechercher",typeTel:"Numéro de téléphone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/gl.js b/www/lib/ckeditor/plugins/forms/lang/gl.js new file mode 100644 index 00000000..792ee3f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/gl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gl",{button:{title:"Propiedades do botón",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botón",typeSbm:"Enviar",typeRst:"Restabelever"},checkboxAndRadio:{checkboxTitle:"Propiedades da caixa de selección",radioTitle:"Propiedades do botón de opción",value:"Valor",selected:"Seleccionado"},form:{title:"Propiedades do formulario",menu:"Propiedades do formulario",action:"Acción",method:"Método",encoding:"Codificación"},hidden:{title:"Propiedades do campo agochado",name:"Nome", +value:"Valor"},select:{title:"Propiedades do campo de selección",selectInfo:"Información",opAvail:"Opcións dispoñíbeis",value:"Valor",size:"Tamaño",lines:"liñas",chkMulti:"Permitir múltiplas seleccións",opText:"Texto",opValue:"Valor",btnAdd:"Engadir",btnModify:"Modificar",btnUp:"Subir",btnDown:"Baixar",btnSetValue:"Estabelecer como valor seleccionado",btnDelete:"Eliminar"},textarea:{title:"Propiedades da área de texto",cols:"Columnas",rows:"Filas"},textfield:{title:"Propiedades do campo de texto", +name:"Nome",value:"Valor",charWidth:"Largo do carácter",maxChars:"Núm. máximo de caracteres",type:"Tipo",typeText:"Texto",typePass:"Contrasinal",typeEmail:"Correo",typeSearch:"Buscar",typeTel:"Número de teléfono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/gu.js b/www/lib/ckeditor/plugins/forms/lang/gu.js new file mode 100644 index 00000000..976d136a --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/gu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","gu",{button:{title:"બટનના ગુણ",text:"ટેક્સ્ટ (વૅલ્યૂ)",type:"પ્રકાર",typeBtn:"બટન",typeSbm:"સબ્મિટ",typeRst:"રિસેટ"},checkboxAndRadio:{checkboxTitle:"ચેક બોક્સ ગુણ",radioTitle:"રેડિઓ બટનના ગુણ",value:"વૅલ્યૂ",selected:"સિલેક્ટેડ"},form:{title:"ફૉર્મ/પત્રકના ગુણ",menu:"ફૉર્મ/પત્રકના ગુણ",action:"ક્રિયા",method:"પદ્ધતિ",encoding:"અન્કોડીન્ગ"},hidden:{title:"ગુપ્ત ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ"},select:{title:"પસંદગી ક્ષેત્રના ગુણ",selectInfo:"સૂચના",opAvail:"ઉપલબ્ધ વિકલ્પ", +value:"વૅલ્યૂ",size:"સાઇઝ",lines:"લીટીઓ",chkMulti:"એકથી વધારે પસંદ કરી શકો",opText:"ટેક્સ્ટ",opValue:"વૅલ્યૂ",btnAdd:"ઉમેરવું",btnModify:"બદલવું",btnUp:"ઉપર",btnDown:"નીચે",btnSetValue:"પસંદ કરલી વૅલ્યૂ સેટ કરો",btnDelete:"રદ કરવું"},textarea:{title:"ટેક્સ્ટ એઅરિઆ, શબ્દ વિસ્તારના ગુણ",cols:"કૉલમ/ઊભી કટાર",rows:"પંક્તિઓ"},textfield:{title:"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્રના ગુણ",name:"નામ",value:"વૅલ્યૂ",charWidth:"કેરેક્ટરની પહોળાઈ",maxChars:"અધિકતમ કેરેક્ટર",type:"ટાઇપ",typeText:"ટેક્સ્ટ",typePass:"પાસવર્ડ", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/he.js b/www/lib/ckeditor/plugins/forms/lang/he.js new file mode 100644 index 00000000..102ba4c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","he",{button:{title:"מאפייני כפתור",text:"טקסט (ערך)",type:"סוג",typeBtn:"כפתור",typeSbm:"שליחה",typeRst:"איפוס"},checkboxAndRadio:{checkboxTitle:"מאפייני תיבת סימון",radioTitle:"מאפייני לחצן אפשרויות",value:"ערך",selected:"מסומן"},form:{title:"מאפיני טופס",menu:"מאפיני טופס",action:"שלח אל",method:"סוג שליחה",encoding:"קידוד"},hidden:{title:"מאפיני שדה חבוי",name:"שם",value:"ערך"},select:{title:"מאפייני שדה בחירה",selectInfo:"מידע",opAvail:"אפשרויות זמינות",value:"ערך", +size:"גודל",lines:"שורות",chkMulti:"איפשור בחירות מרובות",opText:"טקסט",opValue:"ערך",btnAdd:"הוספה",btnModify:"שינוי",btnUp:"למעלה",btnDown:"למטה",btnSetValue:"קביעה כברירת מחדל",btnDelete:"מחיקה"},textarea:{title:"מאפייני איזור טקסט",cols:"עמודות",rows:"שורות"},textfield:{title:"מאפייני שדה טקסט",name:"שם",value:"ערך",charWidth:"רוחב לפי תווים",maxChars:"מקסימום תווים",type:"סוג",typeText:"טקסט",typePass:"סיסמה",typeEmail:'דוא"ל',typeSearch:"חיפוש",typeTel:"מספר טלפון",typeUrl:"כתובת (URL)"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/hi.js b/www/lib/ckeditor/plugins/forms/lang/hi.js new file mode 100644 index 00000000..28f074e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/hi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hi",{button:{title:"बटन प्रॉपर्टीज़",text:"टेक्स्ट (वैल्यू)",type:"प्रकार",typeBtn:"बटन",typeSbm:"सब्मिट",typeRst:"रिसेट"},checkboxAndRadio:{checkboxTitle:"चॅक बॉक्स प्रॉपर्टीज़",radioTitle:"रेडिओ बटन प्रॉपर्टीज़",value:"वैल्यू",selected:"सॅलॅक्टॅड"},form:{title:"फ़ॉर्म प्रॉपर्टीज़",menu:"फ़ॉर्म प्रॉपर्टीज़",action:"क्रिया",method:"तरीका",encoding:"Encoding"},hidden:{title:"गुप्त फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू"},select:{title:"चुनाव फ़ील्ड प्रॉपर्टीज़",selectInfo:"सूचना", +opAvail:"उपलब्ध विकल्प",value:"वैल्यू",size:"साइज़",lines:"पंक्तियाँ",chkMulti:"एक से ज्यादा विकल्प चुनने दें",opText:"टेक्स्ट",opValue:"वैल्यू",btnAdd:"जोड़ें",btnModify:"बदलें",btnUp:"ऊपर",btnDown:"नीचे",btnSetValue:"चुनी गई वैल्यू सॅट करें",btnDelete:"डिलीट"},textarea:{title:"टेक्स्त एरिया प्रॉपर्टीज़",cols:"कालम",rows:"पंक्तियां"},textfield:{title:"टेक्स्ट फ़ील्ड प्रॉपर्टीज़",name:"नाम",value:"वैल्यू",charWidth:"करॅक्टर की चौढ़ाई",maxChars:"अधिकतम करॅक्टर",type:"टाइप",typeText:"टेक्स्ट",typePass:"पास्वर्ड", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/hr.js b/www/lib/ckeditor/plugins/forms/lang/hr.js new file mode 100644 index 00000000..9965827c --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/hr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hr",{button:{title:"Button svojstva",text:"Tekst (vrijednost)",type:"Vrsta",typeBtn:"Gumb",typeSbm:"Pošalji",typeRst:"Poništi"},checkboxAndRadio:{checkboxTitle:"Checkbox svojstva",radioTitle:"Radio Button svojstva",value:"Vrijednost",selected:"Odabrano"},form:{title:"Form svojstva",menu:"Form svojstva",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Hidden Field svojstva",name:"Ime",value:"Vrijednost"},select:{title:"Selection svojstva",selectInfo:"Info", +opAvail:"Dostupne opcije",value:"Vrijednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruki odabir",opText:"Tekst",opValue:"Vrijednost",btnAdd:"Dodaj",btnModify:"Promijeni",btnUp:"Gore",btnDown:"Dolje",btnSetValue:"Postavi kao odabranu vrijednost",btnDelete:"Obriši"},textarea:{title:"Textarea svojstva",cols:"Kolona",rows:"Redova"},textfield:{title:"Text Field svojstva",name:"Ime",value:"Vrijednost",charWidth:"Širina",maxChars:"Najviše karaktera",type:"Vrsta",typeText:"Tekst",typePass:"Šifra", +typeEmail:"Email",typeSearch:"Traži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/hu.js b/www/lib/ckeditor/plugins/forms/lang/hu.js new file mode 100644 index 00000000..962606d8 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/hu.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","hu",{button:{title:"Gomb tulajdonságai",text:"Szöveg (Érték)",type:"Típus",typeBtn:"Gomb",typeSbm:"Küldés",typeRst:"Alaphelyzet"},checkboxAndRadio:{checkboxTitle:"Jelölőnégyzet tulajdonságai",radioTitle:"Választógomb tulajdonságai",value:"Érték",selected:"Kiválasztott"},form:{title:"Űrlap tulajdonságai",menu:"Űrlap tulajdonságai",action:"Adatfeldolgozást végző hivatkozás",method:"Adatküldés módja",encoding:"Kódolás"},hidden:{title:"Rejtett mező tulajdonságai",name:"Név", +value:"Érték"},select:{title:"Legördülő lista tulajdonságai",selectInfo:"Alaptulajdonságok",opAvail:"Elérhető opciók",value:"Érték",size:"Méret",lines:"sor",chkMulti:"több sor is kiválasztható",opText:"Szöveg",opValue:"Érték",btnAdd:"Hozzáad",btnModify:"Módosít",btnUp:"Fel",btnDown:"Le",btnSetValue:"Legyen az alapértelmezett érték",btnDelete:"Töröl"},textarea:{title:"Szövegterület tulajdonságai",cols:"Karakterek száma egy sorban",rows:"Sorok száma"},textfield:{title:"Szövegmező tulajdonságai",name:"Név", +value:"Érték",charWidth:"Megjelenített karakterek száma",maxChars:"Maximális karakterszám",type:"Típus",typeText:"Szöveg",typePass:"Jelszó",typeEmail:"Ímél",typeSearch:"Keresés",typeTel:"Telefonszám",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/id.js b/www/lib/ckeditor/plugins/forms/lang/id.js new file mode 100644 index 00000000..7fdc87fe --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/id.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","id",{button:{title:"Button Properties",text:"Teks (Nilai)",type:"Tipe",typeBtn:"Tombol",typeSbm:"Menyerahkan",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Nilai",selected:"Terpilih"},form:{title:"Form Properties",menu:"Form Properties",action:"Aksi",method:"Metode",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Nama",value:"Nilai"},select:{title:"Selection Field Properties", +selectInfo:"Select Info",opAvail:"Available Options",value:"Nilai",size:"Ukuran",lines:"garis",chkMulti:"Izinkan pemilihan ganda",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah",btnModify:"Modifikasi",btnUp:"Atas",btnDown:"Bawah",btnSetValue:"Set as selected value",btnDelete:"Hapus"},textarea:{title:"Textarea Properties",cols:"Kolom",rows:"Baris"},textfield:{title:"Text Field Properties",name:"Name",value:"Nilai",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Tipe",typeText:"Teks", +typePass:"Kata kunci",typeEmail:"Surel",typeSearch:"Cari",typeTel:"Nomor Telepon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/is.js b/www/lib/ckeditor/plugins/forms/lang/is.js new file mode 100644 index 00000000..7ca735ec --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/is.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","is",{button:{title:"Eigindi hnapps",text:"Texti",type:"Gerð",typeBtn:"Hnappur",typeSbm:"Staðfesta",typeRst:"Hreinsa"},checkboxAndRadio:{checkboxTitle:"Eigindi markreits",radioTitle:"Eigindi valhnapps",value:"Gildi",selected:"Valið"},form:{title:"Eigindi innsláttarforms",menu:"Eigindi innsláttarforms",action:"Aðgerð",method:"Aðferð",encoding:"Encoding"},hidden:{title:"Eigindi falins svæðis",name:"Nafn",value:"Gildi"},select:{title:"Eigindi lista",selectInfo:"Upplýsingar", +opAvail:"Kostir",value:"Gildi",size:"Stærð",lines:"línur",chkMulti:"Leyfa fleiri kosti",opText:"Texti",opValue:"Gildi",btnAdd:"Bæta við",btnModify:"Breyta",btnUp:"Upp",btnDown:"Niður",btnSetValue:"Merkja sem valið",btnDelete:"Eyða"},textarea:{title:"Eigindi textasvæðis",cols:"Dálkar",rows:"Línur"},textfield:{title:"Eigindi textareits",name:"Nafn",value:"Gildi",charWidth:"Breidd (leturtákn)",maxChars:"Hámarksfjöldi leturtákna",type:"Gerð",typeText:"Texti",typePass:"Lykilorð",typeEmail:"Email",typeSearch:"Search", +typeTel:"Telephone Number",typeUrl:"Vefslóð"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/it.js b/www/lib/ckeditor/plugins/forms/lang/it.js new file mode 100644 index 00000000..90f4f584 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/it.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","it",{button:{title:"Proprietà bottone",text:"Testo (Valore)",type:"Tipo",typeBtn:"Bottone",typeSbm:"Invio",typeRst:"Annulla"},checkboxAndRadio:{checkboxTitle:"Proprietà checkbox",radioTitle:"Proprietà radio button",value:"Valore",selected:"Selezionato"},form:{title:"Proprietà modulo",menu:"Proprietà modulo",action:"Azione",method:"Metodo",encoding:"Codifica"},hidden:{title:"Proprietà campo nascosto",name:"Nome",value:"Valore"},select:{title:"Proprietà menu di selezione", +selectInfo:"Info",opAvail:"Opzioni disponibili",value:"Valore",size:"Dimensione",lines:"righe",chkMulti:"Permetti selezione multipla",opText:"Testo",opValue:"Valore",btnAdd:"Aggiungi",btnModify:"Modifica",btnUp:"Su",btnDown:"Gi",btnSetValue:"Imposta come predefinito",btnDelete:"Rimuovi"},textarea:{title:"Proprietà area di testo",cols:"Colonne",rows:"Righe"},textfield:{title:"Proprietà campo di testo",name:"Nome",value:"Valore",charWidth:"Larghezza",maxChars:"Numero massimo di caratteri",type:"Tipo", +typeText:"Testo",typePass:"Password",typeEmail:"Email",typeSearch:"Cerca",typeTel:"Numero di telefono",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ja.js b/www/lib/ckeditor/plugins/forms/lang/ja.js new file mode 100644 index 00000000..8e615cfd --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ja",{button:{title:"ボタン プロパティ",text:"テキスト (値)",type:"タイプ",typeBtn:"ボタン",typeSbm:"送信",typeRst:"リセット"},checkboxAndRadio:{checkboxTitle:"チェックボックスのプロパティ",radioTitle:"ラジオボタンのプロパティ",value:"値",selected:"選択済み"},form:{title:"フォームのプロパティ",menu:"フォームのプロパティ",action:"アクション (action)",method:"メソッド (method)",encoding:"エンコード方式 (encoding)"},hidden:{title:"不可視フィールド プロパティ",name:"名前 (name)",value:"値 (value)"},select:{title:"選択フィールドのプロパティ",selectInfo:"情報",opAvail:"利用可能なオプション",value:"選択項目値", +size:"サイズ",lines:"行",chkMulti:"複数選択を許可",opText:"選択項目名",opValue:"値",btnAdd:"追加",btnModify:"編集",btnUp:"上へ",btnDown:"下へ",btnSetValue:"選択した値を設定",btnDelete:"削除"},textarea:{title:"テキストエリア プロパティ",cols:"列",rows:"行"},textfield:{title:"1行テキスト プロパティ",name:"名前",value:"値",charWidth:"サイズ",maxChars:"最大長",type:"タイプ",typeText:"テキスト",typePass:"パスワード入力",typeEmail:"メール",typeSearch:"検索",typeTel:"電話番号",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ka.js b/www/lib/ckeditor/plugins/forms/lang/ka.js new file mode 100644 index 00000000..06b8131d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ka.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ka",{button:{title:"ღილაკის პარამეტრები",text:"ტექსტი",type:"ტიპი",typeBtn:"ღილაკი",typeSbm:"გაგზავნა",typeRst:"გასუფთავება"},checkboxAndRadio:{checkboxTitle:"მონიშვნის ღილაკის (Checkbox) პარამეტრები",radioTitle:"ასარჩევი ღილაკის (Radio) პარამეტრები",value:"ტექსტი",selected:"არჩეული"},form:{title:"ფორმის პარამეტრები",menu:"ფორმის პარამეტრები",action:"ქმედება",method:"მეთოდი",encoding:"კოდირება"},hidden:{title:"მალული ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა"}, +select:{title:"არჩევის ველის პარამეტრები",selectInfo:"ინფორმაცია",opAvail:"შესაძლებელი ვარიანტები",value:"მნიშვნელობა",size:"ზომა",lines:"ხაზები",chkMulti:"მრავლობითი არჩევანის საშუალება",opText:"ტექსტი",opValue:"მნიშვნელობა",btnAdd:"დამატება",btnModify:"შეცვლა",btnUp:"ზემოთ",btnDown:"ქვემოთ",btnSetValue:"ამორჩეულ მნიშვნელოვნად დაყენება",btnDelete:"წაშლა"},textarea:{title:"ტექსტური არის პარამეტრები",cols:"სვეტები",rows:"სტრიქონები"},textfield:{title:"ტექსტური ველის პარამეტრები",name:"სახელი",value:"მნიშვნელობა", +charWidth:"სიმბოლოს ზომა",maxChars:"ასოების მაქსიმალური ოდენობა",type:"ტიპი",typeText:"ტექსტი",typePass:"პაროლი",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/km.js b/www/lib/ckeditor/plugins/forms/lang/km.js new file mode 100644 index 00000000..e9c1269d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/km.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","km",{button:{title:"លក្ខណៈ​ប៊ូតុង",text:"អត្ថបទ (តម្លៃ)",type:"ប្រភេទ",typeBtn:"ប៊ូតុង",typeSbm:"ដាក់ស្នើ",typeRst:"កំណត់​ឡើង​វិញ"},checkboxAndRadio:{checkboxTitle:"លក្ខណៈ​ប្រអប់​ធីក",radioTitle:"លក្ខនៈ​ប៊ូតុង​មូល",value:"តម្លៃ",selected:"បាន​ជ្រើស"},form:{title:"លក្ខណៈ​បែបបទ",menu:"លក្ខណៈ​បែបបទ",action:"សកម្មភាព",method:"វិធីសាស្ត្រ",encoding:"ការ​អ៊ិនកូដ"},hidden:{title:"លក្ខណៈ​វាល​កំបាំង",name:"ឈ្មោះ",value:"តម្លៃ"},select:{title:"លក្ខណៈ​វាល​ជម្រើស",selectInfo:"ព័ត៌មាន​ជម្រើស", +opAvail:"ជម្រើស​ដែល​មាន",value:"តម្លៃ",size:"ទំហំ",lines:"បន្ទាត់",chkMulti:"អនុញ្ញាត​ពហុ​ជម្រើស",opText:"អត្ថបទ",opValue:"តម្លៃ",btnAdd:"បន្ថែម",btnModify:"ផ្លាស់ប្តូរ",btnUp:"លើ",btnDown:"ក្រោម",btnSetValue:"កំណត់​ជា​តម្លៃ​ដែល​បាន​ជ្រើស",btnDelete:"លុប"},textarea:{title:"លក្ខណៈ​ប្រអប់​អត្ថបទ",cols:"ជួរឈរ",rows:"ជួរដេក"},textfield:{title:"លក្ខណៈ​វាល​អត្ថបទ",name:"ឈ្មោះ",value:"តម្លៃ",charWidth:"ទទឹង​តួ​អក្សរ",maxChars:"អក្សរអតិបរិមា",type:"ប្រភេទ",typeText:"អត្ថបទ",typePass:"ពាក្យសម្ងាត់",typeEmail:"អ៊ីមែល", +typeSearch:"ស្វែង​រក",typeTel:"លេខ​ទូរសព្ទ",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ko.js b/www/lib/ckeditor/plugins/forms/lang/ko.js new file mode 100644 index 00000000..7e7ea054 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","ko",{button:{title:"버튼 속성",text:"버튼글자(값)",type:"버튼종류",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"체크박스 속성",radioTitle:"라디오버튼 속성",value:"값",selected:"선택됨"},form:{title:"폼 속성",menu:"폼 속성",action:"실행경로(Action)",method:"방법(Method)",encoding:"Encoding"},hidden:{title:"숨김필드 속성",name:"이름",value:"값"},select:{title:"펼침목록 속성",selectInfo:"정보",opAvail:"선택옵션",value:"값",size:"세로크기",lines:"줄",chkMulti:"여러항목 선택 허용",opText:"이름",opValue:"값", +btnAdd:"추가",btnModify:"변경",btnUp:"위로",btnDown:"아래로",btnSetValue:"선택된것으로 설정",btnDelete:"삭제"},textarea:{title:"입력영역 속성",cols:"칸수",rows:"줄수"},textfield:{title:"입력필드 속성",name:"이름",value:"값",charWidth:"글자 너비",maxChars:"최대 글자수",type:"종류",typeText:"문자열",typePass:"비밀번호",typeEmail:"이메일",typeSearch:"검색",typeTel:"전화번호",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ku.js b/www/lib/ckeditor/plugins/forms/lang/ku.js new file mode 100644 index 00000000..75599890 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ku.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ku",{button:{title:"خاسیەتی دوگمە",text:"(نرخی) دەق",type:"جۆر",typeBtn:"دوگمە",typeSbm:"بنێرە",typeRst:"ڕێکخستنەوە"},checkboxAndRadio:{checkboxTitle:"خاسیەتی چووارگۆشی پشکنین",radioTitle:"خاسیەتی جێگرەوەی دوگمە",value:"نرخ",selected:"هەڵبژاردرا"},form:{title:"خاسیەتی داڕشتە",menu:"خاسیەتی داڕشتە",action:"کردار",method:"ڕێگە",encoding:"بەکۆدکەر"},hidden:{title:"خاسیەتی خانەی شاردراوە",name:"ناو",value:"نرخ"},select:{title:"هەڵبژاردەی خاسیەتی خانە",selectInfo:"زانیاری", +opAvail:"هەڵبژاردەی لەبەردەستدابوون",value:"نرخ",size:"گەورەیی",lines:"هێڵەکان",chkMulti:"ڕێدان بەفره هەڵبژارده",opText:"دەق",opValue:"نرخ",btnAdd:"زیادکردن",btnModify:"گۆڕانکاری",btnUp:"سەرەوه",btnDown:"خوارەوە",btnSetValue:"دابنێ وەك نرخێکی هەڵبژێردراو",btnDelete:"سڕینەوه"},textarea:{title:"خاسیەتی ڕووبەری دەق",cols:"ستوونەکان",rows:"ڕیزەکان"},textfield:{title:"خاسیەتی خانەی دەق",name:"ناو",value:"نرخ",charWidth:"پانی نووسە",maxChars:"ئەوپەڕی نووسە",type:"جۆر",typeText:"دەق",typePass:"پێپەڕەوشە", +typeEmail:"ئیمەیل",typeSearch:"گەڕان",typeTel:"ژمارەی تەلەفۆن",typeUrl:"ناونیشانی بەستەر"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/lt.js b/www/lib/ckeditor/plugins/forms/lang/lt.js new file mode 100644 index 00000000..743b8307 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/lt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lt",{button:{title:"Mygtuko savybės",text:"Tekstas (Reikšmė)",type:"Tipas",typeBtn:"Mygtukas",typeSbm:"Siųsti",typeRst:"Išvalyti"},checkboxAndRadio:{checkboxTitle:"Žymimojo langelio savybės",radioTitle:"Žymimosios akutės savybės",value:"Reikšmė",selected:"Pažymėtas"},form:{title:"Formos savybės",menu:"Formos savybės",action:"Veiksmas",method:"Metodas",encoding:"Kodavimas"},hidden:{title:"Nerodomo lauko savybės",name:"Vardas",value:"Reikšmė"},select:{title:"Atrankos lauko savybės", +selectInfo:"Informacija",opAvail:"Galimos parinktys",value:"Reikšmė",size:"Dydis",lines:"eilučių",chkMulti:"Leisti daugeriopą atranką",opText:"Tekstas",opValue:"Reikšmė",btnAdd:"Įtraukti",btnModify:"Modifikuoti",btnUp:"Aukštyn",btnDown:"Žemyn",btnSetValue:"Laikyti pažymėta reikšme",btnDelete:"Trinti"},textarea:{title:"Teksto srities savybės",cols:"Ilgis",rows:"Plotis"},textfield:{title:"Teksto lauko savybės",name:"Vardas",value:"Reikšmė",charWidth:"Ilgis simboliais",maxChars:"Maksimalus simbolių skaičius", +type:"Tipas",typeText:"Tekstas",typePass:"Slaptažodis",typeEmail:"El. paštas",typeSearch:"Paieška",typeTel:"Telefono numeris",typeUrl:"Nuoroda"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/lv.js b/www/lib/ckeditor/plugins/forms/lang/lv.js new file mode 100644 index 00000000..289cd6a8 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/lv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","lv",{button:{title:"Pogas īpašības",text:"Teksts (vērtība)",type:"Tips",typeBtn:"Poga",typeSbm:"Nosūtīt",typeRst:"Atcelt"},checkboxAndRadio:{checkboxTitle:"Atzīmēšanas kastītes īpašības",radioTitle:"Izvēles poga īpašības",value:"Vērtība",selected:"Iezīmēts"},form:{title:"Formas īpašības",menu:"Formas īpašības",action:"Darbība",method:"Metode",encoding:"Kodējums"},hidden:{title:"Paslēptās teksta rindas īpašības",name:"Nosaukums",value:"Vērtība"},select:{title:"Iezīmēšanas lauka īpašības", +selectInfo:"Informācija",opAvail:"Pieejamās iespējas",value:"Vērtība",size:"Izmērs",lines:"rindas",chkMulti:"Atļaut vairākus iezīmējumus",opText:"Teksts",opValue:"Vērtība",btnAdd:"Pievienot",btnModify:"Veikt izmaiņas",btnUp:"Augšup",btnDown:"Lejup",btnSetValue:"Noteikt kā iezīmēto vērtību",btnDelete:"Dzēst"},textarea:{title:"Teksta laukuma īpašības",cols:"Kolonnas",rows:"Rindas"},textfield:{title:"Teksta rindas īpašības",name:"Nosaukums",value:"Vērtība",charWidth:"Simbolu platums",maxChars:"Simbolu maksimālais daudzums", +type:"Tips",typeText:"Teksts",typePass:"Parole",typeEmail:"Epasts",typeSearch:"Meklēt",typeTel:"Tālruņa numurs",typeUrl:"Adrese"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/mk.js b/www/lib/ckeditor/plugins/forms/lang/mk.js new file mode 100644 index 00000000..84837f53 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/mk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mk",{button:{title:"Button Properties",text:"Text (Value)",type:"Type",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"Form Properties",menu:"Form Properties",action:"Action",method:"Method",encoding:"Encoding"},hidden:{title:"Hidden Field Properties",name:"Name",value:"Value"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Value",size:"Size",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"Delete"},textarea:{title:"Textarea Properties",cols:"Columns",rows:"Rows"},textfield:{title:"Text Field Properties",name:"Name",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"Type",typeText:"Text",typePass:"Password",typeEmail:"Email", +typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/mn.js b/www/lib/ckeditor/plugins/forms/lang/mn.js new file mode 100644 index 00000000..747b5eb6 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/mn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","mn",{button:{title:"Товчны шинж чанар",text:"Тэкст (Утга)",type:"Төрөл",typeBtn:"Товч",typeSbm:"Submit",typeRst:"Болих"},checkboxAndRadio:{checkboxTitle:"Чекбоксны шинж чанар",radioTitle:"Радио товчны шинж чанар",value:"Утга",selected:"Сонгогдсон"},form:{title:"Форм шинж чанар",menu:"Форм шинж чанар",action:"Үйлдэл",method:"Арга",encoding:"Encoding"},hidden:{title:"Нууц талбарын шинж чанар",name:"Нэр",value:"Утга"},select:{title:"Согогч талбарын шинж чанар",selectInfo:"Мэдээлэл", +opAvail:"Идвэхтэй сонголт",value:"Утга",size:"Хэмжээ",lines:"Мөр",chkMulti:"Олон зүйл зэрэг сонгохыг зөвшөөрөх",opText:"Тэкст",opValue:"Утга",btnAdd:"Нэмэх",btnModify:"Өөрчлөх",btnUp:"Дээш",btnDown:"Доош",btnSetValue:"Сонгогдсан утга оноох",btnDelete:"Устгах"},textarea:{title:"Текст орчны шинж чанар",cols:"Багана",rows:"Мөр"},textfield:{title:"Текст талбарын шинж чанар",name:"Нэр",value:"Утга",charWidth:"Тэмдэгтын өргөн",maxChars:"Хамгийн их тэмдэгт",type:"Төрөл",typeText:"Текст",typePass:"Нууц үг", +typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"цахим хуудасны хаяг (URL)"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ms.js b/www/lib/ckeditor/plugins/forms/lang/ms.js new file mode 100644 index 00000000..fbf6b9f4 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ms.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ms",{button:{title:"Ciri-ciri Butang",text:"Teks (Nilai)",type:"Jenis",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Ciri-ciri Checkbox",radioTitle:"Ciri-ciri Butang Radio",value:"Nilai",selected:"Dipilih"},form:{title:"Ciri-ciri Borang",menu:"Ciri-ciri Borang",action:"Tindakan borang",method:"Cara borang dihantar",encoding:"Encoding"},hidden:{title:"Ciri-ciri Field Tersembunyi",name:"Nama",value:"Nilai"},select:{title:"Ciri-ciri Selection Field", +selectInfo:"Select Info",opAvail:"Pilihan sediada",value:"Nilai",size:"Saiz",lines:"garisan",chkMulti:"Benarkan pilihan pelbagai",opText:"Teks",opValue:"Nilai",btnAdd:"Tambah Pilihan",btnModify:"Ubah Pilihan",btnUp:"Naik ke atas",btnDown:"Turun ke bawah",btnSetValue:"Set sebagai nilai terpilih",btnDelete:"Padam"},textarea:{title:"Ciri-ciri Textarea",cols:"Lajur",rows:"Baris"},textfield:{title:"Ciri-ciri Text Field",name:"Nama",value:"Nilai",charWidth:"Lebar isian",maxChars:"Isian Maksimum",type:"Jenis", +typeText:"Teks",typePass:"Kata Laluan",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/nb.js b/www/lib/ckeditor/plugins/forms/lang/nb.js new file mode 100644 index 00000000..5874510b --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/nb.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nb",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/nl.js b/www/lib/ckeditor/plugins/forms/lang/nl.js new file mode 100644 index 00000000..5bff8285 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/nl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","nl",{button:{title:"Eigenschappen knop",text:"Tekst (waarde)",type:"Soort",typeBtn:"Knop",typeSbm:"Versturen",typeRst:"Leegmaken"},checkboxAndRadio:{checkboxTitle:"Eigenschappen aanvinkvakje",radioTitle:"Eigenschappen selectievakje",value:"Waarde",selected:"Geselecteerd"},form:{title:"Eigenschappen formulier",menu:"Eigenschappen formulier",action:"Actie",method:"Methode",encoding:"Codering"},hidden:{title:"Eigenschappen verborgen veld",name:"Naam",value:"Waarde"}, +select:{title:"Eigenschappen selectieveld",selectInfo:"Informatie",opAvail:"Beschikbare opties",value:"Waarde",size:"Grootte",lines:"Regels",chkMulti:"Gecombineerde selecties toestaan",opText:"Tekst",opValue:"Waarde",btnAdd:"Toevoegen",btnModify:"Wijzigen",btnUp:"Omhoog",btnDown:"Omlaag",btnSetValue:"Als geselecteerde waarde instellen",btnDelete:"Verwijderen"},textarea:{title:"Eigenschappen tekstvak",cols:"Kolommen",rows:"Rijen"},textfield:{title:"Eigenschappen tekstveld",name:"Naam",value:"Waarde", +charWidth:"Breedte (tekens)",maxChars:"Maximum aantal tekens",type:"Soort",typeText:"Tekst",typePass:"Wachtwoord",typeEmail:"E-mail",typeSearch:"Zoeken",typeTel:"Telefoonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/no.js b/www/lib/ckeditor/plugins/forms/lang/no.js new file mode 100644 index 00000000..07e20c4f --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/no.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","no",{button:{title:"Egenskaper for knapp",text:"Tekst (verdi)",type:"Type",typeBtn:"Knapp",typeSbm:"Send",typeRst:"Nullstill"},checkboxAndRadio:{checkboxTitle:"Egenskaper for avmerkingsboks",radioTitle:"Egenskaper for alternativknapp",value:"Verdi",selected:"Valgt"},form:{title:"Egenskaper for skjema",menu:"Egenskaper for skjema",action:"Handling",method:"Metode",encoding:"Encoding"},hidden:{title:"Egenskaper for skjult felt",name:"Navn",value:"Verdi"},select:{title:"Egenskaper for rullegardinliste", +selectInfo:"Info",opAvail:"Tilgjenglige alternativer",value:"Verdi",size:"Størrelse",lines:"Linjer",chkMulti:"Tillat flervalg",opText:"Tekst",opValue:"Verdi",btnAdd:"Legg til",btnModify:"Endre",btnUp:"Opp",btnDown:"Ned",btnSetValue:"Sett som valgt",btnDelete:"Slett"},textarea:{title:"Egenskaper for tekstområde",cols:"Kolonner",rows:"Rader"},textfield:{title:"Egenskaper for tekstfelt",name:"Navn",value:"Verdi",charWidth:"Tegnbredde",maxChars:"Maks antall tegn",type:"Type",typeText:"Tekst",typePass:"Passord", +typeEmail:"Epost",typeSearch:"Søk",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/pl.js b/www/lib/ckeditor/plugins/forms/lang/pl.js new file mode 100644 index 00000000..8577d620 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/pl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pl",{button:{title:"Właściwości przycisku",text:"Tekst (Wartość)",type:"Typ",typeBtn:"Przycisk",typeSbm:"Wyślij",typeRst:"Wyczyść"},checkboxAndRadio:{checkboxTitle:"Właściwości pola wyboru (checkbox)",radioTitle:"Właściwości przycisku opcji (radio)",value:"Wartość",selected:"Zaznaczone"},form:{title:"Właściwości formularza",menu:"Właściwości formularza",action:"Akcja",method:"Metoda",encoding:"Kodowanie"},hidden:{title:"Właściwości pola ukrytego",name:"Nazwa",value:"Wartość"}, +select:{title:"Właściwości listy wyboru",selectInfo:"Informacje",opAvail:"Dostępne opcje",value:"Wartość",size:"Rozmiar",lines:"wierszy",chkMulti:"Wielokrotny wybór",opText:"Tekst",opValue:"Wartość",btnAdd:"Dodaj",btnModify:"Zmień",btnUp:"Do góry",btnDown:"Do dołu",btnSetValue:"Ustaw jako zaznaczoną",btnDelete:"Usuń"},textarea:{title:"Właściwości obszaru tekstowego",cols:"Liczba kolumn",rows:"Liczba wierszy"},textfield:{title:"Właściwości pola tekstowego",name:"Nazwa",value:"Wartość",charWidth:"Szerokość w znakach", +maxChars:"Szerokość maksymalna",type:"Typ",typeText:"Tekst",typePass:"Hasło",typeEmail:"Email",typeSearch:"Szukaj",typeTel:"Numer telefonu",typeUrl:"Adres URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/pt-br.js b/www/lib/ckeditor/plugins/forms/lang/pt-br.js new file mode 100644 index 00000000..1fe748a5 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/pt-br.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt-br",{button:{title:"Formatar Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Botão",typeSbm:"Enviar",typeRst:"Limpar"},checkboxAndRadio:{checkboxTitle:"Formatar Caixa de Seleção",radioTitle:"Formatar Botão de Opção",value:"Valor",selected:"Selecionado"},form:{title:"Formatar Formulário",menu:"Formatar Formulário",action:"Ação",method:"Método",encoding:"Codificação"},hidden:{title:"Formatar Campo Oculto",name:"Nome",value:"Valor"},select:{title:"Formatar Caixa de Listagem", +selectInfo:"Informações",opAvail:"Opções disponíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir múltiplas seleções",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir como selecionado",btnDelete:"Remover"},textarea:{title:"Formatar Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Formatar Caixa de Texto",name:"Nome",value:"Valor",charWidth:"Comprimento (em caracteres)",maxChars:"Número Máximo de Caracteres", +type:"Tipo",typeText:"Texto",typePass:"Senha",typeEmail:"Email",typeSearch:"Busca",typeTel:"Número de Telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/pt.js b/www/lib/ckeditor/plugins/forms/lang/pt.js new file mode 100644 index 00000000..7958d629 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/pt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","pt",{button:{title:"Propriedades do Botão",text:"Texto (Valor)",type:"Tipo",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Propriedades da Caixa de Verificação",radioTitle:"Propriedades do Botão de Opção",value:"Valor",selected:"Seleccionado"},form:{title:"Propriedades do Formulário",menu:"Propriedades do Formulário",action:"Acção",method:"Método",encoding:"Encoding"},hidden:{title:"Propriedades do Campo Escondido",name:"Nome", +value:"Valor"},select:{title:"Propriedades da Caixa de Combinação",selectInfo:"Informação",opAvail:"Opções Possíveis",value:"Valor",size:"Tamanho",lines:"linhas",chkMulti:"Permitir selecções múltiplas",opText:"Texto",opValue:"Valor",btnAdd:"Adicionar",btnModify:"Modificar",btnUp:"Para cima",btnDown:"Para baixo",btnSetValue:"Definir um valor por defeito",btnDelete:"Apagar"},textarea:{title:"Propriedades da Área de Texto",cols:"Colunas",rows:"Linhas"},textfield:{title:"Propriedades do Campo de Texto", +name:"Nome",value:"Valor",charWidth:"Tamanho do caracter",maxChars:"Nr. Máximo de Caracteres",type:"Tipo",typeText:"Texto",typePass:"Palavra-chave",typeEmail:"Email",typeSearch:"Pesquisar",typeTel:"Numero de telefone",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ro.js b/www/lib/ckeditor/plugins/forms/lang/ro.js new file mode 100644 index 00000000..0db618b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ro.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ro",{button:{title:"Proprietăţi buton",text:"Text (Valoare)",type:"Tip",typeBtn:"Buton",typeSbm:"Trimite",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Proprietăţi bifă (Checkbox)",radioTitle:"Proprietăţi buton radio (Radio Button)",value:"Valoare",selected:"Selectat"},form:{title:"Proprietăţi formular (Form)",menu:"Proprietăţi formular (Form)",action:"Acţiune",method:"Metodă",encoding:"Encodare"},hidden:{title:"Proprietăţi câmp ascuns (Hidden Field)",name:"Nume", +value:"Valoare"},select:{title:"Proprietăţi câmp selecţie (Selection Field)",selectInfo:"Informaţii",opAvail:"Opţiuni disponibile",value:"Valoare",size:"Mărime",lines:"linii",chkMulti:"Permite selecţii multiple",opText:"Text",opValue:"Valoare",btnAdd:"Adaugă",btnModify:"Modifică",btnUp:"Sus",btnDown:"Jos",btnSetValue:"Setează ca valoare selectată",btnDelete:"Şterge"},textarea:{title:"Proprietăţi suprafaţă text (Textarea)",cols:"Coloane",rows:"Linii"},textfield:{title:"Proprietăţi câmp text (Text Field)", +name:"Nume",value:"Valoare",charWidth:"Lărgimea caracterului",maxChars:"Caractere maxime",type:"Tip",typeText:"Text",typePass:"Parolă",typeEmail:"Email",typeSearch:"Cauta",typeTel:"Numar de telefon",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ru.js b/www/lib/ckeditor/plugins/forms/lang/ru.js new file mode 100644 index 00000000..534eb497 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ru.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ru",{button:{title:"Свойства кнопки",text:"Текст (Значение)",type:"Тип",typeBtn:"Кнопка",typeSbm:"Отправка",typeRst:"Сброс"},checkboxAndRadio:{checkboxTitle:"Свойства флаговой кнопки",radioTitle:"Свойства кнопки выбора",value:"Значение",selected:"Выбрано"},form:{title:"Свойства формы",menu:"Свойства формы",action:"Действие",method:"Метод",encoding:"Кодировка"},hidden:{title:"Свойства скрытого поля",name:"Имя",value:"Значение"},select:{title:"Свойства списка выбора", +selectInfo:"Информация о списке выбора",opAvail:"Доступные варианты",value:"Значение",size:"Размер",lines:"строк(и)",chkMulti:"Разрешить выбор нескольких вариантов",opText:"Текст",opValue:"Значение",btnAdd:"Добавить",btnModify:"Изменить",btnUp:"Поднять",btnDown:"Опустить",btnSetValue:"Пометить как выбранное",btnDelete:"Удалить"},textarea:{title:"Свойства многострочного текстового поля",cols:"Колонок",rows:"Строк"},textfield:{title:"Свойства текстового поля",name:"Имя",value:"Значение",charWidth:"Ширина поля (в символах)", +maxChars:"Макс. количество символов",type:"Тип содержимого",typeText:"Текст",typePass:"Пароль",typeEmail:"Email",typeSearch:"Поиск",typeTel:"Номер телефона",typeUrl:"Ссылка"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/si.js b/www/lib/ckeditor/plugins/forms/lang/si.js new file mode 100644 index 00000000..ab61582f --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/si.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","si",{button:{title:"බොත්තම් ගුණ",text:"වගන්තිය(වටිනාකම)",type:"වර්ගය",typeBtn:"බොත්තම",typeSbm:"යොමුකරනවා",typeRst:"නැවත ආරම්භකතත්වයට පත් කරනවා"},checkboxAndRadio:{checkboxTitle:"ලකුණු කිරීමේ කොටුවේ ලක්ෂණ",radioTitle:"Radio Button Properties",value:"Value",selected:"Selected"},form:{title:"පෝරමයේ ",menu:"පෝරමයේ ගුණ/",action:"ගන්නා පියවර",method:"ක්‍රමය",encoding:"කේතීකරණය"},hidden:{title:"සැඟවුණු ප්‍රදේශයේ ",name:"නම",value:"Value"},select:{title:"තේරීම් ප්‍රදේශයේ ", +selectInfo:"විස්තර තෝරන්න",opAvail:"ඉතුරුවී ඇති වීකල්ප",value:"Value",size:"විශාලත්වය",lines:"lines",chkMulti:"Allow multiple selections",opText:"Text",opValue:"Value",btnAdd:"Add",btnModify:"Modify",btnUp:"Up",btnDown:"Down",btnSetValue:"Set as selected value",btnDelete:"මකා දැම්ම"},textarea:{title:"Textarea Properties",cols:"සිරස් ",rows:"Rows"},textfield:{title:"Text Field Properties",name:"නම",value:"Value",charWidth:"Character Width",maxChars:"Maximum Characters",type:"වර්ගය",typeText:"Text", +typePass:"Password",typeEmail:"Email",typeSearch:"Search",typeTel:"Telephone Number",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/sk.js b/www/lib/ckeditor/plugins/forms/lang/sk.js new file mode 100644 index 00000000..218b6274 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/sk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sk",{button:{title:"Vlastnosti tlačidla",text:"Text (Hodnota)",type:"Typ",typeBtn:"Tlačidlo",typeSbm:"Odoslať",typeRst:"Resetovať"},checkboxAndRadio:{checkboxTitle:"Vlastnosti zaškrtávacieho políčka",radioTitle:"Vlastnosti prepínača (radio button)",value:"Hodnota",selected:"Vybrané (selected)"},form:{title:"Vlastnosti formulára",menu:"Vlastnosti formulára",action:"Akcia (action)",method:"Metóda (method)",encoding:"Kódovanie (encoding)"},hidden:{title:"Vlastnosti skrytého poľa", +name:"Názov (name)",value:"Hodnota"},select:{title:"Vlastnosti rozbaľovacieho zoznamu",selectInfo:"Informácie o výbere",opAvail:"Dostupné možnosti",value:"Hodnota",size:"Veľkosť",lines:"riadkov",chkMulti:"Povoliť viacnásobný výber",opText:"Text",opValue:"Hodnota",btnAdd:"Pridať",btnModify:"Upraviť",btnUp:"Hore",btnDown:"Dole",btnSetValue:"Nastaviť ako vybranú hodnotu",btnDelete:"Vymazať"},textarea:{title:"Vlastnosti textovej oblasti (textarea)",cols:"Stĺpcov",rows:"Riadkov"},textfield:{title:"Vlastnosti textového poľa", +name:"Názov (name)",value:"Hodnota",charWidth:"Šírka poľa (podľa znakov)",maxChars:"Maximálny počet znakov",type:"Typ",typeText:"Text",typePass:"Heslo",typeEmail:"Email",typeSearch:"Hľadať",typeTel:"Telefónne číslo",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/sl.js b/www/lib/ckeditor/plugins/forms/lang/sl.js new file mode 100644 index 00000000..ad3bc43f --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/sl.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sl",{button:{title:"Lastnosti gumba",text:"Besedilo (Vrednost)",type:"Tip",typeBtn:"Gumb",typeSbm:"Potrdi",typeRst:"Ponastavi"},checkboxAndRadio:{checkboxTitle:"Lastnosti potrditvenega polja",radioTitle:"Lastnosti izbirnega polja",value:"Vrednost",selected:"Izbrano"},form:{title:"Lastnosti obrazca",menu:"Lastnosti obrazca",action:"Akcija",method:"Metoda",encoding:"Kodiranje znakov"},hidden:{title:"Lastnosti skritega polja",name:"Ime",value:"Vrednost"},select:{title:"Lastnosti spustnega seznama", +selectInfo:"Podatki",opAvail:"Razpoložljive izbire",value:"Vrednost",size:"Velikost",lines:"vrstic",chkMulti:"Dovoli izbor večih vrstic",opText:"Besedilo",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Spremeni",btnUp:"Gor",btnDown:"Dol",btnSetValue:"Postavi kot privzeto izbiro",btnDelete:"Izbriši"},textarea:{title:"Lastnosti vnosnega območja",cols:"Stolpcev",rows:"Vrstic"},textfield:{title:"Lastnosti vnosnega polja",name:"Ime",value:"Vrednost",charWidth:"Dolžina",maxChars:"Največje število znakov", +type:"Tip",typeText:"Besedilo",typePass:"Geslo",typeEmail:"E-pošta",typeSearch:"Iskanje",typeTel:"Telefonska Številka",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/sq.js b/www/lib/ckeditor/plugins/forms/lang/sq.js new file mode 100644 index 00000000..a8c45b47 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/sq.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sq",{button:{title:"Rekuizitat e Pullës",text:"Teskti (Vlera)",type:"LLoji",typeBtn:"Buton",typeSbm:"Dërgo",typeRst:"Rikthe"},checkboxAndRadio:{checkboxTitle:"Rekuizitat e Kutizë Përzgjedhëse",radioTitle:"Rekuizitat e Pullës",value:"Vlera",selected:"Përzgjedhur"},form:{title:"Rekuizitat e Formës",menu:"Rekuizitat e Formës",action:"Veprim",method:"Metoda",encoding:"Kodimi"},hidden:{title:"Rekuizitat e Fushës së Fshehur",name:"Emër",value:"Vlera"},select:{title:"Rekuizitat e Fushës së Përzgjedhur", +selectInfo:"Përzgjidh Informacionin",opAvail:"Opsionet e Mundshme",value:"Vlera",size:"Madhësia",lines:"rreshtat",chkMulti:"Lejo përzgjidhje të shumëfishta",opText:"Teksti",opValue:"Vlera",btnAdd:"Vendos",btnModify:"Ndrysho",btnUp:"Sipër",btnDown:"Poshtë",btnSetValue:"Bëje si vlerë të përzgjedhur",btnDelete:"Grise"},textarea:{title:"Rekuzitat e Fushës së Tekstit",cols:"Kolonat",rows:"Rreshtat"},textfield:{title:"Rekuizitat e Fushës së Tekstit",name:"Emër",value:"Vlera",charWidth:"Gjerësia e Karakterit", +maxChars:"Numri maksimal i karaktereve",type:"LLoji",typeText:"Teksti",typePass:"Fjalëkalimi",typeEmail:"Posta Elektronike",typeSearch:"Kërko",typeTel:"Numri i Telefonit",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/sr-latn.js b/www/lib/ckeditor/plugins/forms/lang/sr-latn.js new file mode 100644 index 00000000..af31d088 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/sr-latn.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr-latn",{button:{title:"Osobine dugmeta",text:"Tekst (vrednost)",type:"Tip",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Osobine polja za potvrdu",radioTitle:"Osobine radio-dugmeta",value:"Vrednost",selected:"Označeno"},form:{title:"Osobine forme",menu:"Osobine forme",action:"Akcija",method:"Metoda",encoding:"Encoding"},hidden:{title:"Osobine skrivenog polja",name:"Naziv",value:"Vrednost"},select:{title:"Osobine izbornog polja", +selectInfo:"Info",opAvail:"Dostupne opcije",value:"Vrednost",size:"Veličina",lines:"linija",chkMulti:"Dozvoli višestruku selekciju",opText:"Tekst",opValue:"Vrednost",btnAdd:"Dodaj",btnModify:"Izmeni",btnUp:"Gore",btnDown:"Dole",btnSetValue:"Podesi kao označenu vrednost",btnDelete:"Obriši"},textarea:{title:"Osobine zone teksta",cols:"Broj kolona",rows:"Broj redova"},textfield:{title:"Osobine tekstualnog polja",name:"Naziv",value:"Vrednost",charWidth:"Širina (karaktera)",maxChars:"Maksimalno karaktera", +type:"Tip",typeText:"Tekst",typePass:"Lozinka",typeEmail:"Email",typeSearch:"Pretraži",typeTel:"Broj telefona",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/sr.js b/www/lib/ckeditor/plugins/forms/lang/sr.js new file mode 100644 index 00000000..74d46b2d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/sr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sr",{button:{title:"Особине дугмета",text:"Текст (вредност)",type:"Tип",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Особине поља за потврду",radioTitle:"Особине радио-дугмета",value:"Вредност",selected:"Означено"},form:{title:"Особине форме",menu:"Особине форме",action:"Aкција",method:"Mетода",encoding:"Encoding"},hidden:{title:"Особине скривеног поља",name:"Назив",value:"Вредност"},select:{title:"Особине изборног поља",selectInfo:"Инфо", +opAvail:"Доступне опције",value:"Вредност",size:"Величина",lines:"линија",chkMulti:"Дозволи вишеструку селекцију",opText:"Текст",opValue:"Вредност",btnAdd:"Додај",btnModify:"Измени",btnUp:"Горе",btnDown:"Доле",btnSetValue:"Подеси као означену вредност",btnDelete:"Обриши"},textarea:{title:"Особине зоне текста",cols:"Број колона",rows:"Број редова"},textfield:{title:"Особине текстуалног поља",name:"Назив",value:"Вредност",charWidth:"Ширина (карактера)",maxChars:"Максимално карактера",type:"Тип",typeText:"Текст", +typePass:"Лозинка",typeEmail:"Е-пошта",typeSearch:"Претрага",typeTel:"Број телефона",typeUrl:"УРЛ"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/sv.js b/www/lib/ckeditor/plugins/forms/lang/sv.js new file mode 100644 index 00000000..b03b381d --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/sv.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","sv",{button:{title:"Egenskaper för knapp",text:"Text (värde)",type:"Typ",typeBtn:"Knapp",typeSbm:"Skicka",typeRst:"Återställ"},checkboxAndRadio:{checkboxTitle:"Egenskaper för kryssruta",radioTitle:"Egenskaper för alternativknapp",value:"Värde",selected:"Vald"},form:{title:"Egenskaper för formulär",menu:"Egenskaper för formulär",action:"Funktion",method:"Metod",encoding:"Kodning"},hidden:{title:"Egenskaper för dolt fält",name:"Namn",value:"Värde"},select:{title:"Egenskaper för flervalslista", +selectInfo:"Information",opAvail:"Befintliga val",value:"Värde",size:"Storlek",lines:"Linjer",chkMulti:"Tillåt flerval",opText:"Text",opValue:"Värde",btnAdd:"Lägg till",btnModify:"Redigera",btnUp:"Upp",btnDown:"Ner",btnSetValue:"Markera som valt värde",btnDelete:"Radera"},textarea:{title:"Egenskaper för textruta",cols:"Kolumner",rows:"Rader"},textfield:{title:"Egenskaper för textfält",name:"Namn",value:"Värde",charWidth:"Teckenbredd",maxChars:"Max antal tecken",type:"Typ",typeText:"Text",typePass:"Lösenord", +typeEmail:"E-post",typeSearch:"Sök",typeTel:"Telefonnummer",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/th.js b/www/lib/ckeditor/plugins/forms/lang/th.js new file mode 100644 index 00000000..e9337498 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/th.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","th",{button:{title:"รายละเอียดของ ปุ่ม",text:"ข้อความ (ค่าตัวแปร)",type:"ข้อความ",typeBtn:"Button",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"คุณสมบัติของ เช็คบ๊อก",radioTitle:"คุณสมบัติของ เรดิโอบัตตอน",value:"ค่าตัวแปร",selected:"เลือกเป็นค่าเริ่มต้น"},form:{title:"คุณสมบัติของ แบบฟอร์ม",menu:"คุณสมบัติของ แบบฟอร์ม",action:"แอคชั่น",method:"เมธอด",encoding:"Encoding"},hidden:{title:"คุณสมบัติของ ฮิดเดนฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร"}, +select:{title:"คุณสมบัติของ แถบตัวเลือก",selectInfo:"อินโฟ",opAvail:"รายการตัวเลือก",value:"ค่าตัวแปร",size:"ขนาด",lines:"บรรทัด",chkMulti:"เลือกหลายค่าได้",opText:"ข้อความ",opValue:"ค่าตัวแปร",btnAdd:"เพิ่ม",btnModify:"แก้ไข",btnUp:"บน",btnDown:"ล่าง",btnSetValue:"เลือกเป็นค่าเริ่มต้น",btnDelete:"ลบ"},textarea:{title:"คุณสมบัติของ เท็กแอเรีย",cols:"สดมภ์",rows:"แถว"},textfield:{title:"คุณสมบัติของ เท็กซ์ฟิลด์",name:"ชื่อ",value:"ค่าตัวแปร",charWidth:"ความกว้าง",maxChars:"จำนวนตัวอักษรสูงสุด",type:"ชนิด", +typeText:"ข้อความ",typePass:"รหัสผ่าน",typeEmail:"อีเมล",typeSearch:"ค้นหาก",typeTel:"หมายเลขโทรศัพท์",typeUrl:"ที่อยู่อ้างอิง URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/tr.js b/www/lib/ckeditor/plugins/forms/lang/tr.js new file mode 100644 index 00000000..3710d318 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/tr.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tr",{button:{title:"Düğme Özellikleri",text:"Metin (Değer)",type:"Tip",typeBtn:"Düğme",typeSbm:"Gönder",typeRst:"Sıfırla"},checkboxAndRadio:{checkboxTitle:"Onay Kutusu Özellikleri",radioTitle:"Seçenek Düğmesi Özellikleri",value:"Değer",selected:"Seçili"},form:{title:"Form Özellikleri",menu:"Form Özellikleri",action:"İşlem",method:"Yöntem",encoding:"Kodlama"},hidden:{title:"Gizli Veri Özellikleri",name:"Ad",value:"Değer"},select:{title:"Seçim Menüsü Özellikleri",selectInfo:"Bilgi", +opAvail:"Mevcut Seçenekler",value:"Değer",size:"Boyut",lines:"satır",chkMulti:"Çoklu seçime izin ver",opText:"Metin",opValue:"Değer",btnAdd:"Ekle",btnModify:"Düzenle",btnUp:"Yukarı",btnDown:"Aşağı",btnSetValue:"Seçili değer olarak ata",btnDelete:"Sil"},textarea:{title:"Çok Satırlı Metin Özellikleri",cols:"Sütunlar",rows:"Satırlar"},textfield:{title:"Metin Girişi Özellikleri",name:"Ad",value:"Değer",charWidth:"Karakter Genişliği",maxChars:"En Fazla Karakter",type:"Tür",typeText:"Metin",typePass:"Şifre", +typeEmail:"E-posta",typeSearch:"Ara",typeTel:"Telefon Numarası",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/tt.js b/www/lib/ckeditor/plugins/forms/lang/tt.js new file mode 100644 index 00000000..2242a407 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/tt.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","tt",{button:{title:"Төймә үзлекләре",text:"Text (Value)",type:"Төр",typeBtn:"Төймә",typeSbm:"Submit",typeRst:"Reset"},checkboxAndRadio:{checkboxTitle:"Checkbox Properties",radioTitle:"Radio Button Properties",value:"Value",selected:"Сайланган"},form:{title:"Форма үзлекләре",menu:"Форма үзлекләре",action:"Гамәл",method:"Ысул",encoding:"Кодировка"},hidden:{title:"Яшерен кыр үзлекләре",name:"Исем",value:"Күләм"},select:{title:"Selection Field Properties",selectInfo:"Select Info", +opAvail:"Available Options",value:"Күләм",size:"Зурлык",lines:"юллар",chkMulti:"Allow multiple selections",opText:"Текст",opValue:"Күләм",btnAdd:"Кушу",btnModify:"Үзгәртү",btnUp:"Өскә",btnDown:"Аска",btnSetValue:"Set as selected value",btnDelete:"Бетерү"},textarea:{title:"Текст мәйданы үзлекләре",cols:"Баганалар",rows:"Юллар"},textfield:{title:"Текст кыры үзлекләре",name:"Исем",value:"Күләм",charWidth:"Символлар киңлеге",maxChars:"Maximum Characters",type:"Төр",typeText:"Текст",typePass:"Сер сүз", +typeEmail:"Эл. почта",typeSearch:"Эзләү",typeTel:"Телефон номеры",typeUrl:"Сылталама"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/ug.js b/www/lib/ckeditor/plugins/forms/lang/ug.js new file mode 100644 index 00000000..9ff3eeeb --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/ug.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","ug",{button:{title:"توپچا خاسلىقى",text:"بەلگە (قىممەت)",type:"تىپى",typeBtn:"توپچا",typeSbm:"تاپشۇر",typeRst:"ئەسلىگە قايتۇر"},checkboxAndRadio:{checkboxTitle:"كۆپ تاللاش خاسلىقى",radioTitle:"تاق تاللاش توپچا خاسلىقى",value:"تاللىغان قىممەت",selected:"تاللانغان"},form:{title:"جەدۋەل خاسلىقى",menu:"جەدۋەل خاسلىقى",action:"مەشغۇلات",method:"ئۇسۇل",encoding:"جەدۋەل كودلىنىشى"},hidden:{title:"يوشۇرۇن دائىرە خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى"},select:{title:"جەدۋەل/تىزىم خاسلىقى", +selectInfo:"ئۇچۇر تاللاڭ",opAvail:"تاللاش تۈرلىرى",value:"قىممەت",size:"ئېگىزلىكى",lines:"قۇر",chkMulti:"كۆپ تاللاشچان",opText:"تاللانما تېكىستى",opValue:"تاللانما قىممىتى",btnAdd:"قوش",btnModify:"ئۆزگەرت",btnUp:"ئۈستىگە",btnDown:"ئاستىغا",btnSetValue:"دەسلەپكى تاللانما قىممىتىگە تەڭشە",btnDelete:"ئۆچۈر"},textarea:{title:" كۆپ قۇرلۇق تېكىست خاسلىقى",cols:"ھەرپ كەڭلىكى",rows:"قۇر سانى"},textfield:{title:"تاق قۇرلۇق تېكىست خاسلىقى",name:"ئات",value:"دەسلەپكى قىممىتى",charWidth:"ھەرپ كەڭلىكى",maxChars:"ئەڭ كۆپ ھەرپ سانى", +type:"تىپى",typeText:"تېكىست",typePass:"ئىم",typeEmail:"تورخەت",typeSearch:"ئىزدە",typeTel:"تېلېفون نومۇر",typeUrl:"ئادرېس"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/uk.js b/www/lib/ckeditor/plugins/forms/lang/uk.js new file mode 100644 index 00000000..317d57f5 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/uk.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","uk",{button:{title:"Властивості кнопки",text:"Значення",type:"Тип",typeBtn:"Кнопка (button)",typeSbm:"Надіслати (submit)",typeRst:"Очистити (reset)"},checkboxAndRadio:{checkboxTitle:"Властивості галочки",radioTitle:"Властивості кнопки вибору",value:"Значення",selected:"Обрана"},form:{title:"Властивості форми",menu:"Властивості форми",action:"Дія",method:"Метод",encoding:"Кодування"},hidden:{title:"Властивості прихованого поля",name:"Ім'я",value:"Значення"},select:{title:"Властивості списку", +selectInfo:"Інфо",opAvail:"Доступні варіанти",value:"Значення",size:"Кількість",lines:"видимих позицій у списку",chkMulti:"Список з мультивибором",opText:"Текст",opValue:"Значення",btnAdd:"Добавити",btnModify:"Змінити",btnUp:"Вгору",btnDown:"Вниз",btnSetValue:"Встановити як обране значення",btnDelete:"Видалити"},textarea:{title:"Властивості текстової області",cols:"Стовбці",rows:"Рядки"},textfield:{title:"Властивості текстового поля",name:"Ім'я",value:"Значення",charWidth:"Ширина",maxChars:"Макс. к-ть символів", +type:"Тип",typeText:"Текст",typePass:"Пароль",typeEmail:"Пошта",typeSearch:"Пошук",typeTel:"Мобільний",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/vi.js b/www/lib/ckeditor/plugins/forms/lang/vi.js new file mode 100644 index 00000000..a02d09c7 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/vi.js @@ -0,0 +1,3 @@ +CKEDITOR.plugins.setLang("forms","vi",{button:{title:"Thuộc tính của nút",text:"Chuỗi hiển thị (giá trị)",type:"Kiểu",typeBtn:"Nút bấm",typeSbm:"Nút gửi",typeRst:"Nút nhập lại"},checkboxAndRadio:{checkboxTitle:"Thuộc tính nút kiểm",radioTitle:"Thuộc tính nút chọn",value:"Giá trị",selected:"Được chọn"},form:{title:"Thuộc tính biểu mẫu",menu:"Thuộc tính biểu mẫu",action:"Hành động",method:"Phương thức",encoding:"Bảng mã"},hidden:{title:"Thuộc tính trường ẩn",name:"Tên",value:"Giá trị"},select:{title:"Thuộc tính ô chọn", +selectInfo:"Thông tin",opAvail:"Các tùy chọn có thể sử dụng",value:"Giá trị",size:"Kích cỡ",lines:"dòng",chkMulti:"Cho phép chọn nhiều",opText:"Văn bản",opValue:"Giá trị",btnAdd:"Thêm",btnModify:"Thay đổi",btnUp:"Lên",btnDown:"Xuống",btnSetValue:"Giá trị được chọn",btnDelete:"Nút xoá"},textarea:{title:"Thuộc tính vùng văn bản",cols:"Số cột",rows:"Số hàng"},textfield:{title:"Thuộc tính trường văn bản",name:"Tên",value:"Giá trị",charWidth:"Độ rộng của ký tự",maxChars:"Số ký tự tối đa",type:"Kiểu",typeText:"Ký tự", +typePass:"Mật khẩu",typeEmail:"Email",typeSearch:"Tìm kiếm",typeTel:"Số điện thoại",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/zh-cn.js b/www/lib/ckeditor/plugins/forms/lang/zh-cn.js new file mode 100644 index 00000000..3c7ea105 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh-cn",{button:{title:"按钮属性",text:"标签(值)",type:"类型",typeBtn:"按钮",typeSbm:"提交",typeRst:"重设"},checkboxAndRadio:{checkboxTitle:"复选框属性",radioTitle:"单选按钮属性",value:"选定值",selected:"已勾选"},form:{title:"表单属性",menu:"表单属性",action:"动作",method:"方法",encoding:"表单编码"},hidden:{title:"隐藏域属性",name:"名称",value:"初始值"},select:{title:"菜单/列表属性",selectInfo:"选择信息",opAvail:"可选项",value:"值",size:"高度",lines:"行",chkMulti:"允许多选",opText:"选项文本",opValue:"选项值",btnAdd:"添加",btnModify:"修改",btnUp:"上移",btnDown:"下移", +btnSetValue:"设为初始选定",btnDelete:"删除"},textarea:{title:"多行文本属性",cols:"字符宽度",rows:"行数"},textfield:{title:"单行文本属性",name:"名称",value:"初始值",charWidth:"字符宽度",maxChars:"最多字符数",type:"类型",typeText:"文本",typePass:"密码",typeEmail:"Email",typeSearch:"搜索",typeTel:"电话号码",typeUrl:"地址"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/lang/zh.js b/www/lib/ckeditor/plugins/forms/lang/zh.js new file mode 100644 index 00000000..4eec674e --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("forms","zh",{button:{title:"按鈕內容",text:"顯示文字 (值)",type:"類型",typeBtn:"按鈕",typeSbm:"送出",typeRst:"重設"},checkboxAndRadio:{checkboxTitle:"核取方塊內容",radioTitle:"選項按鈕內容",value:"數值",selected:"已選"},form:{title:"表單內容",menu:"表單內容",action:"動作",method:"方式",encoding:"編碼"},hidden:{title:"隱藏欄位內容",name:"名稱",value:"數值"},select:{title:"選取欄位內容",selectInfo:"選擇資訊",opAvail:"可用選項",value:"數值",size:"大小",lines:"行數",chkMulti:"允許多選",opText:"文字",opValue:"數值",btnAdd:"新增",btnModify:"修改",btnUp:"向上",btnDown:"向下", +btnSetValue:"設為已選",btnDelete:"刪除"},textarea:{title:"文字區域內容",cols:"列",rows:"行"},textfield:{title:"文字欄位內容",name:"名字",value:"數值",charWidth:"字元寬度",maxChars:"最大字元數",type:"類型",typeText:"文字",typePass:"密碼",typeEmail:"電子郵件",typeSearch:"搜尋",typeTel:"電話號碼",typeUrl:"URL"}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/forms/plugin.js b/www/lib/ckeditor/plugins/forms/plugin.js new file mode 100644 index 00000000..5a1ffae7 --- /dev/null +++ b/www/lib/ckeditor/plugins/forms/plugin.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"button,checkbox,form,hiddenfield,imagebutton,radio,select,select-rtl,textarea,textarea-rtl,textfield",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n"); +CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(a){var b=a.lang,g=0,h={email:1,password:1,search:1,tel:1,text:1,url:1},j={checkbox:"input[type,name,checked]",radio:"input[type,name,checked]",textfield:"input[type,name,value,size,maxlength]",textarea:"textarea[cols,rows,name]",select:"select[name,size,multiple]; option[value,selected]", +button:"input[type,name,value]",form:"form[action,name,id,enctype,target,method]",hiddenfield:"input[type,name,value]",imagebutton:"input[type,alt,src]{width,height,border,border-width,border-style,margin,float}"},k={checkbox:"input",radio:"input",textfield:"input",textarea:"textarea",select:"select",button:"input",form:"form",hiddenfield:"input",imagebutton:"input"},e=function(d,c,e){var h={allowedContent:j[c],requiredContent:k[c]};"form"==c&&(h.context="form");a.addCommand(c,new CKEDITOR.dialogCommand(c, +h));a.ui.addButton&&a.ui.addButton(d,{label:b.common[d.charAt(0).toLowerCase()+d.slice(1)],command:c,toolbar:"forms,"+(g+=10)});CKEDITOR.dialog.add(c,e)},f=this.path+"dialogs/";!a.blockless&&e("Form","form",f+"form.js");e("Checkbox","checkbox",f+"checkbox.js");e("Radio","radio",f+"radio.js");e("TextField","textfield",f+"textfield.js");e("Textarea","textarea",f+"textarea.js");e("Select","select",f+"select.js");e("Button","button",f+"button.js");var i=a.plugins.image;i&&!a.plugins.image2&&e("ImageButton", +"imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");e("HiddenField","hiddenfield",f+"hiddenfield.js");a.addMenuItems&&(e={checkbox:{label:b.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:b.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:b.forms.textfield.title,command:"textfield",group:"textfield"},hiddenfield:{label:b.forms.hidden.title,command:"hiddenfield",group:"hiddenfield"},button:{label:b.forms.button.title, +command:"button",group:"button"},select:{label:b.forms.select.title,command:"select",group:"select"},textarea:{label:b.forms.textarea.title,command:"textarea",group:"textarea"}},i&&(e.imagebutton={label:b.image.titleButton,command:"imagebutton",group:"imagebutton"}),!a.blockless&&(e.form={label:b.forms.form.menu,command:"form",group:"form"}),a.addMenuItems(e));a.contextMenu&&(!a.blockless&&a.contextMenu.addListener(function(d,c,a){if((d=a.contains("form",1))&&!d.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}), +a.contextMenu.addListener(function(d){if(d&&!d.isReadOnly()){var c=d.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var a=d.getAttribute("type")||"text";switch(a){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};case "radio":return{radio:CKEDITOR.TRISTATE_OFF};case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[a])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c== +"img"&&d.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));a.on("doubleclick",function(d){var c=d.data.element;if(!a.blockless&&c.is("form"))d.data.dialog="form";else if(c.is("select"))d.data.dialog="select";else if(c.is("textarea"))d.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")=="hiddenfield")d.data.dialog="hiddenfield";else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":d.data.dialog= +"button";break;case "checkbox":d.data.dialog="checkbox";break;case "radio":d.data.dialog="radio";break;case "image":d.data.dialog="imagebutton"}if(h[c])d.data.dialog="textfield"}})},afterInit:function(a){var b=a.dataProcessor,g=b&&b.htmlFilter,b=b&&b.dataFilter;CKEDITOR.env.ie&&g&&g.addRules({elements:{input:function(a){var a=a.attributes,b=a.type;b||(a.type="text");("checkbox"==b||"radio"==b)&&"on"==a.value&&delete a.value}}},{applyToAll:!0});b&&b.addRules({elements:{input:function(b){if("hidden"== +b.attributes.type)return a.createFakeParserElement(b,"cke_hidden","hiddenfield")}}},{applyToAll:!0})}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/icons.png b/www/lib/ckeditor/plugins/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/www/lib/ckeditor/plugins/icons.png differ diff --git a/www/lib/ckeditor/plugins/icons_hidpi.png b/www/lib/ckeditor/plugins/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/www/lib/ckeditor/plugins/icons_hidpi.png differ diff --git a/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js b/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js new file mode 100644 index 00000000..dba1e930 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/dialogs/iframe.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}}; +CKEDITOR.dialog.add("iframe",function(b){var f=b.lang.iframe,a=b.lang.common,e=b.plugins.dialogadvtab;return{title:f.title,minWidth:350,minHeight:260,onShow:function(){this.fakeImage=this.iframeNode=null;var a=this.getSelectedElement();a&&(a.data("cke-real-element-type")&&"iframe"==a.data("cke-real-element-type"))&&(this.fakeImage=a,this.iframeNode=a=b.restoreRealElement(a),this.setupContent(a))},onOk:function(){var a;a=this.fakeImage?this.iframeNode:new CKEDITOR.dom.element("iframe");var c={},d= +{};this.commitContent(a,c,d);a=b.createFakeElement(a,"cke_iframe","iframe",!0);a.setAttributes(d);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),b.getSelection().selectElement(a)):b.insertElement(a)},contents:[{id:"info",label:a.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{id:"src",type:"text",label:a.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(f.noUrl),setup:c,commit:d}]},{type:"hbox",children:[{id:"width",type:"text",requiredContent:"iframe[width]", +style:"width:100%",labelLayout:"vertical",label:a.width,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.width)),setup:c,commit:d},{id:"height",type:"text",requiredContent:"iframe[height]",style:"width:100%",labelLayout:"vertical",label:a.height,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.height)),setup:c,commit:d},{id:"align",type:"select",requiredContent:"iframe[align]","default":"",items:[[a.notSet,""],[a.alignLeft,"left"],[a.alignRight, +"right"],[a.alignTop,"top"],[a.alignMiddle,"middle"],[a.alignBottom,"bottom"]],style:"width:100%",labelLayout:"vertical",label:a.align,setup:function(a,b){c.apply(this,arguments);if(b){var d=b.getAttribute("align");this.setValue(d&&d.toLowerCase()||"")}},commit:function(a,b,c){d.apply(this,arguments);this.getValue()&&(c.align=this.getValue())}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"scrolling",type:"checkbox",requiredContent:"iframe[scrolling]",label:f.scrolling,setup:c,commit:d},{id:"frameborder", +type:"checkbox",requiredContent:"iframe[frameborder]",label:f.border,setup:c,commit:d}]},{type:"hbox",widths:["50%","50%"],children:[{id:"name",type:"text",requiredContent:"iframe[name]",label:a.name,setup:c,commit:d},{id:"title",type:"text",requiredContent:"iframe[title]",label:a.advisoryTitle,setup:c,commit:d}]},{id:"longdesc",type:"text",requiredContent:"iframe[longdesc]",label:a.longDescr,setup:c,commit:d}]},e&&e.createAdvancedTab(b,{id:1,classes:1,styles:1},"iframe")]}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png b/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png new file mode 100644 index 00000000..ff17604d Binary files /dev/null and b/www/lib/ckeditor/plugins/iframe/icons/hidpi/iframe.png differ diff --git a/www/lib/ckeditor/plugins/iframe/icons/iframe.png b/www/lib/ckeditor/plugins/iframe/icons/iframe.png new file mode 100644 index 00000000..f72d1915 Binary files /dev/null and b/www/lib/ckeditor/plugins/iframe/icons/iframe.png differ diff --git a/www/lib/ckeditor/plugins/iframe/images/placeholder.png b/www/lib/ckeditor/plugins/iframe/images/placeholder.png new file mode 100644 index 00000000..4af09565 Binary files /dev/null and b/www/lib/ckeditor/plugins/iframe/images/placeholder.png differ diff --git a/www/lib/ckeditor/plugins/iframe/lang/af.js b/www/lib/ckeditor/plugins/iframe/lang/af.js new file mode 100644 index 00000000..71eb910a --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","af",{border:"Wys rand van raam",noUrl:"Gee die iframe URL",scrolling:"Skuifbalke aan",title:"IFrame Eienskappe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ar.js b/www/lib/ckeditor/plugins/iframe/lang/ar.js new file mode 100644 index 00000000..8b90f6c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ar",{border:"إظهار حدود الإطار",noUrl:"فضلا أكتب رابط الـ iframe",scrolling:"تفعيل أشرطة الإنتقال",title:"خصائص iframe",toolbar:"iframe"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/bg.js b/www/lib/ckeditor/plugins/iframe/lang/bg.js new file mode 100644 index 00000000..23b9a7bc --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bg",{border:"Показва рамка на карето",noUrl:"Моля въведете URL за iFrame",scrolling:"Вкл. скролбаровете",title:"IFrame настройки",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/bn.js b/www/lib/ckeditor/plugins/iframe/lang/bn.js new file mode 100644 index 00000000..a7a9ee05 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/bs.js b/www/lib/ckeditor/plugins/iframe/lang/bs.js new file mode 100644 index 00000000..f37043c6 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","bs",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ca.js b/www/lib/ckeditor/plugins/iframe/lang/ca.js new file mode 100644 index 00000000..18bddf5b --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ca",{border:"Mostra la vora del marc",noUrl:"Si us plau, introdueixi la URL de l'iframe",scrolling:"Activa les barres de desplaçament",title:"Propietats de l'IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/cs.js b/www/lib/ckeditor/plugins/iframe/lang/cs.js new file mode 100644 index 00000000..37b25fb6 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cs",{border:"Zobrazit okraj",noUrl:"Zadejte prosím URL obsahu pro IFrame",scrolling:"Zapnout posuvníky",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/cy.js b/www/lib/ckeditor/plugins/iframe/lang/cy.js new file mode 100644 index 00000000..f8db6041 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","cy",{border:"Dangos ymyl y ffrâm",noUrl:"Rhowch URL yr iframe",scrolling:"Galluogi bariau sgrolio",title:"Priodweddau IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/da.js b/www/lib/ckeditor/plugins/iframe/lang/da.js new file mode 100644 index 00000000..54115330 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","da",{border:"Vis kant på rammen",noUrl:"Venligst indsæt URL på iframen",scrolling:"Aktiver scrollbars",title:"Iframe egenskaber",toolbar:"Iframe"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/de.js b/www/lib/ckeditor/plugins/iframe/lang/de.js new file mode 100644 index 00000000..2556d571 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","de",{border:"Rahmen anzeigen",noUrl:"Bitte geben Sie die IFrame-URL an",scrolling:"Rollbalken anzeigen",title:"IFrame-Eigenschaften",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/el.js b/www/lib/ckeditor/plugins/iframe/lang/el.js new file mode 100644 index 00000000..cecba9bd --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","el",{border:"Προβολή περιγράμματος πλαισίου",noUrl:"Παρακαλούμε εισάγεται το URL του iframe",scrolling:"Ενεργοποίηση μπαρών κύλισης",title:"Ιδιότητες IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/en-au.js b/www/lib/ckeditor/plugins/iframe/lang/en-au.js new file mode 100644 index 00000000..8e2821f8 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-au",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/en-ca.js b/www/lib/ckeditor/plugins/iframe/lang/en-ca.js new file mode 100644 index 00000000..c25669ed --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-ca",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/en-gb.js b/www/lib/ckeditor/plugins/iframe/lang/en-gb.js new file mode 100644 index 00000000..214388d1 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en-gb",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/en.js b/www/lib/ckeditor/plugins/iframe/lang/en.js new file mode 100644 index 00000000..8d1407e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","en",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/eo.js b/www/lib/ckeditor/plugins/iframe/lang/eo.js new file mode 100644 index 00000000..a1855070 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eo",{border:"Montri borderon de kadro (frame)",noUrl:"Bonvolu entajpi la retadreson de la ligilo al la enlinia kadro (IFrame)",scrolling:"Ebligi rulumskalon",title:"Atributoj de la enlinia kadro (IFrame)",toolbar:"Enlinia kadro (IFrame)"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/es.js b/www/lib/ckeditor/plugins/iframe/lang/es.js new file mode 100644 index 00000000..89e38510 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","es",{border:"Mostrar borde del marco",noUrl:"Por favor, escriba la dirección del iframe",scrolling:"Activar barras de desplazamiento",title:"Propiedades de iframe",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/et.js b/www/lib/ckeditor/plugins/iframe/lang/et.js new file mode 100644 index 00000000..7cd5ec0d --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","et",{border:"Raami äärise näitamine",noUrl:"Vali iframe URLi liik",scrolling:"Kerimisribade lubamine",title:"IFrame omadused",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/eu.js b/www/lib/ckeditor/plugins/iframe/lang/eu.js new file mode 100644 index 00000000..f8b1cff1 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","eu",{border:"Markoaren ertza ikusi",noUrl:"iframe-aren URLa idatzi, mesedez.",scrolling:"Korritze barrak gaitu",title:"IFrame-aren Propietateak",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/fa.js b/www/lib/ckeditor/plugins/iframe/lang/fa.js new file mode 100644 index 00000000..a6bd7ee6 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fa",{border:"نمایش خطوط frame",noUrl:"لطفا مسیر URL iframe را درج کنید",scrolling:"نمایش خطکشها",title:"ویژگیهای IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/fi.js b/www/lib/ckeditor/plugins/iframe/lang/fi.js new file mode 100644 index 00000000..2813efb0 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fi",{border:"Näytä kehyksen reunat",noUrl:"Anna IFrame-kehykselle lähdeosoite (src)",scrolling:"Näytä vierityspalkit",title:"IFrame-kehyksen ominaisuudet",toolbar:"IFrame-kehys"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/fo.js b/www/lib/ckeditor/plugins/iframe/lang/fo.js new file mode 100644 index 00000000..3ec97a07 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fo",{border:"Vís frame kant",noUrl:"Vinarliga skriva URL til iframe",scrolling:"Loyv scrollbars",title:"Møguleikar fyri IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js b/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js new file mode 100644 index 00000000..1a43ea6e --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr-ca",{border:"Afficher la bordure du cadre",noUrl:"Veuillez entre l'URL du IFrame",scrolling:"Activer les barres de défilement",title:"Propriétés du IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/fr.js b/www/lib/ckeditor/plugins/iframe/lang/fr.js new file mode 100644 index 00000000..c5bc58cb --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","fr",{border:"Afficher une bordure de la IFrame",noUrl:"Veuillez entrer l'adresse du lien de la IFrame",scrolling:"Permettre à la barre de défilement",title:"Propriétés de la IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/gl.js b/www/lib/ckeditor/plugins/iframe/lang/gl.js new file mode 100644 index 00000000..5326e33f --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gl",{border:"Amosar o bordo do marco",noUrl:"Escriba o enderezo do iframe",scrolling:"Activar as barras de desprazamento",title:"Propiedades do iFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/gu.js b/www/lib/ckeditor/plugins/iframe/lang/gu.js new file mode 100644 index 00000000..0c6aed93 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","gu",{border:"ફ્રેમ બોર્ડેર બતાવવી",noUrl:"iframe URL ટાઈપ્ કરો",scrolling:"સ્ક્રોલબાર ચાલુ કરવા",title:"IFrame વિકલ્પો",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/he.js b/www/lib/ckeditor/plugins/iframe/lang/he.js new file mode 100644 index 00000000..4c227775 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","he",{border:"הראה מסגרת לחלון",noUrl:"יש להכניס כתובת לחלון.",scrolling:"אפשר פסי גלילה",title:"מאפייני חלון פנימי (iframe)",toolbar:"חלון פנימי (iframe)"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/hi.js b/www/lib/ckeditor/plugins/iframe/lang/hi.js new file mode 100644 index 00000000..8699b826 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hi",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/hr.js b/www/lib/ckeditor/plugins/iframe/lang/hr.js new file mode 100644 index 00000000..6cf8b838 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hr",{border:"Prikaži okvir IFrame-a",noUrl:"Unesite URL iframe-a",scrolling:"Omogući trake za skrolanje",title:"IFrame svojstva",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/hu.js b/www/lib/ckeditor/plugins/iframe/lang/hu.js new file mode 100644 index 00000000..94bdf85e --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","hu",{border:"Legyen keret",noUrl:"Kérem írja be a iframe URL-t",scrolling:"Gördítősáv bekapcsolása",title:"IFrame Tulajdonságok",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/id.js b/www/lib/ckeditor/plugins/iframe/lang/id.js new file mode 100644 index 00000000..0db9a8ee --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","id",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/is.js b/www/lib/ckeditor/plugins/iframe/lang/is.js new file mode 100644 index 00000000..bb669e8a --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","is",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/it.js b/www/lib/ckeditor/plugins/iframe/lang/it.js new file mode 100644 index 00000000..54f33bec --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","it",{border:"Mostra il bordo",noUrl:"Inserire l'URL del campo IFrame",scrolling:"Abilita scrollbar",title:"Proprietà IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ja.js b/www/lib/ckeditor/plugins/iframe/lang/ja.js new file mode 100644 index 00000000..039c5788 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ja",{border:"フレームの枠を表示",noUrl:"iframeのURLを入力してください。",scrolling:"スクロールバーの表示を許可",title:"iFrameのプロパティ",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ka.js b/www/lib/ckeditor/plugins/iframe/lang/ka.js new file mode 100644 index 00000000..e8388990 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ka",{border:"ჩარჩოს გამოჩენა",noUrl:"აკრიფეთ iframe-ის URL",scrolling:"გადახვევის ზოლების დაშვება",title:"IFrame-ის პარამეტრები",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/km.js b/www/lib/ckeditor/plugins/iframe/lang/km.js new file mode 100644 index 00000000..629c7831 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","km",{border:"បង្ហាញ​បន្ទាត់​ស៊ុម",noUrl:"សូម​បញ្ចូល URL របស់ iframe",scrolling:"ប្រើ​របារ​រំកិល",title:"លក្ខណៈ​សម្បត្តិ IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ko.js b/www/lib/ckeditor/plugins/iframe/lang/ko.js new file mode 100644 index 00000000..fa6bc741 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ko",{border:"프레임 테두리 표시",noUrl:"iframe 대응 URL을 입력해주세요.",scrolling:"스크롤바 사용",title:"IFrame 속성",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ku.js b/www/lib/ckeditor/plugins/iframe/lang/ku.js new file mode 100644 index 00000000..bc1ae360 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ku",{border:"نیشاندانی لاکێشه بە چوواردەوری چووارچێوە",noUrl:"تکایه ناونیشانی بەستەر بنووسه بۆ چووارچێوه",scrolling:"چالاککردنی هاتووچۆپێکردن",title:"دیالۆگی چووارچێوه",toolbar:"چووارچێوه"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/lt.js b/www/lib/ckeditor/plugins/iframe/lang/lt.js new file mode 100644 index 00000000..20dee016 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lt",{border:"Rodyti rėmelį",noUrl:"Nurodykite iframe nuorodą",scrolling:"Įjungti slankiklius",title:"IFrame nustatymai",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/lv.js b/www/lib/ckeditor/plugins/iframe/lang/lv.js new file mode 100644 index 00000000..b9db9432 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","lv",{border:"Rādīt rāmi",noUrl:"Norādiet iframe adresi",scrolling:"Atļaut ritjoslas",title:"IFrame uzstādījumi",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/mk.js b/www/lib/ckeditor/plugins/iframe/lang/mk.js new file mode 100644 index 00000000..a4dbb236 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mk",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/mn.js b/www/lib/ckeditor/plugins/iframe/lang/mn.js new file mode 100644 index 00000000..f45cf054 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","mn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ms.js b/www/lib/ckeditor/plugins/iframe/lang/ms.js new file mode 100644 index 00000000..8ff5bc1b --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ms",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/nb.js b/www/lib/ckeditor/plugins/iframe/lang/nb.js new file mode 100644 index 00000000..ec65e337 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nb",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/nl.js b/www/lib/ckeditor/plugins/iframe/lang/nl.js new file mode 100644 index 00000000..348ee0ec --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","nl",{border:"Framerand tonen",noUrl:"Vul de IFrame URL in",scrolling:"Scrollbalken inschakelen",title:"IFrame-eigenschappen",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/no.js b/www/lib/ckeditor/plugins/iframe/lang/no.js new file mode 100644 index 00000000..04a9241d --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","no",{border:"Viss ramme rundt iframe",noUrl:"Vennligst skriv inn URL for iframe",scrolling:"Aktiver scrollefelt",title:"Egenskaper for IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/pl.js b/www/lib/ckeditor/plugins/iframe/lang/pl.js new file mode 100644 index 00000000..d0859990 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pl",{border:"Pokaż obramowanie obiektu IFrame",noUrl:"Podaj adres URL elementu IFrame",scrolling:"Włącz paski przewijania",title:"Właściwości elementu IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/pt-br.js b/www/lib/ckeditor/plugins/iframe/lang/pt-br.js new file mode 100644 index 00000000..67100264 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt-br",{border:"Mostra borda do iframe",noUrl:"Insira a URL do iframe",scrolling:"Abilita scrollbars",title:"Propriedade do IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/pt.js b/www/lib/ckeditor/plugins/iframe/lang/pt.js new file mode 100644 index 00000000..4ac51c5b --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","pt",{border:"Mostrar a borda da Frame",noUrl:"Por favor, digite o URL da iframe",scrolling:"Ativar barras de deslocamento",title:"Propriedades da IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ro.js b/www/lib/ckeditor/plugins/iframe/lang/ro.js new file mode 100644 index 00000000..d2ca21fb --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ro",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ru.js b/www/lib/ckeditor/plugins/iframe/lang/ru.js new file mode 100644 index 00000000..8691613d --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ru",{border:"Показать границы фрейма",noUrl:"Пожалуйста, введите ссылку фрейма",scrolling:"Отображать полосы прокрутки",title:"Свойства iFrame",toolbar:"iFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/si.js b/www/lib/ckeditor/plugins/iframe/lang/si.js new file mode 100644 index 00000000..a0b2c1e3 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","si",{border:"සැකිල්ලේ කඩයිම් ",noUrl:"කරුණාකර රුපයේ URL ලියන්න",scrolling:"සක්ක්‍රිය කරන්න",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/sk.js b/www/lib/ckeditor/plugins/iframe/lang/sk.js new file mode 100644 index 00000000..7685e8bf --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sk",{border:"Zobraziť rám frame-u",noUrl:"Prosím, vložte URL iframe",scrolling:"Povoliť skrolovanie",title:"Vlastnosti IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/sl.js b/www/lib/ckeditor/plugins/iframe/lang/sl.js new file mode 100644 index 00000000..7b79a792 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sl",{border:"Pokaži mejo okvira",noUrl:"Prosimo, vnesite iframe URL",scrolling:"Omogoči scrollbars",title:"IFrame Lastnosti",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/sq.js b/www/lib/ckeditor/plugins/iframe/lang/sq.js new file mode 100644 index 00000000..4c66e350 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sq",{border:"Shfaq kufirin e kornizës",noUrl:"Ju lutemi shkruani URL-në e iframe-it",scrolling:"Lejo shiritët zvarritës",title:"Karakteristikat e IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js b/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js new file mode 100644 index 00000000..3d279456 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr-latn",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/sr.js b/www/lib/ckeditor/plugins/iframe/lang/sr.js new file mode 100644 index 00000000..e7d1c535 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sr",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/sv.js b/www/lib/ckeditor/plugins/iframe/lang/sv.js new file mode 100644 index 00000000..c8adee27 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","sv",{border:"Visa ramkant",noUrl:"Skriv in URL för iFrame",scrolling:"Aktivera rullningslister",title:"iFrame Egenskaper",toolbar:"iFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/th.js b/www/lib/ckeditor/plugins/iframe/lang/th.js new file mode 100644 index 00000000..6d876edf --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","th",{border:"Show frame border",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame Properties",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/tr.js b/www/lib/ckeditor/plugins/iframe/lang/tr.js new file mode 100644 index 00000000..9096f663 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tr",{border:"Çerceve sınırlarını göster",noUrl:"Lütfen IFrame köprü (URL) bağlantısını yazın",scrolling:"Kaydırma çubuklarını aktif et",title:"IFrame Özellikleri",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/tt.js b/www/lib/ckeditor/plugins/iframe/lang/tt.js new file mode 100644 index 00000000..586d3ae3 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","tt",{border:"Frame чикләрен күрсәтү",noUrl:"Please type the iframe URL",scrolling:"Enable scrollbars",title:"IFrame үзлекләре",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/ug.js b/www/lib/ckeditor/plugins/iframe/lang/ug.js new file mode 100644 index 00000000..156b972a --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","ug",{border:"كاندۇك گىرۋەكلىرىنى كۆرسەت",noUrl:"كاندۇكنىڭ ئادرېسى(Url)نى كىرگۈزۈڭ",scrolling:"دومىلىما سۈرگۈچكە يول قوي",title:"IFrame خاسلىق",toolbar:"IFrame "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/uk.js b/www/lib/ckeditor/plugins/iframe/lang/uk.js new file mode 100644 index 00000000..fe6660c3 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","uk",{border:"Показати рамки фрейму",noUrl:"Будь ласка введіть посилання для IFrame",scrolling:"Увімкнути прокрутку",title:"Налаштування для IFrame",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/vi.js b/www/lib/ckeditor/plugins/iframe/lang/vi.js new file mode 100644 index 00000000..70340226 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","vi",{border:"Hiển thị viền khung",noUrl:"Vui lòng nhập địa chỉ iframe",scrolling:"Kích hoạt thanh cuộn",title:"Thuộc tính iframe",toolbar:"Iframe"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js b/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js new file mode 100644 index 00000000..876c196b --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh-cn",{border:"显示框架边框",noUrl:"请输入框架的 URL",scrolling:"允许滚动条",title:"IFrame 属性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/lang/zh.js b/www/lib/ckeditor/plugins/iframe/lang/zh.js new file mode 100644 index 00000000..5fdd10fa --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("iframe","zh",{border:"顯示框架框線",noUrl:"請輸入 iframe URL",scrolling:"啟用捲軸列",title:"IFrame 屬性",toolbar:"IFrame"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframe/plugin.js b/www/lib/ckeditor/plugins/iframe/plugin.js new file mode 100644 index 00000000..eefa85c4 --- /dev/null +++ b/www/lib/ckeditor/plugins/iframe/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"iframe",hidpi:!0,onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")}, +init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b= +a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe", +!0)}}})}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/iframedialog/plugin.js b/www/lib/ckeditor/plugins/iframedialog/plugin.js new file mode 100644 index 00000000..1d6addbd --- /dev/null +++ b/www/lib/ckeditor/plugins/iframedialog/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("iframedialog",{requires:"dialog",onLoad:function(){CKEDITOR.dialog.addIframe=function(e,d,a,j,f,l,g){a={type:"iframe",src:a,width:"100%",height:"100%"};a.onContentLoad="function"==typeof l?l:function(){var a=this.getElement().$.contentWindow;if(a.onDialogEvent){var b=this.getDialog(),c=function(b){return a.onDialogEvent(b)};b.on("ok",c);b.on("cancel",c);b.on("resize",c);b.on("hide",function(a){b.removeListener("ok",c);b.removeListener("cancel",c);b.removeListener("resize",c); +a.removeListener()});a.onDialogEvent({name:"load",sender:this,editor:b._.editor})}};var h={title:d,minWidth:j,minHeight:f,contents:[{id:"iframe",label:d,expand:!0,elements:[a],style:"width:"+a.width+";height:"+a.height}]},i;for(i in g)h[i]=g[i];this.add(e,function(){return h})};(function(){var e=function(d,a,j){if(!(3>arguments.length)){var f=this._||(this._={}),e=a.onContentLoad&&CKEDITOR.tools.bind(a.onContentLoad,this),g=CKEDITOR.tools.cssLength(a.width),h=CKEDITOR.tools.cssLength(a.height);f.frameId= +CKEDITOR.tools.getNextId()+"_iframe";d.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().setStyles({width:g,height:h})});var i={src:"%2",id:f.frameId,frameborder:0,allowtransparency:!0},k=[];"function"==typeof a.onContentLoad&&(i.onload="CKEDITOR.tools.callFunction(%1);");CKEDITOR.ui.dialog.uiElement.call(this,d,a,k,"iframe",{width:g,height:h},i,"");j.push('<div style="width:'+g+";height:"+h+';" id="'+this.domId+'"></div>');k=k.join("");d.on("show",function(){var b=CKEDITOR.document.getById(f.frameId).getParent(), +c=CKEDITOR.tools.addFunction(e),c=k.replace("%1",c).replace("%2",CKEDITOR.tools.htmlEncode(a.src));b.setHtml(c)})}};e.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.dialog.addUIElement("iframe",{build:function(d,a,j){return new e(d,a,j)}})})()}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image/dialogs/image.js b/www/lib/ckeditor/plugins/image/dialogs/image.js new file mode 100644 index 00000000..c84ecdc3 --- /dev/null +++ b/www/lib/ckeditor/plugins/image/dialogs/image.js @@ -0,0 +1,43 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var r=function(c,j){function r(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){this.commit(f,d);for(var a=[].concat(a),e=a.length,c,g=0;g<e;g++)(c=b.getContentElement.apply(b,a[g].split(":")))&&c.setup(f,d)}s=0}}var f=1,k=/^\s*(\d+)((px)|\%)?\s*$/i,v=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,o=/^\d+px$/, +w=function(){var a=this.getValue(),b=this.getDialog(),d=a.match(k);d&&("%"==d[2]&&l(b,!1),a=d[1]);b.lockRatio&&(d=b.originalElement,"true"==d.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(d.$.width*(a/d.$.height))),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(d.$.height*(a/d.$.width))),isNaN(a)||b.setValueOf("info","txtHeight",a))));g(b)},g=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},s,l=function(a, +b){if(!a.getContentElement("info","ratioLock"))return null;var d=a.originalElement;if(!d)return null;if("check"==b){if(!a.userlockRatio&&"true"==d.getCustomData("isReady")){var e=a.getValueOf("info","txtWidth"),c=a.getValueOf("info","txtHeight"),d=1E3*d.$.width/d.$.height,f=1E3*e/c;a.lockRatio=!1;!e&&!c?a.lockRatio=!0:!isNaN(d)&&!isNaN(f)&&Math.round(d)==Math.round(f)&&(a.lockRatio=!0)}}else void 0!=b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);e=CKEDITOR.document.getById(p);a.lockRatio? +e.removeClass("cke_btn_unlocked"):e.addClass("cke_btn_unlocked");e.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&e.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},x=function(a){var b=a.originalElement;if("true"==b.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),e=a.getContentElement("info","txtHeight");d&&d.setValue(b.$.width);e&&e.setValue(b.$.height)}g(a)},y=function(a,b){function d(a,b){var d=a.match(k);return d? +("%"==d[2]&&(d[1]+="%",l(e,!1)),d[1]):b}if(a==f){var e=this.getDialog(),c="",g="txtWidth"==this.id?"width":"height",h=b.getAttribute(g);h&&(c=d(h,c));c=d(b.getStyle(g),c);this.setValue(c)}},t,q=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.setCustomData("isReady","true");a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||x(this);this.firstLoad&&CKEDITOR.tools.setTimeout(function(){l(this,"check")}, +0,this);this.dontResetSize=this.firstLoad=!1},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(m);a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");l(this,!1)},n=function(a){return CKEDITOR.tools.getNextId()+"_"+a},p=n("btnLockSizes"),u=n("btnResetSize"),m=n("ImagePreviewLoader"),A=n("previewLink"), +z=n("previewImage");return{title:c.lang.image["image"==j?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),d=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1),c=CKEDITOR.document.getById(m);c&&c.setStyle("display","none");t=new CKEDITOR.dom.element("img", +a.document);this.preview=CKEDITOR.document.getById(z);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");if(d){this.linkElement=d;this.linkEditMode=!0;c=d.getChildren();if(1==c.count()){var g=c.getItem(0).getName();if("img"==g||"input"==g)this.imageElement=c.getItem(0),"img"==this.imageElement.getName()?this.imageEditMode="img":"input"==this.imageElement.getName()&&(this.imageEditMode="input")}"image"== +j&&this.setupContent(2,d)}if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode?(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(f,this.imageElement)):this.imageElement=a.document.createElement("img"); +l(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==j&&"input"==a&&confirm(c.lang.image.button2Img)?(this.imageElement=c.document.createElement("img"),this.imageElement.setAttribute("alt",""),c.insertElement(this.imageElement)):"image"!=j&&"img"==a&&confirm(c.lang.image.img2Button)?(this.imageElement=c.document.createElement("input"), +this.imageElement.setAttributes({type:"image",alt:""}),c.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==j?this.imageElement=c.document.createElement("img"):(this.imageElement=c.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=c.document.createElement("a"));this.commitContent(f,this.imageElement);this.commitContent(2,this.linkElement); +this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(c.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(c.getSelection().selectElement(this.linkElement),c.insertElement(this.imageElement)):this.addLink?this.linkEditMode?c.insertElement(this.imageElement):(c.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):c.insertElement(this.imageElement)}, +onLoad:function(){"image"!=j&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(u),5),this.addFocusable(a.getById(p),5));this.commitContent=r},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",q),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement= +!1);delete this.imageElement},contents:[{id:"info",label:c.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:c.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),d=a.originalElement;a.preview&&a.preview.removeStyle("display");d.setCustomData("isReady","false");var c=CKEDITOR.document.getById(m);c&&c.setStyle("display", +"");d.on("load",q,a);d.on("error",h,a);d.on("abort",h,a);d.setAttribute("src",b);a.preview&&(t.setAttribute("src",b),a.preview.setAttribute("src",t.$.src),g(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(a==f){var d=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(d);this.setInitValue()}},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()), +b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:c.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:c.lang.image.alt,accessKey:"T","default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("alt"))}, +commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:c.lang.common.width,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a= +this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidWidth);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(e)):b.removeStyle("width"),!d&&b.removeAttribute("width")):4==a?e.match(k)?b.setStyle("width",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("width",a.$.width+"px")):8==a&&(b.removeAttribute("width"), +b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:c.lang.common.height,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidHeight);return a},setup:y,commit:function(a,b,d){var e=this.getValue();a==f?(e&&c.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(e)):b.removeStyle("height"),!d&&b.removeAttribute("height")): +4==a?e.match(k)?b.setStyle("height",CKEDITOR.tools.cssLength(e)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("height",a.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(u),b=CKEDITOR.document.getById(p);a&&(a.on("click",function(a){x(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover", +function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){l(this);var b=this.originalElement,c=this.getValueOf("info","txtWidth");if(b.getCustomData("isReady")=="true"&&c){b=b.$.height/b.$.width*c;if(!isNaN(b)){this.setValueOf("info","txtHeight",Math.round(b));g(this)}}a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")}, +b))},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.lockRatio+'" class="cke_btn_locked" id="'+p+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+c.lang.image.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.resetSize+'" class="cke_btn_reset" id="'+u+'" role="button"><span class="cke_label">'+c.lang.image.resetSize+"</span></a></div>"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}", +width:"60px",label:c.lang.image.border,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder),setup:function(a,b){if(a==f){var d;d=(d=(d=b.getStyle("border-width"))&&d.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(d[1],10);isNaN(parseInt(d,10))&&(d=b.getAttribute("border"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&& +this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),!d&&a==f&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:c.lang.image.hSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this, +"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),setup:function(a,b){if(a==f){var d,c;d=b.getStyle("margin-left");c=b.getStyle("margin-right");d=d&&d.match(o);c=c&&c.match(o);d=parseInt(d,10);c=parseInt(c,10);d=d==c&&d;isNaN(parseInt(d,10))&&(d=b.getAttribute("hspace"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")): +(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),!d&&a==f&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:c.lang.image.vSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace), +setup:function(a,b){if(a==f){var c,e;c=b.getStyle("margin-top");e=b.getStyle("margin-bottom");c=c&&c.match(o);e=e&&e.match(o);c=parseInt(c,10);e=parseInt(e,10);c=c==e&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(e))), +!c&&a==f&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:c.lang.common.align,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.alignLeft,"left"],[c.lang.common.alignRight,"right"]],onChange:function(){g(this.getDialog());i.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(a==f){var c=b.getStyle("float"); +switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b,c){var e=this.getValue();if(a==f||4==a){if(e?b.setStyle("float",e):b.removeStyle("float"),!c&&a==f)switch(e=(b.getAttribute("align")||"").toLowerCase(),e){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"<div>"+CKEDITOR.tools.htmlEncode(c.lang.common.preview)+ +'<br><div id="'+m+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'"><img id="'+z+'" alt="" /></a>'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+ +"</td></tr></table></div></div>"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=this.getValue();b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink= +!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")|| +"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"], +children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))}, +commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle, +"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a, +b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}}; +CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image/images/noimage.png b/www/lib/ckeditor/plugins/image/images/noimage.png new file mode 100644 index 00000000..15981130 Binary files /dev/null and b/www/lib/ckeditor/plugins/image/images/noimage.png differ diff --git a/www/lib/ckeditor/plugins/image2/dialogs/image2.js b/www/lib/ckeditor/plugins/image2/dialogs/image2.js new file mode 100644 index 00000000..9b9b9028 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/dialogs/image2.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("image2",function(j){function z(){var a=this.getValue().match(A);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c["invalid"+CKEDITOR.tools.capitalize(this.id)]);return a}function K(){function a(a,b){d.push(i.once(a,function(a){for(var i;i=d.pop();)i.removeListener();b(a)}))}var i=p.createElement("img"),d=[];return function(d,b,c){a("load",function(){var a=B(i);b.call(c,i,a.width,a.height)});a("error",function(){b(null)});a("abort",function(){b(null)});i.setAttribute("src",(t.baseHref|| +"")+d+"?"+Math.random().toString(16).substring(2))}}function C(){var a=this.getValue();q(!1);a!==u.data.src?(D(a,function(a,d,b){q(!0);if(!a)return k(!1);g.setValue(d);h.setValue(b);r=d;s=b;k(E.checkHasNaturalRatio(a))}),l=!0):l?(q(!0),g.setValue(m),h.setValue(n),l=!1):q(!0)}function F(){if(e){var a=this.getValue();if(a&&(a.match(A)||k(!1),"0"!==a)){var b="width"==this.id,d=m||r,c=n||s,a=b?Math.round(c*(a/d)):Math.round(d*(a/c));isNaN(a)||(b?h:g).setValue(a)}}}function k(a){if(f){if("boolean"==typeof a){if(v)return; +e=a}else if(a=g.getValue(),v=!0,(e=!e)&&a)a*=n/m,isNaN(a)||h.setValue(Math.round(a));f[e?"removeClass":"addClass"]("cke_btn_unlocked");f.setAttribute("aria-checked",e);CKEDITOR.env.hc&&f.getChild(0).setHtml(e?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢")}}function q(a){a=a?"enable":"disable";g[a]();h[a]()}var A=/(^\s*(\d+)(px)?\s*$)|^$/i,G=CKEDITOR.tools.getNextId(),H=CKEDITOR.tools.getNextId(),b=j.lang.image2,c=j.lang.common,L=(new CKEDITOR.template('<div><a href="javascript:void(0)" tabindex="-1" title="'+ +b.lockRatio+'" class="cke_btn_locked" id="{lockButtonId}" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+b.resetSize+'" class="cke_btn_reset" id="{resetButtonId}" role="button"><span class="cke_label">'+b.resetSize+"</span></a></div>")).output({lockButtonId:G,resetButtonId:H}),E=CKEDITOR.plugins.image2,t=j.config,w=j.widgets.registered.image.features,B=E.getNatural,p,u,I,D,m,n,r,s,l,e,v,f,o,g,h,x, +y=!(!t.filebrowserImageBrowseUrl&&!t.filebrowserBrowseUrl),J=[{id:"src",type:"text",label:c.url,onKeyup:C,onChange:C,setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())},validate:CKEDITOR.dialog.validate.notEmpty(b.urlMissing)}];y&&J.push({type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:j.lang.common.browseServer,hidden:!0,filebrowser:"info:src"});return{title:b.title,minWidth:250,minHeight:100,onLoad:function(){p= +this._.element.getDocument();D=K()},onShow:function(){u=this.widget;I=u.parts.image;l=v=e=!1;x=B(I);r=m=x.width;s=n=x.height},contents:[{id:"info",label:b.infoTab,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["100%"],children:J}]},{id:"alt",type:"text",label:b.alt,setup:function(a){this.setValue(a.data.alt)},commit:function(a){a.setData("alt",this.getValue())}},{type:"hbox",widths:["25%","25%","50%"],requiredContent:w.dimension.requiredContent,children:[{type:"text",width:"45px", +id:"width",label:c.width,validate:z,onKeyUp:F,onLoad:function(){g=this},setup:function(a){this.setValue(a.data.width)},commit:function(a){a.setData("width",this.getValue())}},{type:"text",id:"height",width:"45px",label:c.height,validate:z,onKeyUp:F,onLoad:function(){h=this},setup:function(a){this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}},{id:"lock",type:"html",style:"margin-top:18px;width:40px;height:20px;",onLoad:function(){function a(a){a.on("mouseover",function(){this.addClass("cke_btn_over")}, +a);a.on("mouseout",function(){this.removeClass("cke_btn_over")},a)}var b=this.getDialog();f=p.getById(G);o=p.getById(H);f&&(b.addFocusable(f,4+y),f.on("click",function(a){k();a.data&&a.data.preventDefault()},this.getDialog()),a(f));o&&(b.addFocusable(o,5+y),o.on("click",function(a){if(l){g.setValue(r);h.setValue(s)}else{g.setValue(m);h.setValue(n)}a.data&&a.data.preventDefault()},this),a(o))},setup:function(a){k(a.data.lock)},commit:function(a){a.setData("lock",e)},html:L}]},{type:"hbox",id:"alignment", +requiredContent:w.align.requiredContent,children:[{id:"align",type:"radio",items:[[c.alignNone,"none"],[c.alignLeft,"left"],[c.alignCenter,"center"],[c.alignRight,"right"]],label:c.align,setup:function(a){this.setValue(a.data.align)},commit:function(a){a.setData("align",this.getValue())}}]},{id:"hasCaption",type:"checkbox",label:b.captioned,requiredContent:w.caption.requiredContent,setup:function(a){this.setValue(a.data.hasCaption)},commit:function(a){a.setData("hasCaption",this.getValue())}}]},{id:"Upload", +hidden:!0,filebrowser:"uploadButton",label:b.uploadTab,elements:[{type:"file",id:"upload",label:b.btnUpload,style:"height:40px"},{type:"fileButton",id:"uploadButton",filebrowser:"info:src",label:b.btnUpload,"for":["Upload","upload"]}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png b/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png new file mode 100644 index 00000000..b3c7ade5 Binary files /dev/null and b/www/lib/ckeditor/plugins/image2/icons/hidpi/image.png differ diff --git a/www/lib/ckeditor/plugins/image2/icons/image.png b/www/lib/ckeditor/plugins/image2/icons/image.png new file mode 100644 index 00000000..fcf61b5f Binary files /dev/null and b/www/lib/ckeditor/plugins/image2/icons/image.png differ diff --git a/www/lib/ckeditor/plugins/image2/lang/af.js b/www/lib/ckeditor/plugins/image2/lang/af.js new file mode 100644 index 00000000..d5ef4619 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","af",{alt:"Alternatiewe teks",btnUpload:"Stuur na bediener",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Afbeelding informasie",lockRatio:"Vaste proporsie",menu:"Afbeelding eienskappe",pathName:"image",pathNameCaption:"caption",resetSize:"Herstel grootte",resizer:"Click and drag to resize",title:"Afbeelding eienskappe",uploadTab:"Oplaai",urlMissing:"Die URL na die afbeelding ontbreek."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ar.js b/www/lib/ckeditor/plugins/image2/lang/ar.js new file mode 100644 index 00000000..435544b2 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ar",{alt:"عنوان الصورة",btnUpload:"أرسلها للخادم",captioned:"صورة ذات اسم",captionPlaceholder:"تسمية",infoTab:"معلومات الصورة",lockRatio:"تناسق الحجم",menu:"خصائص الصورة",pathName:"صورة",pathNameCaption:"تسمية",resetSize:"إستعادة الحجم الأصلي",resizer:"انقر ثم اسحب للتحجيم",title:"خصائص الصورة",uploadTab:"رفع",urlMissing:"عنوان مصدر الصورة مفقود"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/bg.js b/www/lib/ckeditor/plugins/image2/lang/bg.js new file mode 100644 index 00000000..a97a26e6 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bg",{alt:"Алтернативен текст",btnUpload:"Изпрати я на сървъра",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо за снимка",lockRatio:"Заключване на съотношението",menu:"Настройки за снимка",pathName:"image",pathNameCaption:"caption",resetSize:"Нулиране на размер",resizer:"Click and drag to resize",title:"Настройки за снимка",uploadTab:"Качване",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/bn.js b/www/lib/ckeditor/plugins/image2/lang/bn.js new file mode 100644 index 00000000..93618a02 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bn",{alt:"বিকল্প টেক্সট",btnUpload:"ইহাকে সার্ভারে প্রেরন কর",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ছবির তথ্য",lockRatio:"অনুপাত লক কর",menu:"ছবির প্রোপার্টি",pathName:"image",pathNameCaption:"caption",resetSize:"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও",resizer:"Click and drag to resize",title:"ছবির প্রোপার্টি",uploadTab:"আপলোড",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/bs.js b/www/lib/ckeditor/plugins/image2/lang/bs.js new file mode 100644 index 00000000..ff4ae297 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","bs",{alt:"Tekst na slici",btnUpload:"Šalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zakljuèaj odnos",menu:"Svojstva slike",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj dimenzije",resizer:"Click and drag to resize",title:"Svojstva slike",uploadTab:"Šalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ca.js b/www/lib/ckeditor/plugins/image2/lang/ca.js new file mode 100644 index 00000000..6e73ef35 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ca",{alt:"Text alternatiu",btnUpload:"Envia-la al servidor",captioned:"Imatge amb subtítol",captionPlaceholder:"Títol",infoTab:"Informació de la imatge",lockRatio:"Bloqueja les proporcions",menu:"Propietats de la imatge",pathName:"imatge",pathNameCaption:"subtítol",resetSize:"Restaura la mida",resizer:"Clicar i arrossegar per redimensionar",title:"Propietats de la imatge",uploadTab:"Puja",urlMissing:"Falta la URL de la imatge."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/cs.js b/www/lib/ckeditor/plugins/image2/lang/cs.js new file mode 100644 index 00000000..d148641d --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cs",{alt:"Alternativní text",btnUpload:"Odeslat na server",captioned:"Obrázek s popisem",captionPlaceholder:"Popis",infoTab:"Informace o obrázku",lockRatio:"Zámek",menu:"Vlastnosti obrázku",pathName:"Obrázek",pathNameCaption:"Popis",resetSize:"Původní velikost",resizer:"Klepněte a táhněte pro změnu velikosti",title:"Vlastnosti obrázku",uploadTab:"Odeslat",urlMissing:"Zadané URL zdroje obrázku nebylo nalezeno."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/cy.js b/www/lib/ckeditor/plugins/image2/lang/cy.js new file mode 100644 index 00000000..031ba7ef --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","cy",{alt:"Testun Amgen",btnUpload:"Anfon i'r Gweinydd",captioned:"Delwedd â phennawd",captionPlaceholder:"Caption",infoTab:"Gwyb Delwedd",lockRatio:"Cloi Cymhareb",menu:"Priodweddau Delwedd",pathName:"delwedd",pathNameCaption:"pennawd",resetSize:"Ailosod Maint",resizer:"Clicio a llusgo i ail-meintio",title:"Priodweddau Delwedd",uploadTab:"Lanlwytho",urlMissing:"URL gwreiddiol y ddelwedd ar goll."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/da.js b/www/lib/ckeditor/plugins/image2/lang/da.js new file mode 100644 index 00000000..b5412c41 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","da",{alt:"Alternativ tekst",btnUpload:"Upload fil til serveren",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Generelt",lockRatio:"Lås størrelsesforhold",menu:"Egenskaber for billede",pathName:"image",pathNameCaption:"caption",resetSize:"Nulstil størrelse",resizer:"Click and drag to resize",title:"Egenskaber for billede",uploadTab:"Upload",urlMissing:"Kilde på billed-URL mangler"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/de.js b/www/lib/ckeditor/plugins/image2/lang/de.js new file mode 100644 index 00000000..de90c18d --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","de",{alt:"Alternativer Text",btnUpload:"Zum Server senden",captioned:"Bild mit Überschrift",captionPlaceholder:"Überschrift",infoTab:"Bild-Info",lockRatio:"Größenverhältnis beibehalten",menu:"Bild-Eigenschaften",pathName:"Bild",pathNameCaption:"Überschrift",resetSize:"Größe zurücksetzen",resizer:"Zum vergrößern anwählen und ziehen",title:"Bild-Eigenschaften",uploadTab:"Hochladen",urlMissing:"Imagequelle URL fehlt."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/el.js b/www/lib/ckeditor/plugins/image2/lang/el.js new file mode 100644 index 00000000..65307e3d --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","el",{alt:"Εναλλακτικό Κείμενο",btnUpload:"Αποστολή στον Διακομιστή",captioned:"Εικόνα με λεζάντα",captionPlaceholder:"Λεζάντα",infoTab:"Πληροφορίες Εικόνας",lockRatio:"Κλείδωμα Αναλογίας",menu:"Ιδιότητες Εικόνας",pathName:"εικόνα",pathNameCaption:"λεζάντα",resetSize:"Επαναφορά Αρχικού Μεγέθους",resizer:"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος",title:"Ιδιότητες Εικόνας",uploadTab:"Αποστολή",urlMissing:"Λείπει το πηγαίο URL της εικόνας."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/en-au.js b/www/lib/ckeditor/plugins/image2/lang/en-au.js new file mode 100644 index 00000000..caab219c --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-au",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/en-ca.js b/www/lib/ckeditor/plugins/image2/lang/en-ca.js new file mode 100644 index 00000000..ec19b8f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-ca",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/en-gb.js b/www/lib/ckeditor/plugins/image2/lang/en-gb.js new file mode 100644 index 00000000..d5a9406a --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en-gb",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/en.js b/www/lib/ckeditor/plugins/image2/lang/en.js new file mode 100644 index 00000000..524e0a2a --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","en",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/eo.js b/www/lib/ckeditor/plugins/image2/lang/eo.js new file mode 100644 index 00000000..26587e03 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eo",{alt:"Anstataŭiga Teksto",btnUpload:"Sendu al Servilo",captioned:"Bildo kun apudskribo",captionPlaceholder:"Apudskribo",infoTab:"Informoj pri Bildo",lockRatio:"Konservi Proporcion",menu:"Atributoj de Bildo",pathName:"bildo",pathNameCaption:"apudskribo",resetSize:"Origina Grando",resizer:"Kliki kaj treni por ŝanĝi la grandon",title:"Atributoj de Bildo",uploadTab:"Alŝuti",urlMissing:"La fontretadreso de la bildo mankas."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/es.js b/www/lib/ckeditor/plugins/image2/lang/es.js new file mode 100644 index 00000000..c68c9162 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","es",{alt:"Texto Alternativo",btnUpload:"Enviar al Servidor",captioned:"Imagen subtitulada",captionPlaceholder:"Caption",infoTab:"Información de Imagen",lockRatio:"Proporcional",menu:"Propiedades de Imagen",pathName:"image",pathNameCaption:"subtítulo",resetSize:"Tamaño Original",resizer:"Dar clic y arrastrar para cambiar tamaño",title:"Propiedades de Imagen",uploadTab:"Cargar",urlMissing:"Debe indicar la URL de la imagen."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/et.js b/www/lib/ckeditor/plugins/image2/lang/et.js new file mode 100644 index 00000000..b8571dbf --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","et",{alt:"Alternatiivne tekst",btnUpload:"Saada serverisse",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Pildi info",lockRatio:"Lukusta kuvasuhe",menu:"Pildi omadused",pathName:"image",pathNameCaption:"caption",resetSize:"Lähtesta suurus",resizer:"Click and drag to resize",title:"Pildi omadused",uploadTab:"Lae üles",urlMissing:"Pildi lähte-URL on puudu."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/eu.js b/www/lib/ckeditor/plugins/image2/lang/eu.js new file mode 100644 index 00000000..dadf5a3a --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","eu",{alt:"Ordezko Testua",btnUpload:"Zerbitzarira bidalia",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Irudi informazioa",lockRatio:"Erlazioa Blokeatu",menu:"Irudi Ezaugarriak",pathName:"image",pathNameCaption:"caption",resetSize:"Tamaina Berrezarri",resizer:"Click and drag to resize",title:"Irudi Ezaugarriak",uploadTab:"Gora kargatu",urlMissing:"Irudiaren iturburu URL-a falta da."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/fa.js b/www/lib/ckeditor/plugins/image2/lang/fa.js new file mode 100644 index 00000000..6600e16e --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fa",{alt:"متن جایگزین",btnUpload:"به سرور بفرست",captioned:"تصویر زیرنویس شده",captionPlaceholder:"عنوان",infoTab:"اطلاعات تصویر",lockRatio:"قفل کردن نسبت",menu:"ویژگی​های تصویر",pathName:"تصویر",pathNameCaption:"عنوان",resetSize:"بازنشانی اندازه",resizer:"کلیک و کشیدن برای تغییر اندازه",title:"ویژگی​های تصویر",uploadTab:"بالاگذاری",urlMissing:"آدرس URL اصلی تصویر یافت نشد."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/fi.js b/www/lib/ckeditor/plugins/image2/lang/fi.js new file mode 100644 index 00000000..e4a104e8 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fi",{alt:"Vaihtoehtoinen teksti",btnUpload:"Lähetä palvelimelle",captioned:"Kuva kuvatekstillä",captionPlaceholder:"Kuvateksti",infoTab:"Kuvan tiedot",lockRatio:"Lukitse suhteet",menu:"Kuvan ominaisuudet",pathName:"kuva",pathNameCaption:"kuvateksti",resetSize:"Alkuperäinen koko",resizer:"Klikkaa ja raahaa muuttaaksesi kokoa",title:"Kuvan ominaisuudet",uploadTab:"Lisää tiedosto",urlMissing:"Kuvan lähdeosoite puuttuu."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/fo.js b/www/lib/ckeditor/plugins/image2/lang/fo.js new file mode 100644 index 00000000..a2bbfae9 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fo",{alt:"Alternativur tekstur",btnUpload:"Send til ambætaran",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Myndaupplýsingar",lockRatio:"Læs lutfallið",menu:"Myndaeginleikar",pathName:"image",pathNameCaption:"caption",resetSize:"Upprunastødd",resizer:"Click and drag to resize",title:"Myndaeginleikar",uploadTab:"Send til ambætaran",urlMissing:"URL til mynd manglar."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/fr-ca.js b/www/lib/ckeditor/plugins/image2/lang/fr-ca.js new file mode 100644 index 00000000..30cd9e98 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr-ca",{alt:"Texte alternatif",btnUpload:"Envoyer sur le serveur",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informations sur l'image2",lockRatio:"Verrouiller les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"caption",resetSize:"Taille originale",resizer:"Click and drag to resize",title:"Propriétés de l'image2",uploadTab:"Téléverser",urlMissing:"L'URL de la source de l'image est manquant."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/fr.js b/www/lib/ckeditor/plugins/image2/lang/fr.js new file mode 100644 index 00000000..2c7ed973 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","fr",{alt:"Texte de remplacement",btnUpload:"Envoyer sur le serveur",captioned:"Image légendée",captionPlaceholder:"Légende",infoTab:"Informations sur l'image2",lockRatio:"Conserver les proportions",menu:"Propriétés de l'image2",pathName:"image",pathNameCaption:"légende",resetSize:"Taille d'origine",resizer:"Cliquer et glisser pour redimensionner",title:"Propriétés de l'image2",uploadTab:"Envoyer",urlMissing:"L'adresse source de l'image est manquante."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/gl.js b/www/lib/ckeditor/plugins/image2/lang/gl.js new file mode 100644 index 00000000..f030c9e4 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gl",{alt:"Texto alternativo",btnUpload:"Enviar ao servidor",captioned:"Imaxe subtitulada ",captionPlaceholder:"Caption",infoTab:"Información da imaxe",lockRatio:"Proporcional",menu:"Propiedades da imaxe",pathName:"Imaxe",pathNameCaption:"subtítulo",resetSize:"Tamaño orixinal",resizer:"Prema e arrastre para axustar o tamaño",title:"Propiedades da imaxe",uploadTab:"Cargar",urlMissing:"Non se atopa o URL da imaxe."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/gu.js b/www/lib/ckeditor/plugins/image2/lang/gu.js new file mode 100644 index 00000000..4e83249d --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","gu",{alt:"ઑલ્ટર્નટ ટેક્સ્ટ",btnUpload:"આ સર્વરને મોકલવું",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ચિત્ર ની જાણકારી",lockRatio:"લૉક ગુણોત્તર",menu:"ચિત્રના ગુણ",pathName:"image",pathNameCaption:"caption",resetSize:"રીસેટ સાઇઝ",resizer:"Click and drag to resize",title:"ચિત્રના ગુણ",uploadTab:"અપલોડ",urlMissing:"ઈમેજની મૂળ URL છે નહી."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/he.js b/www/lib/ckeditor/plugins/image2/lang/he.js new file mode 100644 index 00000000..4787142e --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","he",{alt:"טקסט חלופי",btnUpload:"שליחה לשרת",captioned:"כותרת תמונה",captionPlaceholder:"Caption",infoTab:"מידע על התמונה",lockRatio:"נעילת היחס",menu:"תכונות התמונה",pathName:"תמונה",pathNameCaption:"כותרת",resetSize:"איפוס הגודל",resizer:"לחץ וגרור לשינוי הגודל",title:"מאפייני התמונה",uploadTab:"העלאה",urlMissing:"כתובת התמונה חסרה."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/hi.js b/www/lib/ckeditor/plugins/image2/lang/hi.js new file mode 100644 index 00000000..ec9225d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hi",{alt:"वैकल्पिक टेक्स्ट",btnUpload:"इसे सर्वर को भेजें",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"तस्वीर की जानकारी",lockRatio:"लॉक अनुपात",menu:"तस्वीर प्रॉपर्टीज़",pathName:"image",pathNameCaption:"caption",resetSize:"रीसॅट साइज़",resizer:"Click and drag to resize",title:"तस्वीर प्रॉपर्टीज़",uploadTab:"अपलोड",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/hr.js b/www/lib/ckeditor/plugins/image2/lang/hr.js new file mode 100644 index 00000000..812813c5 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hr",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Svojstva slika",pathName:"image",pathNameCaption:"caption",resetSize:"Obriši veličinu",resizer:"Click and drag to resize",title:"Svojstva slika",uploadTab:"Pošalji",urlMissing:"Nedostaje URL slike."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/hu.js b/www/lib/ckeditor/plugins/image2/lang/hu.js new file mode 100644 index 00000000..bffa8b81 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","hu",{alt:"Buborék szöveg",btnUpload:"Küldés a szerverre",captioned:"Feliratozott kép",captionPlaceholder:"Képfelirat",infoTab:"Alaptulajdonságok",lockRatio:"Arány megtartása",menu:"Kép tulajdonságai",pathName:"kép",pathNameCaption:"felirat",resetSize:"Eredeti méret",resizer:"Kattints és húzz az átméretezéshez",title:"Kép tulajdonságai",uploadTab:"Feltöltés",urlMissing:"Hiányzik a kép URL-je"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/id.js b/www/lib/ckeditor/plugins/image2/lang/id.js new file mode 100644 index 00000000..a238cab5 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","id",{alt:"Teks alternatif",btnUpload:"Kirim ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Gambar",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Unggah",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/is.js b/www/lib/ckeditor/plugins/image2/lang/is.js new file mode 100644 index 00000000..196c68dc --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","is",{alt:"Baklægur texti",btnUpload:"Hlaða upp",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Almennt",lockRatio:"Festa stærðarhlutfall",menu:"Eigindi myndar",pathName:"image",pathNameCaption:"caption",resetSize:"Reikna stærð",resizer:"Click and drag to resize",title:"Eigindi myndar",uploadTab:"Senda upp",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/it.js b/www/lib/ckeditor/plugins/image2/lang/it.js new file mode 100644 index 00000000..d65b4549 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","it",{alt:"Testo alternativo",btnUpload:"Invia al server",captioned:"Immagine con didascalia",captionPlaceholder:"Didascalia",infoTab:"Informazioni immagine",lockRatio:"Blocca rapporto",menu:"Proprietà immagine",pathName:"immagine",pathNameCaption:"didascalia",resetSize:"Reimposta dimensione",resizer:"Fare clic e trascinare per ridimensionare",title:"Proprietà immagine",uploadTab:"Carica",urlMissing:"Manca l'URL dell'immagine."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ja.js b/www/lib/ckeditor/plugins/image2/lang/ja.js new file mode 100644 index 00000000..b4457fd7 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ja",{alt:"代替テキスト",btnUpload:"サーバーに送信",captioned:"キャプションを付ける",captionPlaceholder:"キャプション",infoTab:"画像情報",lockRatio:"比率を固定",menu:"画像のプロパティ",pathName:"image",pathNameCaption:"caption",resetSize:"サイズをリセット",resizer:"ドラッグしてリサイズ",title:"画像のプロパティ",uploadTab:"アップロード",urlMissing:"画像のURLを入力してください。"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ka.js b/www/lib/ckeditor/plugins/image2/lang/ka.js new file mode 100644 index 00000000..88407289 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ka",{alt:"სანაცვლო ტექსტი",btnUpload:"სერვერისთვის გაგზავნა",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"სურათის ინფორმცია",lockRatio:"პროპორციის შენარჩუნება",menu:"სურათის პარამეტრები",pathName:"image",pathNameCaption:"caption",resetSize:"ზომის დაბრუნება",resizer:"Click and drag to resize",title:"სურათის პარამეტრები",uploadTab:"აქაჩვა",urlMissing:"სურათის URL არაა შევსებული."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/km.js b/www/lib/ckeditor/plugins/image2/lang/km.js new file mode 100644 index 00000000..993429cd --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","km",{alt:"អត្ថបទជំនួស",btnUpload:"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",captioned:"រូប​ដែល​មាន​ចំណង​ជើង",captionPlaceholder:"Caption",infoTab:"ពត៌មានអំពីរូបភាព",lockRatio:"ចាក់​សោ​ផល​ធៀប",menu:"លក្ខណៈ​សម្បត្តិ​រូប​ភាព",pathName:"រូបភាព",pathNameCaption:"ចំណងជើង",resetSize:"កំណត់ទំហំឡើងវិញ",resizer:"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ",title:"លក្ខណៈ​សម្បត្តិ​រូប​ភាប",uploadTab:"ផ្ទុក​ឡើង",urlMissing:"ខ្វះ URL ប្រភព​រូប​ភាព។"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ko.js b/www/lib/ckeditor/plugins/image2/lang/ko.js new file mode 100644 index 00000000..90726a2a --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ko",{alt:"이미지 설명",btnUpload:"서버로 전송",captioned:"이미지 설명 넣기",captionPlaceholder:"Caption",infoTab:"이미지 정보",lockRatio:"비율 유지",menu:"이미지 설정",pathName:"이미지",pathNameCaption:"이미지 설명",resetSize:"원래 크기로",resizer:"크기를 조절하려면 클릭 후 드래그 하세요",title:"이미지 설정",uploadTab:"업로드",urlMissing:"이미지 소스 URL이 없습니다."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ku.js b/www/lib/ckeditor/plugins/image2/lang/ku.js new file mode 100644 index 00000000..6ec1c93f --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ku",{alt:"جێگرەوەی دەق",btnUpload:"ناردنی بۆ ڕاژه",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"زانیاری وێنه",lockRatio:"داخستنی ڕێژه",menu:"خاسیەتی وێنه",pathName:"image",pathNameCaption:"caption",resetSize:"ڕێکخستنەوەی قەباره",resizer:"Click and drag to resize",title:"خاسیەتی وێنه",uploadTab:"بارکردن",urlMissing:"سەرچاوەی بەستەری وێنه بزره"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/lt.js b/www/lib/ckeditor/plugins/image2/lang/lt.js new file mode 100644 index 00000000..47b883d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lt",{alt:"Alternatyvus Tekstas",btnUpload:"Siųsti į serverį",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Vaizdo informacija",lockRatio:"Išlaikyti proporciją",menu:"Vaizdo savybės",pathName:"image",pathNameCaption:"caption",resetSize:"Atstatyti dydį",resizer:"Click and drag to resize",title:"Vaizdo savybės",uploadTab:"Siųsti",urlMissing:"Paveiksliuko nuorodos nėra."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/lv.js b/www/lib/ckeditor/plugins/image2/lang/lv.js new file mode 100644 index 00000000..069595db --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","lv",{alt:"Alternatīvais teksts",btnUpload:"Nosūtīt serverim",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informācija par attēlu",lockRatio:"Nemainīga Augstuma/Platuma attiecība",menu:"Attēla īpašības",pathName:"image",pathNameCaption:"caption",resetSize:"Atjaunot sākotnējo izmēru",resizer:"Click and drag to resize",title:"Attēla īpašības",uploadTab:"Augšupielādēt",urlMissing:"Trūkst attēla atrašanās adrese."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/mk.js b/www/lib/ckeditor/plugins/image2/lang/mk.js new file mode 100644 index 00000000..0d5b35e5 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mk",{alt:"Alternative Text",btnUpload:"Send it to the Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Image Info",lockRatio:"Lock Ratio",menu:"Image Properties",pathName:"image",pathNameCaption:"caption",resetSize:"Reset Size",resizer:"Click and drag to resize",title:"Image Properties",uploadTab:"Upload",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/mn.js b/www/lib/ckeditor/plugins/image2/lang/mn.js new file mode 100644 index 00000000..f2d437f5 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","mn",{alt:"Зургийг орлох бичвэр",btnUpload:"Үүнийг сервэррүү илгээ",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Зурагны мэдээлэл",lockRatio:"Радио түгжих",menu:"Зураг",pathName:"image",pathNameCaption:"caption",resetSize:"хэмжээ дахин оноох",resizer:"Click and drag to resize",title:"Зураг",uploadTab:"Илгээж ачаалах",urlMissing:"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ms.js b/www/lib/ckeditor/plugins/image2/lang/ms.js new file mode 100644 index 00000000..8d1d6652 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ms",{alt:"Text Alternatif",btnUpload:"Hantar ke Server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info Imej",lockRatio:"Tetapkan Nisbah",menu:"Ciri-ciri Imej",pathName:"image",pathNameCaption:"caption",resetSize:"Saiz Set Semula",resizer:"Click and drag to resize",title:"Ciri-ciri Imej",uploadTab:"Muat Naik",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/nb.js b/www/lib/ckeditor/plugins/image2/lang/nb.js new file mode 100644 index 00000000..2f237a60 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nb",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Bildetekst",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/nl.js b/www/lib/ckeditor/plugins/image2/lang/nl.js new file mode 100644 index 00000000..f032d845 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","nl",{alt:"Alternatieve tekst",btnUpload:"Naar server verzenden",captioned:"Afbeelding met onderschrift",captionPlaceholder:"Onderschrift",infoTab:"Afbeeldingsinformatie",lockRatio:"Verhouding vergrendelen",menu:"Eigenschappen afbeelding",pathName:"afbeelding",pathNameCaption:"onderschrift",resetSize:"Afmetingen herstellen",resizer:"Klik en sleep om te herschalen",title:"Afbeeldingseigenschappen",uploadTab:"Uploaden",urlMissing:"De URL naar de afbeelding ontbreekt."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/no.js b/www/lib/ckeditor/plugins/image2/lang/no.js new file mode 100644 index 00000000..11bffbbc --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","no",{alt:"Alternativ tekst",btnUpload:"Send det til serveren",captioned:"Bilde med bildetekst",captionPlaceholder:"Caption",infoTab:"Bildeinformasjon",lockRatio:"Lås forhold",menu:"Bildeegenskaper",pathName:"bilde",pathNameCaption:"bildetekst",resetSize:"Tilbakestill størrelse",resizer:"Klikk og dra for å endre størrelse",title:"Bildeegenskaper",uploadTab:"Last opp",urlMissing:"Bildets adresse mangler."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/pl.js b/www/lib/ckeditor/plugins/image2/lang/pl.js new file mode 100644 index 00000000..09e19e37 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pl",{alt:"Tekst zastępczy",btnUpload:"Wyślij",captioned:"Obrazek z podpisem",captionPlaceholder:"Podpis",infoTab:"Informacje o obrazku",lockRatio:"Zablokuj proporcje",menu:"Właściwości obrazka",pathName:"obrazek",pathNameCaption:"podpis",resetSize:"Przywróć rozmiar",resizer:"Kliknij i przeciągnij, by zmienić rozmiar.",title:"Właściwości obrazka",uploadTab:"Wyślij",urlMissing:"Podaj adres URL obrazka."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/pt-br.js b/www/lib/ckeditor/plugins/image2/lang/pt-br.js new file mode 100644 index 00000000..82c42e85 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt-br",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Legenda da Imagem",captionPlaceholder:"Legenda",infoTab:"Informações da Imagem",lockRatio:"Travar Proporções",menu:"Formatar Imagem",pathName:"Imagem",pathNameCaption:"Legenda",resetSize:"Redefinir para o Tamanho Original",resizer:"Click e arraste para redimensionar",title:"Formatar Imagem",uploadTab:"Enviar ao Servidor",urlMissing:"URL da imagem está faltando."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/pt.js b/www/lib/ckeditor/plugins/image2/lang/pt.js new file mode 100644 index 00000000..d46507bb --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","pt",{alt:"Texto Alternativo",btnUpload:"Enviar para o Servidor",captioned:"Imagem Legendada",captionPlaceholder:"Caption",infoTab:"Informação da Imagem",lockRatio:"Proporcional",menu:"Propriedades da Imagem",pathName:"imagem",pathNameCaption:"legenda",resetSize:"Tamanho Original",resizer:"Clique e arraste para redimensionar",title:"Propriedades da Imagem",uploadTab:"Enviar",urlMissing:"O URL da fonte da imagem está em falta."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ro.js b/www/lib/ckeditor/plugins/image2/lang/ro.js new file mode 100644 index 00000000..8f860894 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ro",{alt:"Text alternativ",btnUpload:"Trimite la server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informaţii despre imagine",lockRatio:"Păstrează proporţiile",menu:"Proprietăţile imaginii",pathName:"image",pathNameCaption:"caption",resetSize:"Resetează mărimea",resizer:"Click and drag to resize",title:"Proprietăţile imaginii",uploadTab:"Încarcă",urlMissing:"Sursa URL a imaginii lipsește."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ru.js b/www/lib/ckeditor/plugins/image2/lang/ru.js new file mode 100644 index 00000000..eda93cb0 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ru",{alt:"Альтернативный текст",btnUpload:"Загрузить на сервер",captioned:"Захваченное изображение",captionPlaceholder:"Название",infoTab:"Данные об изображении",lockRatio:"Сохранять пропорции",menu:"Свойства изображения",pathName:"изображение",pathNameCaption:"захват",resetSize:"Вернуть обычные размеры",resizer:"Нажмите и растяните",title:"Свойства изображения",uploadTab:"Загрузка файла",urlMissing:"Не указана ссылка на изображение."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/si.js b/www/lib/ckeditor/plugins/image2/lang/si.js new file mode 100644 index 00000000..5ab518c1 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","si",{alt:"විකල්ප ",btnUpload:"සේවාදායකය වෙත යොමුකිරිම",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"රුපයේ තොරතුරු",lockRatio:"නවතන අනුපාතය ",menu:"රුපයේ ගුණ",pathName:"image",pathNameCaption:"caption",resetSize:"නැවතත් විශාලත්වය වෙනස් කිරීම",resizer:"Click and drag to resize",title:"රුපයේ ",uploadTab:"උඩුගතකිරීම",urlMissing:"රුප මුලාශ්‍ර URL නැත."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/sk.js b/www/lib/ckeditor/plugins/image2/lang/sk.js new file mode 100644 index 00000000..18778843 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sk",{alt:"Alternatívny text",btnUpload:"Odoslať to na server",captioned:"Opísaný obrázok",captionPlaceholder:"Popis",infoTab:"Informácie o obrázku",lockRatio:"Pomer zámky",menu:"Vlastnosti obrázka",pathName:"obrázok",pathNameCaption:"popis",resetSize:"Pôvodná veľkosť",resizer:"Kliknite a potiahnite pre zmenu veľkosti",title:"Vlastnosti obrázka",uploadTab:"Nahrať",urlMissing:"Chýba URL zdroja obrázka."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/sl.js b/www/lib/ckeditor/plugins/image2/lang/sl.js new file mode 100644 index 00000000..aced917a --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sl",{alt:"Nadomestno besedilo",btnUpload:"Pošlji na strežnik",captioned:"Podnaslovljena slika",captionPlaceholder:"Napis",infoTab:"Podatki o sliki",lockRatio:"Zakleni razmerje",menu:"Lastnosti slike",pathName:"slika",pathNameCaption:"napis",resetSize:"Ponastavi velikost",resizer:"Kliknite in povlecite, da spremeniti velikost",title:"Lastnosti slike",uploadTab:"Naloži",urlMissing:"Manjka vir (URL) slike."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/sq.js b/www/lib/ckeditor/plugins/image2/lang/sq.js new file mode 100644 index 00000000..8232aef2 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sq",{alt:"Tekst Alternativ",btnUpload:"Dërgo në server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Informacione mbi Fotografinë",lockRatio:"Mbyll Racionin",menu:"Karakteristikat e Fotografisë",pathName:"image",pathNameCaption:"caption",resetSize:"Rikthe Madhësinë",resizer:"Click and drag to resize",title:"Karakteristikat e Fotografisë",uploadTab:"Ngarko",urlMissing:"Mungon URL e burimit të fotografisë."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/sr-latn.js b/www/lib/ckeditor/plugins/image2/lang/sr-latn.js new file mode 100644 index 00000000..287f0265 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr-latn",{alt:"Alternativni tekst",btnUpload:"Pošalji na server",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Info slike",lockRatio:"Zaključaj odnos",menu:"Osobine slika",pathName:"image",pathNameCaption:"caption",resetSize:"Resetuj veličinu",resizer:"Click and drag to resize",title:"Osobine slika",uploadTab:"Pošalji",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/sr.js b/www/lib/ckeditor/plugins/image2/lang/sr.js new file mode 100644 index 00000000..18857fb7 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sr",{alt:"Алтернативни текст",btnUpload:"Пошаљи на сервер",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Инфо слике",lockRatio:"Закључај однос",menu:"Особине слика",pathName:"image",pathNameCaption:"caption",resetSize:"Ресетуј величину",resizer:"Click and drag to resize",title:"Особине слика",uploadTab:"Пошаљи",urlMissing:"Недостаје УРЛ слике."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/sv.js b/www/lib/ckeditor/plugins/image2/lang/sv.js new file mode 100644 index 00000000..2c5ed3f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","sv",{alt:"Alternativ text",btnUpload:"Skicka till server",captioned:"Rubricerad bild",captionPlaceholder:"Bildtext",infoTab:"Bildinformation",lockRatio:"Lås höjd/bredd förhållanden",menu:"Bildegenskaper",pathName:"bild",pathNameCaption:"rubrik",resetSize:"Återställ storlek",resizer:"Klicka och drag för att ändra storlek",title:"Bildegenskaper",uploadTab:"Ladda upp",urlMissing:"Bildkällans URL saknas."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/th.js b/www/lib/ckeditor/plugins/image2/lang/th.js new file mode 100644 index 00000000..636814d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","th",{alt:"คำประกอบรูปภาพ",btnUpload:"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"ข้อมูลของรูปภาพ",lockRatio:"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่",menu:"คุณสมบัติของ รูปภาพ",pathName:"image",pathNameCaption:"caption",resetSize:"กำหนดรูปเท่าขนาดจริง",resizer:"Click and drag to resize",title:"คุณสมบัติของ รูปภาพ",uploadTab:"อัพโหลดไฟล์",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/tr.js b/www/lib/ckeditor/plugins/image2/lang/tr.js new file mode 100644 index 00000000..305d1b39 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tr",{alt:"Alternatif Yazı",btnUpload:"Sunucuya Yolla",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"Resim Bilgisi",lockRatio:"Oranı Kilitle",menu:"Resim Özellikleri",pathName:"Resim",pathNameCaption:"caption",resetSize:"Boyutu Başa Döndür",resizer:"Boyutlandırmak için, tıklayın ve sürükleyin",title:"Resim Özellikleri",uploadTab:"Karşıya Yükle",urlMissing:"Resmin URL kaynağı bulunamadı."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/tt.js b/www/lib/ckeditor/plugins/image2/lang/tt.js new file mode 100644 index 00000000..2133d73b --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","tt",{alt:"Альтернатив текст",btnUpload:"Серверга җибәрү",captioned:"Исеме куелган рәсем",captionPlaceholder:"Исем",infoTab:"Рәсем тасвирламасы",lockRatio:"Lock Ratio",menu:"Рәсем үзлекләре",pathName:"рәсем",pathNameCaption:"исем",resetSize:"Баштагы зурлык",resizer:"Күчереп куер өчен басып шудырыгыз",title:"Рәсем үзлекләре",uploadTab:"Йөкләү",urlMissing:"Image source URL is missing."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/ug.js b/www/lib/ckeditor/plugins/image2/lang/ug.js new file mode 100644 index 00000000..7913ee9f --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","ug",{alt:"تېكىست ئالماشتۇر",btnUpload:"مۇلازىمېتىرغا يۈكلە",captioned:"Captioned image",captionPlaceholder:"Caption",infoTab:"سۈرەت",lockRatio:"نىسبەتنى قۇلۇپلا",menu:"سۈرەت خاسلىقى",pathName:"image",pathNameCaption:"caption",resetSize:"ئەسلى چوڭلۇق",resizer:"Click and drag to resize",title:"سۈرەت خاسلىقى",uploadTab:"يۈكلە",urlMissing:"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/uk.js b/www/lib/ckeditor/plugins/image2/lang/uk.js new file mode 100644 index 00000000..989eb551 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","uk",{alt:"Альтернативний текст",btnUpload:"Надіслати на сервер",captioned:"Підписане зображення",captionPlaceholder:"Caption",infoTab:"Інформація про зображення",lockRatio:"Зберегти пропорції",menu:"Властивості зображення",pathName:"Зображення",pathNameCaption:"заголовок",resetSize:"Очистити поля розмірів",resizer:"Клікніть та потягніть для зміни розмірів",title:"Властивості зображення",uploadTab:"Надіслати",urlMissing:"Вкажіть URL зображення."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/vi.js b/www/lib/ckeditor/plugins/image2/lang/vi.js new file mode 100644 index 00000000..863c40d1 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","vi",{alt:"Chú thích ảnh",btnUpload:"Tải lên máy chủ",captioned:"Ảnh có chú thích",captionPlaceholder:"Nhãn",infoTab:"Thông tin của ảnh",lockRatio:"Giữ nguyên tỷ lệ",menu:"Thuộc tính của ảnh",pathName:"ảnh",pathNameCaption:"chú thích",resetSize:"Kích thước gốc",resizer:"Kéo rê để thay đổi kích cỡ",title:"Thuộc tính của ảnh",uploadTab:"Tải lên",urlMissing:"Thiếu đường dẫn hình ảnh"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/zh-cn.js b/www/lib/ckeditor/plugins/image2/lang/zh-cn.js new file mode 100644 index 00000000..3209b92f --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh-cn",{alt:"替换文本",btnUpload:"上传到服务器",captioned:"带标题图像",captionPlaceholder:"标题",infoTab:"图像信息",lockRatio:"锁定比例",menu:"图像属性",pathName:"图像",pathNameCaption:"标题",resetSize:"原始尺寸",resizer:"点击并拖拽以改变尺寸",title:"图像属性",uploadTab:"上传",urlMissing:"缺少图像源文件地址"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/lang/zh.js b/www/lib/ckeditor/plugins/image2/lang/zh.js new file mode 100644 index 00000000..f9489af4 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("image2","zh",{alt:"替代文字",btnUpload:"傳送至伺服器",captioned:"已加標題之圖片",captionPlaceholder:"Caption",infoTab:"影像資訊",lockRatio:"固定比例",menu:"影像屬性",pathName:"圖片",pathNameCaption:"標題",resetSize:"重設大小",resizer:"拖曳以改變大小",title:"影像屬性",uploadTab:"上傳",urlMissing:"遺失圖片來源之 URL "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/image2/plugin.js b/www/lib/ckeditor/plugins/image2/plugin.js new file mode 100644 index 00000000..37195045 --- /dev/null +++ b/www/lib/ckeditor/plugins/image2/plugin.js @@ -0,0 +1,30 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function A(a){function b(){this.deflated||(a.widgets.focused==this.widget&&(this.focused=!0),a.widgets.destroy(this.widget),this.deflated=!0)}function e(){var d=a.editable(),c=a.document;if(this.deflated)this.widget=a.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!(new CKEDITOR.dom.elementPath(this.widget.wrapper,d)).block&&(d=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),d.replace(this.widget.wrapper),this.widget.wrapper.move(d)),this.focused&& +(this.widget.focus(),delete this.focused),delete this.deflated;else{var b=this.widget,d=f,c=b.wrapper,e=b.data.align,b=b.data.hasCaption;if(d){for(var j=3;j--;)c.removeClass(d[j]);"center"==e?b&&c.addClass(d[1]):"none"!=e&&c.addClass(d[n[e]])}else"center"==e?(b?c.setStyle("text-align","center"):c.removeStyle("text-align"),c.removeStyle("float")):("none"==e?c.removeStyle("float"):c.setStyle("float",e),c.removeStyle("text-align"))}}var f=a.config.image2_alignClasses,g=a.config.image2_captionedClass; +return{allowedContent:B(a),requiredContent:"img[src,alt]",features:C(a),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href]"}},parts:{image:"img",caption:"figcaption"},dialog:"image2",template:z,data:function(){var d=this.features;this.data.hasCaption&&!a.filter.checkFeature(d.caption)&&(this.data.hasCaption=!1);"none"!=this.data.align&&!a.filter.checkFeature(d.align)&& +(this.data.align="none");this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:b,inflate:e});this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link;this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt});if(this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var c in this.data.classes)this.parts.image.removeClass(c);if(a.filter.checkFeature(d.dimension)){d= +this.data;d={width:d.width,height:d.height};c=this.parts.image;for(var f in d)d[f]?c.setAttribute(f,d[f]):c.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,c=this.parts.image,e={hasCaption:!!this.parts.caption,src:c.getAttribute("src"),alt:c.getAttribute("alt")||"",width:c.getAttribute("width")||"",height:c.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(c):!0},g=c.getAscendant("a");g&&this.wrapper.contains(g)&&(this.parts.link= +g);e.align||(f?(this.element.hasClass(f[0])?e.align="left":this.element.hasClass(f[2])&&(e.align="right"),e.align?this.element.removeClass(f[n[e.align]]):e.align="none"):(e.align=this.element.getStyle("float")||c.getStyle("float")||"none",this.element.removeStyle("float"),c.removeStyle("float")));if(a.plugins.link&&this.parts.link&&(e.link=CKEDITOR.plugins.link.parseLinkAttributes(a,this.parts.link),(c=e.link.advanced)&&c.advCSSClasses))c.advCSSClasses=CKEDITOR.tools.trim(c.advCSSClasses.replace(/cke_\S+/, +""));this.wrapper[(e.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption");this.setData(e);a.filter.checkFeature(this.features.dimension)&&D(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF});this.on("dialog",function(a){a.data.widget=this},this)},addClass:function(a){k(this).addClass(a)},hasClass:function(a){return k(this).hasClass(a)}, +removeClass:function(a){k(this).removeClass(a)},getClasses:function(){var a=RegExp("^("+[].concat(g,f).join("|")+")$");return function(){var b=this.repository.parseElementClasses(k(this).getAttribute("class")),e;for(e in b)a.test(e)&&delete b[e];return b}}(),upcast:E(a),downcast:F(a)}}function E(a){var b=l(a),e=a.config.image2_captionedClass;return function(a,g){var d={width:1,height:1},c=a.name,h;if(!a.attributes["data-cke-realelement"]){if(b(a)){if("div"==c&&(h=a.getFirst("figure")))a.replaceWith(h), +a=h;g.align="center";h=a.getFirst("img")||a.getFirst("a").getFirst("img")}else"figure"==c&&a.hasClass(e)?h=a.getFirst("img")||a.getFirst("a").getFirst("img"):o(a)&&(h="a"==a.name?a.children[0]:a);if(h){for(var y in d)(c=h.attributes[y])&&c.match(G)&&delete h.attributes[y];return a}}}}function F(a){var b=a.config.image2_alignClasses;return function(a){var f="a"==a.name?a.getFirst():a,g=f.attributes,d=this.data.align;if(!this.inline){var c=a.getFirst("span");c&&c.replaceWith(c.getFirst({img:1,a:1}))}d&& +"none"!=d&&(c=CKEDITOR.tools.parseCssText(g.style||""),"center"==d&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):d in{left:1,right:1}&&(b?f.addClass(b[n[d]]):c["float"]=d),!b&&!CKEDITOR.tools.isEmpty(c)&&(g.style=CKEDITOR.tools.writeCssText(c)));return a}}function l(a){var b=a.config.image2_captionedClass,e=a.config.image2_alignClasses,f={figure:1,a:1,img:1};return function(g){if(!(g.name in{div:1,p:1}))return!1;var d=g.children; +if(1!==d.length)return!1;d=d[0];if(!(d.name in f))return!1;if("p"==g.name){if(!o(d))return!1}else if("figure"==d.name){if(!d.hasClass(b))return!1}else if(a.enterMode==CKEDITOR.ENTER_P||!o(d))return!1;return(e?g.hasClass(e[1]):"center"==CKEDITOR.tools.parseCssText(g.attributes.style||"",!0)["text-align"])?!0:!1}}function o(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function D(a){var b=a.editor,e=b.editable(),f=b.document,g=a.resizer=f.createElement("span");g.addClass("cke_image_resizer"); +g.setAttribute("title",b.lang.image2.resizer);g.append(new CKEDITOR.dom.text("​",f));if(a.inline)a.wrapper.append(g);else{var d=a.parts.link||a.parts.image,c=d.getParent(),h=f.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(d);h.append(g);a.element.append(h,!0);c.is("span")&&c.remove()}g.on("mousedown",function(c){function j(a,b,c){var d=CKEDITOR.document,j=[];f.equals(d)||j.push(d.on(a,b));j.push(f.on(a,b));if(c)for(a=j.length;a--;)c.push(j.pop())}function d(){p=k+w*t;q=Math.round(p/ +r)}function s(){q=n-m;p=Math.round(q*r)}var h=a.parts.image,w="right"==a.data.align?-1:1,i=c.data.$.screenX,H=c.data.$.screenY,k=h.$.clientWidth,n=h.$.clientHeight,r=k/n,l=[],o="cke_image_s"+(!~w?"w":"e"),x,p,q,v,t,m,u;b.fire("saveSnapshot");j("mousemove",function(a){x=a.data.$;t=x.screenX-i;m=H-x.screenY;u=Math.abs(t/m);1==w?0>=t?0>=m?d():u>=r?d():s():0>=m?u>=r?s():d():s():0>=t?0>=m?u>=r?s():d():s():0>=m?d():u>=r?d():s();15<=p&&15<=q?(h.setAttributes({width:p,height:q}),v=!0):v=!1},l);j("mouseup", +function(){for(var c;c=l.pop();)c.removeListener();e.removeClass(o);g.removeClass("cke_image_resizing");v&&(a.setData({width:p,height:q}),b.fire("saveSnapshot"));v=!1},l);e.addClass(o);g.addClass("cke_image_resizing")});a.on("data",function(){g["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function I(a){var b=[],e;return function(f){var g=a.getCommand("justify"+f);if(g){b.push(function(){g.refresh(a,a.elementPath())});if(f in{right:1,left:1,center:1})g.on("exec",function(d){var c= +i(a);if(c){c.setData("align",f);for(c=b.length;c--;)b[c]();d.cancel()}});g.on("refresh",function(b){var c=i(a),g={right:1,left:1,center:1};c&&(void 0==e&&(e=a.filter.checkFeature(a.widgets.registered.image.features.align)),e?this.setState(c.data.align==f?CKEDITOR.TRISTATE_ON:f in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function J(a){a.plugins.link&&(CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){var b=b.definition, +e=b.onShow,f=b.onOk;b.onShow=function(){var b=i(a);b&&(b.inline?!b.wrapper.getAscendant("a"):1)?this.setupContent(b.data.link||{}):e.apply(this,arguments)};b.onOk=function(){var b=i(a);if(b&&(b.inline?!b.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);b.setData("link",d)}else f.apply(this,arguments)}}}),a.getCommand("unlink").on("exec",function(b){var e=i(a);e&&e.parts.link&&(e.setData("link",null),this.refresh(a,a.elementPath()),b.cancel())}),a.getCommand("unlink").on("refresh",function(b){var e= +i(a);e&&(this.setState(e.data.link||e.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),b.cancel())}))}function i(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function B(a){var b=a.config.image2_alignClasses,a={div:{match:l(a)},p:{match:l(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+a.config.image2_captionedClass},figcaption:!0};b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+a.img.classes):(a.div.styles= +"text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function C(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function k(a){return a.data.hasCaption?a.element:a.parts.image}var z='<img alt="" src="" />',K=new CKEDITOR.template('<figure class="{captionedClass}">'+z+"<figcaption>{captionPlaceholder}</figcaption></figure>"), +n={left:0,center:1,right:2},G=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")}, +init:function(a){var b=a.config,e=a.lang.image2,f=A(a);b.filebrowserImage2BrowseUrl=b.filebrowserImageBrowseUrl;b.filebrowserImage2UploadUrl=b.filebrowserImageUploadUrl;f.pathName=e.pathName;f.editables.caption.pathName=e.pathNameCaption;a.widgets.add("image",f);a.ui.addButton&&a.ui.addButton("Image",{label:a.lang.common.image,command:"image",toolbar:"insert,10"});a.contextMenu&&(a.addMenuGroup("image",10),a.addMenuItem("image",{label:e.menu,command:"image",group:"image"}));CKEDITOR.dialog.add("image2", +this.path+"dialogs/image2.js")},afterInit:function(a){var b={left:1,right:1,center:1,block:1},e=I(a),f;for(f in b)e(f);J(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,b){var c={};g?c.attributes={"class":g[1]}:c.styles={"text-align":"center"};c=f.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",c);e(c,b);b.move(c);return c}function e(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();c.insertElementIntoRange(b, +e)}else b.replace(d)}var f=a.document,g=a.config.image2_alignClasses,d=a.config.image2_captionedClass,c=a.editable(),h=["hasCaption","align","link"],i={align:function(c,d,e){var f=c.element;if(c.changed.align){if(!c.newData.hasCaption&&("center"==e&&(c.deflate(),c.element=b(a,f)),!c.changed.hasCaption&&"center"==d&&"center"!=e))c.deflate(),d=f.findOne("a,img"),d.replace(f),c.element=d}else"center"==e&&(c.changed.hasCaption&&!c.newData.hasCaption)&&(c.deflate(),c.element=b(a,f));!g&&f.is("figure")&& +("center"==e?f.setStyle("display","inline-block"):f.removeStyle("display"))},hasCaption:function(b,c,g){b.changed.hasCaption&&(c=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(K.output({captionedClass:d,captionPlaceholder:a.lang.image2.captionPlaceholder}),f),e(g,b.element),c.replace(g.findOne("img")),b.element=g):(c.replace(b.element),b.element=c))},link:function(b,c,d){if(b.changed.link){var e=b.element.is("img")?b.element:b.element.findOne("img"), +g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!d||b.element.is("img")&&d,i;h&&b.deflate();d?(c||(i=f.createElement("a",{attributes:{href:b.newData.link.url}}),i.replace(e),e.move(i)),d=CKEDITOR.plugins.link.getLinkAttributes(a,d),CKEDITOR.tools.isEmpty(d.set)||(i||g).setAttributes(d.set),d.removed.length&&(i||g).removeAttributes(d.removed)):(d=g.findOne("img"),d.replace(g),i=d);h&&(b.element=i)}}};return function(a){var b,c;a.changed={};for(c=0;c<h.length;c++)b=h[c],a.changed[b]= +a.oldData?a.oldData[b]!==a.newData[b]:!1;for(c=0;c<h.length;c++)b=h[c],i[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$,a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=a.getAttribute("src");a={width:b.width,height:b.height}}return a}}})(); +CKEDITOR.config.image2_captionedClass="image"; \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/indentblock/plugin.js b/www/lib/ckeditor/plugins/indentblock/plugin.js new file mode 100644 index 00000000..ab69d14c --- /dev/null +++ b/www/lib/ckeditor/plugins/indentblock/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,f=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=f?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{var c=i(b,a),a=parseInt(b.getStyle(c),10),g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(f?1:-1)*g;if(0>a)return;a=Math.max(a, +0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function i(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var j=CKEDITOR.dtd.$listItem,l=CKEDITOR.dtd.$list,f=CKEDITOR.TRISTATE_DISABLED,k=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(b,c){a.specificDefinition.apply(this, +arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:!d?"margin-left,margin-right":null,classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(e.is(j))e=e.getParent();else if(e.getAscendant(j))return f;if(!this.enterBr&&!this.getContext(b))return f;if(d){var c;c=d;var e=e.$.className.match(this.classNameRegex), +g=this.isIndent;c=e?g?e[1]!=c.slice(-1):true:g;return c?k:f}return this.isIndent?k:e?CKEDITOR[(parseInt(e.getStyle(i(e)),10)||0)<=0?"TRISTATE_DISABLED":"TRISTATE_OFF"]:f},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(l))h.call(this,c,d);else{b=b.createIterator();a=a.config.enterMode;b.enforceRealBlocks=true;for(b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||h.call(this,c,d)}return true}}}}var a= +CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?RegExp("(?:^|\\s+)("+d.join("|")+")(?=$|\\s)"):null})}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png new file mode 100644 index 00000000..7209fd41 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyblock.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png new file mode 100644 index 00000000..365e3205 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifycenter.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png new file mode 100644 index 00000000..75308c12 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyleft.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png new file mode 100644 index 00000000..de7c3d45 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/hidpi/justifyright.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/justifyblock.png b/www/lib/ckeditor/plugins/justify/icons/justifyblock.png new file mode 100644 index 00000000..a507be1b Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/justifyblock.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/justifycenter.png b/www/lib/ckeditor/plugins/justify/icons/justifycenter.png new file mode 100644 index 00000000..f758bc42 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/justifycenter.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/justifyleft.png b/www/lib/ckeditor/plugins/justify/icons/justifyleft.png new file mode 100644 index 00000000..542ddee3 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/justifyleft.png differ diff --git a/www/lib/ckeditor/plugins/justify/icons/justifyright.png b/www/lib/ckeditor/plugins/justify/icons/justifyright.png new file mode 100644 index 00000000..71a983c9 Binary files /dev/null and b/www/lib/ckeditor/plugins/justify/icons/justifyright.png differ diff --git a/www/lib/ckeditor/plugins/justify/lang/af.js b/www/lib/ckeditor/plugins/justify/lang/af.js new file mode 100644 index 00000000..b3bd6aeb --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","af",{block:"Uitvul",center:"Sentreer",left:"Links oplyn",right:"Regs oplyn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ar.js b/www/lib/ckeditor/plugins/justify/lang/ar.js new file mode 100644 index 00000000..39f7a34f --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ar",{block:"ضبط",center:"توسيط",left:"محاذاة إلى اليسار",right:"محاذاة إلى اليمين"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/bg.js b/www/lib/ckeditor/plugins/justify/lang/bg.js new file mode 100644 index 00000000..d4a30cba --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bg",{block:"Двустранно подравняване",center:"Център",left:"Подравни в ляво",right:"Подравни в дясно"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/bn.js b/www/lib/ckeditor/plugins/justify/lang/bn.js new file mode 100644 index 00000000..c58ead92 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bn",{block:"ব্লক জাস্টিফাই",center:"মাঝ বরাবর ঘেষা",left:"বা দিকে ঘেঁষা",right:"ডান দিকে ঘেঁষা"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/bs.js b/www/lib/ckeditor/plugins/justify/lang/bs.js new file mode 100644 index 00000000..9b8553c5 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","bs",{block:"Puno poravnanje",center:"Centralno poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ca.js b/www/lib/ckeditor/plugins/justify/lang/ca.js new file mode 100644 index 00000000..b97f2a6b --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ca",{block:"Justificat",center:"Centrat",left:"Alinea a l'esquerra",right:"Alinea a la dreta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/cs.js b/www/lib/ckeditor/plugins/justify/lang/cs.js new file mode 100644 index 00000000..4c9bbb0d --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cs",{block:"Zarovnat do bloku",center:"Zarovnat na střed",left:"Zarovnat vlevo",right:"Zarovnat vpravo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/cy.js b/www/lib/ckeditor/plugins/justify/lang/cy.js new file mode 100644 index 00000000..0a6b4ff7 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","cy",{block:"Unioni",center:"Alinio i'r Canol",left:"Alinio i'r Chwith",right:"Alinio i'r Dde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/da.js b/www/lib/ckeditor/plugins/justify/lang/da.js new file mode 100644 index 00000000..0da8f69e --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","da",{block:"Lige margener",center:"Centreret",left:"Venstrestillet",right:"Højrestillet"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/de.js b/www/lib/ckeditor/plugins/justify/lang/de.js new file mode 100644 index 00000000..97fe58cc --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","de",{block:"Blocksatz",center:"Zentriert",left:"Linksbündig",right:"Rechtsbündig"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/el.js b/www/lib/ckeditor/plugins/justify/lang/el.js new file mode 100644 index 00000000..9941eb60 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","el",{block:"Πλήρης Στοίχιση",center:"Στο Κέντρο",left:"Στοίχιση Αριστερά",right:"Στοίχιση Δεξιά"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/en-au.js b/www/lib/ckeditor/plugins/justify/lang/en-au.js new file mode 100644 index 00000000..bb4e7c5c --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-au",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/en-ca.js b/www/lib/ckeditor/plugins/justify/lang/en-ca.js new file mode 100644 index 00000000..46a2d72d --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-ca",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/en-gb.js b/www/lib/ckeditor/plugins/justify/lang/en-gb.js new file mode 100644 index 00000000..9ebe888b --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en-gb",{block:"Justify",center:"Centre",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/en.js b/www/lib/ckeditor/plugins/justify/lang/en.js new file mode 100644 index 00000000..20b7ff5e --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","en",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/eo.js b/www/lib/ckeditor/plugins/justify/lang/eo.js new file mode 100644 index 00000000..17c15c0d --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eo",{block:"Ĝisrandigi Ambaŭflanke",center:"Centrigi",left:"Ĝisrandigi maldekstren",right:"Ĝisrandigi dekstren"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/es.js b/www/lib/ckeditor/plugins/justify/lang/es.js new file mode 100644 index 00000000..287fa690 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","es",{block:"Justificado",center:"Centrar",left:"Alinear a Izquierda",right:"Alinear a Derecha"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/et.js b/www/lib/ckeditor/plugins/justify/lang/et.js new file mode 100644 index 00000000..5e2eeecc --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","et",{block:"Rööpjoondus",center:"Keskjoondus",left:"Vasakjoondus",right:"Paremjoondus"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/eu.js b/www/lib/ckeditor/plugins/justify/lang/eu.js new file mode 100644 index 00000000..3f4f3493 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","eu",{block:"Justifikatu",center:"Lerrokatu Erdian",left:"Lerrokatu Ezkerrean",right:"Lerrokatu Eskuman"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/fa.js b/www/lib/ckeditor/plugins/justify/lang/fa.js new file mode 100644 index 00000000..6a027abe --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fa",{block:"بلوک چین",center:"میان چین",left:"چپ چین",right:"راست چین"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/fi.js b/www/lib/ckeditor/plugins/justify/lang/fi.js new file mode 100644 index 00000000..c309b712 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fi",{block:"Tasaa molemmat reunat",center:"Keskitä",left:"Tasaa vasemmat reunat",right:"Tasaa oikeat reunat"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/fo.js b/www/lib/ckeditor/plugins/justify/lang/fo.js new file mode 100644 index 00000000..cd960d1c --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fo",{block:"Javnir tekstkantar",center:"Miðsett",left:"Vinstrasett",right:"Høgrasett"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/fr-ca.js b/www/lib/ckeditor/plugins/justify/lang/fr-ca.js new file mode 100644 index 00000000..6abd477d --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr-ca",{block:"Justifié",center:"Centré",left:"Aligner à gauche",right:"Aligner à Droite"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/fr.js b/www/lib/ckeditor/plugins/justify/lang/fr.js new file mode 100644 index 00000000..41d84c06 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","fr",{block:"Justifier",center:"Centrer",left:"Aligner à gauche",right:"Aligner à droite"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/gl.js b/www/lib/ckeditor/plugins/justify/lang/gl.js new file mode 100644 index 00000000..1d06021e --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gl",{block:"Xustificado",center:"Centrado",left:"Aliñar á esquerda",right:"Aliñar á dereita"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/gu.js b/www/lib/ckeditor/plugins/justify/lang/gu.js new file mode 100644 index 00000000..10ec3045 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","gu",{block:"બ્લૉક, અંતરાય જસ્ટિફાઇ",center:"સંકેંદ્રણ/સેંટરિંગ",left:"ડાબી બાજુએ/બાજુ તરફ",right:"જમણી બાજુએ/બાજુ તરફ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/he.js b/www/lib/ckeditor/plugins/justify/lang/he.js new file mode 100644 index 00000000..93e075d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","he",{block:"יישור לשוליים",center:"מרכוז",left:"יישור לשמאל",right:"יישור לימין"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/hi.js b/www/lib/ckeditor/plugins/justify/lang/hi.js new file mode 100644 index 00000000..5e7f955e --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hi",{block:"ब्लॉक जस्टीफ़ाई",center:"बीच में",left:"बायीं तरफ",right:"दायीं तरफ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/hr.js b/www/lib/ckeditor/plugins/justify/lang/hr.js new file mode 100644 index 00000000..a9100975 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hr",{block:"Blok poravnanje",center:"Središnje poravnanje",left:"Lijevo poravnanje",right:"Desno poravnanje"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/hu.js b/www/lib/ckeditor/plugins/justify/lang/hu.js new file mode 100644 index 00000000..00069c6f --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","hu",{block:"Sorkizárt",center:"Középre",left:"Balra",right:"Jobbra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/id.js b/www/lib/ckeditor/plugins/justify/lang/id.js new file mode 100644 index 00000000..f1aa2e86 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","id",{block:"Rata kiri-kanan",center:"Pusat",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/is.js b/www/lib/ckeditor/plugins/justify/lang/is.js new file mode 100644 index 00000000..f5f891e9 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","is",{block:"Jafna báðum megin",center:"Miðja texta",left:"Vinstrijöfnun",right:"Hægrijöfnun"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/it.js b/www/lib/ckeditor/plugins/justify/lang/it.js new file mode 100644 index 00000000..188a0f81 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","it",{block:"Giustifica",center:"Centra",left:"Allinea a sinistra",right:"Allinea a destra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ja.js b/www/lib/ckeditor/plugins/justify/lang/ja.js new file mode 100644 index 00000000..24552e0f --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ja",{block:"両端揃え",center:"中央揃え",left:"左揃え",right:"右揃え"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ka.js b/www/lib/ckeditor/plugins/justify/lang/ka.js new file mode 100644 index 00000000..8ddd27e9 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ka",{block:"გადასწორება",center:"შუაში სწორება",left:"მარცხნივ სწორება",right:"მარჯვნივ სწორება"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/km.js b/www/lib/ckeditor/plugins/justify/lang/km.js new file mode 100644 index 00000000..62a049bb --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","km",{block:"តម្រឹម​ពេញ",center:"កណ្ដាល",left:"តម្រឹម​ឆ្វេង",right:"តម្រឹម​ស្ដាំ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ko.js b/www/lib/ckeditor/plugins/justify/lang/ko.js new file mode 100644 index 00000000..bfcbaf02 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ko",{block:"양쪽 맞춤",center:"가운데 정렬",left:"왼쪽 정렬",right:"오른쪽 정렬"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ku.js b/www/lib/ckeditor/plugins/justify/lang/ku.js new file mode 100644 index 00000000..a27e9e13 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ku",{block:"هاوستوونی",center:"ناوەڕاست",left:"بەهێڵ کردنی چەپ",right:"بەهێڵ کردنی ڕاست"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/lt.js b/www/lib/ckeditor/plugins/justify/lang/lt.js new file mode 100644 index 00000000..d9731e46 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lt",{block:"Lygiuoti abi puses",center:"Centruoti",left:"Lygiuoti kairę",right:"Lygiuoti dešinę"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/lv.js b/www/lib/ckeditor/plugins/justify/lang/lv.js new file mode 100644 index 00000000..7a49b357 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","lv",{block:"Izlīdzināt malas",center:"Izlīdzināt pret centru",left:"Izlīdzināt pa kreisi",right:"Izlīdzināt pa labi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/mk.js b/www/lib/ckeditor/plugins/justify/lang/mk.js new file mode 100644 index 00000000..aabf8ca2 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mk",{block:"Justify",center:"Center",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/mn.js b/www/lib/ckeditor/plugins/justify/lang/mn.js new file mode 100644 index 00000000..2eb717ce --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","mn",{block:"Тэгшлэх",center:"Голлуулах",left:"Зүүн талд тулгах",right:"Баруун талд тулгах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ms.js b/www/lib/ckeditor/plugins/justify/lang/ms.js new file mode 100644 index 00000000..fb6d5ea1 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ms",{block:"Jajaran Blok",center:"Jajaran Tengah",left:"Jajaran Kiri",right:"Jajaran Kanan"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/nb.js b/www/lib/ckeditor/plugins/justify/lang/nb.js new file mode 100644 index 00000000..9b8ed082 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nb",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/nl.js b/www/lib/ckeditor/plugins/justify/lang/nl.js new file mode 100644 index 00000000..1b0f8ae3 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","nl",{block:"Uitvullen",center:"Centreren",left:"Links uitlijnen",right:"Rechts uitlijnen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/no.js b/www/lib/ckeditor/plugins/justify/lang/no.js new file mode 100644 index 00000000..49f6c800 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","no",{block:"Blokkjuster",center:"Midtstill",left:"Venstrejuster",right:"Høyrejuster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/pl.js b/www/lib/ckeditor/plugins/justify/lang/pl.js new file mode 100644 index 00000000..104c04f5 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pl",{block:"Wyjustuj",center:"Wyśrodkuj",left:"Wyrównaj do lewej",right:"Wyrównaj do prawej"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/pt-br.js b/www/lib/ckeditor/plugins/justify/lang/pt-br.js new file mode 100644 index 00000000..05e293e2 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt-br",{block:"Justificado",center:"Centralizar",left:"Alinhar Esquerda",right:"Alinhar Direita"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/pt.js b/www/lib/ckeditor/plugins/justify/lang/pt.js new file mode 100644 index 00000000..e641019f --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","pt",{block:"Justificado",center:"Alinhar ao Centro",left:"Alinhar à Esquerda",right:"Alinhar à Direita"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ro.js b/www/lib/ckeditor/plugins/justify/lang/ro.js new file mode 100644 index 00000000..d1da4cc9 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ro",{block:"Aliniere în bloc (Block Justify)",center:"Aliniere centrală",left:"Aliniere la stânga",right:"Aliniere la dreapta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ru.js b/www/lib/ckeditor/plugins/justify/lang/ru.js new file mode 100644 index 00000000..4dfc2e40 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ru",{block:"По ширине",center:"По центру",left:"По левому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/si.js b/www/lib/ckeditor/plugins/justify/lang/si.js new file mode 100644 index 00000000..8d85db57 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","si",{block:"Justify",center:"මධ්‍ය",left:"Align Left",right:"Align Right"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/sk.js b/www/lib/ckeditor/plugins/justify/lang/sk.js new file mode 100644 index 00000000..6d4de70f --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sk",{block:"Zarovnať do bloku",center:"Zarovnať na stred",left:"Zarovnať vľavo",right:"Zarovnať vpravo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/sl.js b/www/lib/ckeditor/plugins/justify/lang/sl.js new file mode 100644 index 00000000..cda22d1c --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sl",{block:"Obojestranska poravnava",center:"Sredinska poravnava",left:"Leva poravnava",right:"Desna poravnava"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/sq.js b/www/lib/ckeditor/plugins/justify/lang/sq.js new file mode 100644 index 00000000..5ec58c62 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sq",{block:"Zgjero",center:"Qendër",left:"Rreshto majtas",right:"Rreshto Djathtas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/sr-latn.js b/www/lib/ckeditor/plugins/justify/lang/sr-latn.js new file mode 100644 index 00000000..320d6972 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr-latn",{block:"Obostrano ravnanje",center:"Centriran tekst",left:"Levo ravnanje",right:"Desno ravnanje"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/sr.js b/www/lib/ckeditor/plugins/justify/lang/sr.js new file mode 100644 index 00000000..f6654964 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sr",{block:"Обострано равнање",center:"Центриран текст",left:"Лево равнање",right:"Десно равнање"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/sv.js b/www/lib/ckeditor/plugins/justify/lang/sv.js new file mode 100644 index 00000000..9054d4f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","sv",{block:"Justera till marginaler",center:"Centrera",left:"Vänsterjustera",right:"Högerjustera"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/th.js b/www/lib/ckeditor/plugins/justify/lang/th.js new file mode 100644 index 00000000..fb1d15f9 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","th",{block:"จัดพอดีหน้ากระดาษ",center:"จัดกึ่งกลาง",left:"จัดชิดซ้าย",right:"จัดชิดขวา"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/tr.js b/www/lib/ckeditor/plugins/justify/lang/tr.js new file mode 100644 index 00000000..177d9add --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tr",{block:"İki Kenara Yaslanmış",center:"Ortalanmış",left:"Sola Dayalı",right:"Sağa Dayalı"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/tt.js b/www/lib/ckeditor/plugins/justify/lang/tt.js new file mode 100644 index 00000000..b0999da7 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","tt",{block:"Киңлеккә карап тигезләү",center:"Үзәккә тигезләү",left:"Сул як кырыйдан тигезләү",right:"Уң як кырыйдан тигезләү"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/ug.js b/www/lib/ckeditor/plugins/justify/lang/ug.js new file mode 100644 index 00000000..a1112522 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","ug",{block:"ئىككى تەرەپتىن توغرىلا",center:"ئوتتۇرىغا توغرىلا",left:"سولغا توغرىلا",right:"ئوڭغا توغرىلا"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/uk.js b/www/lib/ckeditor/plugins/justify/lang/uk.js new file mode 100644 index 00000000..ba2baba0 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","uk",{block:"По ширині",center:"По центру",left:"По лівому краю",right:"По правому краю"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/vi.js b/www/lib/ckeditor/plugins/justify/lang/vi.js new file mode 100644 index 00000000..30395d21 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","vi",{block:"Canh đều",center:"Canh giữa",left:"Canh trái",right:"Canh phải"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/zh-cn.js b/www/lib/ckeditor/plugins/justify/lang/zh-cn.js new file mode 100644 index 00000000..9132cf5e --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh-cn",{block:"两端对齐",center:"居中",left:"左对齐",right:"右对齐"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/lang/zh.js b/www/lib/ckeditor/plugins/justify/lang/zh.js new file mode 100644 index 00000000..405907b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("justify","zh",{block:"左右對齊",center:"置中",left:"靠左對齊",right:"靠右對齊"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/justify/plugin.js b/www/lib/ckeditor/plugins/justify/plugin.js new file mode 100644 index 00000000..82fe3301 --- /dev/null +++ b/www/lib/ckeditor/plugins/justify/plugin.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function g(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";var c=a.config.justifyClasses,h=a.config.enterMode== +CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?=$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName|| +null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0]))); +e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}g.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,g,f,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){g=d[k].createIterator();for(g.enlargeBr=b!=CKEDITOR.ENTER_BR;f=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!f.isReadOnly()){f.removeAttribute("align");f.removeStyle("text-align"); +var j=e&&(f.$.className=CKEDITOR.tools.ltrim(f.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(f,!0)!=this.value);e?m?f.addClass(e):j||f.removeAttribute("class"):m&&f.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify", +{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"justifyblock,justifycenter,justifyleft,justifyright",hidpi:!0,init:function(a){if(!a.blockless){var c=new g(a,"justifyleft","left"),b=new g(a,"justifycenter","center"),h=new g(a,"justifyright","right"),d=new g(a,"justifyblock","justify");a.addCommand("justifyleft", +c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock", +toolbar:"align,40"}));a.on("dirChanged",j)}}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/icons/hidpi/language.png b/www/lib/ckeditor/plugins/language/icons/hidpi/language.png new file mode 100644 index 00000000..3908a6ae Binary files /dev/null and b/www/lib/ckeditor/plugins/language/icons/hidpi/language.png differ diff --git a/www/lib/ckeditor/plugins/language/icons/language.png b/www/lib/ckeditor/plugins/language/icons/language.png new file mode 100644 index 00000000..eb680d42 Binary files /dev/null and b/www/lib/ckeditor/plugins/language/icons/language.png differ diff --git a/www/lib/ckeditor/plugins/language/lang/ar.js b/www/lib/ckeditor/plugins/language/lang/ar.js new file mode 100644 index 00000000..781a80b4 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ar",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/ca.js b/www/lib/ckeditor/plugins/language/lang/ca.js new file mode 100644 index 00000000..b954027f --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ca",{button:"Definir l'idioma",remove:"Eliminar idioma"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/cs.js b/www/lib/ckeditor/plugins/language/lang/cs.js new file mode 100644 index 00000000..672a1a68 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cs",{button:"Nastavit jazyk",remove:"Odstranit jazyk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/cy.js b/www/lib/ckeditor/plugins/language/lang/cy.js new file mode 100644 index 00000000..79d8d0e5 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","cy",{button:"Gosod iaith",remove:"Tynnu iaith"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/de.js b/www/lib/ckeditor/plugins/language/lang/de.js new file mode 100644 index 00000000..5adda832 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","de",{button:"Sprache stellen",remove:"Sprache entfernen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/el.js b/www/lib/ckeditor/plugins/language/lang/el.js new file mode 100644 index 00000000..2b0c17aa --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","el",{button:"Θέση γλώσσας",remove:"Αφαίρεση γλώσσας"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/en-gb.js b/www/lib/ckeditor/plugins/language/lang/en-gb.js new file mode 100644 index 00000000..73cd1a5d --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en-gb",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/en.js b/www/lib/ckeditor/plugins/language/lang/en.js new file mode 100644 index 00000000..acb83453 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","en",{button:"Set language",remove:"Remove language"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/eo.js b/www/lib/ckeditor/plugins/language/lang/eo.js new file mode 100644 index 00000000..49335695 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","eo",{button:"Instali lingvon",remove:"Forigi lingvon"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/es.js b/www/lib/ckeditor/plugins/language/lang/es.js new file mode 100644 index 00000000..cd91eff8 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","es",{button:"Fijar lenguaje",remove:"Quitar lenguaje"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/fa.js b/www/lib/ckeditor/plugins/language/lang/fa.js new file mode 100644 index 00000000..572f4c64 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fa",{button:"تعیین زبان",remove:"حذف زبان"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/fi.js b/www/lib/ckeditor/plugins/language/lang/fi.js new file mode 100644 index 00000000..f0276d16 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fi",{button:"Aseta kieli",remove:"Poista kieli"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/fr.js b/www/lib/ckeditor/plugins/language/lang/fr.js new file mode 100644 index 00000000..0b8602a0 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","fr",{button:"Définir la langue",remove:"Supprimer la langue"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/gl.js b/www/lib/ckeditor/plugins/language/lang/gl.js new file mode 100644 index 00000000..58ce1323 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","gl",{button:"Estabelezer o idioma",remove:"Retirar o idioma"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/he.js b/www/lib/ckeditor/plugins/language/lang/he.js new file mode 100644 index 00000000..334788e9 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","he",{button:"צור שפה",remove:"הסר שפה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/hr.js b/www/lib/ckeditor/plugins/language/lang/hr.js new file mode 100644 index 00000000..911103dd --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hr",{button:"Namjesti jezik",remove:"Makni jezik"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/hu.js b/www/lib/ckeditor/plugins/language/lang/hu.js new file mode 100644 index 00000000..92cc653c --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","hu",{button:"Nyelv beállítása",remove:"Nyelv eltávolítása"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/it.js b/www/lib/ckeditor/plugins/language/lang/it.js new file mode 100644 index 00000000..32e54319 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","it",{button:"Imposta lingua",remove:"Rimuovi lingua"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/ja.js b/www/lib/ckeditor/plugins/language/lang/ja.js new file mode 100644 index 00000000..e00999d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ja",{button:"言語を設定",remove:"言語を削除"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/km.js b/www/lib/ckeditor/plugins/language/lang/km.js new file mode 100644 index 00000000..f146a6fd --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","km",{button:"កំណត់​ភាសា",remove:"លុប​ភាសា"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/nb.js b/www/lib/ckeditor/plugins/language/lang/nb.js new file mode 100644 index 00000000..a0ed5b12 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nb",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/nl.js b/www/lib/ckeditor/plugins/language/lang/nl.js new file mode 100644 index 00000000..49c7d1ae --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","nl",{button:"Taal instellen",remove:"Taal verwijderen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/no.js b/www/lib/ckeditor/plugins/language/lang/no.js new file mode 100644 index 00000000..87b4e066 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","no",{button:"Sett språk",remove:"Fjern språk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/pl.js b/www/lib/ckeditor/plugins/language/lang/pl.js new file mode 100644 index 00000000..6de4bc48 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pl",{button:"Ustaw język",remove:"Usuń język"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/pt-br.js b/www/lib/ckeditor/plugins/language/lang/pt-br.js new file mode 100644 index 00000000..fbb3df1e --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt-br",{button:"Configure o Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/pt.js b/www/lib/ckeditor/plugins/language/lang/pt.js new file mode 100644 index 00000000..d63076b6 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","pt",{button:"Definir Idioma",remove:"Remover Idioma"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/ru.js b/www/lib/ckeditor/plugins/language/lang/ru.js new file mode 100644 index 00000000..60316fe7 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","ru",{button:"Установка языка",remove:"Удалить язык"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/sk.js b/www/lib/ckeditor/plugins/language/lang/sk.js new file mode 100644 index 00000000..2a6896ae --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sk",{button:"Nastaviť jazyk",remove:"Odstrániť jazyk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/sl.js b/www/lib/ckeditor/plugins/language/lang/sl.js new file mode 100644 index 00000000..3d0c585e --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sl",{button:"Nastavi jezik",remove:"Odstrani jezik"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/sv.js b/www/lib/ckeditor/plugins/language/lang/sv.js new file mode 100644 index 00000000..061b5b75 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","sv",{button:"Sätt språk",remove:"Ta bort språk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/tr.js b/www/lib/ckeditor/plugins/language/lang/tr.js new file mode 100644 index 00000000..ae38d58c --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tr",{button:"Dili seç",remove:"Dili kaldır"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/tt.js b/www/lib/ckeditor/plugins/language/lang/tt.js new file mode 100644 index 00000000..a651f7bb --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","tt",{button:"Тел сайлау",remove:"Телне бетерү"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/uk.js b/www/lib/ckeditor/plugins/language/lang/uk.js new file mode 100644 index 00000000..15a7cf06 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","uk",{button:"Установити мову",remove:"Вилучити мову"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/vi.js b/www/lib/ckeditor/plugins/language/lang/vi.js new file mode 100644 index 00000000..631df086 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","vi",{button:"Thiết lập ngôn ngữ",remove:"Loại bỏ ngôn ngữ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/zh-cn.js b/www/lib/ckeditor/plugins/language/lang/zh-cn.js new file mode 100644 index 00000000..a03c73a8 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh-cn",{button:"设置语言",remove:"移除语言"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/lang/zh.js b/www/lib/ckeditor/plugins/language/lang/zh.js new file mode 100644 index 00000000..6676d954 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("language","zh",{button:"設定語言",remove:"移除語言"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/language/plugin.js b/www/lib/ckeditor/plugins/language/plugin.js new file mode 100644 index 00000000..fe302883 --- /dev/null +++ b/www/lib/ckeditor/plugins/language/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("language",{requires:"menubutton",lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",icons:"language",hidpi:!0,init:function(a){var b=a.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],c=this,d=a.lang.language,e={},g,h,i,f;a.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(a,b){var c=e["language_"+b];if(c)a[c.style.checkActive(a.elementPath(), +a)?"removeStyle":"applyStyle"](c.style)},refresh:function(a){this.setState(c.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(f=0;f<b.length;f++)g=b[f].split(":"),h=g[0],i="language_"+h,e[i]={label:g[1],langId:h,group:"language",order:f,ltr:"rtl"!=(""+g[2]).toLowerCase(),onClick:function(){a.execCommand("language",this.langId)},role:"menuitemcheckbox"},e[i].style=new CKEDITOR.style({element:"span",attributes:{lang:h,dir:e[i].ltr?"ltr":"rtl"}});e.language_remove={label:d.remove, +group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,order:e.length,onClick:function(){var b=c.getCurrentLangElement(a);b&&a.execCommand("language",b.getAttribute("lang"))}};a.addMenuGroup("language",1);a.addMenuGroup("language_remove");a.addMenuItems(e);a.ui.add("Language",CKEDITOR.UI_MENUBUTTON,{label:d.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var b={},d=c.getCurrentLangElement(a),f;for(f in e)b[f]=CKEDITOR.TRISTATE_OFF; +b.language_remove=d?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;d&&(b["language_"+d.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return b}})},getCurrentLangElement:function(a){var b=a.elementPath(),a=b&&b.elements,c;if(b)for(var d=0;d<a.length;d++)b=a[d],!c&&("span"==b.getName()&&b.hasAttribute("dir")&&b.hasAttribute("lang"))&&(c=b);return c}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/lineutils/plugin.js b/www/lib/ckeditor/plugins/lineutils/plugin.js new file mode 100644 index 00000000..aa93527f --- /dev/null +++ b/www/lib/ckeditor/plugins/lineutils/plugin.js @@ -0,0 +1,21 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function k(a,d){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},d,!0);this.frame=this.win.getFrame();this.inline=this.editable.isInline();this.target=this[this.inline?"editable":"doc"]}function l(a,d){CKEDITOR.tools.extend(this,d,{editor:a},!0)}function m(a,d){var b=a.editable();CKEDITOR.tools.extend(this,{editor:a,editable:b,doc:a.document,win:a.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},d,!0);this.hidden= +{};this.visible={};this.inline=b.isInline();this.inline||(this.frame=this.win.getFrame());this.queryViewport();var c=CKEDITOR.tools.bind(this.queryViewport,this),e=CKEDITOR.tools.bind(this.hideVisible,this),g=CKEDITOR.tools.bind(this.removeAll,this);b.attachListener(this.winTop,"resize",c);b.attachListener(this.winTop,"scroll",c);b.attachListener(this.winTop,"resize",e);b.attachListener(this.win,"scroll",e);b.attachListener(this.inline?b:this.frame,"mouseout",function(a){var c=a.data.$.clientX,a= +a.data.$.clientY;this.queryViewport();(c<=this.rect.left||c>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(c<=0||c>=this.winTopPane.width||a<=0||a>=this.winTopPane.height)&&this.hideVisible()},this);b.attachListener(a,"resize",c);b.attachListener(a,"mode",g);a.on("destroy",g);this.lineTpl=(new CKEDITOR.template(p)).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({}, +n,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},n,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function i(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&!(o[a.getComputedStyle("float")]||o[a.getAttribute("align")])&&!r[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1; +CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;k.prototype={start:function(a){var d=this,b=this.editor,c=this.doc,e,g,f,h=CKEDITOR.tools.eventsBuffer(50,function(){b.readOnly||"wysiwyg"!=b.mode||(d.relations={},e=new CKEDITOR.dom.element(c.$.elementFromPoint(g,f)),d.traverseSearch(e),isNaN(g+f)||d.pixelSearch(e,g,f),a&&a(d.relations,g,f))});this.listener=this.editable.attachListener(this.target,"mousemove",function(a){g=a.data.$.clientX;f=a.data.$.clientY;h.input()});this.editable.attachListener(this.inline? +this.editable:this.frame,"mouseout",function(){h.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(d){var b=this.editor.createRange();b.moveToPosition(this.relations[d.uid].element,a[d.type]);return b}}(),store:function(){function a(a,b,c){var e=a.getUniqueId(); +e in c?c[e].type|=b:c[e]={element:a,type:b}}return function(d,b){var c;if(b&CKEDITOR.LINEUTILS_AFTER&&i(c=d.getNext())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_AFTER;if(b&CKEDITOR.LINEUTILS_INSIDE&&i(c=d.getFirst())&&c.isVisible())a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_INSIDE;a(d,b,this.relations)}}(),traverseSearch:function(a){var d,b,c;do if(c=a.$["data-cke-expando"],!(c&&c in this.relations)){if(a.equals(this.editable))break; +if(i(a))for(d in this.lookups)(b=this.lookups[d](a))&&this.store(a,b)}while(!(a&&a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(a,c,e,g,f){for(var h=0,j;f(e);){e+=g;if(25==++h)break;if(j=this.doc.$.elementFromPoint(c,e))if(j==a)h=0;else if(d(a,j)&&(h=0,i(j=new CKEDITOR.dom.element(j))))return j}}var d=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,c){return a.contains(c)}:function(a,c){return!!(a.compareDocumentPosition(c)& +16)};return function(b,c,d){var g=this.win.getViewPaneSize().height,f=a.call(this,b.$,c,d,-1,function(a){return 0<a}),c=a.call(this,b.$,c,d,1,function(a){return a<g});if(f)for(this.traverseSearch(f);!f.getParent().equals(b);)f=f.getParent();if(c)for(this.traverseSearch(c);!c.getParent().equals(b);)c=c.getParent();for(;f||c;){f&&(f=f.getNext(i));if(!f||f.equals(c))break;this.traverseSearch(f);c&&(c=c.getPrevious(i));if(!c||c.equals(f))break;this.traverseSearch(c)}}}(),greedySearch:function(){this.relations= +{};for(var a=this.editable.getElementsByTag("*"),d=0,b,c,e;b=a.getItem(d++);)if(!b.equals(this.editable)&&(b.hasAttribute("contenteditable")||!b.isReadOnly())&&i(b)&&b.isVisible())for(e in this.lookups)(c=this.lookups[e](b))&&this.store(b,c);return this.relations}};l.prototype={locate:function(){function a(a,b){var d=a.element[b===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return d&&i(d)?(a.siblingRect=d.getClientRect(),b==CKEDITOR.LINEUTILS_BEFORE?(a.siblingRect.bottom+a.elementRect.top)/ +2:(a.elementRect.bottom+a.siblingRect.top)/2):b==CKEDITOR.LINEUTILS_BEFORE?a.elementRect.top:a.elementRect.bottom}var d,b;return function(c){this.locations={};for(b in c)d=c[b],d.elementRect=d.element.getClientRect(),d.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(b,CKEDITOR.LINEUTILS_BEFORE,a(d,CKEDITOR.LINEUTILS_BEFORE)),d.type&CKEDITOR.LINEUTILS_AFTER&&this.store(b,CKEDITOR.LINEUTILS_AFTER,a(d,CKEDITOR.LINEUTILS_AFTER)),d.type&CKEDITOR.LINEUTILS_INSIDE&&this.store(b,CKEDITOR.LINEUTILS_INSIDE,(d.elementRect.top+ +d.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,d,b,c,e,g;return function(f,h){a=this.locations;d=[];for(c in a)for(e in a[c])if(b=Math.abs(f-a[c][e]),d.length){for(g=0;g<d.length;g++)if(b<d[g].dist){d.splice(g,0,{uid:+c,type:e,dist:b});break}g==d.length&&d.push({uid:+c,type:e,dist:b})}else d.push({uid:+c,type:e,dist:b});return"undefined"!=typeof h?d.slice(0,h):d}}(),store:function(a,d,b){this.locations[a]||(this.locations[a]={});this.locations[a][d]=b}};var n={display:"block", +width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},q={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999},p='<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}"><span style="{tipLeftStyle}"> </span><span style="{tipRightStyle}"> </span></div>';m.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(), +delete this.visible[a]},hideLine:function(a){var d=a.getUniqueId();a.hide();this.hidden[d]=a;delete this.visible[d]},showLine:function(a){var d=a.getUniqueId();a.show();this.visible[d]=a;delete this.hidden[d]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,d){var b,c,e;if(b=this.getStyle(a.uid,a.type)){for(e in this.visible)if(this.visible[e].getCustomData("hash")!==this.hash){c=this.visible[e];break}if(!c)for(e in this.hidden)if(this.hidden[e].getCustomData("hash")!== +this.hash){this.showLine(c=this.hidden[e]);break}c||this.showLine(c=this.addLine());c.setCustomData("hash",this.hash);this.visible[c.getUniqueId()]=c;c.setStyles(b);d&&d(c)}},getStyle:function(a,d){var b=this.relations[a],c=this.locations[a][d],e={};e.width=b.siblingRect?Math.max(b.siblingRect.width,b.elementRect.width):b.elementRect.width;e.top=this.inline?c+this.winTopScroll.y:this.rect.top+this.winTopScroll.y+c;if(e.top-this.winTopScroll.y<this.rect.top||e.top-this.winTopScroll.y>this.rect.bottom)return!1; +if(this.inline)e.left=b.elementRect.left;else if(0<b.elementRect.left?e.left=this.rect.left+b.elementRect.left:(e.width+=b.elementRect.left,e.left=this.rect.left),0<(b=e.left+e.width-(this.rect.left+this.winPane.width)))e.width-=b;e.left+=this.winTopScroll.x;for(var g in e)e[g]=CKEDITOR.tools.cssLength(e[g]);return e},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,d){this.relations=a;this.locations=d;this.hash=Math.random()}, +cleanup:function(){var a,d;for(d in this.visible)a=this.visible[d],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.inline?this.editable.getClientRect():this.frame.getClientRect()}};var o={left:1,right:1,center:1},r={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:k,locator:l,liner:m}})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/link/dialogs/anchor.js b/www/lib/ckeditor/plugins/link/dialogs/anchor.js new file mode 100644 index 00000000..e0192b27 --- /dev/null +++ b/www/lib/ckeditor/plugins/link/dialogs/anchor.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)): +this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c); +e&&(this._.selectedElement=e,this.setValueOf("info","txtName",e.data("cke-saved-name")||""),!d&&a.selectElement(e),b&&(this._.selectedElement=b));this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/link/dialogs/link.js b/www/lib/ckeditor/plugins/link/dialogs/link.js new file mode 100644 index 00000000..312fb7bc --- /dev/null +++ b/www/lib/ckeditor/plugins/link/dialogs/link.js @@ -0,0 +1,26 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.dialog.add("link",function(g){var l=CKEDITOR.plugins.link,m=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),k=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),k){case "frame":a.setLabel(g.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(g.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(k),a.getElement().hide()}}, +f=function(a){a.target&&this.setValue(a.target[this.id]||"")},h=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},i=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},j=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},c=g.lang.common,b=g.lang.link,d;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"], +[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],k=this.getValue(),e=a.definition.getContents("upload"),e=e&&e.hidden;"url"==k?(g.config.linkShowTargetTab&&a.showPage("target"),e||a.showPage("upload")):(a.hidePage("target"),e||a.hidePage("upload"));for(e=0;e<b.length;e++){var c=a.getContentElement("info",b[e]);c&&(c=c.getElement().getParent().getParent(),b[e]==k+"Options"?c.show():c.hide())}a.layout()},setup:function(a){this.setValue(a.type|| +"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:c.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:c.url,required:!0,onLoad:function(){this.allowOnChange= +!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),k=/^((javascript:)|[#\/\.\?])/i,c=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);c?(this.setValue(b.substr(c[0].length)),a.setValue(c[0].toLowerCase())):k.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")? +!0:!g.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(c.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button", +id:"browse",hidden:"true",filebrowser:"info:url",label:c.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(){d=l.getEditorAnchors(g);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b= +0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor|| +(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"</div>",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress", +label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return!a.getContentElement("info","linkType")||"email"!=a.getValueOf("info","linkType")?!0:CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this)},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject, +setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target, +elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:c.target,"default":"notSet",style:"width : 100%;",items:[[c.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[c.targetNew,"_blank"],[c.targetTop,"_top"],[c.targetSelf,"_self"],[c.targetParent,"_parent"]],onChange:m,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");m.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName", +label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/\W/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:f,commit:i},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:f,commit:i}]},{type:"hbox", +children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:f,commit:i},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:f,commit:i},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:f,commit:i}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:f,commit:i},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:f,commit:i}]},{type:"hbox", +children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:c.width,id:"width",setup:f,commit:i},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:f,commit:i}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:c.height,id:"height",setup:f,commit:i},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:f,commit:i}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0, +filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:c.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:c.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:h,commit:j},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir, +"default":"",style:"width:110px",items:[[c.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:h,commit:j},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:h,commit:j}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:h,commit:j},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:h,commit:j},{type:"text", +label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:h,commit:j}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:h,commit:j},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)", +"default":"",id:"advCSSClasses",setup:h,commit:j},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:h,commit:j}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:h,commit:j},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(g.lang.common.invalidInlineStyle),setup:h,commit:j}]}]}]}],onShow:function(){var a= +this.getParentEditor(),b=a.getSelection(),c=null;(c=l.getSelectedLink(a))&&c.hasAttribute("href")?b.getSelectedElement()||b.selectElement(c):c=null;a=l.parseLinkAttributes(a,c);this._.selectedElement=c;this.setupContent(a)},onOk:function(){var a={};this.commitContent(a);var b=g.getSelection(),c=l.getLinkAttributes(g,a);if(this._.selectedElement){var e=this._.selectedElement,d=e.data("cke-saved-href"),f=e.getHtml();e.setAttributes(c.set);e.removeAttributes(c.removed);if(d==f||"email"==a.type&&-1!= +f.indexOf("@"))e.setHtml("email"==a.type?a.email.address:c.set["data-cke-saved-href"]),b.selectElement(e);delete this._.selectedElement}else b=b.getRanges()[0],b.collapsed&&(a=new CKEDITOR.dom.text("email"==a.type?a.email.address:c.set["data-cke-saved-href"],g.document),b.insertNode(a),b.selectNodeContents(a)),c=new CKEDITOR.style({element:"a",attributes:c.set}),c.type=CKEDITOR.STYLE_INLINE,c.applyToRange(b,g),b.select()},onLoad:function(){g.config.linkShowAdvancedTab||this.hidePage("advanced");g.config.linkShowTargetTab|| +this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/link/images/anchor.png b/www/lib/ckeditor/plugins/link/images/anchor.png new file mode 100644 index 00000000..6d861a0e Binary files /dev/null and b/www/lib/ckeditor/plugins/link/images/anchor.png differ diff --git a/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png b/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png new file mode 100644 index 00000000..f5048430 Binary files /dev/null and b/www/lib/ckeditor/plugins/link/images/hidpi/anchor.png differ diff --git a/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js b/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js new file mode 100644 index 00000000..2b130e71 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/dialogs/liststyle.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){this.setValue(a.getStyle("list-style-type")|| +h[a.getAttribute("type")]||a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.commitContent(a)}};if("numberedListStyle"==e){var g=[[b.notset,""],[b.lowerRoman,"lower-roman"],[b.upperRoman,"upper-roman"],[b.lowerAlpha,"lower-alpha"],[b.upperAlpha,"upper-alpha"], +[b.decimal,"decimal"]];(!CKEDITOR.env.ie||7<CKEDITOR.env.version)&&g.concat([[b.armenian,"armenian"],[b.decimalLeadingZero,"decimal-leading-zero"],[b.georgian,"georgian"],[b.lowerGreek,"lower-greek"]]);return{title:b.numberedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"hbox",widths:["25%","75%"],children:[{label:b.start,type:"text",id:"start",validate:CKEDITOR.dialog.validate.integer(b.validateStartNumber),setup:function(a){this.setValue(a.getFirst(f).getAttribute("value")|| +a.getAttribute("start")||1)},commit:function(a){var b=a.getFirst(f),c=b.getAttribute("value")||a.getAttribute("start")||1;a.getFirst(f).removeAttribute("value");var d=parseInt(this.getValue(),10);isNaN(d)?a.removeAttribute("start"):a.setAttribute("start",d);a=b;b=c;for(d=isNaN(d)?1:d;(a=a.getNext(f))&&b++;)a.getAttribute("value")==b&&a.setAttribute("value",d+b-c)}},{type:"select",label:b.type,id:"type",style:"width: 100%;",items:g,setup:function(a){this.setValue(a.getStyle("list-style-type")||h[a.getAttribute("type")]|| +a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.commitContent(a)}}}}var f=function(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")},h={a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman",1:"decimal",disc:"disc",circle:"circle",square:"square"}; +CKEDITOR.dialog.add("numberedListStyle",function(c){return e(c,"numberedListStyle")});CKEDITOR.dialog.add("bulletedListStyle",function(c){return e(c,"bulletedListStyle")})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/af.js b/www/lib/ckeditor/plugins/liststyle/lang/af.js new file mode 100644 index 00000000..972e936b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/af.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","af",{armenian:"Armeense nommering",bulletedTitle:"Eienskappe van ongenommerde lys",circle:"Sirkel",decimal:"Desimale syfers (1, 2, 3, ens.)",decimalLeadingZero:"Desimale syfers met voorloopnul (01, 02, 03, ens.)",disc:"Skyf",georgian:"Georgiese nommering (an, ban, gan, ens.)",lowerAlpha:"Kleinletters (a, b, c, d, e, ens.)",lowerGreek:"Griekse kleinletters (alpha, beta, gamma, ens.)",lowerRoman:"Romeinse kleinletters (i, ii, iii, iv, v, ens.)",none:"Geen",notset:"<nie ingestel nie>", +numberedTitle:"Eienskappe van genommerde lys",square:"Vierkant",start:"Begin",type:"Tipe",upperAlpha:"Hoofletters (A, B, C, D, E, ens.)",upperRoman:"Romeinse hoofletters (I, II, III, IV, V, ens.)",validateStartNumber:"Beginnommer van lys moet 'n heelgetal wees."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ar.js b/www/lib/ckeditor/plugins/liststyle/lang/ar.js new file mode 100644 index 00000000..72b9f52a --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ar.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ar",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/bg.js b/www/lib/ckeditor/plugins/liststyle/lang/bg.js new file mode 100644 index 00000000..5cc312a2 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/bg.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bg",{armenian:"Арменско номериране",bulletedTitle:"Bulleted List Properties",circle:"Кръг",decimal:"Числа (1, 2, 3 и др.)",decimalLeadingZero:"Числа с водеща нула (01, 02, 03 и т.н.)",disc:"Диск",georgian:"Грузинско номериране (an, ban, gan, и т.н.)",lowerAlpha:"Малки букви (а, б, в, г, д и т.н.)",lowerGreek:"Малки гръцки букви (алфа, бета, гама и т.н.)",lowerRoman:"Малки римски числа (i, ii, iii, iv, v и т.н.)",none:"Няма",notset:"<не е указано>",numberedTitle:"Numbered List Properties", +square:"Квадрат",start:"Старт",type:"Тип",upperAlpha:"Големи букви (А, Б, В, Г, Д и т.н.)",upperRoman:"Големи римски числа (I, II, III, IV, V и т.н.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/bn.js b/www/lib/ckeditor/plugins/liststyle/lang/bn.js new file mode 100644 index 00000000..d002bafc --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/bn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/bs.js b/www/lib/ckeditor/plugins/liststyle/lang/bs.js new file mode 100644 index 00000000..af72e359 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/bs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","bs",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ca.js b/www/lib/ckeditor/plugins/liststyle/lang/ca.js new file mode 100644 index 00000000..42455a34 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/cs.js b/www/lib/ckeditor/plugins/liststyle/lang/cs.js new file mode 100644 index 00000000..d3abb5c8 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/cs.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cs",{armenian:"Arménské",bulletedTitle:"Vlastnosti odrážek",circle:"Kroužky",decimal:"Arabská čísla (1, 2, 3, atd.)",decimalLeadingZero:"Arabská čísla uvozená nulou (01, 02, 03, atd.)",disc:"Kolečka",georgian:"Gruzínské (an, ban, gan, atd.)",lowerAlpha:"Malá latinka (a, b, c, d, e, atd.)",lowerGreek:"Malé řecké (alpha, beta, gamma, atd.)",lowerRoman:"Malé římské (i, ii, iii, iv, v, atd.)",none:"Nic",notset:"<nenastaveno>",numberedTitle:"Vlastnosti číslování", +square:"Čtverce",start:"Počátek",type:"Typ",upperAlpha:"Velká latinka (A, B, C, D, E, atd.)",upperRoman:"Velké římské (I, II, III, IV, V, atd.)",validateStartNumber:"Číslování musí začínat celým číslem."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/cy.js b/www/lib/ckeditor/plugins/liststyle/lang/cy.js new file mode 100644 index 00000000..a5d6cc5f --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/cy.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","cy",{armenian:"Rhifo Armeneg",bulletedTitle:"Priodweddau Rhestr Fwled",circle:"Cylch",decimal:"Degol (1, 2, 3, ayyb.)",decimalLeadingZero:"Degol â sero arweiniol (01, 02, 03, ayyb.)",disc:"Disg",georgian:"Rhifau Sioraidd (an, ban, gan, ayyb.)",lowerAlpha:"Alffa Is (a, b, c, d, e, ayyb.)",lowerGreek:"Groeg Is (alpha, beta, gamma, ayyb.)",lowerRoman:"Rhufeinig Is (i, ii, iii, iv, v, ayyb.)",none:"Dim",notset:"<heb osod>",numberedTitle:"Priodweddau Rhestr Rifol", +square:"Sgwâr",start:"Dechrau",type:"Math",upperAlpha:"Alffa Uwch (A, B, C, D, E, ayyb.)",upperRoman:"Rhufeinig Uwch (I, II, III, IV, V, ayyb.)",validateStartNumber:"Rhaid bod y rhif cychwynnol yn gyfanrif."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/da.js b/www/lib/ckeditor/plugins/liststyle/lang/da.js new file mode 100644 index 00000000..d09c455e --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/da.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","da",{armenian:"Armensk nummering",bulletedTitle:"Værdier for cirkelpunktopstilling",circle:"Cirkel",decimal:"Decimal (1, 2, 3, osv.)",decimalLeadingZero:"Decimaler med 0 først (01, 02, 03, etc.)",disc:"Værdier for diskpunktopstilling",georgian:"Georgiansk nummering (an, ban, gan, etc.)",lowerAlpha:"Små alfabet (a, b, c, d, e, etc.)",lowerGreek:"Små græsk (alpha, beta, gamma, etc.)",lowerRoman:"Små romerske (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ikke defineret>", +numberedTitle:"Egenskaber for nummereret liste",square:"Firkant",start:"Start",type:"Type",upperAlpha:"Store alfabet (A, B, C, D, E, etc.)",upperRoman:"Store romerske (I, II, III, IV, V, etc.)",validateStartNumber:"Den nummererede liste skal starte med et rundt nummer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/de.js b/www/lib/ckeditor/plugins/liststyle/lang/de.js new file mode 100644 index 00000000..30038e82 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/de.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","de",{armenian:"Armenisch Nummerierung",bulletedTitle:"Listen-Eigenschaften",circle:"Ring",decimal:"Dezimal (1, 2, 3, etc.)",decimalLeadingZero:"Dezimal mit führende Null (01, 02, 03, etc.)",disc:"Kreis",georgian:"Georgisch Nummerierung (an, ban, gan, etc.)",lowerAlpha:"Klein alpha (a, b, c, d, e, etc.)",lowerGreek:"Klein griechisch (alpha, beta, gamma, etc.)",lowerRoman:"Klein römisch (i, ii, iii, iv, v, etc.)",none:"Keine",notset:"<nicht gesetzt>",numberedTitle:"Nummerierte Listen-Eigenschaften", +square:"Quadrat",start:"Start",type:"Typ",upperAlpha:"Groß alpha (A, B, C, D, E, etc.)",upperRoman:"Groß römisch (I, II, III, IV, V, etc.)",validateStartNumber:"List Startnummer muss eine ganze Zahl sein."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/el.js b/www/lib/ckeditor/plugins/liststyle/lang/el.js new file mode 100644 index 00000000..d077c8e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/el.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","el",{armenian:"Αρμενική αρίθμηση",bulletedTitle:"Ιδιότητες Λίστας Σημείων",circle:"Κύκλος",decimal:"Δεκαδική (1, 2, 3, κτλ)",decimalLeadingZero:"Δεκαδική με αρχικό μηδεν (01, 02, 03, κτλ)",disc:"Δίσκος",georgian:"Γεωργιανή αρίθμηση (ა, ბ, გ, κτλ)",lowerAlpha:"Μικρά Λατινικά (a, b, c, d, e, κτλ.)",lowerGreek:"Μικρά Ελληνικά (α, β, γ, κτλ)",lowerRoman:"Μικρά Ρωμαϊκά (i, ii, iii, iv, v, κτλ)",none:"Καμία",notset:"<δεν έχει οριστεί>",numberedTitle:"Ιδιότητες Αριθμημένης Λίστας ", +square:"Τετράγωνο",start:"Εκκίνηση",type:"Τύπος",upperAlpha:"Κεφαλαία Λατινικά (A, B, C, D, E, κτλ)",upperRoman:"Κεφαλαία Ρωμαϊκά (I, II, III, IV, V, κτλ)",validateStartNumber:"Ο αριθμός εκκίνησης της αρίθμησης πρέπει να είναι ακέραιος αριθμός."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/en-au.js b/www/lib/ckeditor/plugins/liststyle/lang/en-au.js new file mode 100644 index 00000000..41e685fa --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/en-au.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-au",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js b/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js new file mode 100644 index 00000000..633ecd9b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/en-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-ca",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js b/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js new file mode 100644 index 00000000..6f1ca2a5 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/en-gb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en-gb",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/en.js b/www/lib/ckeditor/plugins/liststyle/lang/en.js new file mode 100644 index 00000000..6bba5a29 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/en.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","en",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/eo.js b/www/lib/ckeditor/plugins/liststyle/lang/eo.js new file mode 100644 index 00000000..6ef97acc --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/eo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eo",{armenian:"Armena nombrado",bulletedTitle:"Atributoj de Bula Listo",circle:"Cirklo",decimal:"Dekumaj Nombroj (1, 2, 3, ktp.)",decimalLeadingZero:"Dekumaj Nombroj malantaŭ nulo (01, 02, 03, ktp.)",disc:"Disko",georgian:"Gruza nombrado (an, ban, gan, ktp.)",lowerAlpha:"Minusklaj Literoj (a, b, c, d, e, ktp.)",lowerGreek:"Grekaj Minusklaj Literoj (alpha, beta, gamma, ktp.)",lowerRoman:"Minusklaj Romanaj Nombroj (i, ii, iii, iv, v, ktp.)",none:"Neniu",notset:"<Defaŭlta>", +numberedTitle:"Atributoj de Numera Listo",square:"kvadrato",start:"Komenco",type:"Tipo",upperAlpha:"Majusklaj Literoj (A, B, C, D, E, ktp.)",upperRoman:"Majusklaj Romanaj Nombroj (I, II, III, IV, V, ktp.)",validateStartNumber:"La unua listero devas esti entjera nombro."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/es.js b/www/lib/ckeditor/plugins/liststyle/lang/es.js new file mode 100644 index 00000000..06ed01a5 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/es.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","es",{armenian:"Numeración armenia",bulletedTitle:"Propiedades de viñetas",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero inicial (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeración georgiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Letras griegas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ninguno",notset:"<sin establecer>", +numberedTitle:"Propiedades de lista numerada",square:"Cuadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en mayúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en mayúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"El Inicio debe ser un número entero."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/et.js b/www/lib/ckeditor/plugins/liststyle/lang/et.js new file mode 100644 index 00000000..9212207b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/et.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","et",{armenian:"Armeenia numbrid",bulletedTitle:"Punktloendi omadused",circle:"Ring",decimal:"Numbrid (1, 2, 3, jne)",decimalLeadingZero:"Numbrid algusnulliga (01, 02, 03, jne)",disc:"Täpp",georgian:"Gruusia numbrid (an, ban, gan, jne)",lowerAlpha:"Väiketähed (a, b, c, d, e, jne)",lowerGreek:"Kreeka väiketähed (alpha, beta, gamma, jne)",lowerRoman:"Väiksed rooma numbrid (i, ii, iii, iv, v, jne)",none:"Puudub",notset:"<pole määratud>",numberedTitle:"Numberloendi omadused", +square:"Ruut",start:"Algus",type:"Liik",upperAlpha:"Suurtähed (A, B, C, D, E, jne)",upperRoman:"Suured rooma numbrid (I, II, III, IV, V, jne)",validateStartNumber:"Loendi algusnumber peab olema täisarv."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/eu.js b/www/lib/ckeditor/plugins/liststyle/lang/eu.js new file mode 100644 index 00000000..dc0d63a7 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/eu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","eu",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/fa.js b/www/lib/ckeditor/plugins/liststyle/lang/fa.js new file mode 100644 index 00000000..5a588c04 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/fa.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fa",{armenian:"شماره‌گذاری ارمنی",bulletedTitle:"خصوصیات فهرست نقطه‌ای",circle:"دایره",decimal:"ده‌دهی (۱، ۲، ۳، ...)",decimalLeadingZero:"دهدهی همراه با صفر (۰۱، ۰۲، ۰۳، ...)",disc:"صفحه گرد",georgian:"شمارهگذاری گریگورین (an, ban, gan, etc.)",lowerAlpha:"پانویس الفبایی (a, b, c, d, e, etc.)",lowerGreek:"پانویس یونانی (alpha, beta, gamma, etc.)",lowerRoman:"پانویس رومی (i, ii, iii, iv, v, etc.)",none:"هیچ",notset:"<تنظیم نشده>",numberedTitle:"ویژگیهای فهرست شمارهدار", +square:"چهارگوش",start:"شروع",type:"نوع",upperAlpha:"بالانویس الفبایی (A, B, C, D, E, etc.)",upperRoman:"بالانویس رومی (I, II, III, IV, V, etc.)",validateStartNumber:"فهرست شماره شروع باید یک عدد صحیح باشد."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/fi.js b/www/lib/ckeditor/plugins/liststyle/lang/fi.js new file mode 100644 index 00000000..2e55ab99 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/fi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fi",{armenian:"Armeenialainen numerointi",bulletedTitle:"Numeroimattoman listan ominaisuudet",circle:"Ympyrä",decimal:"Desimaalit (1, 2, 3, jne.)",decimalLeadingZero:"Desimaalit, alussa nolla (01, 02, 03, jne.)",disc:"Levy",georgian:"Georgialainen numerointi (an, ban, gan, etc.)",lowerAlpha:"Pienet aakkoset (a, b, c, d, e, jne.)",lowerGreek:"Pienet kreikkalaiset (alpha, beta, gamma, jne.)",lowerRoman:"Pienet roomalaiset (i, ii, iii, iv, v, jne.)",none:"Ei mikään", +notset:"<ei asetettu>",numberedTitle:"Numeroidun listan ominaisuudet",square:"Neliö",start:"Alku",type:"Tyyppi",upperAlpha:"Isot aakkoset (A, B, C, D, E, jne.)",upperRoman:"Isot roomalaiset (I, II, III, IV, V, jne.)",validateStartNumber:"Listan ensimmäisen numeron tulee olla kokonaisluku."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/fo.js b/www/lib/ckeditor/plugins/liststyle/lang/fo.js new file mode 100644 index 00000000..c7861be7 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/fo.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fo",{armenian:"Armensk talskipan",bulletedTitle:"Eginleikar fyri lista við prikkum",circle:"Sirkul",decimal:"Vanlig tøl (1, 2, 3, etc.)",decimalLeadingZero:"Tøl við null frammanfyri (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgisk talskipan (an, ban, gan, osv.)",lowerAlpha:"Lítlir bókstavir (a, b, c, d, e, etc.)",lowerGreek:"Grikskt við lítlum (alpha, beta, gamma, etc.)",lowerRoman:"Lítil rómaratøl (i, ii, iii, iv, v, etc.)",none:"Einki",notset:"<ikki sett>", +numberedTitle:"Eginleikar fyri lista við tølum",square:"Fýrkantur",start:"Byrjan",type:"Slag",upperAlpha:"Stórir bókstavir (A, B, C, D, E, etc.)",upperRoman:"Stór rómaratøl (I, II, III, IV, V, etc.)",validateStartNumber:"Byrjunartalið fyri lista má vera eitt heiltal."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js b/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js new file mode 100644 index 00000000..1c2925a8 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/fr-ca.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr-ca",{armenian:"Numération arménienne",bulletedTitle:"Propriété de liste à puce",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal avec zéro (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscule (a, b, c, d, e, etc.)",lowerGreek:"Grecque minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Romain minuscule (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<non défini>", +numberedTitle:"Propriété de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscule (A, B, C, D, E, etc.)",upperRoman:"Romain Majuscule (I, II, III, IV, V, etc.)",validateStartNumber:"Le numéro de début de liste doit être un entier."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/fr.js b/www/lib/ckeditor/plugins/liststyle/lang/fr.js new file mode 100644 index 00000000..a787f638 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/fr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","fr",{armenian:"Numération arménienne",bulletedTitle:"Propriétés de la liste à puces",circle:"Cercle",decimal:"Décimal (1, 2, 3, etc.)",decimalLeadingZero:"Décimal précédé par un 0 (01, 02, 03, etc.)",disc:"Disque",georgian:"Numération géorgienne (an, ban, gan, etc.)",lowerAlpha:"Alphabétique minuscules (a, b, c, d, e, etc.)",lowerGreek:"Grec minuscule (alpha, beta, gamma, etc.)",lowerRoman:"Nombres romains minuscules (i, ii, iii, iv, v, etc.)",none:"Aucun",notset:"<Non défini>", +numberedTitle:"Propriétés de la liste numérotée",square:"Carré",start:"Début",type:"Type",upperAlpha:"Alphabétique majuscules (A, B, C, D, E, etc.)",upperRoman:"Nombres romains majuscules (I, II, III, IV, V, etc.)",validateStartNumber:"Le premier élément de la liste doit être un nombre entier."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/gl.js b/www/lib/ckeditor/plugins/liststyle/lang/gl.js new file mode 100644 index 00000000..f4e986fa --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/gl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gl",{armenian:"Numeración armenia",bulletedTitle:"Propiedades da lista viñeteada",circle:"Circulo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal con cero á esquerda (01, 02, 03, etc.)",disc:"Disc",georgian:"Numeración xeorxiana (an, ban, gan, etc.)",lowerAlpha:"Alfabeto en minúsculas (a, b, c, d, e, etc.)",lowerGreek:"Grego en minúsculas (alpha, beta, gamma, etc.)",lowerRoman:"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)",none:"Ningún", +notset:"<sen estabelecer>",numberedTitle:"Propiedades da lista numerada",square:"Cadrado",start:"Inicio",type:"Tipo",upperAlpha:"Alfabeto en maiúsculas (A, B, C, D, E, etc.)",upperRoman:"Números romanos en maiúsculas (I, II, III, IV, V, etc.)",validateStartNumber:"O número de inicio da lista debe ser un número enteiro."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/gu.js b/www/lib/ckeditor/plugins/liststyle/lang/gu.js new file mode 100644 index 00000000..48995fbc --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/gu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","gu",{armenian:"અરમેનિયન આંકડા પદ્ધતિ",bulletedTitle:"બુલેટેડ લીસ્ટના ગુણ",circle:"વર્તુળ",decimal:"આંકડા (1, 2, 3, etc.)",decimalLeadingZero:"સુન્ય આગળ આંકડા (01, 02, 03, etc.)",disc:"ડિસ્ક",georgian:"ગેઓર્ગિયન આંકડા પદ્ધતિ (an, ban, gan, etc.)",lowerAlpha:"આલ્ફા નાના (a, b, c, d, e, etc.)",lowerGreek:"ગ્રીક નાના (alpha, beta, gamma, etc.)",lowerRoman:"રોમન નાના (i, ii, iii, iv, v, etc.)",none:"કસુ ",notset:"<સેટ નથી>",numberedTitle:"આંકડાના લીસ્ટના ગુણ",square:"ચોરસ", +start:"શરુ કરવું",type:"પ્રકાર",upperAlpha:"આલ્ફા મોટા (A, B, C, D, E, etc.)",upperRoman:"રોમન મોટા (I, II, III, IV, V, etc.)",validateStartNumber:"લીસ્ટના સરુઆતનો આંકડો પુરો હોવો જોઈએ."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/he.js b/www/lib/ckeditor/plugins/liststyle/lang/he.js new file mode 100644 index 00000000..ba746516 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/he.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","he",{armenian:"ספרות ארמניות",bulletedTitle:"תכונות רשימת תבליטים",circle:"עיגול ריק",decimal:"ספרות (1, 2, 3 וכו')",decimalLeadingZero:"ספרות עם 0 בהתחלה (01, 02, 03 וכו')",disc:"עיגול מלא",georgian:"ספרות גיאורגיות (an, ban, gan וכו')",lowerAlpha:"אותיות אנגליות קטנות (a, b, c, d, e וכו')",lowerGreek:"אותיות יווניות קטנות (alpha, beta, gamma וכו')",lowerRoman:"ספירה רומית באותיות קטנות (i, ii, iii, iv, v וכו')",none:"ללא",notset:"<לא נקבע>",numberedTitle:"תכונות רשימה ממוספרת", +square:"ריבוע",start:"תחילת מספור",type:"סוג",upperAlpha:"אותיות אנגליות גדולות (A, B, C, D, E וכו')",upperRoman:"ספירה רומיות באותיות גדולות (I, II, III, IV, V וכו')",validateStartNumber:"שדה תחילת המספור חייב להכיל מספר שלם."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/hi.js b/www/lib/ckeditor/plugins/liststyle/lang/hi.js new file mode 100644 index 00000000..23e5affe --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/hi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hi",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/hr.js b/www/lib/ckeditor/plugins/liststyle/lang/hr.js new file mode 100644 index 00000000..66a47962 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/hr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hr",{armenian:"Armenijska numeracija",bulletedTitle:"Svojstva liste",circle:"Krug",decimal:"Decimalna numeracija (1, 2, 3, itd.)",decimalLeadingZero:"Decimalna s vodećom nulom (01, 02, 03, itd)",disc:"Disk",georgian:"Gruzijska numeracija(an, ban, gan, etc.)",lowerAlpha:"Znakovi mala slova (a, b, c, d, e, itd.)",lowerGreek:"Grčka numeracija mala slova (alfa, beta, gama, itd).",lowerRoman:"Romanska numeracija mala slova (i, ii, iii, iv, v, itd.)",none:"Bez",notset:"<nije određen>", +numberedTitle:"Svojstva brojčane liste",square:"Kvadrat",start:"Početak",type:"Vrsta",upperAlpha:"Znakovi velika slova (A, B, C, D, E, itd.)",upperRoman:"Romanska numeracija velika slova (I, II, III, IV, V, itd.)",validateStartNumber:"Početak brojčane liste mora biti cijeli broj."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/hu.js b/www/lib/ckeditor/plugins/liststyle/lang/hu.js new file mode 100644 index 00000000..d37d441f --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/hu.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","hu",{armenian:"Örmény számozás",bulletedTitle:"Pontozott lista tulajdonságai",circle:"Kör",decimal:"Arab számozás (1, 2, 3, stb.)",decimalLeadingZero:"Számozás bevezető nullákkal (01, 02, 03, stb.)",disc:"Korong",georgian:"Grúz számozás (an, ban, gan, stb.)",lowerAlpha:"Kisbetűs (a, b, c, d, e, stb.)",lowerGreek:"Görög (alpha, beta, gamma, stb.)",lowerRoman:"Római kisbetűs (i, ii, iii, iv, v, stb.)",none:"Nincs",notset:"<Nincs beállítva>",numberedTitle:"Sorszámozott lista tulajdonságai", +square:"Négyzet",start:"Kezdőszám",type:"Típus",upperAlpha:"Nagybetűs (A, B, C, D, E, stb.)",upperRoman:"Római nagybetűs (I, II, III, IV, V, stb.)",validateStartNumber:"A kezdőszám nem lehet tört érték."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/id.js b/www/lib/ckeditor/plugins/liststyle/lang/id.js new file mode 100644 index 00000000..65d48510 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/id.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","id",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Lingkaran",decimal:"Desimal (1, 2, 3, dst.)",decimalLeadingZero:"Desimal diawali angka nol (01, 02, 03, dst.)",disc:"Cakram",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Huruf Kecil (a, b, c, d, e, dst.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Angka Romawi (i, ii, iii, iv, v, dst.)",none:"Tidak ada",notset:"<tidak diatur>",numberedTitle:"Numbered List Properties", +square:"Persegi",start:"Mulai",type:"Tipe",upperAlpha:"Huruf Besar (A, B, C, D, E, dst.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/is.js b/www/lib/ckeditor/plugins/liststyle/lang/is.js new file mode 100644 index 00000000..3f8cd1a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/is.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","is",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/it.js b/www/lib/ckeditor/plugins/liststyle/lang/it.js new file mode 100644 index 00000000..674c5e1b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/it.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","it",{armenian:"Numerazione Armena",bulletedTitle:"Proprietà liste puntate",circle:"Cerchio",decimal:"Decimale (1, 2, 3, ecc.)",decimalLeadingZero:"Decimale preceduto da 0 (01, 02, 03, ecc.)",disc:"Disco",georgian:"Numerazione Georgiana (an, ban, gan, ecc.)",lowerAlpha:"Alfabetico minuscolo (a, b, c, d, e, ecc.)",lowerGreek:"Greco minuscolo (alpha, beta, gamma, ecc.)",lowerRoman:"Numerazione Romana minuscola (i, ii, iii, iv, v, ecc.)",none:"Nessuno",notset:"<non impostato>", +numberedTitle:"Proprietà liste numerate",square:"Quadrato",start:"Inizio",type:"Tipo",upperAlpha:"Alfabetico maiuscolo (A, B, C, D, E, ecc.)",upperRoman:"Numerazione Romana maiuscola (I, II, III, IV, V, ecc.)",validateStartNumber:"Il numero di inizio di una lista numerata deve essere un numero intero."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ja.js b/www/lib/ckeditor/plugins/liststyle/lang/ja.js new file mode 100644 index 00000000..934cc98c --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ja.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ja",{armenian:"アルメニア数字",bulletedTitle:"箇条書きのプロパティ",circle:"白丸",decimal:"数字 (1, 2, 3, etc.)",decimalLeadingZero:"0付きの数字 (01, 02, 03, etc.)",disc:"黒丸",georgian:"グルジア数字 (an, ban, gan, etc.)",lowerAlpha:"小文字アルファベット (a, b, c, d, e, etc.)",lowerGreek:"小文字ギリシャ文字 (alpha, beta, gamma, etc.)",lowerRoman:"小文字ローマ数字 (i, ii, iii, iv, v, etc.)",none:"なし",notset:"<なし>",numberedTitle:"番号付きリストのプロパティ",square:"四角",start:"開始",type:"種類",upperAlpha:"大文字アルファベット (A, B, C, D, E, etc.)", +upperRoman:"大文字ローマ数字 (I, II, III, IV, V, etc.)",validateStartNumber:"リストの開始番号は数値で入力してください。"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ka.js b/www/lib/ckeditor/plugins/liststyle/lang/ka.js new file mode 100644 index 00000000..f820e66a --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ka.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ka",{armenian:"სომხური გადანომრვა",bulletedTitle:"ღილებიანი სიის პარამეტრები",circle:"წრეწირი",decimal:"რიცხვებით (1, 2, 3, ..)",decimalLeadingZero:"ნულით დაწყებული რიცხვებით (01, 02, 03, ..)",disc:"წრე",georgian:"ქართული გადანომრვა (ან, ბან, გან, ..)",lowerAlpha:"პატარა ლათინური ასოებით (a, b, c, d, e, ..)",lowerGreek:"პატარა ბერძნული ასოებით (ალფა, ბეტა, გამა, ..)",lowerRoman:"რომაული გადანომრვცა პატარა ციფრებით (i, ii, iii, iv, v, ..)",none:"არაფერი",notset:"<არაფერი>", +numberedTitle:"გადანომრილი სიის პარამეტრები",square:"კვადრატი",start:"საწყისი",type:"ტიპი",upperAlpha:"დიდი ლათინური ასოებით (A, B, C, D, E, ..)",upperRoman:"რომაული გადანომრვა დიდი ციფრებით (I, II, III, IV, V, etc.)",validateStartNumber:"სიის საწყისი მთელი რიცხვი უნდა იყოს."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/km.js b/www/lib/ckeditor/plugins/liststyle/lang/km.js new file mode 100644 index 00000000..181efe3d --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/km.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","km",{armenian:"លេខ​អារមេនី",bulletedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​ចំណុច",circle:"រង្វង់​មូល",decimal:"លេខ​ទសភាគ (1, 2, 3, ...)",decimalLeadingZero:"ទសភាគ​ចាប់​ផ្ដើម​ពី​សូន្យ (01, 02, 03, ...)",disc:"ថាស",georgian:"លេខ​ចចជា (an, ban, gan, ...)",lowerAlpha:"ព្យញ្ជនៈ​តូច (a, b, c, d, e, ...)",lowerGreek:"លេខ​ក្រិក​តូច (alpha, beta, gamma, ...)",lowerRoman:"លេខ​រ៉ូម៉ាំង​តូច (i, ii, iii, iv, v, ...)",none:"គ្មាន",notset:"<not set>",numberedTitle:"លក្ខណៈ​សម្បត្តិ​បញ្ជី​ជា​លេខ", +square:"ការេ",start:"ចាប់​ផ្ដើម",type:"ប្រភេទ",upperAlpha:"អក្សរ​ធំ (A, B, C, D, E, ...)",upperRoman:"លេខ​រ៉ូម៉ាំង​ធំ (I, II, III, IV, V, ...)",validateStartNumber:"លេខ​ចាប់​ផ្ដើម​បញ្ជី ត្រូវ​តែ​ជា​តួ​លេខ​ពិត​ប្រាកដ។"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ko.js b/www/lib/ckeditor/plugins/liststyle/lang/ko.js new file mode 100644 index 00000000..1be0697f --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ko.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ko",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ku.js b/www/lib/ckeditor/plugins/liststyle/lang/ku.js new file mode 100644 index 00000000..ccb7e195 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ku.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ku",{armenian:"ئاراستەی ژمارەی ئەرمەنی",bulletedTitle:"خاسیەتی لیستی خاڵی",circle:"بازنه",decimal:"ژمارە (1, 2, 3, وە هیتر.)",decimalLeadingZero:"ژمارە سفڕی لەپێشەوه (01, 02, 03, وە هیتر.)",disc:"پەپکە",georgian:"ئاراستەی ژمارەی جۆڕجی (an, ban, gan, وە هیتر.)",lowerAlpha:"ئەلفابێی بچووك (a, b, c, d, e, وە هیتر.)",lowerGreek:"یۆنانی بچووك (alpha, beta, gamma, وە هیتر.)",lowerRoman:"ژمارەی ڕۆمی بچووك (i, ii, iii, iv, v, وە هیتر.)",none:"هیچ",notset:"<دانەندراوه>", +numberedTitle:"خاسیەتی لیستی ژمارەیی",square:"چووراگۆشە",start:"دەستپێکردن",type:"جۆر",upperAlpha:"ئەلفابێی گەوره (A, B, C, D, E, وە هیتر.)",upperRoman:"ژمارەی ڕۆمی گەوره (I, II, III, IV, V, وە هیتر.)",validateStartNumber:"دەستپێکەری لیستی ژمارەیی دەبێت تەنها ژمارە بێت."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/lt.js b/www/lib/ckeditor/plugins/liststyle/lang/lt.js new file mode 100644 index 00000000..c563c96d --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/lt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lt",{armenian:"Armėniški skaitmenys",bulletedTitle:"Ženklelinio sąrašo nustatymai",circle:"Apskritimas",decimal:"Dešimtainis (1, 2, 3, t.t)",decimalLeadingZero:"Dešimtainis su nuliu priekyje (01, 02, 03, t.t)",disc:"Diskas",georgian:"Gruziniški skaitmenys (an, ban, gan, t.t)",lowerAlpha:"Mažosios Alpha (a, b, c, d, e, t.t)",lowerGreek:"Mažosios Graikų (alpha, beta, gamma, t.t)",lowerRoman:"Mažosios Romėnų (i, ii, iii, iv, v, t.t)",none:"Niekas",notset:"<nenurodytas>", +numberedTitle:"Skaitmeninio sąrašo nustatymai",square:"Kvadratas",start:"Pradžia",type:"Rūšis",upperAlpha:"Didžiosios Alpha (A, B, C, D, E, t.t)",upperRoman:"Didžiosios Romėnų (I, II, III, IV, V, t.t)",validateStartNumber:"Sąrašo pradžios skaitmuo turi būti sveikas skaičius."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/lv.js b/www/lib/ckeditor/plugins/liststyle/lang/lv.js new file mode 100644 index 00000000..94c41888 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/lv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","lv",{armenian:"Armēņu skaitļi",bulletedTitle:"Vienkārša saraksta uzstādījumi",circle:"Aplis",decimal:"Decimālie (1, 2, 3, utt)",decimalLeadingZero:"Decimālie ar nulli (01, 02, 03, utt)",disc:"Disks",georgian:"Gruzīņu skaitļi (an, ban, gan, utt)",lowerAlpha:"Mazie alfabēta (a, b, c, d, e, utt)",lowerGreek:"Mazie grieķu (alfa, beta, gamma, utt)",lowerRoman:"Mazie romāņu (i, ii, iii, iv, v, utt)",none:"Nekas",notset:"<nav norādīts>",numberedTitle:"Numurēta saraksta uzstādījumi", +square:"Kvadrāts",start:"Sākt",type:"Tips",upperAlpha:"Lielie alfabēta (A, B, C, D, E, utt)",upperRoman:"Lielie romāņu (I, II, III, IV, V, utt)",validateStartNumber:"Saraksta sākuma numuram jābūt veselam skaitlim"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/mk.js b/www/lib/ckeditor/plugins/liststyle/lang/mk.js new file mode 100644 index 00000000..36966219 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/mk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mk",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/mn.js b/www/lib/ckeditor/plugins/liststyle/lang/mn.js new file mode 100644 index 00000000..895d754e --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/mn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","mn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Төрөл",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ms.js b/www/lib/ckeditor/plugins/liststyle/lang/ms.js new file mode 100644 index 00000000..ffe91b8b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ms.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ms",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/nb.js b/www/lib/ckeditor/plugins/liststyle/lang/nb.js new file mode 100644 index 00000000..cd9b38db --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/nb.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nb",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/nl.js b/www/lib/ckeditor/plugins/liststyle/lang/nl.js new file mode 100644 index 00000000..4fc950ab --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/nl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","nl",{armenian:"Armeense nummering",bulletedTitle:"Eigenschappen lijst met opsommingstekens",circle:"Cirkel",decimal:"Cijfers (1, 2, 3, etc.)",decimalLeadingZero:"Cijfers beginnen met nul (01, 02, 03, etc.)",disc:"Schijf",georgian:"Georgische nummering (an, ban, gan, etc.)",lowerAlpha:"Kleine letters (a, b, c, d, e, etc.)",lowerGreek:"Grieks kleine letters (alpha, beta, gamma, etc.)",lowerRoman:"Romeins kleine letters (i, ii, iii, iv, v, etc.)",none:"Geen",notset:"<niet gezet>", +numberedTitle:"Eigenschappen genummerde lijst",square:"Vierkant",start:"Start",type:"Type",upperAlpha:"Hoofdletters (A, B, C, D, E, etc.)",upperRoman:"Romeinse hoofdletters (I, II, III, IV, V, etc.)",validateStartNumber:"Startnummer van de lijst moet een heel nummer zijn."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/no.js b/www/lib/ckeditor/plugins/liststyle/lang/no.js new file mode 100644 index 00000000..f753bd6b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/no.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","no",{armenian:"Armensk nummerering",bulletedTitle:"Egenskaper for punktmerket liste",circle:"Sirkel",decimal:"Tall (1, 2, 3, osv.)",decimalLeadingZero:"Tall, med førstesiffer null (01, 02, 03, osv.)",disc:"Disk",georgian:"Georgisk nummerering (an, ban, gan, osv.)",lowerAlpha:"Alfabetisk, små (a, b, c, d, e, osv.)",lowerGreek:"Gresk, små (alpha, beta, gamma, osv.)",lowerRoman:"Romertall, små (i, ii, iii, iv, v, osv.)",none:"Ingen",notset:"<ikke satt>",numberedTitle:"Egenskaper for nummerert liste", +square:"Firkant",start:"Start",type:"Type",upperAlpha:"Alfabetisk, store (A, B, C, D, E, osv.)",upperRoman:"Romertall, store (I, II, III, IV, V, osv.)",validateStartNumber:"Starten på listen må være et heltall."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/pl.js b/www/lib/ckeditor/plugins/liststyle/lang/pl.js new file mode 100644 index 00000000..85da585d --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/pl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pl",{armenian:"Numerowanie armeńskie",bulletedTitle:"Właściwości list wypunktowanych",circle:"Koło",decimal:"Liczby (1, 2, 3 itd.)",decimalLeadingZero:"Liczby z początkowym zerem (01, 02, 03 itd.)",disc:"Okrąg",georgian:"Numerowanie gruzińskie (an, ban, gan itd.)",lowerAlpha:"Małe litery (a, b, c, d, e itd.)",lowerGreek:"Małe litery greckie (alpha, beta, gamma itd.)",lowerRoman:"Małe cyfry rzymskie (i, ii, iii, iv, v itd.)",none:"Brak",notset:"<nie ustawiono>", +numberedTitle:"Właściwości list numerowanych",square:"Kwadrat",start:"Początek",type:"Typ punktora",upperAlpha:"Duże litery (A, B, C, D, E itd.)",upperRoman:"Duże cyfry rzymskie (I, II, III, IV, V itd.)",validateStartNumber:"Listę musi rozpoczynać liczba całkowita."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js b/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js new file mode 100644 index 00000000..190c8937 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/pt-br.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt-br",{armenian:"Numeração Armêna",bulletedTitle:"Propriedades da Lista sem Numeros",circle:"Círculo",decimal:"Numeração Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Numeração Decimal com zeros (01, 02, 03, etc.)",disc:"Disco",georgian:"Numeração da Geórgia (an, ban, gan, etc.)",lowerAlpha:"Numeração Alfabética minúscula (a, b, c, d, e, etc.)",lowerGreek:"Numeração Grega minúscula (alpha, beta, gamma, etc.)",lowerRoman:"Numeração Romana minúscula (i, ii, iii, iv, v, etc.)", +none:"Nenhum",notset:"<não definido>",numberedTitle:"Propriedades da Lista Numerada",square:"Quadrado",start:"Início",type:"Tipo",upperAlpha:"Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)",upperRoman:"Numeração Romana maiúscula (I, II, III, IV, V, etc.)",validateStartNumber:"O número inicial da lista deve ser um número inteiro."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/pt.js b/www/lib/ckeditor/plugins/liststyle/lang/pt.js new file mode 100644 index 00000000..2b0f85a2 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/pt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","pt",{armenian:"Numeração armênia",bulletedTitle:"Bulleted List Properties",circle:"Círculo",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disco",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Nenhum",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Quadrado",start:"Iniciar",type:"Tipo",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ro.js b/www/lib/ckeditor/plugins/liststyle/lang/ro.js new file mode 100644 index 00000000..d76923bf --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ro.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ro",{armenian:"Numerotare armeniană",bulletedTitle:"Proprietățile listei cu simboluri",circle:"Cerc",decimal:"Decimale (1, 2, 3, etc.)",decimalLeadingZero:"Decimale cu zero în față (01, 02, 03, etc.)",disc:"Disc",georgian:"Numerotare georgiană (an, ban, gan, etc.)",lowerAlpha:"Litere mici (a, b, c, d, e, etc.)",lowerGreek:"Litere grecești mici (alpha, beta, gamma, etc.)",lowerRoman:"Cifre romane mici (i, ii, iii, iv, v, etc.)",none:"Nimic",notset:"<nesetat>", +numberedTitle:"Proprietățile listei numerotate",square:"Pătrat",start:"Start",type:"Tip",upperAlpha:"Litere mari (A, B, C, D, E, etc.)",upperRoman:"Cifre romane mari (I, II, III, IV, V, etc.)",validateStartNumber:"Începutul listei trebuie să fie un număr întreg."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ru.js b/www/lib/ckeditor/plugins/liststyle/lang/ru.js new file mode 100644 index 00000000..421fd606 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ru.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ru",{armenian:"Армянская нумерация",bulletedTitle:"Свойства маркированного списка",circle:"Круг",decimal:"Десятичные (1, 2, 3, и т.д.)",decimalLeadingZero:"Десятичные с ведущим нулём (01, 02, 03, и т.д.)",disc:"Окружность",georgian:"Грузинская нумерация (ани, бани, гани, и т.д.)",lowerAlpha:"Строчные латинские (a, b, c, d, e, и т.д.)",lowerGreek:"Строчные греческие (альфа, бета, гамма, и т.д.)",lowerRoman:"Строчные римские (i, ii, iii, iv, v, и т.д.)",none:"Нет", +notset:"<не указано>",numberedTitle:"Свойства нумерованного списка",square:"Квадрат",start:"Начиная с",type:"Тип",upperAlpha:"Заглавные латинские (A, B, C, D, E, и т.д.)",upperRoman:"Заглавные римские (I, II, III, IV, V, и т.д.)",validateStartNumber:"Первый номер списка должен быть задан обычным целым числом."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/si.js b/www/lib/ckeditor/plugins/liststyle/lang/si.js new file mode 100644 index 00000000..c2253a52 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/si.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","si",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"කිසිවක්ම නොවේ",notset:"<යොදා >",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"වර්ගය",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/sk.js b/www/lib/ckeditor/plugins/liststyle/lang/sk.js new file mode 100644 index 00000000..817dab04 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/sk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sk",{armenian:"Arménske číslovanie",bulletedTitle:"Vlastnosti odrážkového zoznamu",circle:"Kruh",decimal:"Číselné (1, 2, 3, atď.)",decimalLeadingZero:"Číselné s nulou (01, 02, 03, atď.)",disc:"Disk",georgian:"Gregoriánske číslovanie (an, ban, gan, atď.)",lowerAlpha:"Malé latinské (a, b, c, d, e, atď.)",lowerGreek:"Malé grécke (alfa, beta, gama, atď.)",lowerRoman:"Malé rímske (i, ii, iii, iv, v, atď.)",none:"Nič",notset:"<nenastavené>",numberedTitle:"Vlastnosti číselného zoznamu", +square:"Štvorec",start:"Začiatok",type:"Typ",upperAlpha:"Veľké latinské (A, B, C, D, E, atď.)",upperRoman:"Veľké rímske (I, II, III, IV, V, atď.)",validateStartNumber:"Začiatočné číslo číselného zoznamu musí byť celé číslo."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/sl.js b/www/lib/ckeditor/plugins/liststyle/lang/sl.js new file mode 100644 index 00000000..f147fe2e --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/sl.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sl",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/sq.js b/www/lib/ckeditor/plugins/liststyle/lang/sq.js new file mode 100644 index 00000000..586b7d40 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/sq.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sq",{armenian:"Numërim armenian",bulletedTitle:"Karakteristikat e Listës me Pulla",circle:"Rreth",decimal:"Decimal (1, 2, 3, etj.)",decimalLeadingZero:"Decimal me zerro udhëheqëse (01, 02, 03, etj.)",disc:"Disk",georgian:"Numërim gjeorgjian (an, ban, gan, etj.)",lowerAlpha:"Të vogla alfa (a, b, c, d, e, etj.)",lowerGreek:"Të vogla greke (alpha, beta, gamma, etj.)",lowerRoman:"Të vogla romake (i, ii, iii, iv, v, etj.)",none:"Asnjë",notset:"<e pazgjedhur>",numberedTitle:"Karakteristikat e Listës me Numra", +square:"Katror",start:"Fillimi",type:"LLoji",upperAlpha:"Të mëdha alfa (A, B, C, D, E, etj.)",upperRoman:"Të mëdha romake (I, II, III, IV, V, etj.)",validateStartNumber:"Numri i fillimit të listës duhet të është numër i plotë."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js b/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js new file mode 100644 index 00000000..df10d830 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/sr-latn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr-latn",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/sr.js b/www/lib/ckeditor/plugins/liststyle/lang/sr.js new file mode 100644 index 00000000..1864935a --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/sr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sr",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/sv.js b/www/lib/ckeditor/plugins/liststyle/lang/sv.js new file mode 100644 index 00000000..8a5f9392 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/sv.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","sv",{armenian:"Armenisk numrering",bulletedTitle:"Egenskaper för punktlista",circle:"Cirkel",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal nolla (01, 02, 03, etc.)",disc:"Disk",georgian:"Georgisk numrering (an, ban, gan, etc.)",lowerAlpha:"Alpha gemener (a, b, c, d, e, etc.)",lowerGreek:"Grekiska gemener (alpha, beta, gamma, etc.)",lowerRoman:"Romerska gemener (i, ii, iii, iv, v, etc.)",none:"Ingen",notset:"<ej angiven>",numberedTitle:"Egenskaper för punktlista", +square:"Fyrkant",start:"Start",type:"Typ",upperAlpha:"Alpha versaler (A, B, C, D, E, etc.)",upperRoman:"Romerska versaler (I, II, III, IV, V, etc.)",validateStartNumber:"Listans startnummer måste vara ett heltal."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/th.js b/www/lib/ckeditor/plugins/liststyle/lang/th.js new file mode 100644 index 00000000..7ffb3ebd --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/th.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","th",{armenian:"Armenian numbering",bulletedTitle:"Bulleted List Properties",circle:"Circle",decimal:"Decimal (1, 2, 3, etc.)",decimalLeadingZero:"Decimal leading zero (01, 02, 03, etc.)",disc:"Disc",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"None",notset:"<not set>",numberedTitle:"Numbered List Properties", +square:"Square",start:"Start",type:"Type",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/tr.js b/www/lib/ckeditor/plugins/liststyle/lang/tr.js new file mode 100644 index 00000000..a19f7c73 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/tr.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tr",{armenian:"Ermenice sayılandırma",bulletedTitle:"Simgeli Liste Özellikleri",circle:"Daire",decimal:"Ondalık (1, 2, 3, vs.)",decimalLeadingZero:"Başı sıfırlı ondalık (01, 02, 03, vs.)",disc:"Disk",georgian:"Gürcüce numaralandırma (an, ban, gan, vs.)",lowerAlpha:"Küçük Alpha (a, b, c, d, e, vs.)",lowerGreek:"Küçük Greek (alpha, beta, gamma, vs.)",lowerRoman:"Küçük Roman (i, ii, iii, iv, v, vs.)",none:"Yok",notset:"<ayarlanmamış>",numberedTitle:"Sayılandırılmış Liste Özellikleri", +square:"Kare",start:"Başla",type:"Tipi",upperAlpha:"Büyük Alpha (A, B, C, D, E, vs.)",upperRoman:"Büyük Roman (I, II, III, IV, V, vs.)",validateStartNumber:"Liste başlangıcı tam sayı olmalıdır."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/tt.js b/www/lib/ckeditor/plugins/liststyle/lang/tt.js new file mode 100644 index 00000000..07fadad3 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/tt.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","tt",{armenian:"Armenian numbering",bulletedTitle:"Маркерлы тезмә үзлекләре",circle:"Түгәрәк",decimal:"Унарлы (1, 2, 3, ...)",decimalLeadingZero:"Ноль белән башланган унарлы (01, 02, 03, ...)",disc:"Диск",georgian:"Georgian numbering (an, ban, gan, etc.)",lowerAlpha:"Lower Alpha (a, b, c, d, e, etc.)",lowerGreek:"Lower Greek (alpha, beta, gamma, etc.)",lowerRoman:"Lower Roman (i, ii, iii, iv, v, etc.)",none:"Һичбер",notset:"<билгеләнмәгән>",numberedTitle:"Numbered List Properties", +square:"Шакмак",start:"Башлау",type:"Төр",upperAlpha:"Upper Alpha (A, B, C, D, E, etc.)",upperRoman:"Upper Roman (I, II, III, IV, V, etc.)",validateStartNumber:"List start number must be a whole number."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/ug.js b/www/lib/ckeditor/plugins/liststyle/lang/ug.js new file mode 100644 index 00000000..d278f60d --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/ug.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","ug",{armenian:"قەدىمكى ئەرمىنىيە تەرتىپ نومۇرى شەكلى",bulletedTitle:"تۈر بەلگە تىزىم خاسلىقى",circle:"بوش چەمبەر",decimal:"سان (1, 2, 3 قاتارلىق)",decimalLeadingZero:"نۆلدىن باشلانغان سان بەلگە (01, 02, 03 قاتارلىق)",disc:"تولدۇرۇلغان چەمبەر",georgian:"قەدىمكى جورجىيە تەرتىپ نومۇرى شەكلى (an, ban, gan قاتارلىق)",lowerAlpha:"ئىنگلىزچە كىچىك ھەرپ (a, b, c, d, e قاتارلىق)",lowerGreek:"گرېكچە كىچىك ھەرپ (alpha, beta, gamma قاتارلىق)",lowerRoman:"كىچىك ھەرپلىك رىم رەقىمى (i, ii, iii, iv, v قاتارلىق)", +none:"بەلگە يوق",notset:"‹تەڭشەلمىگەن›",numberedTitle:"تەرتىپ نومۇر تىزىم خاسلىقى",square:"تولدۇرۇلغان تۆت چاسا",start:"باشلىنىش نومۇرى",type:"بەلگە تىپى",upperAlpha:"ئىنگلىزچە چوڭ ھەرپ (A, B, C, D, E قاتارلىق)",upperRoman:"چوڭ ھەرپلىك رىم رەقىمى (I, II, III, IV, V قاتارلىق)",validateStartNumber:"تىزىم باشلىنىش تەرتىپ نومۇرى چوقۇم پۈتۈن سان پىچىمىدا بولۇشى لازىم"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/uk.js b/www/lib/ckeditor/plugins/liststyle/lang/uk.js new file mode 100644 index 00000000..de577116 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/uk.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","uk",{armenian:"Вірменська нумерація",bulletedTitle:"Опції маркованого списку",circle:"Кільце",decimal:"Десяткові (1, 2, 3 і т.д.)",decimalLeadingZero:"Десяткові з нулем (01, 02, 03 і т.д.)",disc:"Кружечок",georgian:"Грузинська нумерація (an, ban, gan і т.д.)",lowerAlpha:"Малі лат. букви (a, b, c, d, e і т.д.)",lowerGreek:"Малі гр. букви (альфа, бета, гамма і т.д.)",lowerRoman:"Малі римські (i, ii, iii, iv, v і т.д.)",none:"Нема",notset:"<не вказано>",numberedTitle:"Опції нумерованого списку", +square:"Квадратик",start:"Почати з...",type:"Тип",upperAlpha:"Великі лат. букви (A, B, C, D, E і т.д.)",upperRoman:"Великі римські (I, II, III, IV, V і т.д.)",validateStartNumber:"Початковий номер списку повинен бути цілим числом."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/vi.js b/www/lib/ckeditor/plugins/liststyle/lang/vi.js new file mode 100644 index 00000000..bd56db2b --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/vi.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","vi",{armenian:"Số theo kiểu Armenian",bulletedTitle:"Thuộc tính danh sách không thứ tự",circle:"Khuyên tròn",decimal:"Kiểu số (1, 2, 3 ...)",decimalLeadingZero:"Kiểu số (01, 02, 03...)",disc:"Hình đĩa",georgian:"Số theo kiểu Georgian (an, ban, gan...)",lowerAlpha:"Kiểu abc thường (a, b, c, d, e...)",lowerGreek:"Kiểu Hy Lạp (alpha, beta, gamma...)",lowerRoman:"Số La Mã kiểu thường (i, ii, iii, iv, v...)",none:"Không gì cả",notset:"<không thiết lập>",numberedTitle:"Thuộc tính danh sách có thứ tự", +square:"Hình vuông",start:"Bắt đầu",type:"Kiểu loại",upperAlpha:"Kiểu ABC HOA (A, B, C, D, E...)",upperRoman:"Số La Mã kiểu HOA (I, II, III, IV, V...)",validateStartNumber:"Số bắt đầu danh sách phải là một số nguyên."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js b/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js new file mode 100644 index 00000000..a27132cf --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/zh-cn.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh-cn",{armenian:"传统的亚美尼亚编号方式",bulletedTitle:"项目列表属性",circle:"空心圆",decimal:"数字 (1, 2, 3, 等)",decimalLeadingZero:"0开头的数字标记(01, 02, 03, 等)",disc:"实心圆",georgian:"传统的乔治亚编号方式(an, ban, gan, 等)",lowerAlpha:"小写英文字母(a, b, c, d, e, 等)",lowerGreek:"小写希腊字母(alpha, beta, gamma, 等)",lowerRoman:"小写罗马数字(i, ii, iii, iv, v, 等)",none:"无标记",notset:"<没有设置>",numberedTitle:"编号列表属性",square:"实心方块",start:"开始序号",type:"标记类型",upperAlpha:"大写英文字母(A, B, C, D, E, 等)",upperRoman:"大写罗马数字(I, II, III, IV, V, 等)", +validateStartNumber:"列表开始序号必须为整数格式"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/lang/zh.js b/www/lib/ckeditor/plugins/liststyle/lang/zh.js new file mode 100644 index 00000000..566f075e --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/lang/zh.js @@ -0,0 +1,2 @@ +CKEDITOR.plugins.setLang("liststyle","zh",{armenian:"亞美尼亞數字",bulletedTitle:"項目符號清單屬性",circle:"圓圈",decimal:"小數點 (1, 2, 3, etc.)",decimalLeadingZero:"前綴 0 十位數字 (01, 02, 03, 等)",disc:"圓點",georgian:"喬治王時代數字 (an, ban, gan, 等)",lowerAlpha:"小寫字母 (a, b, c, d, e 等)",lowerGreek:"小寫希臘字母 (alpha, beta, gamma, 等)",lowerRoman:"小寫羅馬數字 (i, ii, iii, iv, v 等)",none:"無",notset:"<未設定>",numberedTitle:"編號清單屬性",square:"方塊",start:"開始",type:"類型",upperAlpha:"大寫字母 (A, B, C, D, E 等)",upperRoman:"大寫羅馬數字 (I, II, III, IV, V 等)", +validateStartNumber:"清單起始號碼須為一完整數字。"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/liststyle/plugin.js b/www/lib/ckeditor/plugins/liststyle/plugin.js new file mode 100644 index 00000000..22087218 --- /dev/null +++ b/www/lib/ckeditor/plugins/liststyle/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b); +CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list", +command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png b/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png new file mode 100644 index 00000000..4a8d2bfd Binary files /dev/null and b/www/lib/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png differ diff --git a/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png b/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png new file mode 100644 index 00000000..b981bb5c Binary files /dev/null and b/www/lib/ckeditor/plugins/magicline/images/hidpi/icon.png differ diff --git a/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png b/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png new file mode 100644 index 00000000..55b5b5f9 Binary files /dev/null and b/www/lib/ckeditor/plugins/magicline/images/icon-rtl.png differ diff --git a/www/lib/ckeditor/plugins/magicline/images/icon.png b/www/lib/ckeditor/plugins/magicline/images/icon.png new file mode 100644 index 00000000..e0634336 Binary files /dev/null and b/www/lib/ckeditor/plugins/magicline/images/icon.png differ diff --git a/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js b/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js new file mode 100644 index 00000000..25c3dff2 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/dialogs/mathjax.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("mathjax",function(d){var c,b=d.lang.mathjax;return{title:b.title,minWidth:350,minHeight:100,contents:[{id:"info",elements:[{id:"equation",type:"textarea",label:b.dialogInput,onLoad:function(){var a=this;if(!(CKEDITOR.env.ie&&8==CKEDITOR.env.version))this.getInputElement().on("keyup",function(){c.setValue("\\("+a.getInputElement().getValue()+"\\)")})},setup:function(a){this.setValue(CKEDITOR.plugins.mathjax.trim(a.data.math))},commit:function(a){a.setData("math","\\("+this.getValue()+ +"\\)")}},{id:"documentation",type:"html",html:'<div style="width:100%;text-align:right;margin:-8px 0 10px"><a class="cke_mathjax_doc" href="'+b.docUrl+'" target="_black" style="cursor:pointer;color:#00B2CE;text-decoration:underline">'+b.docLabel+"</a></div>"},!(CKEDITOR.env.ie&&8==CKEDITOR.env.version)&&{id:"preview",type:"html",html:'<div style="width:100%;text-align:center;"><iframe style="border:0;width:0;height:0;font-size:20px" scrolling="no" frameborder="0" allowTransparency="true" src="'+CKEDITOR.plugins.mathjax.fixSrc+ +'"></iframe></div>',onLoad:function(){var a=CKEDITOR.document.getById(this.domId).getChild(0);c=new CKEDITOR.plugins.mathjax.frameWrapper(a,d)},setup:function(a){c.setValue(a.data.math)}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png b/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png new file mode 100644 index 00000000..85b8e11d Binary files /dev/null and b/www/lib/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png differ diff --git a/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png b/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png new file mode 100644 index 00000000..d25081be Binary files /dev/null and b/www/lib/ckeditor/plugins/mathjax/icons/mathjax.png differ diff --git a/www/lib/ckeditor/plugins/mathjax/images/loader.gif b/www/lib/ckeditor/plugins/mathjax/images/loader.gif new file mode 100644 index 00000000..3ffb1811 Binary files /dev/null and b/www/lib/ckeditor/plugins/mathjax/images/loader.gif differ diff --git a/www/lib/ckeditor/plugins/mathjax/lang/ar.js b/www/lib/ckeditor/plugins/mathjax/lang/ar.js new file mode 100644 index 00000000..64212f69 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ar",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"تحميل",pathName:"math"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/ca.js b/www/lib/ckeditor/plugins/mathjax/lang/ca.js new file mode 100644 index 00000000..33a353dc --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ca",{title:"Matemàtiques a TeX",button:"Matemàtiques",dialogInput:"Escriu el TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentació TeX",loading:"carregant...",pathName:"matemàtiques"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/cs.js b/www/lib/ckeditor/plugins/mathjax/lang/cs.js new file mode 100644 index 00000000..e2e0b510 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cs",{title:"Matematika v TeXu",button:"Matematika",dialogInput:"Zde napište TeXový kód",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentace k TeXu",loading:"Nahrává se...",pathName:"Matematika"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/cy.js b/www/lib/ckeditor/plugins/mathjax/lang/cy.js new file mode 100644 index 00000000..bd919ba0 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","cy",{title:"Mathemateg mewn TeX",button:"Math",dialogInput:"Ysgrifennwch eich TeX yma",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dogfennaeth TeX",loading:"llwytho...",pathName:"math"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/de.js b/www/lib/ckeditor/plugins/mathjax/lang/de.js new file mode 100644 index 00000000..5cf71687 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","de",{title:"Mathematik in Tex",button:"Rechnung",dialogInput:"Schreiben Sie hier in Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tex Dokumentation",loading:"lädt...",pathName:"rechnen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/el.js b/www/lib/ckeditor/plugins/mathjax/lang/el.js new file mode 100644 index 00000000..affcd0e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","el",{title:"Μαθηματικά με τη γλώσσα TeX",button:"Μαθηματικά",dialogInput:"Γράψτε κώδικα TeX εδώ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Τεκμηρίωση TeX",loading:"γίνεται φόρτωση...",pathName:"μαθηματικά"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js b/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js new file mode 100644 index 00000000..d9f0cbde --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en-gb",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write you TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/en.js b/www/lib/ckeditor/plugins/mathjax/lang/en.js new file mode 100644 index 00000000..9e66c845 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","en",{title:"Mathematics in TeX",button:"Math",dialogInput:"Write your TeX here",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentation",loading:"loading...",pathName:"math"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/eo.js b/www/lib/ckeditor/plugins/mathjax/lang/eo.js new file mode 100644 index 00000000..4aa7cb49 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","eo",{title:"Matematiko en TeX",button:"Matematiko",dialogInput:"Skribu vian TeX tien",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentado",loading:"estas ŝarganta",pathName:"matematiko"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/es.js b/www/lib/ckeditor/plugins/mathjax/lang/es.js new file mode 100644 index 00000000..6ec9e4dc --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","es",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escribe tu TeX aquí",docUrl:"http://es.wikipedia.org/wiki/TeX",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/fa.js b/www/lib/ckeditor/plugins/mathjax/lang/fa.js new file mode 100644 index 00000000..d638a840 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fa",{title:"ریاضیات در تک",button:"ریاضی",dialogInput:"فرمول خود را اینجا بنویسید",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"مستندسازی فرمول نویسی",loading:"بارگیری",pathName:"ریاضی"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/fi.js b/www/lib/ckeditor/plugins/mathjax/lang/fi.js new file mode 100644 index 00000000..bd5140c1 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fi",{title:"Matematiikkaa TeX:llä",button:"Matematiikka",dialogInput:"Kirjoita TeX:iä tähän",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentaatio",loading:"lataa...",pathName:"matematiikka"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/fr.js b/www/lib/ckeditor/plugins/mathjax/lang/fr.js new file mode 100644 index 00000000..bf1cb479 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","fr",{title:"Mathématiques au format TeX",button:"Math",dialogInput:"Saisir la formule TeX ici",docUrl:"http://fr.wikibooks.org/wiki/LaTeX/Math%C3%A9matiques",docLabel:"Documentation du format TeX",loading:"chargement...",pathName:"math"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/gl.js b/www/lib/ckeditor/plugins/mathjax/lang/gl.js new file mode 100644 index 00000000..0657f1f9 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","gl",{title:"Matemáticas en TeX",button:"Matemáticas",dialogInput:"Escriba o seu TeX aquí",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentación de TeX",loading:"cargando...",pathName:"matemáticas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/he.js b/www/lib/ckeditor/plugins/mathjax/lang/he.js new file mode 100644 index 00000000..9e5c21dc --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","he",{title:"מתמטיקה בTeX",button:"מתמטיקה",dialogInput:"כתוב את הTeX שלך כאן",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"תיעוד TeX",loading:"טוען...",pathName:"מתמטיקה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/hr.js b/www/lib/ckeditor/plugins/mathjax/lang/hr.js new file mode 100644 index 00000000..6e90bd5b --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hr",{title:"Matematika u TeXu",button:"Matematika",dialogInput:"Napiši svoj TeX ovdje",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"učitavanje...",pathName:"matematika"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/hu.js b/www/lib/ckeditor/plugins/mathjax/lang/hu.js new file mode 100644 index 00000000..3ab4b748 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","hu",{title:"Matematika a TeX-ben",button:"Matek",dialogInput:"Írd a TeX-ed ide",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentáció",loading:"töltés...",pathName:"matek"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/it.js b/www/lib/ckeditor/plugins/mathjax/lang/it.js new file mode 100644 index 00000000..a91094a0 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","it",{title:"Formule in TeX",button:"Formule",dialogInput:"Scrivere qui il proprio TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentazione TeX",loading:"caricamento…",pathName:"formula"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/ja.js b/www/lib/ckeditor/plugins/mathjax/lang/ja.js new file mode 100644 index 00000000..0141ecd7 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ja",{title:"TeX形式の数式",button:"数式",dialogInput:"TeX形式の数式を入力してください",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeXの解説",loading:"読み込み中…",pathName:"math"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/km.js b/www/lib/ckeditor/plugins/mathjax/lang/km.js new file mode 100644 index 00000000..d68d998f --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","km",{title:"គណិត​វិទ្យា​ក្នុង TeX",button:"គណិត",dialogInput:"សរសេរ TeX របស់​អ្នក​នៅ​ទីនេះ",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"ឯកសារ​អត្ថបទ​ពី ​TeX",loading:"កំពុង​ផ្ទុក..",pathName:"គណិត"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/nb.js b/www/lib/ckeditor/plugins/mathjax/lang/nb.js new file mode 100644 index 00000000..7b3588e2 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nb",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/nl.js b/www/lib/ckeditor/plugins/mathjax/lang/nl.js new file mode 100644 index 00000000..fe9cf316 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","nl",{title:"Wiskunde in TeX",button:"Wiskunde",dialogInput:"Typ hier uw TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX documentatie",loading:"laden...",pathName:"wiskunde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/no.js b/www/lib/ckeditor/plugins/mathjax/lang/no.js new file mode 100644 index 00000000..33e87aba --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","no",{title:"Matematikk i TeX",button:"Matte",dialogInput:"Skriv TeX-koden her",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX-dokumentasjon",loading:"laster...",pathName:"matte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/pl.js b/www/lib/ckeditor/plugins/mathjax/lang/pl.js new file mode 100644 index 00000000..70f2be53 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pl",{title:"Wzory matematyczne w TeX",button:"Wzory matematyczne",dialogInput:"Wpisz wyrażenie w TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentacja TeX",loading:"ładowanie...",pathName:"matematyka"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js b/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js new file mode 100644 index 00000000..6b9620d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt-br",{title:"Matemática em TeX",button:"Matemática",dialogInput:"Escreva seu TeX aqui",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"carregando...",pathName:"Matemática"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/pt.js b/www/lib/ckeditor/plugins/mathjax/lang/pt.js new file mode 100644 index 00000000..1f83fefa --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","pt",{title:"Matemáticas em TeX",button:"Matemática",dialogInput:"Escreva aqui o seu Tex",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentação TeX",loading:"a carregar ...",pathName:"matemática"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/ro.js b/www/lib/ckeditor/plugins/mathjax/lang/ro.js new file mode 100644 index 00000000..72c606cb --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ro",{title:"Matematici in TeX",button:"Matematici",dialogInput:"Scrie TeX-ul aici",docUrl:"http://ro.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Documentatie TeX",loading:"încarcă...",pathName:"matematici"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/ru.js b/www/lib/ckeditor/plugins/mathjax/lang/ru.js new file mode 100644 index 00000000..a48da75f --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","ru",{title:"Математика в TeX-системе",button:"Математика",dialogInput:"Введите здесь TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX документация",loading:"загрузка...",pathName:"мат."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/sk.js b/www/lib/ckeditor/plugins/mathjax/lang/sk.js new file mode 100644 index 00000000..1a54159d --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sk",{title:"Matematika v TeX",button:"Matika",dialogInput:"Napíšte svoj TeX sem",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Dokumentácia TeX",loading:"načítavanie...",pathName:"matika"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/sl.js b/www/lib/ckeditor/plugins/mathjax/lang/sl.js new file mode 100644 index 00000000..c8df95b5 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sl",{title:"Matematika v TeX",button:"Matematika",dialogInput:"Napišite svoj TeX tukaj",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentacija",loading:"nalaganje...",pathName:"matematika"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/sv.js b/www/lib/ckeditor/plugins/mathjax/lang/sv.js new file mode 100644 index 00000000..7508fef7 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","sv",{title:"Mattematik i TeX",button:"Matte",dialogInput:"Skriv din TeX här",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX dokumentation",loading:"laddar",pathName:"matte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/tr.js b/www/lib/ckeditor/plugins/mathjax/lang/tr.js new file mode 100644 index 00000000..a2925f17 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tr",{title:"TeX ile Matematik",button:"Matematik",dialogInput:"TeX kodunuzu buraya yazın",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX yardım dökümanı",loading:"yükleniyor...",pathName:"matematik"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/tt.js b/www/lib/ckeditor/plugins/mathjax/lang/tt.js new file mode 100644 index 00000000..44003bdc --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","tt",{title:"TeX'та математика",button:"Математика",dialogInput:"Биредә TeX форматында аңлатмагызны языгыз",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX турыдна документлар",loading:"йөкләнә...",pathName:"математика"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/uk.js b/www/lib/ckeditor/plugins/mathjax/lang/uk.js new file mode 100644 index 00000000..77875f4e --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","uk",{title:"Математика у TeX",button:"Математика",dialogInput:"Наберіть тут на TeX'у",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Документація про TeX",loading:"завантажується…",pathName:"математика"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/vi.js b/www/lib/ckeditor/plugins/mathjax/lang/vi.js new file mode 100644 index 00000000..66961038 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","vi",{title:"Toán học bằng TeX",button:"Toán",dialogInput:"Nhập mã TeX ở đây",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"Tài liệu TeX",loading:"đang nạp...",pathName:"toán"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js b/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js new file mode 100644 index 00000000..ea9ad35e --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh-cn",{title:"TeX 语法的数学公式编辑器",button:"数学公式",dialogInput:"在此编写您的 TeX 指令",docUrl:"http://zh.wikipedia.org/wiki/TeX",docLabel:"TeX 语法(可以参考维基百科自身关于数学公式显示方式的帮助)",loading:"正在加载...",pathName:"数字公式"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/lang/zh.js b/www/lib/ckeditor/plugins/mathjax/lang/zh.js new file mode 100644 index 00000000..84cdab1c --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("mathjax","zh",{title:"以 TeX 表示數學",button:"數學",dialogInput:"請輸入 TeX",docUrl:"http://en.wikibooks.org/wiki/LaTeX/Mathematics",docLabel:"TeX 說明文件",loading:"載入中…",pathName:"數學"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/mathjax/plugin.js b/www/lib/ckeditor/plugins/mathjax/plugin.js new file mode 100644 index 00000000..44964b88 --- /dev/null +++ b/www/lib/ckeditor/plugins/mathjax/plugin.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h="http://cdn.mathjax.org/mathjax/2.2-latest/MathJax.js?config=TeX-AMS_HTML";CKEDITOR.plugins.add("mathjax",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,nb,nl,no,pl,pt,pt-br,ro,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"widget,dialog",icons:"mathjax",hidpi:!0,init:function(b){var c=b.config.mathJaxClass||"math-tex";b.widgets.add("mathjax",{inline:!0,dialog:"mathjax",button:b.lang.mathjax.button,mask:!0,allowedContent:"span(!"+c+")",styleToAllowedContentRules:function(a){a= +a.getClassesArray();if(!a)return null;a.push("!"+c);return"span("+a.join(",")+")"},pathName:b.lang.mathjax.pathName,template:'<span class="'+c+'" style="display:inline-block" data-cke-survive=1></span>',parts:{span:"span"},defaults:{math:"\\(x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}\\)"},init:function(){var a=this.parts.span.getChild(0);if(!a||a.type!=CKEDITOR.NODE_ELEMENT||!a.is("iframe"))a=new CKEDITOR.dom.element("iframe"),a.setAttributes({style:"border:0;width:0;height:0",scrolling:"no",frameborder:0, +allowTransparency:!0,src:CKEDITOR.plugins.mathjax.fixSrc}),this.parts.span.append(a);this.once("ready",function(){CKEDITOR.env.ie&&a.setAttribute("src",CKEDITOR.plugins.mathjax.fixSrc);this.frameWrapper=new CKEDITOR.plugins.mathjax.frameWrapper(a,b);this.frameWrapper.setValue(this.data.math)})},data:function(){this.frameWrapper&&this.frameWrapper.setValue(this.data.math)},upcast:function(a,b){if("span"==a.name&&a.hasClass(c)&&!(1<a.children.length||a.children[0].type!=CKEDITOR.NODE_TEXT)){b.math= +CKEDITOR.tools.htmlDecode(a.children[0].value);var d=a.attributes;d.style=d.style?d.style+";display:inline-block":"display:inline-block";d["data-cke-survive"]=1;a.children[0].remove();return a}},downcast:function(a){a.children[0].replaceWith(new CKEDITOR.htmlParser.text(CKEDITOR.tools.htmlEncode(this.data.math)));var b=a.attributes;b.style=b.style.replace(/display:\s?inline-block;?\s?/,"");""===b.style&&delete b.style;return a}});CKEDITOR.dialog.add("mathjax",this.path+"dialogs/mathjax.js");b.on("contentPreview", +function(a){a.data.dataValue=a.data.dataValue.replace(/<\/head>/,'<script src="'+(b.config.mathJaxLib?CKEDITOR.getUrl(b.config.mathJaxLib):h)+'"><\/script></head>')});b.on("paste",function(a){a.data.dataValue=a.data.dataValue.replace(RegExp("<span[^>]*?"+c+".*?</span>","ig"),function(a){return a.replace(/(<iframe.*?\/iframe>)/i,"")})})}});CKEDITOR.plugins.mathjax={};CKEDITOR.plugins.mathjax.fixSrc=CKEDITOR.env.gecko?"javascript:true":CKEDITOR.env.ie?"javascript:void((function(){"+encodeURIComponent("document.open();("+ +CKEDITOR.tools.fixDomain+")();document.close();")+"})())":"javascript:void(0)";CKEDITOR.plugins.mathjax.loadingIcon=CKEDITOR.plugins.get("mathjax").path+"images/loader.gif";CKEDITOR.plugins.mathjax.copyStyles=function(b,c){for(var a="color font-family font-style font-weight font-variant font-size".split(" "),e=0;e<a.length;e++){var d=a[e],g=b.getComputedStyle(d);g&&c.setStyle(d,g)}};CKEDITOR.plugins.mathjax.trim=function(b){var c=b.indexOf("\\(")+2,a=b.lastIndexOf("\\)");return b.substring(c,a)}; +CKEDITOR.plugins.mathjax.frameWrapper=CKEDITOR.env.ie&&8==CKEDITOR.env.version?function(b,c){b.getFrameDocument().write('<!DOCTYPE html><html><head><meta charset="utf-8"></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span style="white-space:nowrap;" id="tex"></span></body></html>');return{setValue:function(a){var e=b.getFrameDocument(),d=e.getById("tex");d.setHtml(CKEDITOR.plugins.mathjax.trim(CKEDITOR.tools.htmlEncode(a)));CKEDITOR.plugins.mathjax.copyStyles(b,d); +c.fire("lockSnapshot");b.setStyles({width:Math.min(250,d.$.offsetWidth)+"px",height:e.$.body.offsetHeight+"px",display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot")}}}:function(b,c){function a(){f=b.getFrameDocument();f.getById("preview")||(CKEDITOR.env.ie&&b.removeAttribute("src"),f.write('<!DOCTYPE html><html><head><meta charset="utf-8"><script type="text/x-mathjax-config">MathJax.Hub.Config( {showMathMenu: false,messageStyle: "none"} );function getCKE() {if ( typeof window.parent.CKEDITOR == \'object\' ) {return window.parent.CKEDITOR;} else {return window.parent.parent.CKEDITOR;}}function update() {MathJax.Hub.Queue([ \'Typeset\', MathJax.Hub, this.buffer ],function() {getCKE().tools.callFunction( '+ +m+" );});}MathJax.Hub.Queue( function() {getCKE().tools.callFunction("+n+');} );<\/script><script src="'+(c.config.mathJaxLib||h)+'"><\/script></head><body style="padding:0;margin:0;background:transparent;overflow:hidden"><span id="preview"></span><span id="buffer" style="display:none"></span></body></html>'))}function e(){k=!0;i=j;c.fire("lockSnapshot");d.setHtml(i);g.setHtml("<img src="+CKEDITOR.plugins.mathjax.loadingIcon+" alt="+c.lang.mathjax.loading+">");b.setStyles({height:"16px",width:"16px", +display:"inline","vertical-align":"middle"});c.fire("unlockSnapshot");f.getWindow().$.update(i)}var d,g,i,j,f=b.getFrameDocument(),l=!1,k=!1,n=CKEDITOR.tools.addFunction(function(){g=f.getById("preview");d=f.getById("buffer");l=!0;j&&e();CKEDITOR.fire("mathJaxLoaded",b)}),m=CKEDITOR.tools.addFunction(function(){CKEDITOR.plugins.mathjax.copyStyles(b,g);g.setHtml(d.getHtml());c.fire("lockSnapshot");b.setStyles({height:0,width:0});var a=Math.max(f.$.body.offsetHeight,f.$.documentElement.offsetHeight), +h=Math.max(g.$.offsetWidth,f.$.body.scrollWidth);b.setStyles({height:a+"px",width:h+"px"});c.fire("unlockSnapshot");CKEDITOR.fire("mathJaxUpdateDone",b);i!=j?e():k=!1});b.on("load",a);a();return{setValue:function(a){j=CKEDITOR.tools.htmlEncode(a);l&&!k&&e()}}}})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png b/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png new file mode 100644 index 00000000..1a7551c2 Binary files /dev/null and b/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png differ diff --git a/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png b/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png new file mode 100644 index 00000000..8cbe2230 Binary files /dev/null and b/www/lib/ckeditor/plugins/newpage/icons/hidpi/newpage.png differ diff --git a/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png b/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png new file mode 100644 index 00000000..2c8ef7fe Binary files /dev/null and b/www/lib/ckeditor/plugins/newpage/icons/newpage-rtl.png differ diff --git a/www/lib/ckeditor/plugins/newpage/icons/newpage.png b/www/lib/ckeditor/plugins/newpage/icons/newpage.png new file mode 100644 index 00000000..8e18c8a2 Binary files /dev/null and b/www/lib/ckeditor/plugins/newpage/icons/newpage.png differ diff --git a/www/lib/ckeditor/plugins/newpage/lang/af.js b/www/lib/ckeditor/plugins/newpage/lang/af.js new file mode 100644 index 00000000..2fd4a604 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","af",{toolbar:"Nuwe bladsy"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ar.js b/www/lib/ckeditor/plugins/newpage/lang/ar.js new file mode 100644 index 00000000..04f45c5c --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ar",{toolbar:"صفحة جديدة"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/bg.js b/www/lib/ckeditor/plugins/newpage/lang/bg.js new file mode 100644 index 00000000..b40fbf54 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bg",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/bn.js b/www/lib/ckeditor/plugins/newpage/lang/bn.js new file mode 100644 index 00000000..aaedacbe --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bn",{toolbar:"নতুন পেজ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/bs.js b/www/lib/ckeditor/plugins/newpage/lang/bs.js new file mode 100644 index 00000000..f8a0c44e --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","bs",{toolbar:"Novi dokument"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ca.js b/www/lib/ckeditor/plugins/newpage/lang/ca.js new file mode 100644 index 00000000..4efb6079 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ca",{toolbar:"Nova pàgina"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/cs.js b/www/lib/ckeditor/plugins/newpage/lang/cs.js new file mode 100644 index 00000000..02960680 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cs",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/cy.js b/www/lib/ckeditor/plugins/newpage/lang/cy.js new file mode 100644 index 00000000..09e8b6fa --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","cy",{toolbar:"Tudalen Newydd"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/da.js b/www/lib/ckeditor/plugins/newpage/lang/da.js new file mode 100644 index 00000000..22d0d6b1 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","da",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/de.js b/www/lib/ckeditor/plugins/newpage/lang/de.js new file mode 100644 index 00000000..8d323f87 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","de",{toolbar:"Neue Seite"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/el.js b/www/lib/ckeditor/plugins/newpage/lang/el.js new file mode 100644 index 00000000..7f989b1a --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","el",{toolbar:"Νέα Σελίδα"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/en-au.js b/www/lib/ckeditor/plugins/newpage/lang/en-au.js new file mode 100644 index 00000000..6e38a28b --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-au",{toolbar:"New Page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/en-ca.js b/www/lib/ckeditor/plugins/newpage/lang/en-ca.js new file mode 100644 index 00000000..327aa5d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-ca",{toolbar:"New Page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/en-gb.js b/www/lib/ckeditor/plugins/newpage/lang/en-gb.js new file mode 100644 index 00000000..3f7ab3e9 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en-gb",{toolbar:"New Page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/en.js b/www/lib/ckeditor/plugins/newpage/lang/en.js new file mode 100644 index 00000000..4402b73d --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","en",{toolbar:"New Page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/eo.js b/www/lib/ckeditor/plugins/newpage/lang/eo.js new file mode 100644 index 00000000..671a107d --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eo",{toolbar:"Nova Paĝo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/es.js b/www/lib/ckeditor/plugins/newpage/lang/es.js new file mode 100644 index 00000000..ca54ae0d --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","es",{toolbar:"Nueva Página"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/et.js b/www/lib/ckeditor/plugins/newpage/lang/et.js new file mode 100644 index 00000000..59a58061 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","et",{toolbar:"Uus leht"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/eu.js b/www/lib/ckeditor/plugins/newpage/lang/eu.js new file mode 100644 index 00000000..82808efd --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","eu",{toolbar:"Orrialde Berria"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/fa.js b/www/lib/ckeditor/plugins/newpage/lang/fa.js new file mode 100644 index 00000000..6986ba6d --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fa",{toolbar:"برگهٴ تازه"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/fi.js b/www/lib/ckeditor/plugins/newpage/lang/fi.js new file mode 100644 index 00000000..cc1e63df --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fi",{toolbar:"Tyhjennä"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/fo.js b/www/lib/ckeditor/plugins/newpage/lang/fo.js new file mode 100644 index 00000000..778091e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fo",{toolbar:"Nýggj síða"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js b/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js new file mode 100644 index 00000000..de7bb951 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr-ca",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/fr.js b/www/lib/ckeditor/plugins/newpage/lang/fr.js new file mode 100644 index 00000000..2de51702 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","fr",{toolbar:"Nouvelle page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/gl.js b/www/lib/ckeditor/plugins/newpage/lang/gl.js new file mode 100644 index 00000000..96b7ea77 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gl",{toolbar:"Páxina nova"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/gu.js b/www/lib/ckeditor/plugins/newpage/lang/gu.js new file mode 100644 index 00000000..f4c3306c --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","gu",{toolbar:"નવુ પાનું"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/he.js b/www/lib/ckeditor/plugins/newpage/lang/he.js new file mode 100644 index 00000000..460262b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","he",{toolbar:"דף חדש"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/hi.js b/www/lib/ckeditor/plugins/newpage/lang/hi.js new file mode 100644 index 00000000..afed2e28 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hi",{toolbar:"नया पेज"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/hr.js b/www/lib/ckeditor/plugins/newpage/lang/hr.js new file mode 100644 index 00000000..fc09d5af --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hr",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/hu.js b/www/lib/ckeditor/plugins/newpage/lang/hu.js new file mode 100644 index 00000000..6053528b --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","hu",{toolbar:"Új oldal"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/id.js b/www/lib/ckeditor/plugins/newpage/lang/id.js new file mode 100644 index 00000000..391bdad6 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","id",{toolbar:"Halaman Baru"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/is.js b/www/lib/ckeditor/plugins/newpage/lang/is.js new file mode 100644 index 00000000..cee7f357 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","is",{toolbar:"Ný síða"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/it.js b/www/lib/ckeditor/plugins/newpage/lang/it.js new file mode 100644 index 00000000..d484977e --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","it",{toolbar:"Nuova pagina"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ja.js b/www/lib/ckeditor/plugins/newpage/lang/ja.js new file mode 100644 index 00000000..3954e55b --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ja",{toolbar:"新しいページ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ka.js b/www/lib/ckeditor/plugins/newpage/lang/ka.js new file mode 100644 index 00000000..ee1bd799 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ka",{toolbar:"ახალი გვერდი"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/km.js b/www/lib/ckeditor/plugins/newpage/lang/km.js new file mode 100644 index 00000000..0dcae481 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","km",{toolbar:"ទំព័រ​ថ្មី"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ko.js b/www/lib/ckeditor/plugins/newpage/lang/ko.js new file mode 100644 index 00000000..3ac6b6b6 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ko",{toolbar:"새 문서"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ku.js b/www/lib/ckeditor/plugins/newpage/lang/ku.js new file mode 100644 index 00000000..b5d99596 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ku",{toolbar:"پەڕەیەکی نوێ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/lt.js b/www/lib/ckeditor/plugins/newpage/lang/lt.js new file mode 100644 index 00000000..a9572d6f --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lt",{toolbar:"Naujas puslapis"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/lv.js b/www/lib/ckeditor/plugins/newpage/lang/lv.js new file mode 100644 index 00000000..d05d3900 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","lv",{toolbar:"Jauna lapa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/mk.js b/www/lib/ckeditor/plugins/newpage/lang/mk.js new file mode 100644 index 00000000..0b4261c7 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mk",{toolbar:"New Page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/mn.js b/www/lib/ckeditor/plugins/newpage/lang/mn.js new file mode 100644 index 00000000..7ea8f845 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","mn",{toolbar:"Шинэ хуудас"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ms.js b/www/lib/ckeditor/plugins/newpage/lang/ms.js new file mode 100644 index 00000000..a6544940 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ms",{toolbar:"Helaian Baru"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/nb.js b/www/lib/ckeditor/plugins/newpage/lang/nb.js new file mode 100644 index 00000000..7d8addd9 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nb",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/nl.js b/www/lib/ckeditor/plugins/newpage/lang/nl.js new file mode 100644 index 00000000..20ab5057 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","nl",{toolbar:"Nieuwe pagina"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/no.js b/www/lib/ckeditor/plugins/newpage/lang/no.js new file mode 100644 index 00000000..551cb365 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","no",{toolbar:"Ny side"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/pl.js b/www/lib/ckeditor/plugins/newpage/lang/pl.js new file mode 100644 index 00000000..c2dd7686 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pl",{toolbar:"Nowa strona"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/pt-br.js b/www/lib/ckeditor/plugins/newpage/lang/pt-br.js new file mode 100644 index 00000000..31120f06 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt-br",{toolbar:"Novo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/pt.js b/www/lib/ckeditor/plugins/newpage/lang/pt.js new file mode 100644 index 00000000..556a89b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","pt",{toolbar:"Nova Página"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ro.js b/www/lib/ckeditor/plugins/newpage/lang/ro.js new file mode 100644 index 00000000..87336458 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ro",{toolbar:"Pagină nouă"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ru.js b/www/lib/ckeditor/plugins/newpage/lang/ru.js new file mode 100644 index 00000000..bdac86ef --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ru",{toolbar:"Новая страница"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/si.js b/www/lib/ckeditor/plugins/newpage/lang/si.js new file mode 100644 index 00000000..166e5505 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","si",{toolbar:"නව පිටුවක්"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/sk.js b/www/lib/ckeditor/plugins/newpage/lang/sk.js new file mode 100644 index 00000000..2ff850fd --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sk",{toolbar:"Nová stránka"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/sl.js b/www/lib/ckeditor/plugins/newpage/lang/sl.js new file mode 100644 index 00000000..b8bdbdb3 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sl",{toolbar:"Nova stran"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/sq.js b/www/lib/ckeditor/plugins/newpage/lang/sq.js new file mode 100644 index 00000000..eb508027 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sq",{toolbar:"Faqe e Re"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js b/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js new file mode 100644 index 00000000..1758d5c4 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr-latn",{toolbar:"Nova stranica"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/sr.js b/www/lib/ckeditor/plugins/newpage/lang/sr.js new file mode 100644 index 00000000..9289d01f --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sr",{toolbar:"Нова страница"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/sv.js b/www/lib/ckeditor/plugins/newpage/lang/sv.js new file mode 100644 index 00000000..ce4099d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","sv",{toolbar:"Ny sida"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/th.js b/www/lib/ckeditor/plugins/newpage/lang/th.js new file mode 100644 index 00000000..f1647f27 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","th",{toolbar:"สร้างหน้าเอกสารใหม่"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/tr.js b/www/lib/ckeditor/plugins/newpage/lang/tr.js new file mode 100644 index 00000000..afba1bd6 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tr",{toolbar:"Yeni Sayfa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/tt.js b/www/lib/ckeditor/plugins/newpage/lang/tt.js new file mode 100644 index 00000000..2c9e06ab --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","tt",{toolbar:"Яңа бит"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/ug.js b/www/lib/ckeditor/plugins/newpage/lang/ug.js new file mode 100644 index 00000000..739429ab --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","ug",{toolbar:"يېڭى بەت"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/uk.js b/www/lib/ckeditor/plugins/newpage/lang/uk.js new file mode 100644 index 00000000..518a63ac --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","uk",{toolbar:"Нова сторінка"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/vi.js b/www/lib/ckeditor/plugins/newpage/lang/vi.js new file mode 100644 index 00000000..16dffe6b --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","vi",{toolbar:"Trang mới"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js b/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js new file mode 100644 index 00000000..9868d6b1 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh-cn",{toolbar:"新建"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/lang/zh.js b/www/lib/ckeditor/plugins/newpage/lang/zh.js new file mode 100644 index 00000000..cd365f40 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("newpage","zh",{toolbar:"新增網頁"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/newpage/plugin.js b/www/lib/ckeditor/plugins/newpage/plugin.js new file mode 100644 index 00000000..c5d88b96 --- /dev/null +++ b/www/lib/ckeditor/plugins/newpage/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("newpage",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"newpage,newpage-rtl",hidpi:!0,init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage", +command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png b/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png new file mode 100644 index 00000000..4a5418cb Binary files /dev/null and b/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png differ diff --git a/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png b/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png new file mode 100644 index 00000000..8d3930bb Binary files /dev/null and b/www/lib/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png differ diff --git a/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png b/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png new file mode 100644 index 00000000..b5b342b0 Binary files /dev/null and b/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png differ diff --git a/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png b/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png new file mode 100644 index 00000000..5280a6e9 Binary files /dev/null and b/www/lib/ckeditor/plugins/pagebreak/icons/pagebreak.png differ diff --git a/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif b/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif new file mode 100644 index 00000000..8d1cffd6 Binary files /dev/null and b/www/lib/ckeditor/plugins/pagebreak/images/pagebreak.gif differ diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/af.js b/www/lib/ckeditor/plugins/pagebreak/lang/af.js new file mode 100644 index 00000000..3db5e2e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","af",{alt:"Bladsy-einde",toolbar:"Bladsy-einde invoeg"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ar.js b/www/lib/ckeditor/plugins/pagebreak/lang/ar.js new file mode 100644 index 00000000..6c795815 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ar",{alt:"فاصل الصفحة",toolbar:"إدخال صفحة جديدة"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/bg.js b/www/lib/ckeditor/plugins/pagebreak/lang/bg.js new file mode 100644 index 00000000..32ea86b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bg",{alt:"Разделяне на страници",toolbar:"Вмъкване на нова страница при печат"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/bn.js b/www/lib/ckeditor/plugins/pagebreak/lang/bn.js new file mode 100644 index 00000000..69bcc5d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bn",{alt:"Page Break",toolbar:"পেজ ব্রেক"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/bs.js b/www/lib/ckeditor/plugins/pagebreak/lang/bs.js new file mode 100644 index 00000000..e33eb612 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","bs",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ca.js b/www/lib/ckeditor/plugins/pagebreak/lang/ca.js new file mode 100644 index 00000000..8d1732ce --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ca",{alt:"Salt de pàgina",toolbar:"Insereix salt de pàgina"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/cs.js b/www/lib/ckeditor/plugins/pagebreak/lang/cs.js new file mode 100644 index 00000000..c2753103 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cs",{alt:"Konec stránky",toolbar:"Vložit konec stránky"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/cy.js b/www/lib/ckeditor/plugins/pagebreak/lang/cy.js new file mode 100644 index 00000000..b3f86a44 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","cy",{alt:"Toriad Tudalen",toolbar:"Mewnosod Toriad Tudalen i Argraffu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/da.js b/www/lib/ckeditor/plugins/pagebreak/lang/da.js new file mode 100644 index 00000000..206f3a63 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","da",{alt:"Sideskift",toolbar:"Indsæt sideskift"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/de.js b/www/lib/ckeditor/plugins/pagebreak/lang/de.js new file mode 100644 index 00000000..06449421 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","de",{alt:"Seitenumbruch einfügen",toolbar:"Seitenumbruch einfügen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/el.js b/www/lib/ckeditor/plugins/pagebreak/lang/el.js new file mode 100644 index 00000000..1b9c8728 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","el",{alt:"Αλλαγή Σελίδας",toolbar:"Εισαγωγή Τέλους Σελίδας για Εκτύπωση"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js b/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js new file mode 100644 index 00000000..ca24e8e9 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-au",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js b/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js new file mode 100644 index 00000000..d4731567 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-ca",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js b/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js new file mode 100644 index 00000000..d17f8b0f --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en-gb",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/en.js b/www/lib/ckeditor/plugins/pagebreak/lang/en.js new file mode 100644 index 00000000..4b680ef1 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","en",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/eo.js b/www/lib/ckeditor/plugins/pagebreak/lang/eo.js new file mode 100644 index 00000000..cb664749 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eo",{alt:"Paĝavanco",toolbar:"Enmeti Paĝavancon por Presado"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/es.js b/www/lib/ckeditor/plugins/pagebreak/lang/es.js new file mode 100644 index 00000000..17379550 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","es",{alt:"Salto de página",toolbar:"Insertar Salto de Página"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/et.js b/www/lib/ckeditor/plugins/pagebreak/lang/et.js new file mode 100644 index 00000000..463b200d --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","et",{alt:"Lehevahetuskoht",toolbar:"Lehevahetuskoha sisestamine"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/eu.js b/www/lib/ckeditor/plugins/pagebreak/lang/eu.js new file mode 100644 index 00000000..42c24112 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","eu",{alt:"Orrialde-jauzia",toolbar:"Txertatu Orrialde-jauzia Inprimatzean"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/fa.js b/www/lib/ckeditor/plugins/pagebreak/lang/fa.js new file mode 100644 index 00000000..c8b8e186 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fa",{alt:"شکستن صفحه",toolbar:"گنجاندن شکستگی پایان برگه"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/fi.js b/www/lib/ckeditor/plugins/pagebreak/lang/fi.js new file mode 100644 index 00000000..5dc52bd6 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fi",{alt:"Sivunvaihto",toolbar:"Lisää sivunvaihto"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/fo.js b/www/lib/ckeditor/plugins/pagebreak/lang/fo.js new file mode 100644 index 00000000..ba9b9dca --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fo",{alt:"Síðuskift",toolbar:"Ger síðuskift"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js b/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js new file mode 100644 index 00000000..e5ec2329 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr-ca",{alt:"Saut de page",toolbar:"Insérer un saut de page à l'impression"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/fr.js b/www/lib/ckeditor/plugins/pagebreak/lang/fr.js new file mode 100644 index 00000000..941c0b16 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","fr",{alt:"Saut de page",toolbar:"Saut de page"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/gl.js b/www/lib/ckeditor/plugins/pagebreak/lang/gl.js new file mode 100644 index 00000000..fd239f3f --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gl",{alt:"Quebra de páxina",toolbar:"Inserir quebra de páxina"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/gu.js b/www/lib/ckeditor/plugins/pagebreak/lang/gu.js new file mode 100644 index 00000000..cd6a24e4 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","gu",{alt:"નવું પાનું",toolbar:"ઇન્સર્ટ પેજબ્રેક/પાનાને અલગ કરવું/દાખલ કરવું"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/he.js b/www/lib/ckeditor/plugins/pagebreak/lang/he.js new file mode 100644 index 00000000..e5b8124e --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","he",{alt:"שבירת דף",toolbar:"הוספת שבירת דף"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/hi.js b/www/lib/ckeditor/plugins/pagebreak/lang/hi.js new file mode 100644 index 00000000..940a28fe --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hi",{alt:"पेज ब्रेक",toolbar:"पेज ब्रेक इन्सर्ट् करें"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/hr.js b/www/lib/ckeditor/plugins/pagebreak/lang/hr.js new file mode 100644 index 00000000..6f86601d --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hr",{alt:"Prijelom stranice",toolbar:"Ubaci prijelom stranice"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/hu.js b/www/lib/ckeditor/plugins/pagebreak/lang/hu.js new file mode 100644 index 00000000..6b9fd0e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","hu",{alt:"Oldaltörés",toolbar:"Oldaltörés beillesztése"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/id.js b/www/lib/ckeditor/plugins/pagebreak/lang/id.js new file mode 100644 index 00000000..71865adb --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","id",{alt:"Halaman Istirahat",toolbar:"Sisip Halaman Istirahat untuk Pencetakan "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/is.js b/www/lib/ckeditor/plugins/pagebreak/lang/is.js new file mode 100644 index 00000000..27f20878 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","is",{alt:"Page Break",toolbar:"Setja inn síðuskil"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/it.js b/www/lib/ckeditor/plugins/pagebreak/lang/it.js new file mode 100644 index 00000000..1308ec6b --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","it",{alt:"Interruzione di pagina",toolbar:"Inserisci interruzione di pagina per la stampa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ja.js b/www/lib/ckeditor/plugins/pagebreak/lang/ja.js new file mode 100644 index 00000000..cc1574f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ja",{alt:"改ページ",toolbar:"印刷の為に改ページ挿入"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ka.js b/www/lib/ckeditor/plugins/pagebreak/lang/ka.js new file mode 100644 index 00000000..6c999ff4 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ka",{alt:"გვერდის წყვეტა",toolbar:"გვერდის წყვეტა ბეჭდვისთვის"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/km.js b/www/lib/ckeditor/plugins/pagebreak/lang/km.js new file mode 100644 index 00000000..ab157e3d --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","km",{alt:"បំបែក​ទំព័រ",toolbar:"បន្ថែម​ការ​បំបែក​ទំព័រ​មុន​បោះពុម្ព"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ko.js b/www/lib/ckeditor/plugins/pagebreak/lang/ko.js new file mode 100644 index 00000000..c83c5e63 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ko",{alt:"패이지 나누기",toolbar:"인쇄시 페이지 나누기 삽입"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ku.js b/www/lib/ckeditor/plugins/pagebreak/lang/ku.js new file mode 100644 index 00000000..d9897842 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ku",{alt:"پشووی پەڕە",toolbar:"دانانی پشووی پەڕە بۆ چاپکردن"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/lt.js b/www/lib/ckeditor/plugins/pagebreak/lang/lt.js new file mode 100644 index 00000000..5879e3ca --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lt",{alt:"Puslapio skirtukas",toolbar:"Įterpti puslapių skirtuką"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/lv.js b/www/lib/ckeditor/plugins/pagebreak/lang/lv.js new file mode 100644 index 00000000..d594489b --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","lv",{alt:"Lapas pārnesums",toolbar:"Ievietot lapas pārtraukumu drukai"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/mk.js b/www/lib/ckeditor/plugins/pagebreak/lang/mk.js new file mode 100644 index 00000000..5fdce2f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mk",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/mn.js b/www/lib/ckeditor/plugins/pagebreak/lang/mn.js new file mode 100644 index 00000000..272ffaf7 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","mn",{alt:"Page Break",toolbar:"Хуудас тусгаарлагч оруулах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ms.js b/www/lib/ckeditor/plugins/pagebreak/lang/ms.js new file mode 100644 index 00000000..e0988eec --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ms",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/nb.js b/www/lib/ckeditor/plugins/pagebreak/lang/nb.js new file mode 100644 index 00000000..15f45eeb --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nb",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/nl.js b/www/lib/ckeditor/plugins/pagebreak/lang/nl.js new file mode 100644 index 00000000..5c05b168 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","nl",{alt:"Pagina-einde",toolbar:"Pagina-einde invoegen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/no.js b/www/lib/ckeditor/plugins/pagebreak/lang/no.js new file mode 100644 index 00000000..ec64c6bc --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","no",{alt:"Sideskift",toolbar:"Sett inn sideskift for utskrift"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/pl.js b/www/lib/ckeditor/plugins/pagebreak/lang/pl.js new file mode 100644 index 00000000..79861f98 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pl",{alt:"Wstaw podział strony",toolbar:"Wstaw podział strony"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js b/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js new file mode 100644 index 00000000..31d256d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt-br",{alt:"Quebra de Página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/pt.js b/www/lib/ckeditor/plugins/pagebreak/lang/pt.js new file mode 100644 index 00000000..17ed211a --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","pt",{alt:"Quebra de página",toolbar:"Inserir Quebra de Página"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ro.js b/www/lib/ckeditor/plugins/pagebreak/lang/ro.js new file mode 100644 index 00000000..91833bac --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ro",{alt:"Page Break",toolbar:"Inserează separator de pagină (Page Break)"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ru.js b/www/lib/ckeditor/plugins/pagebreak/lang/ru.js new file mode 100644 index 00000000..621682c1 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ru",{alt:"Разрыв страницы",toolbar:"Вставить разрыв страницы для печати"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/si.js b/www/lib/ckeditor/plugins/pagebreak/lang/si.js new file mode 100644 index 00000000..a232df64 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","si",{alt:"පිටු බිදුම",toolbar:"මුද්‍රණය සඳහා පිටු බිදුමක් ඇතුලත් කරන්න"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/sk.js b/www/lib/ckeditor/plugins/pagebreak/lang/sk.js new file mode 100644 index 00000000..b465e98f --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sk",{alt:"Zalomenie strany",toolbar:"Vložiť oddeľovač stránky pre tlač"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/sl.js b/www/lib/ckeditor/plugins/pagebreak/lang/sl.js new file mode 100644 index 00000000..d07e9040 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sl",{alt:"Prelom Strani",toolbar:"Vstavi prelom strani"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/sq.js b/www/lib/ckeditor/plugins/pagebreak/lang/sq.js new file mode 100644 index 00000000..3b570e03 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sq",{alt:"Thyerja e Faqes",toolbar:"Vendos Thyerje Faqeje për Shtyp"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js b/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js new file mode 100644 index 00000000..55877bac --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr-latn",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/sr.js b/www/lib/ckeditor/plugins/pagebreak/lang/sr.js new file mode 100644 index 00000000..9c6d9aff --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sr",{alt:"Page Break",toolbar:"Insert Page Break for Printing"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/sv.js b/www/lib/ckeditor/plugins/pagebreak/lang/sv.js new file mode 100644 index 00000000..a2210ceb --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","sv",{alt:"Sidbrytning",toolbar:"Infoga sidbrytning för utskrift"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/th.js b/www/lib/ckeditor/plugins/pagebreak/lang/th.js new file mode 100644 index 00000000..55a25317 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","th",{alt:"ตัวแบ่งหน้า",toolbar:"แทรกตัวแบ่งหน้า Page Break"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/tr.js b/www/lib/ckeditor/plugins/pagebreak/lang/tr.js new file mode 100644 index 00000000..d5e64a52 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tr",{alt:"Sayfa Sonu",toolbar:"Sayfa Sonu Ekle"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/tt.js b/www/lib/ckeditor/plugins/pagebreak/lang/tt.js new file mode 100644 index 00000000..df0ae8fb --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","tt",{alt:"Бит бүлгече",toolbar:"Бастыру өчен бит бүлгечен өстәү"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/ug.js b/www/lib/ckeditor/plugins/pagebreak/lang/ug.js new file mode 100644 index 00000000..10404349 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","ug",{alt:"بەت ئايرىغۇچ",toolbar:"بەت ئايرىغۇچ قىستۇر"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/uk.js b/www/lib/ckeditor/plugins/pagebreak/lang/uk.js new file mode 100644 index 00000000..0abba674 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","uk",{alt:"Розрив Сторінки",toolbar:"Вставити розрив сторінки"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/vi.js b/www/lib/ckeditor/plugins/pagebreak/lang/vi.js new file mode 100644 index 00000000..5787cb65 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","vi",{alt:"Ngắt trang",toolbar:"Chèn ngắt trang"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js b/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js new file mode 100644 index 00000000..39ec7add --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh-cn",{alt:"分页符",toolbar:"插入打印分页符"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/lang/zh.js b/www/lib/ckeditor/plugins/pagebreak/lang/zh.js new file mode 100644 index 00000000..9b5a14c6 --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("pagebreak","zh",{alt:"換頁",toolbar:"插入換頁符號以便列印"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pagebreak/plugin.js b/www/lib/ckeditor/plugins/pagebreak/plugin.js new file mode 100644 index 00000000..f9a7c3df --- /dev/null +++ b/www/lib/ckeditor/plugins/pagebreak/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function e(a){return{"aria-label":a,"class":"cke_pagebreak",contenteditable:"false","data-cke-display-name":"pagebreak","data-cke-pagebreak":1,style:"page-break-after: always",title:a}}CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"pagebreak,pagebreak-rtl", +hidpi:!0,onLoad:function(){var a=("background:url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;clear:both;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;padding:0;height:5px;cursor:default;").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak{"+a+"}")},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak", +toolbar:"insert,70"}),CKEDITOR.env.webkit&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){function b(f){CKEDITOR.tools.extend(f.attributes,e(a.lang.pagebreak.alt),!0);f.children.length=0}var c=a.dataProcessor,g=c&&c.dataFilter,c=c&&c.htmlFilter,h=/page-break-after\s*:\s*always/i,i=/display\s*:\s*none/i;c&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak", +"");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>').children[0];b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},{applyToAll:!0,priority:5});g&&g.addRules({elements:{div:function(a){if(a.attributes["data-cke-pagebreak"])b(a);else if(h.test(a.attributes.style)){var c=a.children[0];c&&("span"==c.name&&i.test(c.attributes.style))&&b(a)}}}})}});CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b= +a.document.createElement("div",{attributes:e(a.lang.pagebreak.alt)});a.insertElement(b)},context:"div",allowedContent:{div:{styles:"!page-break-after"},span:{match:function(a){return(a=a.parent)&&"div"==a.name&&a.styles&&a.styles["page-break-after"]},styles:"display"}},requiredContent:"div{page-break-after}"}})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/panelbutton/plugin.js b/www/lib/ckeditor/plugins/panelbutton/plugin.js new file mode 100644 index 00000000..18adde8c --- /dev/null +++ b/www/lib/ckeditor/plugins/panelbutton/plugin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated= +!0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()}; +d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}}); +CKEDITOR.UI_PANELBUTTON="panelbutton"; \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/pastefromword/filter/default.js b/www/lib/ckeditor/plugins/pastefromword/filter/default.js new file mode 100644 index 00000000..899ed21b --- /dev/null +++ b/www/lib/ckeditor/plugins/pastefromword/filter/default.js @@ -0,0 +1,31 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function y(a){for(var a=a.toUpperCase(),c=z.length,b=0,f=0;f<c;++f)for(var d=z[f],e=d[1].length;a.substr(0,e)==d[1];a=a.substr(e))b+=d[0];return b}function A(a){for(var a=a.toUpperCase(),c=B.length,b=1,f=1;0<a.length;f*=c)b+=B.indexOf(a.charAt(a.length-1))*f,a=a.substr(0,a.length-1);return b}var C=CKEDITOR.htmlParser.fragment.prototype,o=CKEDITOR.htmlParser.element.prototype;C.onlyChild=o.onlyChild=function(){var a=this.children;return 1==a.length&&a[0]||null};o.removeAnyChildWithName= +function(a){for(var c=this.children,b=[],f,d=0;d<c.length;d++)f=c[d],f.name&&(f.name==a&&(b.push(f),c.splice(d--,1)),b=b.concat(f.removeAnyChildWithName(a)));return b};o.getAncestor=function(a){for(var c=this.parent;c&&(!c.name||!c.name.match(a));)c=c.parent;return c};C.firstChild=o.firstChild=function(a){for(var c,b=0;b<this.children.length;b++)if(c=this.children[b],a(c)||c.name&&(c=c.firstChild(a)))return c;return null};o.addStyle=function(a,c,b){var f="";if("string"==typeof c)f+=a+":"+c+";";else{if("object"== +typeof a)for(var d in a)a.hasOwnProperty(d)&&(f+=d+":"+a[d]+";");else f+=a;b=c}this.attributes||(this.attributes={});a=this.attributes.style||"";a=(b?[f,a]:[a,f]).join(";");this.attributes.style=a.replace(/^;+|;(?=;)/g,"")};o.getStyle=function(a){var c=this.attributes.style;if(c)return c=CKEDITOR.tools.parseCssText(c,1),c[a]};CKEDITOR.dtd.parentOf=function(a){var c={},b;for(b in this)-1==b.indexOf("$")&&this[b][a]&&(c[b]=1);return c};var H=/^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i, +D=/^(?:\b0[^\s]*\s*){1,4}$/,x={ol:{decimal:/\d+/,"lower-roman":/^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/,"upper-roman":/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"lower-alpha":/^[a-z]+$/,"upper-alpha":/^[A-Z]+$/},ul:{disc:/[l\u00B7\u2002]/,circle:/[\u006F\u00D8]/,square:/[\u006E\u25C6]/}},z=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],B="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=0,t=null,w,E=CKEDITOR.plugins.pastefromword= +{utils:{createListBulletMarker:function(a,c){var b=new CKEDITOR.htmlParser.element("cke:listbullet");b.attributes={"cke:listsymbol":a[0]};b.add(new CKEDITOR.htmlParser.text(c));return b},isListBulletIndicator:function(a){if(/mso-list\s*:\s*Ignore/i.test(a.attributes&&a.attributes.style))return!0},isContainingOnlySpaces:function(a){var c;return(c=a.onlyChild())&&/^(:?\s| )+$/.test(c.value)},resolveList:function(a){var c=a.attributes,b;if((b=a.removeAnyChildWithName("cke:listbullet"))&&b.length&& +(b=b[0]))return a.name="cke:li",c.style&&(c.style=E.filters.stylesFilter([["text-indent"],["line-height"],[/^margin(:?-left)?$/,null,function(a){a=a.split(" ");a=CKEDITOR.tools.convertToPx(a[3]||a[1]||a[0]);!s&&(null!==t&&a>t)&&(s=a-t);t=a;c["cke:indent"]=s&&Math.ceil(a/s)+1||1}],[/^mso-list$/,null,function(a){var a=a.split(" "),b=Number(a[0].match(/\d+/)),a=Number(a[1].match(/\d+/));1==a&&(b!==w&&(c["cke:reset"]=1),w=b);c["cke:indent"]=a}]])(c.style,a)||""),c["cke:indent"]||(t=0,c["cke:indent"]= +1),CKEDITOR.tools.extend(c,b.attributes),!0;w=t=s=null;return!1},getStyleComponents:function(){var a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(a);return function(c,b,f){a.setStyle(c,b);for(var c={},b=f.length,d=0;d<b;d++)c[f[d]]=a.getStyle(f[d]);return c}}(),listDtdParents:CKEDITOR.dtd.parentOf("ol")},filters:{flattenList:function(a,c){var c="number"==typeof c?c:1,b=a.attributes,f;switch(b.type){case "a":f= +"lower-alpha";break;case "1":f="decimal"}for(var d=a.children,e,h=0;h<d.length;h++)if(e=d[h],e.name in CKEDITOR.dtd.$listItem){var j=e.attributes,g=e.children,m=g[g.length-1];m.name in CKEDITOR.dtd.$list&&(a.add(m,h+1),--g.length||d.splice(h--,1));e.name="cke:li";b.start&&!h&&(j.value=b.start);E.filters.stylesFilter([["tab-stops",null,function(a){(a=a.split(" ")[1].match(H))&&(t=CKEDITOR.tools.convertToPx(a[0]))}],1==c?["mso-list",null,function(a){a=a.split(" ");a=Number(a[0].match(/\d+/));a!==w&& +(j["cke:reset"]=1);w=a}]:null])(j.style);j["cke:indent"]=c;j["cke:listtype"]=a.name;j["cke:list-style-type"]=f}else if(e.name in CKEDITOR.dtd.$list){arguments.callee.apply(this,[e,c+1]);d=d.slice(0,h).concat(e.children).concat(d.slice(h+1));a.children=[];e=0;for(g=d.length;e<g;e++)a.add(d[e]);d=a.children}delete a.name;b["cke:list"]=1},assembleList:function(a){for(var c=a.children,b,f,d,e,h,j,a=[],g,m,i,l,k,p,n=0;n<c.length;n++)if(b=c[n],"cke:li"==b.name)if(b.name="li",f=b.attributes,i=(i=f["cke:listsymbol"])&& +i.match(/^(?:[(]?)([^\s]+?)([.)]?)$/),l=k=p=null,f["cke:ignored"])c.splice(n--,1);else{f["cke:reset"]&&(j=e=h=null);d=Number(f["cke:indent"]);d!=e&&(m=g=null);if(i){if(m&&x[m][g].test(i[1]))l=m,k=g;else for(var q in x)for(var u in x[q])if(x[q][u].test(i[1]))if("ol"==q&&/alpha|roman/.test(u)){if(g=/roman/.test(u)?y(i[1]):A(i[1]),!p||g<p)p=g,l=q,k=u}else{l=q;k=u;break}!l&&(l=i[2]?"ol":"ul")}else l=f["cke:listtype"]||"ol",k=f["cke:list-style-type"];m=l;g=k||("ol"==l?"decimal":"disc");k&&k!=("ol"==l? +"decimal":"disc")&&b.addStyle("list-style-type",k);if("ol"==l&&i){switch(k){case "decimal":p=Number(i[1]);break;case "lower-roman":case "upper-roman":p=y(i[1]);break;case "lower-alpha":case "upper-alpha":p=A(i[1])}b.attributes.value=p}if(j){if(d>e)a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),h.add(j);else{if(d<e){e-=d;for(var r;e--&&(r=j.parent);)j=r.parent}j.add(b)}c.splice(n--,1)}else a.push(j=new CKEDITOR.htmlParser.element(l)),j.add(b),c[n]=j;h=b;e=d}else j&&(j=e=h=null);for(n=0;n<a.length;n++)if(j= +a[n],q=j.children,g=g=void 0,u=j.children.length,r=g=void 0,c=/list-style-type:(.*?)(?:;|$)/,e=CKEDITOR.plugins.pastefromword.filters.stylesFilter,g=j.attributes,!c.exec(g.style)){for(h=0;h<u;h++)if(g=q[h],g.attributes.value&&Number(g.attributes.value)==h+1&&delete g.attributes.value,g=c.exec(g.attributes.style))if(g[1]==r||!r)r=g[1];else{r=null;break}if(r){for(h=0;h<u;h++)g=q[h].attributes,g.style&&(g.style=e([["list-style-type"]])(g.style)||"");j.addStyle("list-style-type",r)}}w=t=s=null},falsyFilter:function(){return!1}, +stylesFilter:function(a,c){return function(b,f){var d=[];(b||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(b,e,g){e=e.toLowerCase();"font-family"==e&&(g=g.replace(/["']/g,""));for(var m,i,l,k=0;k<a.length;k++)if(a[k]&&(b=a[k][0],m=a[k][1],i=a[k][2],l=a[k][3],e.match(b)&&(!m||g.match(m)))){e=l||e;c&&(i=i||g);"function"==typeof i&&(i=i(g,f,e));i&&i.push&&(e=i[0],i=i[1]);"string"==typeof i&&d.push([e,i]);return}!c&&d.push([e,g])});for(var e=0;e<d.length;e++)d[e]= +d[e].join(":");return d.length?d.join(";")+";":!1}},elementMigrateFilter:function(a,c){return a?function(b){var f=c?(new CKEDITOR.style(a,c))._.definition:a;b.name=f.element;CKEDITOR.tools.extend(b.attributes,CKEDITOR.tools.clone(f.attributes));b.addStyle(CKEDITOR.style.getStyleText(f))}:function(){}},styleMigrateFilter:function(a,c){var b=this.elementMigrateFilter;return a?function(f,d){var e=new CKEDITOR.htmlParser.element(null),h={};h[c]=f;b(a,h)(e);e.children=d.children;d.children=[e];e.filter= +function(){};e.parent=d}:function(){}},bogusAttrFilter:function(a,c){if(-1==c.name.indexOf("cke:"))return!1},applyStyleFilter:null},getRules:function(a,c){var b=CKEDITOR.dtd,f=CKEDITOR.tools.extend({},b.$block,b.$listItem,b.$tableContent),d=a.config,e=this.filters,h=e.falsyFilter,j=e.stylesFilter,g=e.elementMigrateFilter,m=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),i=this.utils.createListBulletMarker,l=e.flattenList,k=e.assembleList,p=this.utils.isListBulletIndicator,n=this.utils.isContainingOnlySpaces, +q=this.utils.resolveList,u=function(a){a=CKEDITOR.tools.convertToPx(a);return isNaN(a)?a:a+"px"},r=this.utils.getStyleComponents,t=this.utils.listDtdParents,o=!1!==d.pasteFromWordRemoveFontStyles,s=!1!==d.pasteFromWordRemoveStyles;return{elementNames:[[/meta|link|script/,""]],root:function(a){a.filterChildren(c);k(a)},elements:{"^":function(a){var c;CKEDITOR.env.gecko&&(c=e.applyStyleFilter)&&c(a)},$:function(a){var v=a.name||"",e=a.attributes;v in f&&e.style&&(e.style=j([[/^(:?width|height)$/,null, +u]])(e.style)||"");if(v.match(/h\d/)){a.filterChildren(c);if(q(a))return;g(d["format_"+v])(a)}else if(v in b.$inline)a.filterChildren(c),n(a)&&delete a.name;else if(-1!=v.indexOf(":")&&-1==v.indexOf("cke")){a.filterChildren(c);if("v:imagedata"==v){if(v=a.attributes["o:href"])a.attributes.src=v;a.name="img";return}delete a.name}v in t&&(a.filterChildren(c),k(a))},style:function(a){if(CKEDITOR.env.gecko){var a=(a=a.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/))&&a[1],c={};a&& +(a.replace(/[\n\r]/g,"").replace(/(.+?)\{(.+?)\}/g,function(a,b,F){for(var b=b.split(","),a=b.length,d=0;d<a;d++)CKEDITOR.tools.trim(b[d]).replace(/^(\w+)(\.[\w-]+)?$/g,function(a,b,d){b=b||"*";d=d.substring(1,d.length);d.match(/MsoNormal/)||(c[b]||(c[b]={}),d?c[b][d]=F:c[b]=F)})}),e.applyStyleFilter=function(a){var b=c["*"]?"*":a.name,d=a.attributes&&a.attributes["class"];b in c&&(b=c[b],"object"==typeof b&&(b=b[d]),b&&a.addStyle(b,!0))})}return!1},p:function(a){if(/MsoListParagraph/i.exec(a.attributes["class"])|| +a.getStyle("mso-list")){var b=a.firstChild(function(a){return a.type==CKEDITOR.NODE_TEXT&&!n(a.parent)});(b=b&&b.parent)&&b.addStyle("mso-list","Ignore")}a.filterChildren(c);q(a)||(d.enterMode==CKEDITOR.ENTER_BR?(delete a.name,a.add(new CKEDITOR.htmlParser.element("br"))):g(d["format_"+(d.enterMode==CKEDITOR.ENTER_P?"p":"div")])(a))},div:function(a){var c=a.onlyChild();if(c&&"table"==c.name){var b=a.attributes;c.attributes=CKEDITOR.tools.extend(c.attributes,b);b.style&&c.addStyle(b.style);c=new CKEDITOR.htmlParser.element("div"); +c.addStyle("clear","both");a.add(c);delete a.name}},td:function(a){a.getAncestor("thead")&&(a.name="th")},ol:l,ul:l,dl:l,font:function(a){if(p(a.parent))delete a.name;else{a.filterChildren(c);var b=a.attributes,d=b.style,e=a.parent;"font"==e.name?(CKEDITOR.tools.extend(e.attributes,a.attributes),d&&e.addStyle(d),delete a.name):(d=(d||"").split(";"),b.color&&("#000000"!=b.color&&d.push("color:"+b.color),delete b.color),b.face&&(d.push("font-family:"+b.face),delete b.face),b.size&&(d.push("font-size:"+ +(3<b.size?"large":3>b.size?"small":"medium")),delete b.size),a.name="span",a.addStyle(d.join(";")))}},span:function(a){if(p(a.parent))return!1;a.filterChildren(c);if(n(a))return delete a.name,null;if(p(a)){var b=a.firstChild(function(a){return a.value||"img"==a.name}),e=(b=b&&(b.value||"l."))&&b.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);if(e)return b=i(e,b),(a=a.getAncestor("span"))&&/ mso-hide:\s*all|display:\s*none /.test(a.attributes.style)&&(b.attributes["cke:ignored"]=1),b}if(e=(b=a.attributes)&&b.style)b.style= +j([["line-height"],[/^font-family$/,null,!o?m(d.font_style,"family"):null],[/^font-size$/,null,!o?m(d.fontSize_style,"size"):null],[/^color$/,null,!o?m(d.colorButton_foreStyle,"color"):null],[/^background-color$/,null,!o?m(d.colorButton_backStyle,"color"):null]])(e,a)||"";b.style||delete b.style;CKEDITOR.tools.isEmpty(b)&&delete a.name;return null},b:g(d.coreStyles_bold),i:g(d.coreStyles_italic),u:g(d.coreStyles_underline),s:g(d.coreStyles_strike),sup:g(d.coreStyles_superscript),sub:g(d.coreStyles_subscript), +a:function(a){a=a.attributes;a.href&&a.href.match(/^file:\/\/\/[\S]+#/i)&&(a.href=a.href.replace(/^file:\/\/\/[^#]+/i,""))},"cke:listbullet":function(a){a.getAncestor(/h\d/)&&!d.pasteFromWordNumberedHeadingToList&&delete a.name}},attributeNames:[[/^onmouse(:?out|over)/,""],[/^onload$/,""],[/(?:v|o):\w+/,""],[/^lang/,""]],attributes:{style:j(s?[[/^list-style-type$/,null],[/^margin$|^margin-(?!bottom|top)/,null,function(a,b,c){if(b.name in{p:1,div:1}){b="ltr"==d.contentsLangDirection?"margin-left": +"margin-right";if("margin"==c)a=r(c,a,[b])[b];else if(c!=b)return null;if(a&&!D.test(a))return[b,a]}return null}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(a,b){if("img"==b.name)return a}],[/^width|height$/,null,function(a,b){if(b.name in{table:1,td:1,th:1,img:1})return a}]]:[[/^mso-/],[/-color$/,null,function(a){if("transparent"==a)return!1;if(CKEDITOR.env.gecko)return a.replace(/-moz-use-text-color/g,"transparent")}],[/^margin$/,D],["text-indent","0cm"],["page-break-before"], +["tab-stops"],["display","none"],o?[/font-?/]:null],s),width:function(a,c){if(c.name in b.$tableContent)return!1},border:function(a,c){if(c.name in b.$tableContent)return!1},"class":h,bgcolor:h,valign:s?h:function(a,b){b.addStyle("vertical-align",a);return!1}},comment:!CKEDITOR.env.ie?function(a,b){var c=a.match(/<img.*?>/),d=a.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);return d?(d=(c=d[1]||c&&"l.")&&c.match(/>(?:[(]?)([^\s]+?)([.)]?)</),i(d,c)):CKEDITOR.env.gecko&&c?(c=CKEDITOR.htmlParser.fragment.fromHtml(c[0]).children[0], +(d=(d=(d=b.previous)&&d.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/))&&d[1])&&(c.attributes.src=d),c):!1}:h}}},G=function(){this.dataFilter=new CKEDITOR.htmlParser.filter};G.prototype={toHtml:function(a){var a=CKEDITOR.htmlParser.fragment.fromHtml(a),c=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(c,this.dataFilter);return c.getHtml(!0)}};CKEDITOR.cleanWord=function(a,c){CKEDITOR.env.gecko&&(a=a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi,"$1$2$3"));CKEDITOR.env.webkit&& +(a=a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi,"$1<span>$2</span>$3"));var b=new G,f=b.dataFilter;f.addRules(CKEDITOR.plugins.pastefromword.getRules(c,f));c.fire("beforeCleanWord",{filter:f});try{a=b.toHtml(a)}catch(d){alert(c.lang.pastefromword.error)}a=a.replace(/cke:.*?".*?"/g,"");a=a.replace(/style=""/g,"");return a=a.replace(/<span>/g,"")}})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js b/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js new file mode 100644 index 00000000..f41e86d1 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/dialogs/placeholder.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("placeholder",function(a){var b=a.lang.placeholder,a=a.lang.common.generalTab;return{title:b.title,minWidth:300,minHeight:80,contents:[{id:"info",label:a,title:a,elements:[{id:"name",type:"text",style:"width: 100%;",label:b.name,"default":"",required:!0,validate:CKEDITOR.dialog.validate.regex(/^[^\[\]\<\>]+$/,b.invalidName),setup:function(a){this.setValue(a.data.name)},commit:function(a){a.setData("name",this.getValue())}}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png b/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png new file mode 100644 index 00000000..0b7abcec Binary files /dev/null and b/www/lib/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png differ diff --git a/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png b/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png new file mode 100644 index 00000000..cb12b481 Binary files /dev/null and b/www/lib/ckeditor/plugins/placeholder/icons/placeholder.png differ diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ar.js b/www/lib/ckeditor/plugins/placeholder/lang/ar.js new file mode 100644 index 00000000..2ca7673e --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ar",{title:"خصائص الربط الموضعي",toolbar:"الربط الموضعي",name:"اسم الربط الموضعي",invalidName:"لا يمكن ترك الربط الموضعي فارغا و لا أن يحتوي على الرموز التالية [, ], <, >",pathName:"الربط الموضعي"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/bg.js b/www/lib/ckeditor/plugins/placeholder/lang/bg.js new file mode 100644 index 00000000..78bd6649 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","bg",{title:"Настройки на контейнера",toolbar:"Нов контейнер",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ca.js b/www/lib/ckeditor/plugins/placeholder/lang/ca.js new file mode 100644 index 00000000..f4115f16 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ca",{title:"Propietats del marcador de posició",toolbar:"Marcador de posició",name:"Nom del marcador de posició",invalidName:"El marcador de posició no pot estar en blanc ni pot contenir cap dels caràcters següents: [,],<,>",pathName:"marcador de posició"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/cs.js b/www/lib/ckeditor/plugins/placeholder/lang/cs.js new file mode 100644 index 00000000..3c24a677 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cs",{title:"Vlastnosti vyhrazeného prostoru",toolbar:"Vytvořit vyhrazený prostor",name:"Název vyhrazeného prostoru",invalidName:"Vyhrazený prostor nesmí být prázdný či obsahovat následující znaky: [, ], <, >",pathName:"Vyhrazený prostor"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/cy.js b/www/lib/ckeditor/plugins/placeholder/lang/cy.js new file mode 100644 index 00000000..55022779 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","cy",{title:"Priodweddau'r Daliwr Geiriau",toolbar:"Daliwr Geiriau",name:"Enw'r Daliwr Geiriau",invalidName:"Dyw'r daliwr geiriau methu â bod yn wag ac na all gynnyws y nodau [, ], <, > ",pathName:"daliwr geiriau"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/da.js b/www/lib/ckeditor/plugins/placeholder/lang/da.js new file mode 100644 index 00000000..dcbee5b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","da",{title:"Egenskaber for pladsholder",toolbar:"Opret pladsholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/de.js b/www/lib/ckeditor/plugins/placeholder/lang/de.js new file mode 100644 index 00000000..be828cda --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","de",{title:"Platzhalter Einstellungen",toolbar:"Platzhalter erstellen",name:"Platzhalter Name",invalidName:"Der Platzhalter darf nicht leer sein und folgende Zeichen nicht enthalten: [, ], <, >",pathName:"Platzhalter"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/el.js b/www/lib/ckeditor/plugins/placeholder/lang/el.js new file mode 100644 index 00000000..af6b7526 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","el",{title:"Ιδιότητες Υποκαθιστόμενου Κειμένου",toolbar:"Δημιουργία Υποκαθιστόμενου Κειμένου",name:"Όνομα Υποκαθιστόμενου Κειμένου",invalidName:"Το υποκαθιστόμενου κειμένο πρέπει να μην είναι κενό και να μην έχει κανέναν από τους ακόλουθους χαρακτήρες: [, ], <, >",pathName:"υποκαθιστόμενο κείμενο"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js b/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js new file mode 100644 index 00000000..38006937 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en-gb",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of the following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/en.js b/www/lib/ckeditor/plugins/placeholder/lang/en.js new file mode 100644 index 00000000..d91d35e0 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","en",{title:"Placeholder Properties",toolbar:"Placeholder",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/eo.js b/www/lib/ckeditor/plugins/placeholder/lang/eo.js new file mode 100644 index 00000000..7027a1ed --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eo",{title:"Atributoj de la rezervita spaco",toolbar:"Rezervita Spaco",name:"Nomo de la rezervita spaco",invalidName:"La rezervita spaco ne povas esti malplena kaj ne povas enteni la sekvajn signojn : [, ], <, >",pathName:"rezervita spaco"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/es.js b/www/lib/ckeditor/plugins/placeholder/lang/es.js new file mode 100644 index 00000000..1a9162d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","es",{title:"Propiedades del Marcador de Posición",toolbar:"Crear Marcador de Posición",name:"Nombre del Marcador de Posición",invalidName:"El marcador de posición no puede estar vacío y no puede contener ninguno de los siguientes caracteres: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/et.js b/www/lib/ckeditor/plugins/placeholder/lang/et.js new file mode 100644 index 00000000..f6f3dac6 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","et",{title:"Kohahoidja omadused",toolbar:"Kohahoidja loomine",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/eu.js b/www/lib/ckeditor/plugins/placeholder/lang/eu.js new file mode 100644 index 00000000..663ac7a3 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","eu",{title:"Leku-marka Aukerak",toolbar:"Leku-marka sortu",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/fa.js b/www/lib/ckeditor/plugins/placeholder/lang/fa.js new file mode 100644 index 00000000..967e55d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fa",{title:"ویژگی‌های محل نگهداری",toolbar:"ایجاد یک محل نگهداری",name:"نام مکان نگهداری",invalidName:"مکان نگهداری نمی‌تواند خالی باشد و همچنین نمی‌تواند محتوی نویسه‌های مقابل باشد: [, ], <, >",pathName:"مکان نگهداری"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/fi.js b/www/lib/ckeditor/plugins/placeholder/lang/fi.js new file mode 100644 index 00000000..5c3e1562 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fi",{title:"Paikkamerkin ominaisuudet",toolbar:"Luo paikkamerkki",name:"Paikkamerkin nimi",invalidName:"Paikkamerkki ei voi olla tyhjä eikä sisältää seuraavia merkkejä: [, ], <, >",pathName:"paikkamerkki"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js b/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js new file mode 100644 index 00000000..e803e71a --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr-ca",{title:"Propriétés de l'espace réservé",toolbar:"Créer un espace réservé",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/fr.js b/www/lib/ckeditor/plugins/placeholder/lang/fr.js new file mode 100644 index 00000000..b4c39c95 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","fr",{title:"Propriétés de l'Espace réservé",toolbar:"Créer l'Espace réservé",name:"Nom de l'espace réservé",invalidName:"L'espace réservé ne peut pas être vide ni contenir l'un de ses caractères : [, ], <, >",pathName:"espace réservé"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/gl.js b/www/lib/ckeditor/plugins/placeholder/lang/gl.js new file mode 100644 index 00000000..e4fff775 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","gl",{title:"Propiedades do marcador de posición",toolbar:"Crear un marcador de posición",name:"Nome do marcador de posición",invalidName:"O marcador de posición non pode estar baleiro e non pode conter ningún dos caracteres seguintes: [, ], <, >",pathName:"marcador de posición"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/he.js b/www/lib/ckeditor/plugins/placeholder/lang/he.js new file mode 100644 index 00000000..5202f509 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","he",{title:"מאפייני שומר מקום",toolbar:"צור שומר מקום",name:"שם שומר מקום",invalidName:"שומר מקום לא יכול להיות ריק ולא יכול להכיל את הסימנים: [, ], <, >",pathName:"שומר מקום"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/hr.js b/www/lib/ckeditor/plugins/placeholder/lang/hr.js new file mode 100644 index 00000000..866a110e --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hr",{title:"Svojstva rezerviranog mjesta",toolbar:"Napravi rezervirano mjesto",name:"Ime rezerviranog mjesta",invalidName:"Rezervirano mjesto ne može biti prazno niti može sadržavati ijedan od sljedećih znakova: [, ], <, >",pathName:"rezervirano mjesto"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/hu.js b/www/lib/ckeditor/plugins/placeholder/lang/hu.js new file mode 100644 index 00000000..a8e58e71 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","hu",{title:"Helytartó beállítások",toolbar:"Helytartó készítése",name:"Helytartó neve",invalidName:"A helytartó nem lehet üres, és nem tartalmazhatja a következő karaktereket:[, ], <, > ",pathName:"helytartó"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/id.js b/www/lib/ckeditor/plugins/placeholder/lang/id.js new file mode 100644 index 00000000..c22f138e --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","id",{title:"Properti isian sementara",toolbar:"Buat isian sementara",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/it.js b/www/lib/ckeditor/plugins/placeholder/lang/it.js new file mode 100644 index 00000000..c4ade199 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","it",{title:"Proprietà segnaposto",toolbar:"Crea segnaposto",name:"Nome segnaposto",invalidName:"Il segnaposto non può essere vuoto e non può contenere nessuno dei seguenti caratteri: [, ], <, >",pathName:"segnaposto"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ja.js b/www/lib/ckeditor/plugins/placeholder/lang/ja.js new file mode 100644 index 00000000..c1ed5b5f --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ja",{title:"プレースホルダのプロパティ",toolbar:"プレースホルダを作成",name:"プレースホルダ名",invalidName:"プレースホルダは空欄にできません。また、[, ], <, > の文字は使用できません。",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/km.js b/www/lib/ckeditor/plugins/placeholder/lang/km.js new file mode 100644 index 00000000..0ae3e81b --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","km",{title:"លក្ខណៈ Placeholder",toolbar:"បង្កើត Placeholder",name:"ឈ្មោះ Placeholder",invalidName:"Placeholder មិន​អាច​ទទេរ ហើយក៏​មិន​អាច​មាន​តួ​អក្សរ​ទាំង​នេះ​ទេ៖ [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ko.js b/www/lib/ckeditor/plugins/placeholder/lang/ko.js new file mode 100644 index 00000000..2974ee2c --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ko",{title:"플레이스홀도 속성",toolbar:"플레이스홀더 생성",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ku.js b/www/lib/ckeditor/plugins/placeholder/lang/ku.js new file mode 100644 index 00000000..8f62811f --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ku",{title:"خاسیەتی شوێن هەڵگر",toolbar:"درووستکردنی شوێن هەڵگر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/lv.js b/www/lib/ckeditor/plugins/placeholder/lang/lv.js new file mode 100644 index 00000000..b2ba800e --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","lv",{title:"Viettura uzstādījumi",toolbar:"Izveidot vietturi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/nb.js b/www/lib/ckeditor/plugins/placeholder/lang/nb.js new file mode 100644 index 00000000..b379e52a --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nb",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/nl.js b/www/lib/ckeditor/plugins/placeholder/lang/nl.js new file mode 100644 index 00000000..2c743ed6 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","nl",{title:"Eigenschappen placeholder",toolbar:"Placeholder aanmaken",name:"Naam placeholder",invalidName:"De placeholder mag niet leeg zijn, en mag niet een van de volgende tekens bevatten: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/no.js b/www/lib/ckeditor/plugins/placeholder/lang/no.js new file mode 100644 index 00000000..e2192cd8 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","no",{title:"Egenskaper for plassholder",toolbar:"Opprett plassholder",name:"Navn på plassholder",invalidName:"Plassholderen kan ikke være tom, og kan ikke inneholde følgende tegn: [, ], <, >",pathName:"plassholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/pl.js b/www/lib/ckeditor/plugins/placeholder/lang/pl.js new file mode 100644 index 00000000..df0c3aee --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pl",{title:"Właściwości wypełniacza",toolbar:"Utwórz wypełniacz",name:"Nazwa wypełniacza",invalidName:"Wypełniacz nie może być pusty ani nie może zawierać żadnego z następujących znaków: [, ], < oraz >",pathName:"wypełniacz"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js b/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js new file mode 100644 index 00000000..e438cc16 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt-br",{title:"Propriedades do Espaço Reservado",toolbar:"Criar Espaço Reservado",name:"Nome do Espaço Reservado",invalidName:"O espaço reservado não pode estar vazio e não pode conter nenhum dos seguintes caracteres: [, ], <, >",pathName:"Espaço Reservado"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/pt.js b/www/lib/ckeditor/plugins/placeholder/lang/pt.js new file mode 100644 index 00000000..b6dc1150 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","pt",{title:"Propriedades dos Símbolos",toolbar:"Símbolo",name:"Nome do Símbolo",invalidName:"O símbolo não pode estar em branco e não pode conter qualquer dos seguintes carateres: [, ], <, >",pathName:"símbolo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ru.js b/www/lib/ckeditor/plugins/placeholder/lang/ru.js new file mode 100644 index 00000000..11572b14 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ru",{title:"Свойства плейсхолдера",toolbar:"Создать плейсхолдер",name:"Имя плейсхолдера",invalidName:'Плейсхолдер не может быть пустым и содержать один из следующих символов: "[, ], <, >"',pathName:"плейсхолдер"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/si.js b/www/lib/ckeditor/plugins/placeholder/lang/si.js new file mode 100644 index 00000000..3fe4e3d1 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","si",{title:"ස්ථාන හීම්කරුගේ ",toolbar:"ස්ථාන හීම්කරු නිර්මාණය කිරීම",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/sk.js b/www/lib/ckeditor/plugins/placeholder/lang/sk.js new file mode 100644 index 00000000..88800a99 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sk",{title:"Vlastnosti placeholdera",toolbar:"Vytvoriť placeholder",name:"Názov placeholdera",invalidName:"Placeholder nemôže byť prázdny a nemôže obsahovať žiadny z nasledujúcich znakov: [,],<,>",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/sl.js b/www/lib/ckeditor/plugins/placeholder/lang/sl.js new file mode 100644 index 00000000..60114c35 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sl",{title:"Lastnosti Ograde",toolbar:"Ustvari Ogrado",name:"Placeholder Ime",invalidName:"Placeholder ne more biti prazen in ne sme vsebovati katerega od naslednjih znakov: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/sq.js b/www/lib/ckeditor/plugins/placeholder/lang/sq.js new file mode 100644 index 00000000..6f54e135 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sq",{title:"Karakteristikat e Mbajtësit të Vendit",toolbar:"Krijo Mabjtës Vendi",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/sv.js b/www/lib/ckeditor/plugins/placeholder/lang/sv.js new file mode 100644 index 00000000..66a19562 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","sv",{title:"Innehållsrutans egenskaper",toolbar:"Skapa innehållsruta",name:"Innehållsrutans namn",invalidName:"Innehållsrutan får inte vara tom och får inte innehålla någon av följande tecken: [,],<,>",pathName:"innehållsruta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/th.js b/www/lib/ckeditor/plugins/placeholder/lang/th.js new file mode 100644 index 00000000..41198f94 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/th.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","th",{title:"คุณสมบัติเกี่ยวกับตัวยึด",toolbar:"สร้างตัวยึด",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/tr.js b/www/lib/ckeditor/plugins/placeholder/lang/tr.js new file mode 100644 index 00000000..fc0d27dd --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tr",{title:"Yer tutucu özellikleri",toolbar:"Yer tutucu oluşturun",name:"Yer Tutucu Adı",invalidName:"Yer tutucu adı boş bırakılamaz ve şu karakterleri içeremez: [, ], <, >",pathName:"yertutucu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/tt.js b/www/lib/ckeditor/plugins/placeholder/lang/tt.js new file mode 100644 index 00000000..d636866f --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","tt",{title:"Тутырма үзлекләре",toolbar:"Тутырма",name:"Тутырма исеме",invalidName:"Тутырма буш булмаска тиеш һәм эчендә алдагы символлар булмаска тиеш: [, ], <, >",pathName:"тутырма"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/ug.js b/www/lib/ckeditor/plugins/placeholder/lang/ug.js new file mode 100644 index 00000000..db0ad2ce --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","ug",{title:"ئورۇن بەلگە خاسلىقى",toolbar:"ئورۇن بەلگە قۇر",name:"Placeholder Name",invalidName:"The placeholder can not be empty and can not contain any of following characters: [, ], <, >",pathName:"placeholder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/uk.js b/www/lib/ckeditor/plugins/placeholder/lang/uk.js new file mode 100644 index 00000000..015a82a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","uk",{title:"Налаштування Заповнювача",toolbar:"Створити Заповнювач",name:"Назва заповнювача",invalidName:"Заповнювач не може бути порожнім і не може містити наступні символи: [, ], <, >",pathName:"заповнювач"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/vi.js b/www/lib/ckeditor/plugins/placeholder/lang/vi.js new file mode 100644 index 00000000..5875e467 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","vi",{title:"Thuộc tính đặt chỗ",toolbar:"Tạo đặt chỗ",name:"Tên giữ chỗ",invalidName:"Giữ chỗ không thể để trống và không thể chứa bất kỳ ký tự sau: [,], <, >",pathName:"giữ chỗ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js b/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js new file mode 100644 index 00000000..bd67dfa8 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh-cn",{title:"占位符属性",toolbar:"占位符",name:"占位符名称",invalidName:"占位符名称不能为空,并且不能包含以下字符:[、]、<、>",pathName:"占位符"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/lang/zh.js b/www/lib/ckeditor/plugins/placeholder/lang/zh.js new file mode 100644 index 00000000..c400c26d --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("placeholder","zh",{title:"預留位置屬性",toolbar:"建立預留位置",name:"Placeholder 名稱",invalidName:"「預留位置」不可為空白且不可包含以下字元:[, ], <, >",pathName:"預留位置"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/placeholder/plugin.js b/www/lib/ckeditor/plugins/placeholder/plugin.js new file mode 100644 index 00000000..39dfb472 --- /dev/null +++ b/www/lib/ckeditor/plugins/placeholder/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("placeholder",{requires:"widget,dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"placeholder",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_placeholder{background-color:#ff0}")},init:function(a){var b=a.lang.placeholder;CKEDITOR.dialog.add("placeholder",this.path+"dialogs/placeholder.js");a.widgets.add("placeholder",{dialog:"placeholder", +pathName:b.pathName,template:'<span class="cke_placeholder">[[]]</span>',downcast:function(){return new CKEDITOR.htmlParser.text("[["+this.data.name+"]]")},init:function(){this.setData("name",this.element.getText().slice(2,-2))},data:function(){this.element.setText("[["+this.data.name+"]]")}});a.ui.addButton&&a.ui.addButton("CreatePlaceholder",{label:b.toolbar,command:"placeholder",toolbar:"insert,5",icon:"placeholder"})},afterInit:function(a){var b=/\[\[([^\[\]])+\]\]/g;a.dataProcessor.dataFilter.addRules({text:function(f, +d){var e=d.parent&&CKEDITOR.dtd[d.parent.name];if(!e||e.span)return f.replace(b,function(b){var c=null,c=new CKEDITOR.htmlParser.element("span",{"class":"cke_placeholder"});c.add(new CKEDITOR.htmlParser.text(b));c=a.widgets.wrapElement(c,"placeholder");return c.getOuterHtml()})}})}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png b/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png new file mode 100644 index 00000000..cd64e19a Binary files /dev/null and b/www/lib/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png differ diff --git a/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png b/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png new file mode 100644 index 00000000..402db20e Binary files /dev/null and b/www/lib/ckeditor/plugins/preview/icons/hidpi/preview.png differ diff --git a/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png b/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png new file mode 100644 index 00000000..1c9d9787 Binary files /dev/null and b/www/lib/ckeditor/plugins/preview/icons/preview-rtl.png differ diff --git a/www/lib/ckeditor/plugins/preview/icons/preview.png b/www/lib/ckeditor/plugins/preview/icons/preview.png new file mode 100644 index 00000000..162b44b8 Binary files /dev/null and b/www/lib/ckeditor/plugins/preview/icons/preview.png differ diff --git a/www/lib/ckeditor/plugins/preview/lang/af.js b/www/lib/ckeditor/plugins/preview/lang/af.js new file mode 100644 index 00000000..97a16944 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","af",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ar.js b/www/lib/ckeditor/plugins/preview/lang/ar.js new file mode 100644 index 00000000..a128ad1b --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ar",{preview:"معاينة الصفحة"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/bg.js b/www/lib/ckeditor/plugins/preview/lang/bg.js new file mode 100644 index 00000000..5b88c365 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bg",{preview:"Преглед"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/bn.js b/www/lib/ckeditor/plugins/preview/lang/bn.js new file mode 100644 index 00000000..b95a1b55 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bn",{preview:"প্রিভিউ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/bs.js b/www/lib/ckeditor/plugins/preview/lang/bs.js new file mode 100644 index 00000000..1418f764 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","bs",{preview:"Prikaži"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ca.js b/www/lib/ckeditor/plugins/preview/lang/ca.js new file mode 100644 index 00000000..73458dd2 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ca",{preview:"Visualització prèvia"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/cs.js b/www/lib/ckeditor/plugins/preview/lang/cs.js new file mode 100644 index 00000000..f00d6eee --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cs",{preview:"Náhled"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/cy.js b/www/lib/ckeditor/plugins/preview/lang/cy.js new file mode 100644 index 00000000..071c8d8d --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","cy",{preview:"Rhagolwg"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/da.js b/www/lib/ckeditor/plugins/preview/lang/da.js new file mode 100644 index 00000000..01f18bc8 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","da",{preview:"Vis eksempel"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/de.js b/www/lib/ckeditor/plugins/preview/lang/de.js new file mode 100644 index 00000000..7c57cba3 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","de",{preview:"Vorschau"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/el.js b/www/lib/ckeditor/plugins/preview/lang/el.js new file mode 100644 index 00000000..4aaeeb4b --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","el",{preview:"Προεπισκόπιση"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/en-au.js b/www/lib/ckeditor/plugins/preview/lang/en-au.js new file mode 100644 index 00000000..f10aa05e --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-au",{preview:"Preview"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/en-ca.js b/www/lib/ckeditor/plugins/preview/lang/en-ca.js new file mode 100644 index 00000000..3a7244b2 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-ca",{preview:"Preview"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/en-gb.js b/www/lib/ckeditor/plugins/preview/lang/en-gb.js new file mode 100644 index 00000000..78d19abd --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en-gb",{preview:"Preview"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/en.js b/www/lib/ckeditor/plugins/preview/lang/en.js new file mode 100644 index 00000000..c1901ef8 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","en",{preview:"Preview"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/eo.js b/www/lib/ckeditor/plugins/preview/lang/eo.js new file mode 100644 index 00000000..5fa3dd6b --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eo",{preview:"Vidigi Aspekton"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/es.js b/www/lib/ckeditor/plugins/preview/lang/es.js new file mode 100644 index 00000000..d507847e --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","es",{preview:"Vista Previa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/et.js b/www/lib/ckeditor/plugins/preview/lang/et.js new file mode 100644 index 00000000..a47ea46c --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","et",{preview:"Eelvaade"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/eu.js b/www/lib/ckeditor/plugins/preview/lang/eu.js new file mode 100644 index 00000000..ac83687c --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","eu",{preview:"Aurrebista"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/fa.js b/www/lib/ckeditor/plugins/preview/lang/fa.js new file mode 100644 index 00000000..ad85c381 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fa",{preview:"پیشنمایش"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/fi.js b/www/lib/ckeditor/plugins/preview/lang/fi.js new file mode 100644 index 00000000..6785c5b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fi",{preview:"Esikatsele"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/fo.js b/www/lib/ckeditor/plugins/preview/lang/fo.js new file mode 100644 index 00000000..779ef877 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fo",{preview:"Frumsýning"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/fr-ca.js b/www/lib/ckeditor/plugins/preview/lang/fr-ca.js new file mode 100644 index 00000000..3731a101 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr-ca",{preview:"Prévisualiser"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/fr.js b/www/lib/ckeditor/plugins/preview/lang/fr.js new file mode 100644 index 00000000..ca8852b4 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","fr",{preview:"Aperçu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/gl.js b/www/lib/ckeditor/plugins/preview/lang/gl.js new file mode 100644 index 00000000..ab8a82a2 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gl",{preview:"Vista previa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/gu.js b/www/lib/ckeditor/plugins/preview/lang/gu.js new file mode 100644 index 00000000..e7b298b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","gu",{preview:"પૂર્વદર્શન"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/he.js b/www/lib/ckeditor/plugins/preview/lang/he.js new file mode 100644 index 00000000..420a9340 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","he",{preview:"תצוגה מקדימה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/hi.js b/www/lib/ckeditor/plugins/preview/lang/hi.js new file mode 100644 index 00000000..397d2786 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hi",{preview:"प्रीव्यू"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/hr.js b/www/lib/ckeditor/plugins/preview/lang/hr.js new file mode 100644 index 00000000..5a85fc9c --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hr",{preview:"Pregledaj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/hu.js b/www/lib/ckeditor/plugins/preview/lang/hu.js new file mode 100644 index 00000000..b96a4360 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","hu",{preview:"Előnézet"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/id.js b/www/lib/ckeditor/plugins/preview/lang/id.js new file mode 100644 index 00000000..8c7819d2 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","id",{preview:"Pratinjau"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/is.js b/www/lib/ckeditor/plugins/preview/lang/is.js new file mode 100644 index 00000000..5fac3cd4 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","is",{preview:"Forskoða"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/it.js b/www/lib/ckeditor/plugins/preview/lang/it.js new file mode 100644 index 00000000..a9453f97 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","it",{preview:"Anteprima"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ja.js b/www/lib/ckeditor/plugins/preview/lang/ja.js new file mode 100644 index 00000000..6b7cd82f --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ja",{preview:"プレビュー"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ka.js b/www/lib/ckeditor/plugins/preview/lang/ka.js new file mode 100644 index 00000000..bc1590db --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ka",{preview:"გადახედვა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/km.js b/www/lib/ckeditor/plugins/preview/lang/km.js new file mode 100644 index 00000000..68ab55fa --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","km",{preview:"មើល​ជា​មុន"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ko.js b/www/lib/ckeditor/plugins/preview/lang/ko.js new file mode 100644 index 00000000..ac824da1 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ko",{preview:"미리보기"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ku.js b/www/lib/ckeditor/plugins/preview/lang/ku.js new file mode 100644 index 00000000..19594b66 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ku",{preview:"پێشبینین"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/lt.js b/www/lib/ckeditor/plugins/preview/lang/lt.js new file mode 100644 index 00000000..814a9213 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lt",{preview:"Peržiūra"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/lv.js b/www/lib/ckeditor/plugins/preview/lang/lv.js new file mode 100644 index 00000000..7a27eb2b --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","lv",{preview:"Priekšskatīt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/mk.js b/www/lib/ckeditor/plugins/preview/lang/mk.js new file mode 100644 index 00000000..b0beed9c --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mk",{preview:"Preview"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/mn.js b/www/lib/ckeditor/plugins/preview/lang/mn.js new file mode 100644 index 00000000..6f2448c2 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","mn",{preview:"Уридчлан харах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ms.js b/www/lib/ckeditor/plugins/preview/lang/ms.js new file mode 100644 index 00000000..f3c596ea --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ms",{preview:"Prebiu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/nb.js b/www/lib/ckeditor/plugins/preview/lang/nb.js new file mode 100644 index 00000000..ea20b380 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nb",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/nl.js b/www/lib/ckeditor/plugins/preview/lang/nl.js new file mode 100644 index 00000000..ed67f978 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","nl",{preview:"Voorbeeld"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/no.js b/www/lib/ckeditor/plugins/preview/lang/no.js new file mode 100644 index 00000000..0c13be89 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","no",{preview:"Forhåndsvis"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/pl.js b/www/lib/ckeditor/plugins/preview/lang/pl.js new file mode 100644 index 00000000..11f306e5 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pl",{preview:"Podgląd"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/pt-br.js b/www/lib/ckeditor/plugins/preview/lang/pt-br.js new file mode 100644 index 00000000..e7f58261 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt-br",{preview:"Visualizar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/pt.js b/www/lib/ckeditor/plugins/preview/lang/pt.js new file mode 100644 index 00000000..92e354db --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","pt",{preview:"Pré-visualizar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ro.js b/www/lib/ckeditor/plugins/preview/lang/ro.js new file mode 100644 index 00000000..646e2319 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ro",{preview:"Previzualizare"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ru.js b/www/lib/ckeditor/plugins/preview/lang/ru.js new file mode 100644 index 00000000..11c59a41 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ru",{preview:"Предварительный просмотр"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/si.js b/www/lib/ckeditor/plugins/preview/lang/si.js new file mode 100644 index 00000000..a205a154 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","si",{preview:"නැවත "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/sk.js b/www/lib/ckeditor/plugins/preview/lang/sk.js new file mode 100644 index 00000000..abee94b1 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sk",{preview:"Náhľad"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/sl.js b/www/lib/ckeditor/plugins/preview/lang/sl.js new file mode 100644 index 00000000..a5ba8ba7 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sl",{preview:"Predogled"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/sq.js b/www/lib/ckeditor/plugins/preview/lang/sq.js new file mode 100644 index 00000000..ef5e65b6 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sq",{preview:"Parashiko"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/sr-latn.js b/www/lib/ckeditor/plugins/preview/lang/sr-latn.js new file mode 100644 index 00000000..8c50b69d --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr-latn",{preview:"Izgled stranice"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/sr.js b/www/lib/ckeditor/plugins/preview/lang/sr.js new file mode 100644 index 00000000..c01f9362 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sr",{preview:"Изглед странице"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/sv.js b/www/lib/ckeditor/plugins/preview/lang/sv.js new file mode 100644 index 00000000..f5a3f5aa --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","sv",{preview:"Förhandsgranska"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/th.js b/www/lib/ckeditor/plugins/preview/lang/th.js new file mode 100644 index 00000000..047e25f1 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","th",{preview:"ดูหน้าเอกสารตัวอย่าง"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/tr.js b/www/lib/ckeditor/plugins/preview/lang/tr.js new file mode 100644 index 00000000..dd331bd1 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tr",{preview:"Ön İzleme"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/tt.js b/www/lib/ckeditor/plugins/preview/lang/tt.js new file mode 100644 index 00000000..9b5e62ce --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","tt",{preview:"Карап алу"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/ug.js b/www/lib/ckeditor/plugins/preview/lang/ug.js new file mode 100644 index 00000000..06549fd1 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","ug",{preview:"ئالدىن كۆزەت"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/uk.js b/www/lib/ckeditor/plugins/preview/lang/uk.js new file mode 100644 index 00000000..8d45b877 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","uk",{preview:"Попередній перегляд"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/vi.js b/www/lib/ckeditor/plugins/preview/lang/vi.js new file mode 100644 index 00000000..ba28bcc9 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","vi",{preview:"Xem trước"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/zh-cn.js b/www/lib/ckeditor/plugins/preview/lang/zh-cn.js new file mode 100644 index 00000000..69445d04 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh-cn",{preview:"预览"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/lang/zh.js b/www/lib/ckeditor/plugins/preview/lang/zh.js new file mode 100644 index 00000000..2ebf415a --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("preview","zh",{preview:"預覽"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/plugin.js b/www/lib/ckeditor/plugins/preview/plugin.js new file mode 100644 index 00000000..a21212c8 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var h,i={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var g,b=a.config,f=b.baseHref?'<base href="'+b.baseHref+'"/>':"";if(b.fullPage)g=a.getData().replace(/<head>/,"$&"+f).replace(/[^>]*(?=<\/title>)/,"$& — "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));g=a.config.docType+'<html dir="'+a.config.contentsLangDirection+ +'"><head>'+f+"<title>"+a.lang.preview.preview+""+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+""+(b+">")+a.getData()+""}f=640;b=420;d=80;try{var c=window.screen,f=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(i){}if(!1===a.fire("contentPreview",a={dataValue:g}))return!1;var c="",e;CKEDITOR.env.ie&&(window._cke_htmlToLoad=a.dataValue,e="javascript:void( (function(){document.open();"+("("+CKEDITOR.tools.fixDomain+")();").replace(/\/\/.*?\n/g, +"").replace(/parent\./g,"window.opener.")+"document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )",c="");CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a.dataValue,c=CKEDITOR.getUrl(h+"preview.html"));c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+f+",height="+b+",left="+d);CKEDITOR.env.ie&&c&&(c.location=e);!CKEDITOR.env.ie&&!CKEDITOR.env.gecko&&(e=c.document,e.open(),e.write(a.dataValue), +e.close());return!0}};CKEDITOR.plugins.add("preview",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"preview,preview-rtl",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(h=this.path,a.addCommand("preview",i),a.ui.addButton&&a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview", +toolbar:"document,40"}))}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/preview/preview.html b/www/lib/ckeditor/plugins/preview/preview.html new file mode 100644 index 00000000..8c028262 --- /dev/null +++ b/www/lib/ckeditor/plugins/preview/preview.html @@ -0,0 +1,13 @@ + diff --git a/www/lib/ckeditor/plugins/print/icons/hidpi/print.png b/www/lib/ckeditor/plugins/print/icons/hidpi/print.png new file mode 100644 index 00000000..4b72460d Binary files /dev/null and b/www/lib/ckeditor/plugins/print/icons/hidpi/print.png differ diff --git a/www/lib/ckeditor/plugins/print/icons/print.png b/www/lib/ckeditor/plugins/print/icons/print.png new file mode 100644 index 00000000..06f797dc Binary files /dev/null and b/www/lib/ckeditor/plugins/print/icons/print.png differ diff --git a/www/lib/ckeditor/plugins/print/lang/af.js b/www/lib/ckeditor/plugins/print/lang/af.js new file mode 100644 index 00000000..61185ef1 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","af",{toolbar:"Druk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ar.js b/www/lib/ckeditor/plugins/print/lang/ar.js new file mode 100644 index 00000000..b61c0946 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ar",{toolbar:"طباعة"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/bg.js b/www/lib/ckeditor/plugins/print/lang/bg.js new file mode 100644 index 00000000..6d929a8f --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bg",{toolbar:"Печат"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/bn.js b/www/lib/ckeditor/plugins/print/lang/bn.js new file mode 100644 index 00000000..005dfd28 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bn",{toolbar:"প্রিন্ট"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/bs.js b/www/lib/ckeditor/plugins/print/lang/bs.js new file mode 100644 index 00000000..a6399186 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","bs",{toolbar:"Štampaj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ca.js b/www/lib/ckeditor/plugins/print/lang/ca.js new file mode 100644 index 00000000..76f7145f --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ca",{toolbar:"Imprimeix"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/cs.js b/www/lib/ckeditor/plugins/print/lang/cs.js new file mode 100644 index 00000000..8927afb8 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cs",{toolbar:"Tisk"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/cy.js b/www/lib/ckeditor/plugins/print/lang/cy.js new file mode 100644 index 00000000..173df74e --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","cy",{toolbar:"Argraffu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/da.js b/www/lib/ckeditor/plugins/print/lang/da.js new file mode 100644 index 00000000..d816585f --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","da",{toolbar:"Udskriv"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/de.js b/www/lib/ckeditor/plugins/print/lang/de.js new file mode 100644 index 00000000..a429f6cd --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","de",{toolbar:"Drucken"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/el.js b/www/lib/ckeditor/plugins/print/lang/el.js new file mode 100644 index 00000000..d5623ebd --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","el",{toolbar:"Εκτύπωση"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/en-au.js b/www/lib/ckeditor/plugins/print/lang/en-au.js new file mode 100644 index 00000000..191384e6 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-au",{toolbar:"Print"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/en-ca.js b/www/lib/ckeditor/plugins/print/lang/en-ca.js new file mode 100644 index 00000000..aff5850e --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-ca",{toolbar:"Print"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/en-gb.js b/www/lib/ckeditor/plugins/print/lang/en-gb.js new file mode 100644 index 00000000..84a26bdf --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en-gb",{toolbar:"Print"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/en.js b/www/lib/ckeditor/plugins/print/lang/en.js new file mode 100644 index 00000000..17461f29 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","en",{toolbar:"Print"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/eo.js b/www/lib/ckeditor/plugins/print/lang/eo.js new file mode 100644 index 00000000..b0580c1c --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eo",{toolbar:"Presi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/es.js b/www/lib/ckeditor/plugins/print/lang/es.js new file mode 100644 index 00000000..5549ced6 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","es",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/et.js b/www/lib/ckeditor/plugins/print/lang/et.js new file mode 100644 index 00000000..cd192d60 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","et",{toolbar:"Printimine"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/eu.js b/www/lib/ckeditor/plugins/print/lang/eu.js new file mode 100644 index 00000000..6690c535 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","eu",{toolbar:"Inprimatu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/fa.js b/www/lib/ckeditor/plugins/print/lang/fa.js new file mode 100644 index 00000000..2445e39e --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fa",{toolbar:"چاپ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/fi.js b/www/lib/ckeditor/plugins/print/lang/fi.js new file mode 100644 index 00000000..2547e349 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fi",{toolbar:"Tulosta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/fo.js b/www/lib/ckeditor/plugins/print/lang/fo.js new file mode 100644 index 00000000..1c93841a --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fo",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/fr-ca.js b/www/lib/ckeditor/plugins/print/lang/fr-ca.js new file mode 100644 index 00000000..ecedc161 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr-ca",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/fr.js b/www/lib/ckeditor/plugins/print/lang/fr.js new file mode 100644 index 00000000..1ae9a1d2 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","fr",{toolbar:"Imprimer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/gl.js b/www/lib/ckeditor/plugins/print/lang/gl.js new file mode 100644 index 00000000..47ef182c --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gl",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/gu.js b/www/lib/ckeditor/plugins/print/lang/gu.js new file mode 100644 index 00000000..a6c1366f --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","gu",{toolbar:"પ્રિન્ટ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/he.js b/www/lib/ckeditor/plugins/print/lang/he.js new file mode 100644 index 00000000..a9e047af --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","he",{toolbar:"הדפסה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/hi.js b/www/lib/ckeditor/plugins/print/lang/hi.js new file mode 100644 index 00000000..06ae5981 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hi",{toolbar:"प्रिन्ट"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/hr.js b/www/lib/ckeditor/plugins/print/lang/hr.js new file mode 100644 index 00000000..ffbd7f74 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hr",{toolbar:"Ispiši"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/hu.js b/www/lib/ckeditor/plugins/print/lang/hu.js new file mode 100644 index 00000000..1b1fb4e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","hu",{toolbar:"Nyomtatás"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/id.js b/www/lib/ckeditor/plugins/print/lang/id.js new file mode 100644 index 00000000..4df05eb7 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","id",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/is.js b/www/lib/ckeditor/plugins/print/lang/is.js new file mode 100644 index 00000000..0fb61680 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","is",{toolbar:"Prenta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/it.js b/www/lib/ckeditor/plugins/print/lang/it.js new file mode 100644 index 00000000..f8a79668 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","it",{toolbar:"Stampa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ja.js b/www/lib/ckeditor/plugins/print/lang/ja.js new file mode 100644 index 00000000..dbfd00bc --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ja",{toolbar:"印刷"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ka.js b/www/lib/ckeditor/plugins/print/lang/ka.js new file mode 100644 index 00000000..86dc40f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ka",{toolbar:"ბეჭდვა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/km.js b/www/lib/ckeditor/plugins/print/lang/km.js new file mode 100644 index 00000000..35450b4c --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","km",{toolbar:"បោះពុម្ព"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ko.js b/www/lib/ckeditor/plugins/print/lang/ko.js new file mode 100644 index 00000000..9657b437 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ko",{toolbar:"인쇄하기"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ku.js b/www/lib/ckeditor/plugins/print/lang/ku.js new file mode 100644 index 00000000..fce60ec7 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ku",{toolbar:"چاپکردن"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/lt.js b/www/lib/ckeditor/plugins/print/lang/lt.js new file mode 100644 index 00000000..1829455b --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lt",{toolbar:"Spausdinti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/lv.js b/www/lib/ckeditor/plugins/print/lang/lv.js new file mode 100644 index 00000000..e03d0b5d --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","lv",{toolbar:"Drukāt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/mk.js b/www/lib/ckeditor/plugins/print/lang/mk.js new file mode 100644 index 00000000..63fd4d06 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mk",{toolbar:"Print"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/mn.js b/www/lib/ckeditor/plugins/print/lang/mn.js new file mode 100644 index 00000000..8df85cf9 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","mn",{toolbar:"Хэвлэх"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ms.js b/www/lib/ckeditor/plugins/print/lang/ms.js new file mode 100644 index 00000000..ca8734bd --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ms",{toolbar:"Cetak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/nb.js b/www/lib/ckeditor/plugins/print/lang/nb.js new file mode 100644 index 00000000..e65fcfd9 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nb",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/nl.js b/www/lib/ckeditor/plugins/print/lang/nl.js new file mode 100644 index 00000000..41ecffd4 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","nl",{toolbar:"Afdrukken"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/no.js b/www/lib/ckeditor/plugins/print/lang/no.js new file mode 100644 index 00000000..afb031f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","no",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/pl.js b/www/lib/ckeditor/plugins/print/lang/pl.js new file mode 100644 index 00000000..1bdbdebb --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pl",{toolbar:"Drukuj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/pt-br.js b/www/lib/ckeditor/plugins/print/lang/pt-br.js new file mode 100644 index 00000000..9246c27d --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt-br",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/pt.js b/www/lib/ckeditor/plugins/print/lang/pt.js new file mode 100644 index 00000000..a72195ba --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","pt",{toolbar:"Imprimir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ro.js b/www/lib/ckeditor/plugins/print/lang/ro.js new file mode 100644 index 00000000..2f331d22 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ro",{toolbar:"Printează"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ru.js b/www/lib/ckeditor/plugins/print/lang/ru.js new file mode 100644 index 00000000..458a9c14 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ru",{toolbar:"Печать"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/si.js b/www/lib/ckeditor/plugins/print/lang/si.js new file mode 100644 index 00000000..68d3f56d --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","si",{toolbar:"මුද්‍රණය කරන්න"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/sk.js b/www/lib/ckeditor/plugins/print/lang/sk.js new file mode 100644 index 00000000..7762bb2e --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sk",{toolbar:"Tlač"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/sl.js b/www/lib/ckeditor/plugins/print/lang/sl.js new file mode 100644 index 00000000..9f401ddb --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sl",{toolbar:"Natisni"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/sq.js b/www/lib/ckeditor/plugins/print/lang/sq.js new file mode 100644 index 00000000..bfb05a47 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sq",{toolbar:"Shtype"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/sr-latn.js b/www/lib/ckeditor/plugins/print/lang/sr-latn.js new file mode 100644 index 00000000..62cdc718 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr-latn",{toolbar:"Štampa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/sr.js b/www/lib/ckeditor/plugins/print/lang/sr.js new file mode 100644 index 00000000..74f6430e --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sr",{toolbar:"Штампа"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/sv.js b/www/lib/ckeditor/plugins/print/lang/sv.js new file mode 100644 index 00000000..14181ba8 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","sv",{toolbar:"Skriv ut"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/th.js b/www/lib/ckeditor/plugins/print/lang/th.js new file mode 100644 index 00000000..e87d3ac2 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","th",{toolbar:"สั่งพิมพ์"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/tr.js b/www/lib/ckeditor/plugins/print/lang/tr.js new file mode 100644 index 00000000..82f81f05 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tr",{toolbar:"Yazdır"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/tt.js b/www/lib/ckeditor/plugins/print/lang/tt.js new file mode 100644 index 00000000..db8ff025 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","tt",{toolbar:"Бастыру"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/ug.js b/www/lib/ckeditor/plugins/print/lang/ug.js new file mode 100644 index 00000000..6c270318 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","ug",{toolbar:"باس "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/uk.js b/www/lib/ckeditor/plugins/print/lang/uk.js new file mode 100644 index 00000000..dfde34dc --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","uk",{toolbar:"Друк"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/vi.js b/www/lib/ckeditor/plugins/print/lang/vi.js new file mode 100644 index 00000000..56573948 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","vi",{toolbar:"In"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/zh-cn.js b/www/lib/ckeditor/plugins/print/lang/zh-cn.js new file mode 100644 index 00000000..d7c2643d --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh-cn",{toolbar:"打印"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/lang/zh.js b/www/lib/ckeditor/plugins/print/lang/zh.js new file mode 100644 index 00000000..65b8840d --- /dev/null +++ b/www/lib/ckeditor/plugins/print/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("print","zh",{toolbar:"列印"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/print/plugin.js b/www/lib/ckeditor/plugins/print/plugin.js new file mode 100644 index 00000000..0b802e39 --- /dev/null +++ b/www/lib/ckeditor/plugins/print/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("print",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"print,",hidpi:!0,init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}}); +CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print")},canUndo:!1,readOnly:1,modes:{wysiwyg:1}}; \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/icons/hidpi/save.png b/www/lib/ckeditor/plugins/save/icons/hidpi/save.png new file mode 100644 index 00000000..fc59f677 Binary files /dev/null and b/www/lib/ckeditor/plugins/save/icons/hidpi/save.png differ diff --git a/www/lib/ckeditor/plugins/save/icons/save.png b/www/lib/ckeditor/plugins/save/icons/save.png new file mode 100644 index 00000000..51b8f6ee Binary files /dev/null and b/www/lib/ckeditor/plugins/save/icons/save.png differ diff --git a/www/lib/ckeditor/plugins/save/lang/af.js b/www/lib/ckeditor/plugins/save/lang/af.js new file mode 100644 index 00000000..aa5b37e3 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","af",{toolbar:"Bewaar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ar.js b/www/lib/ckeditor/plugins/save/lang/ar.js new file mode 100644 index 00000000..eb09ee54 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ar",{toolbar:"حفظ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/bg.js b/www/lib/ckeditor/plugins/save/lang/bg.js new file mode 100644 index 00000000..ecdf23c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bg",{toolbar:"Запис"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/bn.js b/www/lib/ckeditor/plugins/save/lang/bn.js new file mode 100644 index 00000000..b4e2d6c8 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bn",{toolbar:"সংরক্ষন কর"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/bs.js b/www/lib/ckeditor/plugins/save/lang/bs.js new file mode 100644 index 00000000..d94efe89 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","bs",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ca.js b/www/lib/ckeditor/plugins/save/lang/ca.js new file mode 100644 index 00000000..8704f585 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ca",{toolbar:"Desa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/cs.js b/www/lib/ckeditor/plugins/save/lang/cs.js new file mode 100644 index 00000000..e337b9e4 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cs",{toolbar:"Uložit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/cy.js b/www/lib/ckeditor/plugins/save/lang/cy.js new file mode 100644 index 00000000..1f8eb814 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","cy",{toolbar:"Cadw"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/da.js b/www/lib/ckeditor/plugins/save/lang/da.js new file mode 100644 index 00000000..1ff06c69 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","da",{toolbar:"Gem"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/de.js b/www/lib/ckeditor/plugins/save/lang/de.js new file mode 100644 index 00000000..603359ba --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","de",{toolbar:"Speichern"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/el.js b/www/lib/ckeditor/plugins/save/lang/el.js new file mode 100644 index 00000000..1aaf9ef2 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","el",{toolbar:"Αποθήκευση"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/en-au.js b/www/lib/ckeditor/plugins/save/lang/en-au.js new file mode 100644 index 00000000..0ace64e5 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-au",{toolbar:"Save"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/en-ca.js b/www/lib/ckeditor/plugins/save/lang/en-ca.js new file mode 100644 index 00000000..993a86e4 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-ca",{toolbar:"Save"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/en-gb.js b/www/lib/ckeditor/plugins/save/lang/en-gb.js new file mode 100644 index 00000000..19c382db --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en-gb",{toolbar:"Save"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/en.js b/www/lib/ckeditor/plugins/save/lang/en.js new file mode 100644 index 00000000..1ee67693 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","en",{toolbar:"Save"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/eo.js b/www/lib/ckeditor/plugins/save/lang/eo.js new file mode 100644 index 00000000..dd7a1940 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eo",{toolbar:"Konservi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/es.js b/www/lib/ckeditor/plugins/save/lang/es.js new file mode 100644 index 00000000..b07eea63 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","es",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/et.js b/www/lib/ckeditor/plugins/save/lang/et.js new file mode 100644 index 00000000..5bfb76ca --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","et",{toolbar:"Salvestamine"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/eu.js b/www/lib/ckeditor/plugins/save/lang/eu.js new file mode 100644 index 00000000..fec1f853 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","eu",{toolbar:"Gorde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/fa.js b/www/lib/ckeditor/plugins/save/lang/fa.js new file mode 100644 index 00000000..fb3f2a39 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fa",{toolbar:"ذخیره"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/fi.js b/www/lib/ckeditor/plugins/save/lang/fi.js new file mode 100644 index 00000000..93d4db54 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fi",{toolbar:"Tallenna"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/fo.js b/www/lib/ckeditor/plugins/save/lang/fo.js new file mode 100644 index 00000000..4b452683 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fo",{toolbar:"Goym"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/fr-ca.js b/www/lib/ckeditor/plugins/save/lang/fr-ca.js new file mode 100644 index 00000000..eacb6ea5 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr-ca",{toolbar:"Sauvegarder"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/fr.js b/www/lib/ckeditor/plugins/save/lang/fr.js new file mode 100644 index 00000000..8df018d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","fr",{toolbar:"Enregistrer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/gl.js b/www/lib/ckeditor/plugins/save/lang/gl.js new file mode 100644 index 00000000..1bd43328 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gl",{toolbar:"Gardar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/gu.js b/www/lib/ckeditor/plugins/save/lang/gu.js new file mode 100644 index 00000000..683842a8 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","gu",{toolbar:"સેવ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/he.js b/www/lib/ckeditor/plugins/save/lang/he.js new file mode 100644 index 00000000..de52496b --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","he",{toolbar:"שמירה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/hi.js b/www/lib/ckeditor/plugins/save/lang/hi.js new file mode 100644 index 00000000..36e3a750 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hi",{toolbar:"सेव"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/hr.js b/www/lib/ckeditor/plugins/save/lang/hr.js new file mode 100644 index 00000000..cd0d6f42 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hr",{toolbar:"Snimi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/hu.js b/www/lib/ckeditor/plugins/save/lang/hu.js new file mode 100644 index 00000000..e2de2005 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","hu",{toolbar:"Mentés"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/id.js b/www/lib/ckeditor/plugins/save/lang/id.js new file mode 100644 index 00000000..7f1760b6 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","id",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/is.js b/www/lib/ckeditor/plugins/save/lang/is.js new file mode 100644 index 00000000..5f985898 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","is",{toolbar:"Vista"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/it.js b/www/lib/ckeditor/plugins/save/lang/it.js new file mode 100644 index 00000000..fdfe51a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","it",{toolbar:"Salva"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ja.js b/www/lib/ckeditor/plugins/save/lang/ja.js new file mode 100644 index 00000000..41801c4e --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ja",{toolbar:"保存"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ka.js b/www/lib/ckeditor/plugins/save/lang/ka.js new file mode 100644 index 00000000..d3d0456c --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ka",{toolbar:"ჩაწერა"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/km.js b/www/lib/ckeditor/plugins/save/lang/km.js new file mode 100644 index 00000000..82f44957 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","km",{toolbar:"រក្សាទុក"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ko.js b/www/lib/ckeditor/plugins/save/lang/ko.js new file mode 100644 index 00000000..f1a4191c --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ko",{toolbar:"저장하기"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ku.js b/www/lib/ckeditor/plugins/save/lang/ku.js new file mode 100644 index 00000000..649a8cc1 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ku",{toolbar:"پاشکەوتکردن"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/lt.js b/www/lib/ckeditor/plugins/save/lang/lt.js new file mode 100644 index 00000000..ea89ceee --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lt",{toolbar:"Išsaugoti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/lv.js b/www/lib/ckeditor/plugins/save/lang/lv.js new file mode 100644 index 00000000..6d8c0c83 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","lv",{toolbar:"Saglabāt"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/mk.js b/www/lib/ckeditor/plugins/save/lang/mk.js new file mode 100644 index 00000000..0405ba87 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mk",{toolbar:"Save"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/mn.js b/www/lib/ckeditor/plugins/save/lang/mn.js new file mode 100644 index 00000000..ed1d40aa --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","mn",{toolbar:"Хадгалах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ms.js b/www/lib/ckeditor/plugins/save/lang/ms.js new file mode 100644 index 00000000..8b557e7a --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ms",{toolbar:"Simpan"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/nb.js b/www/lib/ckeditor/plugins/save/lang/nb.js new file mode 100644 index 00000000..0bce93de --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nb",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/nl.js b/www/lib/ckeditor/plugins/save/lang/nl.js new file mode 100644 index 00000000..46110539 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","nl",{toolbar:"Opslaan"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/no.js b/www/lib/ckeditor/plugins/save/lang/no.js new file mode 100644 index 00000000..d58f02e4 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","no",{toolbar:"Lagre"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/pl.js b/www/lib/ckeditor/plugins/save/lang/pl.js new file mode 100644 index 00000000..8214669e --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pl",{toolbar:"Zapisz"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/pt-br.js b/www/lib/ckeditor/plugins/save/lang/pt-br.js new file mode 100644 index 00000000..64c537a2 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt-br",{toolbar:"Salvar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/pt.js b/www/lib/ckeditor/plugins/save/lang/pt.js new file mode 100644 index 00000000..a30393be --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","pt",{toolbar:"Guardar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ro.js b/www/lib/ckeditor/plugins/save/lang/ro.js new file mode 100644 index 00000000..05329bcd --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ro",{toolbar:"Salvează"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ru.js b/www/lib/ckeditor/plugins/save/lang/ru.js new file mode 100644 index 00000000..9c755418 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ru",{toolbar:"Сохранить"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/si.js b/www/lib/ckeditor/plugins/save/lang/si.js new file mode 100644 index 00000000..6305fe65 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","si",{toolbar:"ආරක්ෂා කරන්න"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/sk.js b/www/lib/ckeditor/plugins/save/lang/sk.js new file mode 100644 index 00000000..f3ea59bd --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sk",{toolbar:"Uložiť"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/sl.js b/www/lib/ckeditor/plugins/save/lang/sl.js new file mode 100644 index 00000000..e8ff1758 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sl",{toolbar:"Shrani"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/sq.js b/www/lib/ckeditor/plugins/save/lang/sq.js new file mode 100644 index 00000000..493dca31 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sq",{toolbar:"Ruaje"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/sr-latn.js b/www/lib/ckeditor/plugins/save/lang/sr-latn.js new file mode 100644 index 00000000..fe27f2b8 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr-latn",{toolbar:"Sačuvaj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/sr.js b/www/lib/ckeditor/plugins/save/lang/sr.js new file mode 100644 index 00000000..3fa9e1ca --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sr",{toolbar:"Сачувај"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/sv.js b/www/lib/ckeditor/plugins/save/lang/sv.js new file mode 100644 index 00000000..a2e40dda --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","sv",{toolbar:"Spara"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/th.js b/www/lib/ckeditor/plugins/save/lang/th.js new file mode 100644 index 00000000..8e1c28dd --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","th",{toolbar:"บันทึก"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/tr.js b/www/lib/ckeditor/plugins/save/lang/tr.js new file mode 100644 index 00000000..bb638ac3 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tr",{toolbar:"Kaydet"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/tt.js b/www/lib/ckeditor/plugins/save/lang/tt.js new file mode 100644 index 00000000..757f3f71 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","tt",{toolbar:"Саклау"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/ug.js b/www/lib/ckeditor/plugins/save/lang/ug.js new file mode 100644 index 00000000..27dbe124 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","ug",{toolbar:"ساقلا"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/uk.js b/www/lib/ckeditor/plugins/save/lang/uk.js new file mode 100644 index 00000000..c1abf921 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","uk",{toolbar:"Зберегти"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/vi.js b/www/lib/ckeditor/plugins/save/lang/vi.js new file mode 100644 index 00000000..986883b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","vi",{toolbar:"Lưu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/zh-cn.js b/www/lib/ckeditor/plugins/save/lang/zh-cn.js new file mode 100644 index 00000000..a2de754d --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh-cn",{toolbar:"保存"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/lang/zh.js b/www/lib/ckeditor/plugins/save/lang/zh.js new file mode 100644 index 00000000..6e810611 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("save","zh",{toolbar:"儲存"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/save/plugin.js b/www/lib/ckeditor/plugins/save/plugin.js new file mode 100644 index 00000000..75f29058 --- /dev/null +++ b/www/lib/ckeditor/plugins/save/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var b={readOnly:1,exec:function(a){if(a.fire("save")&&(a=a.element.$.form))try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"save",hidpi:!0,init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save", +b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/scayt/LICENSE.md b/www/lib/ckeditor/plugins/scayt/LICENSE.md new file mode 100644 index 00000000..844ab4de --- /dev/null +++ b/www/lib/ckeditor/plugins/scayt/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor SCAYT Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/www/lib/ckeditor/plugins/scayt/dialogs/options.js b/www/lib/ckeditor/plugins/scayt/dialogs/options.js new file mode 100644 index 00000000..aec9a1c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/scayt/dialogs/options.js @@ -0,0 +1,17 @@ +CKEDITOR.dialog.add("scaytDialog",function(f){var g=f.scayt,k='

'+g.getLocal("version")+g.getVersion()+"

"+g.getLocal("text_copyrights")+"

",l=CKEDITOR.document,i={isChanged:function(){return null===this.newLang||this.currentLang===this.newLang?!1:!0},currentLang:g.getLang(),newLang:null,reset:function(){this.currentLang=g.getLang();this.newLang=null},id:"lang"},k=[{id:"options",label:g.getLocal("tab_options"),onShow:function(){},elements:[{type:"vbox", +id:"scaytOptions",children:function(){var a=g.getApplicationConfig(),e=[],b={"ignore-all-caps-words":"label_allCaps","ignore-domain-names":"label_ignoreDomainNames","ignore-words-with-mixed-cases":"label_mixedCase","ignore-words-with-numbers":"label_mixedWithDigits"},d;for(d in a){var c={type:"checkbox"};c.id=d;c.label=g.getLocal(b[d]);e.push(c)}return e}(),onShow:function(){this.getChild();for(var a=f.scayt,e=0;e
',onShow:function(){var a=f.scayt.getLang();l.getById("scaytLang_"+a).$.checked=!0}}]}]},{id:"dictionaries",label:g.getLocal("tab_dictionaries"), +elements:[{type:"vbox",id:"rightCol_col__left",children:[{type:"html",id:"dictionaryNote",html:""},{type:"text",id:"dictionaryName",label:g.getLocal("label_fieldNameDic")||"Dictionary name",onShow:function(a){var e=a.sender,b=f.scayt;setTimeout(function(){e.getContentElement("dictionaries","dictionaryNote").getElement().setText("");null!=b.getUserDictionaryName()&&""!=b.getUserDictionaryName()&&e.getContentElement("dictionaries","dictionaryName").setValue(b.getUserDictionaryName())},0)}},{type:"hbox", +id:"notExistDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"createDic",label:g.getLocal("btn_createDic"),title:g.getLocal("btn_createDic"),onClick:function(){var a=this.getDialog(),e=j,b=f.scayt,d=a.getContentElement("dictionaries","dictionaryName").getValue();b.createUserDictionary(d,function(c){c.error||e.toggleDictionaryButtons.call(a,!0);c.dialog=a;c.command="create";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="create"; +c.name=d;f.fire("scaytUserDictionaryActionError",c)})}},{type:"button",id:"restoreDic",label:g.getLocal("btn_restoreDic"),title:g.getLocal("btn_restoreDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName").getValue();e.restoreUserDictionary(d,function(c){c.dialog=a;c.error||b.toggleDictionaryButtons.call(a,!0);c.command="restore";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="restore";c.name=d;f.fire("scaytUserDictionaryActionError", +c)})}}]},{type:"hbox",id:"existDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"removeDic",label:g.getLocal("btn_deleteDic"),title:g.getLocal("btn_deleteDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName"),c=d.getValue();e.removeUserDictionary(c,function(e){d.setValue("");e.error||b.toggleDictionaryButtons.call(a,!1);e.dialog=a;e.command="remove";e.name=c;f.fire("scaytUserDictionaryAction",e)},function(b){b.dialog= +a;b.command="remove";b.name=c;f.fire("scaytUserDictionaryActionError",b)})}},{type:"button",id:"renameDic",label:g.getLocal("btn_renameDic"),title:g.getLocal("btn_renameDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=a.getContentElement("dictionaries","dictionaryName").getValue();e.renameUserDictionary(b,function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryAction",d)},function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryActionError",d)})}}]}, +{type:"html",id:"dicInfo",html:'
'+g.getLocal("text_descriptionDic")+"
"}]}]},{id:"about",label:g.getLocal("tab_about"),elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
'+k+"
"}]}];f.on("scaytUserDictionaryAction",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;void 0===a.data.error?(c=d.getLocal("message_success_"+ +a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c),SCAYT.$(b.$).css({color:"blue"})):(""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c)),SCAYT.$(b.$).css({color:"red"}),null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()):e.getContentElement("dictionaries","dictionaryName").setValue(""))}); +f.on("scaytUserDictionaryActionError",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c));SCAYT.$(b.$).css({color:"red"});null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()): +e.getContentElement("dictionaries","dictionaryName").setValue("")});var j={title:g.getLocal("text_title"),resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:340,minHeight:260,onLoad:function(){if(0!=f.config.scayt_uiTabs[1]){var a=j,e=a.getLangBoxes.call(this);e.getParent().setStyle("white-space","normal");a.renderLangList(e);this.definition.minWidth=this.getSize().width;this.resize(this.definition.minWidth,this.definition.minHeight)}},onCancel:function(){i.reset()},onHide:function(){f.unlockSelection()}, +onShow:function(){f.fire("scaytDialogShown",this);if(0!=f.config.scayt_uiTabs[2]){var a=f.scayt,e=this.getContentElement("dictionaries","dictionaryName"),b=this.getContentElement("dictionaries","existDic").getElement().getParent(),d=this.getContentElement("dictionaries","notExistDic").getElement().getParent();b.hide();d.hide();null!=a.getUserDictionaryName()&&""!=a.getUserDictionaryName()?(this.getContentElement("dictionaries","dictionaryName").setValue(a.getUserDictionaryName()),b.show()):(e.setValue(""), +d.show())}},onOk:function(){var a=j,e=f.scayt;this.getContentElement("options","scaytOptions");a=a.getChangedOption.call(this);e.commitOption({changedOptions:a})},toggleDictionaryButtons:function(a){var e=this.getContentElement("dictionaries","existDic").getElement().getParent(),b=this.getContentElement("dictionaries","notExistDic").getElement().getParent();a?(e.show(),b.hide()):(e.hide(),b.show())},getChangedOption:function(){var a={};if(1==f.config.scayt_uiTabs[0])for(var e=this.getContentElement("options", +"scaytOptions").getChild(),b=0;b'),g=new CKEDITOR.dom.element("label"),h=f.scayt;b.setStyles({"white-space":"normal",position:"relative"}); +c.on("click",function(a){i.newLang=a.sender.getValue()});g.appendText(a);g.setAttribute("for",d);b.append(c);b.append(g);e===h.getLang()&&(c.setAttribute("checked",!0),c.setAttribute("defaultChecked","defaultChecked"));return b},renderLangList:function(a){var e=a.find("#left-col-"+f.name).getItem(0),a=a.find("#right-col-"+f.name).getItem(0),b=g.getLangList(),d={},c=[],i=0,h;for(h in b.ltr)d[h]=b.ltr[h];for(h in b.rtl)d[h]=b.rtl[h];for(h in d)c.push([h,d[h]]);c.sort(function(a,b){var c=0;a[1]>b[1]? +c=1:a[1]
'); +CKEDITOR.plugins.add("sharedspace",{init:function(a){a.on("loaded",function(){var b=a.config.sharedSpaces;if(b)for(var c in b)f(a,c,b[c])},null,null,9)}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png b/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png new file mode 100644 index 00000000..c88abcb6 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png b/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png new file mode 100644 index 00000000..a776fcc1 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png b/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png new file mode 100644 index 00000000..cd87d3e2 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/icons/showblocks-rtl.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png b/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png new file mode 100644 index 00000000..41b5f346 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/icons/showblocks.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_address.png b/www/lib/ckeditor/plugins/showblocks/images/block_address.png new file mode 100644 index 00000000..5abdae12 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_address.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png b/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png new file mode 100644 index 00000000..a8f49735 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_blockquote.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_div.png b/www/lib/ckeditor/plugins/showblocks/images/block_div.png new file mode 100644 index 00000000..87b3c171 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_div.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_h1.png b/www/lib/ckeditor/plugins/showblocks/images/block_h1.png new file mode 100644 index 00000000..3933325c Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_h1.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_h2.png b/www/lib/ckeditor/plugins/showblocks/images/block_h2.png new file mode 100644 index 00000000..c99894c2 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_h2.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_h3.png b/www/lib/ckeditor/plugins/showblocks/images/block_h3.png new file mode 100644 index 00000000..cb73d679 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_h3.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_h4.png b/www/lib/ckeditor/plugins/showblocks/images/block_h4.png new file mode 100644 index 00000000..7af6bb49 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_h4.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_h5.png b/www/lib/ckeditor/plugins/showblocks/images/block_h5.png new file mode 100644 index 00000000..ce5bec16 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_h5.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_h6.png b/www/lib/ckeditor/plugins/showblocks/images/block_h6.png new file mode 100644 index 00000000..e67b9829 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_h6.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_p.png b/www/lib/ckeditor/plugins/showblocks/images/block_p.png new file mode 100644 index 00000000..63a58202 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_p.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/images/block_pre.png b/www/lib/ckeditor/plugins/showblocks/images/block_pre.png new file mode 100644 index 00000000..955a8689 Binary files /dev/null and b/www/lib/ckeditor/plugins/showblocks/images/block_pre.png differ diff --git a/www/lib/ckeditor/plugins/showblocks/lang/af.js b/www/lib/ckeditor/plugins/showblocks/lang/af.js new file mode 100644 index 00000000..f54ef175 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","af",{toolbar:"Toon blokke"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ar.js b/www/lib/ckeditor/plugins/showblocks/lang/ar.js new file mode 100644 index 00000000..a3b135a9 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ar",{toolbar:"مخطط تفصيلي"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/bg.js b/www/lib/ckeditor/plugins/showblocks/lang/bg.js new file mode 100644 index 00000000..ec8b4f9c --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bg",{toolbar:"Показва блокове"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/bn.js b/www/lib/ckeditor/plugins/showblocks/lang/bn.js new file mode 100644 index 00000000..8f38cf2c --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/bs.js b/www/lib/ckeditor/plugins/showblocks/lang/bs.js new file mode 100644 index 00000000..91d8620a --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","bs",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ca.js b/www/lib/ckeditor/plugins/showblocks/lang/ca.js new file mode 100644 index 00000000..4a23bd67 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ca",{toolbar:"Mostra els blocs"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/cs.js b/www/lib/ckeditor/plugins/showblocks/lang/cs.js new file mode 100644 index 00000000..e935394c --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cs",{toolbar:"Ukázat bloky"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/cy.js b/www/lib/ckeditor/plugins/showblocks/lang/cy.js new file mode 100644 index 00000000..4fea60e5 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","cy",{toolbar:"Dangos Blociau"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/da.js b/www/lib/ckeditor/plugins/showblocks/lang/da.js new file mode 100644 index 00000000..1c077f17 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","da",{toolbar:"Vis afsnitsmærker"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/de.js b/www/lib/ckeditor/plugins/showblocks/lang/de.js new file mode 100644 index 00000000..730add99 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","de",{toolbar:"Blöcke anzeigen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/el.js b/www/lib/ckeditor/plugins/showblocks/lang/el.js new file mode 100644 index 00000000..67fc843d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","el",{toolbar:"Προβολή Τμημάτων"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/en-au.js b/www/lib/ckeditor/plugins/showblocks/lang/en-au.js new file mode 100644 index 00000000..02fd8d37 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-au",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js b/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js new file mode 100644 index 00000000..2ddff41c --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-ca",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js b/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js new file mode 100644 index 00000000..6398feaa --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en-gb",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/en.js b/www/lib/ckeditor/plugins/showblocks/lang/en.js new file mode 100644 index 00000000..2457fa4b --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","en",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/eo.js b/www/lib/ckeditor/plugins/showblocks/lang/eo.js new file mode 100644 index 00000000..42775ae7 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eo",{toolbar:"Montri la blokojn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/es.js b/www/lib/ckeditor/plugins/showblocks/lang/es.js new file mode 100644 index 00000000..eae41486 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","es",{toolbar:"Mostrar bloques"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/et.js b/www/lib/ckeditor/plugins/showblocks/lang/et.js new file mode 100644 index 00000000..18f1c0d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","et",{toolbar:"Blokkide näitamine"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/eu.js b/www/lib/ckeditor/plugins/showblocks/lang/eu.js new file mode 100644 index 00000000..0efa1bea --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","eu",{toolbar:"Blokeak erakutsi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/fa.js b/www/lib/ckeditor/plugins/showblocks/lang/fa.js new file mode 100644 index 00000000..e290b63d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fa",{toolbar:"نمایش بلوک‌ها"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/fi.js b/www/lib/ckeditor/plugins/showblocks/lang/fi.js new file mode 100644 index 00000000..a2e20e26 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fi",{toolbar:"Näytä elementit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/fo.js b/www/lib/ckeditor/plugins/showblocks/lang/fo.js new file mode 100644 index 00000000..cea7058d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fo",{toolbar:"Vís blokkar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js b/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js new file mode 100644 index 00000000..be37ca35 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr-ca",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/fr.js b/www/lib/ckeditor/plugins/showblocks/lang/fr.js new file mode 100644 index 00000000..49bf9394 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","fr",{toolbar:"Afficher les blocs"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/gl.js b/www/lib/ckeditor/plugins/showblocks/lang/gl.js new file mode 100644 index 00000000..b9f240c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gl",{toolbar:"Amosar os bloques"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/gu.js b/www/lib/ckeditor/plugins/showblocks/lang/gu.js new file mode 100644 index 00000000..a8e7fd6c --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","gu",{toolbar:"બ્લૉક બતાવવું"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/he.js b/www/lib/ckeditor/plugins/showblocks/lang/he.js new file mode 100644 index 00000000..7d128462 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","he",{toolbar:"הצגת בלוקים"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/hi.js b/www/lib/ckeditor/plugins/showblocks/lang/hi.js new file mode 100644 index 00000000..68904f2d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hi",{toolbar:"ब्लॉक दिखायें"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/hr.js b/www/lib/ckeditor/plugins/showblocks/lang/hr.js new file mode 100644 index 00000000..d6af592d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hr",{toolbar:"Prikaži blokove"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/hu.js b/www/lib/ckeditor/plugins/showblocks/lang/hu.js new file mode 100644 index 00000000..cda541b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","hu",{toolbar:"Blokkok megjelenítése"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/id.js b/www/lib/ckeditor/plugins/showblocks/lang/id.js new file mode 100644 index 00000000..96c293cc --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","id",{toolbar:"Perlihatkan Blok"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/is.js b/www/lib/ckeditor/plugins/showblocks/lang/is.js new file mode 100644 index 00000000..88a3ff5a --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","is",{toolbar:"Sýna blokkir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/it.js b/www/lib/ckeditor/plugins/showblocks/lang/it.js new file mode 100644 index 00000000..38e578fd --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","it",{toolbar:"Visualizza Blocchi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ja.js b/www/lib/ckeditor/plugins/showblocks/lang/ja.js new file mode 100644 index 00000000..a9c9736a --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ja",{toolbar:"ブロック表示"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ka.js b/www/lib/ckeditor/plugins/showblocks/lang/ka.js new file mode 100644 index 00000000..908e8002 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ka",{toolbar:"არეების ჩვენება"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/km.js b/www/lib/ckeditor/plugins/showblocks/lang/km.js new file mode 100644 index 00000000..d6ca8298 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","km",{toolbar:"បង្ហាញ​ប្លក់"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ko.js b/www/lib/ckeditor/plugins/showblocks/lang/ko.js new file mode 100644 index 00000000..67187345 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ko",{toolbar:"블록 보기"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ku.js b/www/lib/ckeditor/plugins/showblocks/lang/ku.js new file mode 100644 index 00000000..2a3a1282 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ku",{toolbar:"نیشاندانی بەربەستەکان"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/lt.js b/www/lib/ckeditor/plugins/showblocks/lang/lt.js new file mode 100644 index 00000000..66368a41 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lt",{toolbar:"Rodyti blokus"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/lv.js b/www/lib/ckeditor/plugins/showblocks/lang/lv.js new file mode 100644 index 00000000..12c328c1 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","lv",{toolbar:"Parādīt blokus"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/mk.js b/www/lib/ckeditor/plugins/showblocks/lang/mk.js new file mode 100644 index 00000000..a34e8a23 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mk",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/mn.js b/www/lib/ckeditor/plugins/showblocks/lang/mn.js new file mode 100644 index 00000000..778ad5d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","mn",{toolbar:"Хавтангуудыг харуулах"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ms.js b/www/lib/ckeditor/plugins/showblocks/lang/ms.js new file mode 100644 index 00000000..c6ab5f2d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ms",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/nb.js b/www/lib/ckeditor/plugins/showblocks/lang/nb.js new file mode 100644 index 00000000..8bfdf0e1 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nb",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/nl.js b/www/lib/ckeditor/plugins/showblocks/lang/nl.js new file mode 100644 index 00000000..22190dbd --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","nl",{toolbar:"Toon blokken"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/no.js b/www/lib/ckeditor/plugins/showblocks/lang/no.js new file mode 100644 index 00000000..75702788 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","no",{toolbar:"Vis blokker"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/pl.js b/www/lib/ckeditor/plugins/showblocks/lang/pl.js new file mode 100644 index 00000000..3168b3c5 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pl",{toolbar:"Pokaż bloki"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js b/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js new file mode 100644 index 00000000..3ac0ef74 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt-br",{toolbar:"Mostrar blocos de código"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/pt.js b/www/lib/ckeditor/plugins/showblocks/lang/pt.js new file mode 100644 index 00000000..5afaf8e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","pt",{toolbar:"Exibir blocos"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ro.js b/www/lib/ckeditor/plugins/showblocks/lang/ro.js new file mode 100644 index 00000000..e4dadf0a --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ro",{toolbar:"Arată blocurile"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ru.js b/www/lib/ckeditor/plugins/showblocks/lang/ru.js new file mode 100644 index 00000000..9620b9d3 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ru",{toolbar:"Отображать блоки"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/si.js b/www/lib/ckeditor/plugins/showblocks/lang/si.js new file mode 100644 index 00000000..f67dff30 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","si",{toolbar:"කොටස පෙන්නන්න"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/sk.js b/www/lib/ckeditor/plugins/showblocks/lang/sk.js new file mode 100644 index 00000000..dee77c9a --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sk",{toolbar:"Ukázať bloky"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/sl.js b/www/lib/ckeditor/plugins/showblocks/lang/sl.js new file mode 100644 index 00000000..52fca0bb --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sl",{toolbar:"Prikaži ograde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/sq.js b/www/lib/ckeditor/plugins/showblocks/lang/sq.js new file mode 100644 index 00000000..88405f28 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sq",{toolbar:"Shfaq Blloqet"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js b/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js new file mode 100644 index 00000000..3c1551b9 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr-latn",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/sr.js b/www/lib/ckeditor/plugins/showblocks/lang/sr.js new file mode 100644 index 00000000..127878d5 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sr",{toolbar:"Show Blocks"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/sv.js b/www/lib/ckeditor/plugins/showblocks/lang/sv.js new file mode 100644 index 00000000..a05b6ccb --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","sv",{toolbar:"Visa block"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/th.js b/www/lib/ckeditor/plugins/showblocks/lang/th.js new file mode 100644 index 00000000..9b3951cc --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","th",{toolbar:"แสดงบล็อคข้อมูล"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/tr.js b/www/lib/ckeditor/plugins/showblocks/lang/tr.js new file mode 100644 index 00000000..060da3aa --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tr",{toolbar:"Blokları Göster"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/tt.js b/www/lib/ckeditor/plugins/showblocks/lang/tt.js new file mode 100644 index 00000000..519e6f7b --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","tt",{toolbar:"Блокларны күрсәтү"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/ug.js b/www/lib/ckeditor/plugins/showblocks/lang/ug.js new file mode 100644 index 00000000..c44b6605 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","ug",{toolbar:"بۆلەكنى كۆرسەت"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/uk.js b/www/lib/ckeditor/plugins/showblocks/lang/uk.js new file mode 100644 index 00000000..ca9f51c4 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","uk",{toolbar:"Показувати блоки"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/vi.js b/www/lib/ckeditor/plugins/showblocks/lang/vi.js new file mode 100644 index 00000000..43566240 --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","vi",{toolbar:"Hiển thị các khối"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js b/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js new file mode 100644 index 00000000..abee734d --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh-cn",{toolbar:"显示区块"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/lang/zh.js b/www/lib/ckeditor/plugins/showblocks/lang/zh.js new file mode 100644 index 00000000..84c1e7eb --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("showblocks","zh",{toolbar:"顯示區塊"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/showblocks/plugin.js b/www/lib/ckeditor/plugins/showblocks/plugin.js new file mode 100644 index 00000000..48060bcb --- /dev/null +++ b/www/lib/ckeditor/plugins/showblocks/plugin.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){var i={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var c=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[c]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn", +icons:"showblocks,showblocks-rtl",hidpi:!0,onLoad:function(){var a="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),c,b,e,f,i=CKEDITOR.getUrl(this.path),j=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),g=j?":not([contenteditable=false]):not(.cke_show_blocks_off)":"",d,h;for(c=b=e=f="";d=a.pop();)h=a.length?",":"",c+=".cke_show_blocks "+d+g+h,e+=".cke_show_blocks.cke_contents_ltr "+d+g+h,f+=".cke_show_blocks.cke_contents_rtl "+d+g+h,b+=".cke_show_blocks "+d+g+"{background-image:url("+CKEDITOR.getUrl(i+ +"images/block_"+d+".png")+")}";CKEDITOR.addCss((c+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(b,e+"{background-position:top left;padding-left:8px}",f+"{background-position:top right;padding-right:8px}"));j||CKEDITOR.addCss(".cke_show_blocks [contenteditable=false],.cke_show_blocks .cke_show_blocks_off{border:none;padding-top:0;background-image:none}.cke_show_blocks.cke_contents_rtl [contenteditable=false],.cke_show_blocks.cke_contents_rtl .cke_show_blocks_off{padding-right:0}.cke_show_blocks.cke_contents_ltr [contenteditable=false],.cke_show_blocks.cke_contents_ltr .cke_show_blocks_off{padding-left:0}")}, +init:function(a){function c(){b.refresh(a)}if(!a.blockless){var b=a.addCommand("showblocks",i);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(a.on("focus",c),a.on("blur",c));a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&& +b.refresh(a)})}}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js b/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js new file mode 100644 index 00000000..b202d3ee --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/dialogs/smiley.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,i,k=function(j){var c=j.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);i.hide();j.data.preventDefault()},n=CKEDITOR.tools.addFunction(function(a,c){var a= +new CKEDITOR.dom.event(a),c=new CKEDITOR.dom.element(c),b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:if(b=c.getParent().getParent().getNext())(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:k({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0); +else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['
'+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
"); +e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png b/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png new file mode 100644 index 00000000..bad62eed Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/icons/hidpi/smiley.png differ diff --git a/www/lib/ckeditor/plugins/smiley/icons/smiley.png b/www/lib/ckeditor/plugins/smiley/icons/smiley.png new file mode 100644 index 00000000..9fafa28a Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/icons/smiley.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif b/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif new file mode 100644 index 00000000..21f81a2f Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/angel_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/angel_smile.png b/www/lib/ckeditor/plugins/smiley/images/angel_smile.png new file mode 100644 index 00000000..559e5e71 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/angel_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif b/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif new file mode 100644 index 00000000..c912d99b Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/angry_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/angry_smile.png b/www/lib/ckeditor/plugins/smiley/images/angry_smile.png new file mode 100644 index 00000000..c05d2be3 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/angry_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif b/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif new file mode 100644 index 00000000..4162a7b2 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/broken_heart.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/broken_heart.png b/www/lib/ckeditor/plugins/smiley/images/broken_heart.png new file mode 100644 index 00000000..a711c0d8 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/broken_heart.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif b/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif new file mode 100644 index 00000000..0e420cba Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/confused_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/confused_smile.png b/www/lib/ckeditor/plugins/smiley/images/confused_smile.png new file mode 100644 index 00000000..e0b8e5c6 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/confused_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif b/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif new file mode 100644 index 00000000..b5133427 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/cry_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/cry_smile.png b/www/lib/ckeditor/plugins/smiley/images/cry_smile.png new file mode 100644 index 00000000..a1891a34 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/cry_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif b/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif new file mode 100644 index 00000000..9b2a1005 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/devil_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/devil_smile.png b/www/lib/ckeditor/plugins/smiley/images/devil_smile.png new file mode 100644 index 00000000..53247a88 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/devil_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif b/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/embaressed_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif new file mode 100644 index 00000000..8d39f252 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png b/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png new file mode 100644 index 00000000..34904b66 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/embarrassed_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/envelope.gif b/www/lib/ckeditor/plugins/smiley/images/envelope.gif new file mode 100644 index 00000000..5294ec48 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/envelope.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/envelope.png b/www/lib/ckeditor/plugins/smiley/images/envelope.png new file mode 100644 index 00000000..44398ad1 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/envelope.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/heart.gif b/www/lib/ckeditor/plugins/smiley/images/heart.gif new file mode 100644 index 00000000..160be8ef Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/heart.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/heart.png b/www/lib/ckeditor/plugins/smiley/images/heart.png new file mode 100644 index 00000000..df409e62 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/heart.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/kiss.gif b/www/lib/ckeditor/plugins/smiley/images/kiss.gif new file mode 100644 index 00000000..ffb23db0 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/kiss.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/kiss.png b/www/lib/ckeditor/plugins/smiley/images/kiss.png new file mode 100644 index 00000000..a4f2f363 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/kiss.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif b/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif new file mode 100644 index 00000000..ceb6e2d9 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/lightbulb.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/lightbulb.png b/www/lib/ckeditor/plugins/smiley/images/lightbulb.png new file mode 100644 index 00000000..0c4a9240 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/lightbulb.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif b/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif new file mode 100644 index 00000000..3177355f Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/omg_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/omg_smile.png b/www/lib/ckeditor/plugins/smiley/images/omg_smile.png new file mode 100644 index 00000000..abc4e2d0 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/omg_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif b/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif new file mode 100644 index 00000000..fdcf5c33 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/regular_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/regular_smile.png b/www/lib/ckeditor/plugins/smiley/images/regular_smile.png new file mode 100644 index 00000000..0f2649b7 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/regular_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif b/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif new file mode 100644 index 00000000..cca0729d Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/sad_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/sad_smile.png b/www/lib/ckeditor/plugins/smiley/images/sad_smile.png new file mode 100644 index 00000000..f20f3bf3 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/sad_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif b/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif new file mode 100644 index 00000000..7d93474c Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/shades_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/shades_smile.png b/www/lib/ckeditor/plugins/smiley/images/shades_smile.png new file mode 100644 index 00000000..fdaa28b7 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/shades_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif b/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif new file mode 100644 index 00000000..44c37996 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/teeth_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png b/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png new file mode 100644 index 00000000..5e63785e Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/teeth_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif b/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif new file mode 100644 index 00000000..5c8bee30 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/thumbs_down.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png b/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png new file mode 100644 index 00000000..1823481f Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/thumbs_down.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif b/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif new file mode 100644 index 00000000..9cc37029 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/thumbs_up.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png b/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png new file mode 100644 index 00000000..d4e8b22a Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/thumbs_up.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif b/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/tongue_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png b/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png new file mode 100644 index 00000000..56553fbe Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/tongue_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif b/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif new file mode 100644 index 00000000..81e05b0f Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/tounge_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif new file mode 100644 index 00000000..eef4fc00 Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png b/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png new file mode 100644 index 00000000..f9714d1b Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif b/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif new file mode 100644 index 00000000..6d3d64bd Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/wink_smile.gif differ diff --git a/www/lib/ckeditor/plugins/smiley/images/wink_smile.png b/www/lib/ckeditor/plugins/smiley/images/wink_smile.png new file mode 100644 index 00000000..7c99c3fc Binary files /dev/null and b/www/lib/ckeditor/plugins/smiley/images/wink_smile.png differ diff --git a/www/lib/ckeditor/plugins/smiley/lang/af.js b/www/lib/ckeditor/plugins/smiley/lang/af.js new file mode 100644 index 00000000..dd63a1c7 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","af",{options:"Lagbekkie opsies",title:"Voeg lagbekkie by",toolbar:"Lagbekkie"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ar.js b/www/lib/ckeditor/plugins/smiley/lang/ar.js new file mode 100644 index 00000000..83a8dfa1 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ar",{options:"خصائص الإبتسامات",title:"إدراج ابتسامات",toolbar:"ابتسامات"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/bg.js b/www/lib/ckeditor/plugins/smiley/lang/bg.js new file mode 100644 index 00000000..f8bf7119 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bg",{options:"Опции за усмивката",title:"Вмъкване на усмивка",toolbar:"Усмивка"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/bn.js b/www/lib/ckeditor/plugins/smiley/lang/bn.js new file mode 100644 index 00000000..61de3df3 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bn",{options:"Smiley Options",title:"স্মাইলী যুক্ত কর",toolbar:"স্মাইলী"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/bs.js b/www/lib/ckeditor/plugins/smiley/lang/bs.js new file mode 100644 index 00000000..422fb8b5 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","bs",{options:"Smiley Options",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ca.js b/www/lib/ckeditor/plugins/smiley/lang/ca.js new file mode 100644 index 00000000..5164077f --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ca",{options:"Opcions d'emoticones",title:"Insereix una icona",toolbar:"Icona"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/cs.js b/www/lib/ckeditor/plugins/smiley/lang/cs.js new file mode 100644 index 00000000..aa0d7fa2 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cs",{options:"Nastavení smajlíků",title:"Vkládání smajlíků",toolbar:"Smajlíci"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/cy.js b/www/lib/ckeditor/plugins/smiley/lang/cy.js new file mode 100644 index 00000000..79164f5c --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","cy",{options:"Opsiynau Gwenogluniau",title:"Mewnosod Gwenoglun",toolbar:"Gwenoglun"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/da.js b/www/lib/ckeditor/plugins/smiley/lang/da.js new file mode 100644 index 00000000..cfc0db19 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","da",{options:"Smileymuligheder",title:"Vælg smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/de.js b/www/lib/ckeditor/plugins/smiley/lang/de.js new file mode 100644 index 00000000..573e4946 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","de",{options:"Smiley Optionen",title:"Smiley auswählen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/el.js b/www/lib/ckeditor/plugins/smiley/lang/el.js new file mode 100644 index 00000000..af8f2605 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","el",{options:"Επιλογές Φατσούλων",title:"Εισάγετε μια Φατσούλα",toolbar:"Φατσούλα"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/en-au.js b/www/lib/ckeditor/plugins/smiley/lang/en-au.js new file mode 100644 index 00000000..8dd27c36 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-au",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/en-ca.js b/www/lib/ckeditor/plugins/smiley/lang/en-ca.js new file mode 100644 index 00000000..01b27019 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-ca",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/en-gb.js b/www/lib/ckeditor/plugins/smiley/lang/en-gb.js new file mode 100644 index 00000000..9967ebfc --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en-gb",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/en.js b/www/lib/ckeditor/plugins/smiley/lang/en.js new file mode 100644 index 00000000..aa2b1e29 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","en",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/eo.js b/www/lib/ckeditor/plugins/smiley/lang/eo.js new file mode 100644 index 00000000..b84cd509 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eo",{options:"Opcioj pri mienvinjetoj",title:"Enmeti Mienvinjeton",toolbar:"Mienvinjeto"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/es.js b/www/lib/ckeditor/plugins/smiley/lang/es.js new file mode 100644 index 00000000..0a64de63 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","es",{options:"Opciones de emoticonos",title:"Insertar un Emoticon",toolbar:"Emoticonos"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/et.js b/www/lib/ckeditor/plugins/smiley/lang/et.js new file mode 100644 index 00000000..b3acbc88 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","et",{options:"Emotikonide valikud",title:"Sisesta emotikon",toolbar:"Emotikon"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/eu.js b/www/lib/ckeditor/plugins/smiley/lang/eu.js new file mode 100644 index 00000000..d5eb0d03 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","eu",{options:"Aurpegiera Aukerak",title:"Aurpegiera Sartu",toolbar:"Aurpegierak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/fa.js b/www/lib/ckeditor/plugins/smiley/lang/fa.js new file mode 100644 index 00000000..536b9343 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fa",{options:"گزینه​های خندانک",title:"گنجاندن خندانک",toolbar:"خندانک"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/fi.js b/www/lib/ckeditor/plugins/smiley/lang/fi.js new file mode 100644 index 00000000..cdc06b98 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fi",{options:"Hymiön ominaisuudet",title:"Lisää hymiö",toolbar:"Hymiö"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/fo.js b/www/lib/ckeditor/plugins/smiley/lang/fo.js new file mode 100644 index 00000000..1758e873 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fo",{options:"Møguleikar fyri Smiley",title:"Vel Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js b/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js new file mode 100644 index 00000000..efef5640 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr-ca",{options:"Options d'émoticônes",title:"Insérer un émoticône",toolbar:"Émoticône"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/fr.js b/www/lib/ckeditor/plugins/smiley/lang/fr.js new file mode 100644 index 00000000..56b9c488 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","fr",{options:"Options des émoticones",title:"Insérer un émoticone",toolbar:"Émoticones"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/gl.js b/www/lib/ckeditor/plugins/smiley/lang/gl.js new file mode 100644 index 00000000..47060596 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gl",{options:"Opcións de emoticonas",title:"Inserir unha emoticona",toolbar:"Emoticona"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/gu.js b/www/lib/ckeditor/plugins/smiley/lang/gu.js new file mode 100644 index 00000000..15a08c68 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","gu",{options:"સમ્ય્લી વિકલ્પો",title:"સ્માઇલી પસંદ કરો",toolbar:"સ્માઇલી"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/he.js b/www/lib/ckeditor/plugins/smiley/lang/he.js new file mode 100644 index 00000000..db6c4acd --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","he",{options:"אפשרויות סמיילים",title:"הוספת סמיילי",toolbar:"סמיילי"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/hi.js b/www/lib/ckeditor/plugins/smiley/lang/hi.js new file mode 100644 index 00000000..2aaa0813 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hi",{options:"Smiley Options",title:"स्माइली इन्सर्ट करें",toolbar:"स्माइली"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/hr.js b/www/lib/ckeditor/plugins/smiley/lang/hr.js new file mode 100644 index 00000000..65116ab7 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hr",{options:"Opcije smješka",title:"Ubaci smješka",toolbar:"Smješko"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/hu.js b/www/lib/ckeditor/plugins/smiley/lang/hu.js new file mode 100644 index 00000000..823e1d53 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","hu",{options:"Hangulatjel opciók",title:"Hangulatjel beszúrása",toolbar:"Hangulatjelek"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/id.js b/www/lib/ckeditor/plugins/smiley/lang/id.js new file mode 100644 index 00000000..07b5be16 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","id",{options:"Opsi Smiley",title:"Sisip sebuah Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/is.js b/www/lib/ckeditor/plugins/smiley/lang/is.js new file mode 100644 index 00000000..dbb52568 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","is",{options:"Smiley Options",title:"Velja svip",toolbar:"Svipur"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/it.js b/www/lib/ckeditor/plugins/smiley/lang/it.js new file mode 100644 index 00000000..df131f8e --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","it",{options:"Opzioni Smiley",title:"Inserisci emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ja.js b/www/lib/ckeditor/plugins/smiley/lang/ja.js new file mode 100644 index 00000000..dab5662f --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ja",{options:"絵文字オプション",title:"顔文字挿入",toolbar:"絵文字"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ka.js b/www/lib/ckeditor/plugins/smiley/lang/ka.js new file mode 100644 index 00000000..78218e0a --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ka",{options:"სიცილაკის პარამეტრები",title:"სიცილაკის ჩასმა",toolbar:"სიცილაკები"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/km.js b/www/lib/ckeditor/plugins/smiley/lang/km.js new file mode 100644 index 00000000..2b603406 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","km",{options:"ជម្រើស​រូប​សញ្ញា​អារម្មណ៍",title:"បញ្ចូល​រូប​សញ្ញា​អារម្មណ៍",toolbar:"រូប​សញ្ញ​អារម្មណ៍"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ko.js b/www/lib/ckeditor/plugins/smiley/lang/ko.js new file mode 100644 index 00000000..cb3986a0 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ko",{options:"이모티콘 옵션",title:"아이콘 삽입",toolbar:"아이콘"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ku.js b/www/lib/ckeditor/plugins/smiley/lang/ku.js new file mode 100644 index 00000000..9d1b8bd2 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ku",{options:"هەڵبژاردەی زەردەخەنه",title:"دانانی زەردەخەنەیەك",toolbar:"زەردەخەنه"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/lt.js b/www/lib/ckeditor/plugins/smiley/lang/lt.js new file mode 100644 index 00000000..49573bec --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lt",{options:"Šypsenėlių nustatymai",title:"Įterpti veidelį",toolbar:"Veideliai"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/lv.js b/www/lib/ckeditor/plugins/smiley/lang/lv.js new file mode 100644 index 00000000..b8299e52 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","lv",{options:"Smaidiņu uzstādījumi",title:"Ievietot smaidiņu",toolbar:"Smaidiņi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/mk.js b/www/lib/ckeditor/plugins/smiley/lang/mk.js new file mode 100644 index 00000000..e7e241b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mk",{options:"Smiley Options",title:"Insert a Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/mn.js b/www/lib/ckeditor/plugins/smiley/lang/mn.js new file mode 100644 index 00000000..6f8cd095 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","mn",{options:"Smiley Options",title:"Тодорхойлолт оруулах",toolbar:"Тодорхойлолт"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ms.js b/www/lib/ckeditor/plugins/smiley/lang/ms.js new file mode 100644 index 00000000..0df42a59 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ms",{options:"Smiley Options",title:"Masukkan Smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/nb.js b/www/lib/ckeditor/plugins/smiley/lang/nb.js new file mode 100644 index 00000000..db957dcb --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nb",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/nl.js b/www/lib/ckeditor/plugins/smiley/lang/nl.js new file mode 100644 index 00000000..1b3ac44e --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","nl",{options:"Smiley opties",title:"Smiley invoegen",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/no.js b/www/lib/ckeditor/plugins/smiley/lang/no.js new file mode 100644 index 00000000..87f8534d --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","no",{options:"Alternativer for smil",title:"Sett inn smil",toolbar:"Smil"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/pl.js b/www/lib/ckeditor/plugins/smiley/lang/pl.js new file mode 100644 index 00000000..eb1938ab --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pl",{options:"Opcje emotikonów",title:"Wstaw emotikona",toolbar:"Emotikony"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/pt-br.js b/www/lib/ckeditor/plugins/smiley/lang/pt-br.js new file mode 100644 index 00000000..e41f5442 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt-br",{options:"Opções de Emoticons",title:"Inserir Emoticon",toolbar:"Emoticon"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/pt.js b/www/lib/ckeditor/plugins/smiley/lang/pt.js new file mode 100644 index 00000000..c9103e76 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","pt",{options:"Opções de Emoticons",title:"Inserir um Emoticon",toolbar:"Emoticons"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ro.js b/www/lib/ckeditor/plugins/smiley/lang/ro.js new file mode 100644 index 00000000..1f6b89af --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ro",{options:"Opțiuni figuri expresive",title:"Inserează o figură expresivă (Emoticon)",toolbar:"Figură expresivă (Emoticon)"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ru.js b/www/lib/ckeditor/plugins/smiley/lang/ru.js new file mode 100644 index 00000000..b8f1d619 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ru",{options:"Выбор смайла",title:"Вставить смайл",toolbar:"Смайлы"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/si.js b/www/lib/ckeditor/plugins/smiley/lang/si.js new file mode 100644 index 00000000..da884cf6 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","si",{options:"හාස්‍ය විකල්ප",title:"හාස්‍යන් ඇතුලත් කිරීම",toolbar:"හාස්‍යන්"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/sk.js b/www/lib/ckeditor/plugins/smiley/lang/sk.js new file mode 100644 index 00000000..c1ce5970 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sk",{options:"Možnosti smajlíkov",title:"Vložiť smajlíka",toolbar:"Smajlíky"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/sl.js b/www/lib/ckeditor/plugins/smiley/lang/sl.js new file mode 100644 index 00000000..ef64a7a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sl",{options:"Možnosti Smeška",title:"Vstavi smeška",toolbar:"Smeško"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/sq.js b/www/lib/ckeditor/plugins/smiley/lang/sq.js new file mode 100644 index 00000000..d870960e --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sq",{options:"Opsionet e Ikonave",title:"Vendos Ikonë",toolbar:"Ikona"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js b/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js new file mode 100644 index 00000000..4e46a4d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr-latn",{options:"Smiley Options",title:"Unesi smajlija",toolbar:"Smajli"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/sr.js b/www/lib/ckeditor/plugins/smiley/lang/sr.js new file mode 100644 index 00000000..d321eba3 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sr",{options:"Smiley Options",title:"Унеси смајлија",toolbar:"Смајли"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/sv.js b/www/lib/ckeditor/plugins/smiley/lang/sv.js new file mode 100644 index 00000000..29e4c575 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","sv",{options:"Smileyinställningar",title:"Infoga smiley",toolbar:"Smiley"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/th.js b/www/lib/ckeditor/plugins/smiley/lang/th.js new file mode 100644 index 00000000..e4e12770 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","th",{options:"ตัวเลือกไอคอนแสดงอารมณ์",title:"แทรกสัญลักษณ์สื่ออารมณ์",toolbar:"รูปสื่ออารมณ์"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/tr.js b/www/lib/ckeditor/plugins/smiley/lang/tr.js new file mode 100644 index 00000000..90481db7 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tr",{options:"İfade Seçenekleri",title:"İfade Ekle",toolbar:"İfade"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/tt.js b/www/lib/ckeditor/plugins/smiley/lang/tt.js new file mode 100644 index 00000000..7f1c8d3e --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","tt",{options:"Смайл көйләүләре",title:"Смайл өстәү",toolbar:"Смайл"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/ug.js b/www/lib/ckeditor/plugins/smiley/lang/ug.js new file mode 100644 index 00000000..5d8ec4eb --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","ug",{options:"چىراي ئىپادە سىنبەلگە تاللانمىسى",title:"چىراي ئىپادە سىنبەلگە قىستۇر",toolbar:"چىراي ئىپادە"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/uk.js b/www/lib/ckeditor/plugins/smiley/lang/uk.js new file mode 100644 index 00000000..f6c59ee1 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","uk",{options:"Опції смайликів",title:"Вставити смайлик",toolbar:"Смайлик"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/vi.js b/www/lib/ckeditor/plugins/smiley/lang/vi.js new file mode 100644 index 00000000..f5d1a665 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","vi",{options:"Tùy chọn hình biểu lộ cảm xúc",title:"Chèn hình biểu lộ cảm xúc (mặt cười)",toolbar:"Hình biểu lộ cảm xúc (mặt cười)"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js b/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js new file mode 100644 index 00000000..daea8579 --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh-cn",{options:"表情图标选项",title:"插入表情图标",toolbar:"表情符"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/lang/zh.js b/www/lib/ckeditor/plugins/smiley/lang/zh.js new file mode 100644 index 00000000..dffc3f0a --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("smiley","zh",{options:"表情符號選項",title:"插入表情符號",toolbar:"表情符號"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/smiley/plugin.js b/www/lib/ckeditor/plugins/smiley/plugin.js new file mode 100644 index 00000000..426cb09b --- /dev/null +++ b/www/lib/ckeditor/plugins/smiley/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("smiley",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"smiley",hidpi:!0,init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley",{allowedContent:"img[alt,height,!src,title,width]",requiredContent:"img"})); +a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.png sad_smile.png wink_smile.png teeth_smile.png confused_smile.png tongue_smile.png embarrassed_smile.png omg_smile.png whatchutalkingabout_smile.png angry_smile.png angel_smile.png shades_smile.png devil_smile.png cry_smile.png lightbulb.png thumbs_down.png thumbs_up.png heart.png broken_heart.png kiss.png envelope.png".split(" "); +CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";"); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js b/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js new file mode 100644 index 00000000..d0728c38 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("sourcedialog",function(a){var b=CKEDITOR.document.getWindow().getViewPaneSize(),e=Math.min(b.width-70,800),b=b.height/1.5,d;return{title:a.lang.sourcedialog.title,minWidth:100,minHeight:100,onShow:function(){this.setValueOf("main","data",d=a.getData())},onOk:function(){function b(f,c){a.focus();a.setData(c,function(){f.hide();var b=a.createRange();b.moveToElementEditStart(a.editable());b.select()})}return function(){var a=this.getValueOf("main","data").replace(/\r/g,""),c=this; +if(a===d)return!0;setTimeout(function(){b(c,a)});return!1}}(),contents:[{id:"main",label:a.lang.sourcedialog.title,elements:[{type:"textarea",id:"data",dir:"ltr",inputStyle:"cursor:auto;width:"+e+"px;height:"+b+"px;tab-size:4;text-align:left;","class":"cke_source"}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png b/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png new file mode 100644 index 00000000..adf4af3c Binary files /dev/null and b/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png differ diff --git a/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png b/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png new file mode 100644 index 00000000..b4d0a15a Binary files /dev/null and b/www/lib/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png differ diff --git a/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png b/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png new file mode 100644 index 00000000..27d1ba88 Binary files /dev/null and b/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png differ diff --git a/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png b/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png new file mode 100644 index 00000000..e44db379 Binary files /dev/null and b/www/lib/ckeditor/plugins/sourcedialog/icons/sourcedialog.png differ diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/af.js b/www/lib/ckeditor/plugins/sourcedialog/lang/af.js new file mode 100644 index 00000000..f1491d1f --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","af",{toolbar:"Bron",title:"Bron"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js new file mode 100644 index 00000000..b755d750 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ar",{toolbar:"المصدر",title:"المصدر"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js b/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js new file mode 100644 index 00000000..1d8c6dca --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bg",{toolbar:"Източник",title:"Източник"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js b/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js new file mode 100644 index 00000000..fd41806f --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bn",{toolbar:"সোর্স",title:"সোর্স"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js b/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js new file mode 100644 index 00000000..9cd03930 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","bs",{toolbar:"HTML kôd",title:"HTML kôd"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js new file mode 100644 index 00000000..24193350 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ca",{toolbar:"Codi font",title:"Codi font"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js b/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js new file mode 100644 index 00000000..acd14e8d --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cs",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js b/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js new file mode 100644 index 00000000..d61bd35e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","cy",{toolbar:"HTML",title:"HTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/da.js b/www/lib/ckeditor/plugins/sourcedialog/lang/da.js new file mode 100644 index 00000000..7c21ca42 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","da",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/de.js b/www/lib/ckeditor/plugins/sourcedialog/lang/de.js new file mode 100644 index 00000000..49f7c610 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","de",{toolbar:"Quellcode",title:"Quellcode"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/el.js b/www/lib/ckeditor/plugins/sourcedialog/lang/el.js new file mode 100644 index 00000000..58f9dd6c --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","el",{toolbar:"Κώδικας",title:"Κώδικας"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js b/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js new file mode 100644 index 00000000..9dede838 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-au",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js b/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js new file mode 100644 index 00000000..244ef5ff --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js b/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js new file mode 100644 index 00000000..9381cd0e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en-gb",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/en.js b/www/lib/ckeditor/plugins/sourcedialog/lang/en.js new file mode 100644 index 00000000..20b116ed --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","en",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js b/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js new file mode 100644 index 00000000..902480da --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eo",{toolbar:"Fonto",title:"Fonto"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/es.js b/www/lib/ckeditor/plugins/sourcedialog/lang/es.js new file mode 100644 index 00000000..e7f85510 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","es",{toolbar:"Fuente HTML",title:"Fuente HTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/et.js b/www/lib/ckeditor/plugins/sourcedialog/lang/et.js new file mode 100644 index 00000000..9c3848b2 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","et",{toolbar:"Lähtekood",title:"Lähtekood"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js b/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js new file mode 100644 index 00000000..dc75afe0 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","eu",{toolbar:"HTML Iturburua",title:"HTML Iturburua"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js b/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js new file mode 100644 index 00000000..65b63062 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fa",{toolbar:"منبع",title:"منبع"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js b/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js new file mode 100644 index 00000000..b7630ff0 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fi",{toolbar:"Koodi",title:"Koodi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js b/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js new file mode 100644 index 00000000..ab4e5570 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fo",{toolbar:"Kelda",title:"Kelda"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js b/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js new file mode 100644 index 00000000..23148f8e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr-ca",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js b/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js new file mode 100644 index 00000000..8bc19780 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","fr",{toolbar:"Source",title:"Source"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js b/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js new file mode 100644 index 00000000..8a3bcbcd --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gl",{toolbar:"Orixe",title:"Orixe"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js b/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js new file mode 100644 index 00000000..2241ec60 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","gu",{toolbar:"મૂળ કે પ્રાથમિક દસ્તાવેજ",title:"મૂળ કે પ્રાથમિક દસ્તાવેજ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/he.js b/www/lib/ckeditor/plugins/sourcedialog/lang/he.js new file mode 100644 index 00000000..4f255502 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","he",{toolbar:"מקור",title:"מקור"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js b/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js new file mode 100644 index 00000000..41ebe9b1 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hi",{toolbar:"सोर्स",title:"सोर्स"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js b/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js new file mode 100644 index 00000000..51d2d4db --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hr",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js b/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js new file mode 100644 index 00000000..5e80c1e7 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","hu",{toolbar:"Forráskód",title:"Forráskód"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/id.js b/www/lib/ckeditor/plugins/sourcedialog/lang/id.js new file mode 100644 index 00000000..e5af768e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","id",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/is.js b/www/lib/ckeditor/plugins/sourcedialog/lang/is.js new file mode 100644 index 00000000..fa21def4 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","is",{toolbar:"Kóði",title:"Kóði"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/it.js b/www/lib/ckeditor/plugins/sourcedialog/lang/it.js new file mode 100644 index 00000000..0a6c8c04 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","it",{toolbar:"Sorgente",title:"Sorgente"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js new file mode 100644 index 00000000..81832591 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ja",{toolbar:"ソース",title:"ソース"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js new file mode 100644 index 00000000..201586a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ka",{toolbar:"კოდები",title:"კოდები"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/km.js b/www/lib/ckeditor/plugins/sourcedialog/lang/km.js new file mode 100644 index 00000000..421b42c8 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","km",{toolbar:"អក្សរ​កូដ",title:"អក្សរ​កូដ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js new file mode 100644 index 00000000..64aa7004 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ko",{toolbar:"소스",title:"소스"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js new file mode 100644 index 00000000..61faf97b --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ku",{toolbar:"سەرچاوە",title:"سەرچاوە"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js b/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js new file mode 100644 index 00000000..4b297dd3 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lt",{toolbar:"Šaltinis",title:"Šaltinis"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js b/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js new file mode 100644 index 00000000..1f454578 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","lv",{toolbar:"HTML kods",title:"HTML kods"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js b/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js new file mode 100644 index 00000000..d1d2b635 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","mn",{toolbar:"Код",title:"Код"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js new file mode 100644 index 00000000..69e7e9fb --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ms",{toolbar:"Sumber",title:"Sumber"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js b/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js new file mode 100644 index 00000000..224b0855 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nb",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js b/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js new file mode 100644 index 00000000..47d692d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","nl",{toolbar:"Broncode",title:"Broncode"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/no.js b/www/lib/ckeditor/plugins/sourcedialog/lang/no.js new file mode 100644 index 00000000..02cadbac --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","no",{toolbar:"Kilde",title:"Kilde"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js b/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js new file mode 100644 index 00000000..80d4f44b --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pl",{toolbar:"Źródło dokumentu",title:"Źródło dokumentu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js b/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js new file mode 100644 index 00000000..358cfd18 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt-br",{toolbar:"Código-Fonte",title:"Código-Fonte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js b/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js new file mode 100644 index 00000000..f924ce8d --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","pt",{toolbar:"Fonte",title:"Fonte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js new file mode 100644 index 00000000..cc82c71d --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ro",{toolbar:"Sursa",title:"Sursa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js new file mode 100644 index 00000000..fbf6efb7 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ru",{toolbar:"Исходник",title:"Источник"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/si.js b/www/lib/ckeditor/plugins/sourcedialog/lang/si.js new file mode 100644 index 00000000..f869386e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","si",{toolbar:"මුලාශ්‍රය",title:"මුලාශ්‍රය"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js b/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js new file mode 100644 index 00000000..18dcae92 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sk",{toolbar:"Zdroj",title:"Zdroj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js b/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js new file mode 100644 index 00000000..85cfe161 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sl",{toolbar:"Izvorna koda",title:"Izvorna koda"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js b/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js new file mode 100644 index 00000000..1266a7fd --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sq",{toolbar:"Burimi",title:"Burimi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js b/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js new file mode 100644 index 00000000..4f0736c2 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr-latn",{toolbar:"Kôd",title:"Kôd"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js b/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js new file mode 100644 index 00000000..84073825 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sr",{toolbar:"Kôд",title:"Kôд"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js b/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js new file mode 100644 index 00000000..2fec89c7 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","sv",{toolbar:"Källa",title:"Källa"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/th.js b/www/lib/ckeditor/plugins/sourcedialog/lang/th.js new file mode 100644 index 00000000..03e48901 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","th",{toolbar:"ดูรหัส HTML",title:"ดูรหัส HTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js b/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js new file mode 100644 index 00000000..31ac46b5 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tr",{toolbar:"Kaynak",title:"Kaynak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js b/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js new file mode 100644 index 00000000..a4c7d5eb --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","tt",{toolbar:"Чыганак",title:"Чыганак"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js b/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js new file mode 100644 index 00000000..efcc9d79 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","ug",{toolbar:"مەنبە",title:"مەنبە"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js b/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js new file mode 100644 index 00000000..ca9afc2e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","uk",{toolbar:"Джерело",title:"Джерело"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js b/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js new file mode 100644 index 00000000..65c47d61 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","vi",{toolbar:"Mã HTML",title:"Mã HTML"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js b/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js new file mode 100644 index 00000000..fc5bb0d8 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh-cn",{toolbar:"源码",title:"源码"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js b/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js new file mode 100644 index 00000000..c49aa82e --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("sourcedialog","zh",{toolbar:"原始碼",title:"原始碼"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/sourcedialog/plugin.js b/www/lib/ckeditor/plugins/sourcedialog/plugin.js new file mode 100644 index 00000000..b7cc6875 --- /dev/null +++ b/www/lib/ckeditor/plugins/sourcedialog/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("sourcedialog",{lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"sourcedialog,sourcedialog-rtl",hidpi:!0,init:function(a){a.addCommand("sourcedialog",new CKEDITOR.dialogCommand("sourcedialog"));CKEDITOR.dialog.add("sourcedialog",this.path+"dialogs/sourcedialog.js");a.ui.addButton&&a.ui.addButton("Sourcedialog", +{label:a.lang.sourcedialog.toolbar,command:"sourcedialog",toolbar:"mode,10"})}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt new file mode 100644 index 00000000..baadd2b7 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -0,0 +1,20 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +cs.js Found: 118 Missing: 0 +cy.js Found: 118 Missing: 0 +de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 +eo.js Found: 118 Missing: 0 +et.js Found: 31 Missing: 87 +fa.js Found: 24 Missing: 94 +fi.js Found: 23 Missing: 95 +fr.js Found: 118 Missing: 0 +hr.js Found: 23 Missing: 95 +it.js Found: 118 Missing: 0 +nb.js Found: 118 Missing: 0 +nl.js Found: 118 Missing: 0 +no.js Found: 118 Missing: 0 +tr.js Found: 118 Missing: 0 +ug.js Found: 39 Missing: 79 +zh-cn.js Found: 118 Missing: 0 diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js new file mode 100644 index 00000000..acb6c923 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js new file mode 100644 index 00000000..0bf8749e --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js new file mode 100644 index 00000000..e6504372 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", +laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", +Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", +Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", +Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", +aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", +igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", +divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", +374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", +asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js new file mode 100644 index 00000000..c2b38f0f --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", +not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", +Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", +Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", +Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", +acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", +icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", +uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", +8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js new file mode 100644 index 00000000..77f59f61 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", +reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", +Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", +Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", +Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", +aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", +euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", +otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", +OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", +diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js new file mode 100644 index 00000000..6b3ce87e --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", +reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", +Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", +Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", +Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", +aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", +eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", +ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", +sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js new file mode 100644 index 00000000..e7c2a219 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", +ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", +iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", +Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", +Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", +acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", +icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", +uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", +sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js new file mode 100644 index 00000000..5a147863 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js new file mode 100644 index 00000000..26f61c2e --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js new file mode 100644 index 00000000..d44b0d2e --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", +sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", +Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", +Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", +szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", +igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", +uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", +bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js new file mode 100644 index 00000000..79d437f9 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", +not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", +Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", +Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", +times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", +acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", +iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", +ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", +373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js new file mode 100644 index 00000000..22c90561 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", +bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js new file mode 100644 index 00000000..e0b27c59 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", +macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", +Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", +Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", +aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", +iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", +thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", +asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js new file mode 100644 index 00000000..6d701e3c --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js new file mode 100644 index 00000000..d19e2e42 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", +Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", +Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", +eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", +373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js new file mode 100644 index 00000000..2d1ad096 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", +Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", +Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", +auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", +ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", +373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js new file mode 100644 index 00000000..f16d3667 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", +not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", +Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", +Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", +times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", +acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", +iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", +ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", +373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js new file mode 100644 index 00000000..dcfc50f0 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", +macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", +Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", +ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", +Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", +ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", +divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", +373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js new file mode 100644 index 00000000..af10255d --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", +reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js new file mode 100644 index 00000000..79483051 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", +reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", +Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", +Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", +agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", +icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", +uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", +9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js new file mode 100644 index 00000000..4928f400 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js new file mode 100644 index 00000000..894b56ce --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", +not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", +Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", +Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", +Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", +agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", +ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", +ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", +yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", +trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js new file mode 100644 index 00000000..84fb8fa2 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", +frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", +times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", +ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", +rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js new file mode 100644 index 00000000..65a7518d --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js new file mode 100644 index 00000000..4917d4ad --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", +ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", +Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", +Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", +times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", +atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", +icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", +uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", +375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js new file mode 100644 index 00000000..50a77d36 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", +laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", +Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", +Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", +times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", +acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", +icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", +uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", +sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js new file mode 100644 index 00000000..0cdcde20 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js new file mode 100644 index 00000000..68edf37f --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", +reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", +Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", +Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", +Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", +aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", +iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", +uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", +375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js new file mode 100644 index 00000000..eecc56c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js new file mode 100644 index 00000000..f21a09db --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", +laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", +Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", +Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", +Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", +eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", +divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", +375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka w lewo",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js new file mode 100644 index 00000000..e3f78319 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", +macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", +Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", +Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", +aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", +otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", +373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js new file mode 100644 index 00000000..11ef746a --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", +laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", +Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", +Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", +times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", +atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", +icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", +uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", +sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa Duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js new file mode 100644 index 00000000..866e8659 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", +not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", +Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", +Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", +Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", +aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", +ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", +uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", +bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js new file mode 100644 index 00000000..1255a350 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", +macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js new file mode 100644 index 00000000..2d226d06 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", +reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", +Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", +Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", +Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", +aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", +oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", +OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", +hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js new file mode 100644 index 00000000..84759b62 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", +macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", +Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", +ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", +Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", +ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", +divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", +373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js new file mode 100644 index 00000000..c7098005 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", +Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", +Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", +times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", +acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", +iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", +ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", +373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js new file mode 100644 index 00000000..8f741b93 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", +not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", +Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", +Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", +ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", +ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", +trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js new file mode 100644 index 00000000..ae0b00e5 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js new file mode 100644 index 00000000..3dd220a3 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", +not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", +Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", +ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", +THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", +igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", +uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", +bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js new file mode 100644 index 00000000..2eadb9f7 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/tt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Section sign",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", +not:"Not sign",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Middle dot",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе", +Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе", +Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе", +Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе", +ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе", +ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе", +oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow", +diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js new file mode 100644 index 00000000..51f4c1d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", +deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", +Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", +ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", +oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", +yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js new file mode 100644 index 00000000..845e7524 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", +not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", +Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", +Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", +Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", +igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", +ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", +hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js new file mode 100644 index 00000000..d4e4d37a --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", +reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", +Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", +Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", +times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", +atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", +iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", +divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", +372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", +asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js new file mode 100644 index 00000000..6896e912 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", +Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", +Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", +iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", +373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js new file mode 100644 index 00000000..7bc2b556 --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", +frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", +Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", +times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", +auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", +eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", +uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js b/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js new file mode 100644 index 00000000..c4d1696b --- /dev/null +++ b/www/lib/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); +var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), +j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); +break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): +d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
 ');f.push("
",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, +title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", +align:"top",children:[{type:"html",html:"
"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
 
"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", +html:"
 
"}]}]}]}]}]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/stylesheetparser/plugin.js b/www/lib/ckeditor/plugins/stylesheetparser/plugin.js new file mode 100644 index 00000000..25ddd8f6 --- /dev/null +++ b/www/lib/ckeditor/plugins/stylesheetparser/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function h(b,e,c){var i=[],g=[],a;for(a=0;a|\+|~)/g," ");a=a.replace(/\[[^\]]*/g,"");a=a.replace(/#[^\s]*/g,"");a=a.replace(/\:{1,2}[^\s]*/g,"");a=a.replace(/\s+/g," ");a=a.split(" ");b=[];for(g=0;gl&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& +a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); +a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", +this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", +html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0b.indexOf("px")&&(b=b in j&&"none"!=a.getComputedStyle("border-style")?j[b]:0);return parseInt(b,10)}function w(a){var h=[],b=-1,j="rtl"==a.getComputedStyle("direction"),c;c=a.$.rows;for(var p=0,g,d,e,i=0,o=c.length;ip&&(p=g,d=e);c=d;p=new CKEDITOR.dom.element(a.$.tBodies[0]); +g=p.getDocumentPosition();d=0;for(e=c.cells.length;d',d);a.on("destroy",function(){e.remove()});s||d.getDocumentElement().append(e);this.attachTo=function(a){i|| +(s&&(d.getBody().append(e),k=0),g=a,e.setStyles({width:f(a.width),height:f(a.height),left:f(a.x),top:f(a.y)}),s&&e.setOpacity(0.25),e.on("mousedown",j,this),d.getBody().setStyle("cursor","col-resize"),e.show())};var r=this.move=function(a){if(!g)return 0;if(!i&&(ag.x+g.width))return g=null,i=k=0,d.removeListener("mouseup",c),e.removeListener("mousedown",j),e.removeListener("mousemove",p),d.getBody().setStyle("cursor","auto"),s?e.remove():e.hide(),0;a-=Math.round(e.$.offsetWidth/2);if(i){if(a== +y||a==z)return 1;a=Math.max(a,y);a=Math.min(a,z);k=a-o}e.setStyle("left",f(a));return 1}}function r(a){var h=a.data.getTarget();if("mouseout"==a.name){if(!h.is("table"))return;for(var b=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);b&&b.$&&!b.equals(h)&&!b.is("body");)b=b.getParent();if(!b||b.equals(h))return}h.getAscendant("table",1).removeCustomData("_cke_table_pillars");a.removeListener()}var f=CKEDITOR.tools.cssLength,s=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks); +CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(a){a.on("contentDom",function(){var h,b=a.editable();b.attachListener(b.isInline()?b:a.document,"mousemove",function(b){var b=b.data,c=b.getTarget();if(c.type==CKEDITOR.NODE_ELEMENT){var f=b.getPageOffset().x;if(h&&h.move(f))u(b);else if(c.is("table")||c.getAscendant("tbody",1)){c=c.getAscendant("table",1);if(!(b=c.getCustomData("_cke_table_pillars")))c.setCustomData("_cke_table_pillars",b=w(c)),c.on("mouseout",r),c.on("mousedown", +r);a:{for(var c=0,g=b.length;c=d.x&&f<=d.x+d.width){f=d;break a}}f=null}f&&(!h&&(h=new A(a)),h.attachTo(f))}}})})}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js b/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js new file mode 100644 index 00000000..fb8e99ad --- /dev/null +++ b/www/lib/ckeditor/plugins/tabletools/dialogs/tableCell.js @@ -0,0 +1,17 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("cellProperties",function(g){function d(a){return function(b){for(var c=a(b[0]),d=1;d"+h.widthPx}]},f,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:d(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")|| +b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},f,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.alignLeft,"left"],[e.alignCenter,"center"],[e.alignRight,"right"],[e.alignJustify,"justify"]],setup:d(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align"); +a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:d(function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]}, +f,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:d(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},f,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:i.integer(c.invalidRowSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()): +a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:i.integer(c.invalidColSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},f,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:d(function(a){var b=a.getAttribute("bgColor"); +return a.getStyle("background-color")||b}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}},k?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:f]},f, +{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:d(function(a){var b=a.getAttribute("borderColor");return a.getStyle("border-color")||b}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},k?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(m?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align", +"bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}}:f]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d
'),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), +c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, +minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
'+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, +"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d'+f.emptyListMsg+"")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png b/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png differ diff --git a/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png b/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png new file mode 100644 index 00000000..9a263404 Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/icons/hidpi/templates.png differ diff --git a/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png b/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/icons/templates-rtl.png differ diff --git a/www/lib/ckeditor/plugins/templates/icons/templates.png b/www/lib/ckeditor/plugins/templates/icons/templates.png new file mode 100644 index 00000000..202b6045 Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/icons/templates.png differ diff --git a/www/lib/ckeditor/plugins/templates/lang/af.js b/www/lib/ckeditor/plugins/templates/lang/af.js new file mode 100644 index 00000000..3d31c9f5 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/af.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","af",{button:"Sjablone",emptyListMsg:"(Geen sjablone gedefineer nie)",insertOption:"Vervang huidige inhoud",options:"Sjabloon opsies",selectPromptMsg:"Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):",title:"Inhoud Sjablone"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ar.js b/www/lib/ckeditor/plugins/templates/lang/ar.js new file mode 100644 index 00000000..b4d6e742 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ar.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ar",{button:"القوالب",emptyListMsg:"(لم يتم تعريف أي قالب)",insertOption:"استبدال المحتوى",options:"خصائص القوالب",selectPromptMsg:"اختر القالب الذي تود وضعه في المحرر",title:"قوالب المحتوى"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/bg.js b/www/lib/ckeditor/plugins/templates/lang/bg.js new file mode 100644 index 00000000..766b87ac --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/bg.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bg",{button:"Шаблони",emptyListMsg:"(Няма дефинирани шаблони)",insertOption:"Препокрива актуалното съдържание",options:"Опции за шаблона",selectPromptMsg:"Изберете шаблон
(текущото съдържание на редактора ще бъде загубено):",title:"Шаблони"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/bn.js b/www/lib/ckeditor/plugins/templates/lang/bn.js new file mode 100644 index 00000000..d8faf6f4 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/bn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bn",{button:"টেমপ্লেট",emptyListMsg:"(কোন টেমপ্লেট ডিফাইন করা নেই)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন
(আসল কনটেন্ট হারিয়ে যাবে):",title:"কনটেন্ট টেমপ্লেট"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/bs.js b/www/lib/ckeditor/plugins/templates/lang/bs.js new file mode 100644 index 00000000..09cfcd7e --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/bs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","bs",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ca.js b/www/lib/ckeditor/plugins/templates/lang/ca.js new file mode 100644 index 00000000..5aec5ba9 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ca",{button:"Plantilles",emptyListMsg:"(No hi ha plantilles definides)",insertOption:"Reemplaça el contingut actual",options:"Opcions de plantilla",selectPromptMsg:"Seleccioneu una plantilla per usar a l'editor
(per defecte s'elimina el contingut actual):",title:"Plantilles de contingut"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/cs.js b/www/lib/ckeditor/plugins/templates/lang/cs.js new file mode 100644 index 00000000..0ceb5a01 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/cs.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cs",{button:"Šablony",emptyListMsg:"(Není definována žádná šablona)",insertOption:"Nahradit aktuální obsah",options:"Nastavení šablon",selectPromptMsg:"Prosím zvolte šablonu pro otevření v editoru
(aktuální obsah editoru bude ztracen):",title:"Šablony obsahu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/cy.js b/www/lib/ckeditor/plugins/templates/lang/cy.js new file mode 100644 index 00000000..86896b0e --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/cy.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","cy",{button:"Templedi",emptyListMsg:"(Dim templedi wedi'u diffinio)",insertOption:"Amnewid y cynnwys go iawn",options:"Opsiynau Templedi",selectPromptMsg:"Dewiswch dempled i'w agor yn y golygydd",title:"Templedi Cynnwys"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/da.js b/www/lib/ckeditor/plugins/templates/lang/da.js new file mode 100644 index 00000000..a7505cc7 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/da.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","da",{button:"Skabeloner",emptyListMsg:"(Der er ikke defineret nogen skabelon)",insertOption:"Erstat det faktiske indhold",options:"Skabelon muligheder",selectPromptMsg:"Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):",title:"Indholdsskabeloner"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/de.js b/www/lib/ckeditor/plugins/templates/lang/de.js new file mode 100644 index 00000000..de5a7619 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/de.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","de",{button:"Vorlagen",emptyListMsg:"(keine Vorlagen definiert)",insertOption:"Aktuellen Inhalt ersetzen",options:"Vorlagen Optionen",selectPromptMsg:"Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",title:"Vorlagen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/el.js b/www/lib/ckeditor/plugins/templates/lang/el.js new file mode 100644 index 00000000..ca7464d9 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/el.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","el",{button:"Πρότυπα",emptyListMsg:"(Δεν έχουν καθοριστεί πρότυπα)",insertOption:"Αντικατάσταση υπάρχοντων περιεχομένων",options:"Επιλογές Προτύπου",selectPromptMsg:"Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα",title:"Πρότυπα Περιεχομένου"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/en-au.js b/www/lib/ckeditor/plugins/templates/lang/en-au.js new file mode 100644 index 00000000..65e54336 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/en-au.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-au",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/en-ca.js b/www/lib/ckeditor/plugins/templates/lang/en-ca.js new file mode 100644 index 00000000..5472454f --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/en-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-ca",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/en-gb.js b/www/lib/ckeditor/plugins/templates/lang/en-gb.js new file mode 100644 index 00000000..ec9a7fd7 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/en-gb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en-gb",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/en.js b/www/lib/ckeditor/plugins/templates/lang/en.js new file mode 100644 index 00000000..c5fef88d --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/en.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","en",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/eo.js b/www/lib/ckeditor/plugins/templates/lang/eo.js new file mode 100644 index 00000000..5d5afe6c --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/eo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eo",{button:"Ŝablonoj",emptyListMsg:"(Neniu ŝablono difinita)",insertOption:"Anstataŭigi la nunan enhavon",options:"Opcioj pri ŝablonoj",selectPromptMsg:"Bonvolu selekti la ŝablonon por malfermi ĝin en la redaktilo",title:"Enhavo de ŝablonoj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/es.js b/www/lib/ckeditor/plugins/templates/lang/es.js new file mode 100644 index 00000000..c541e307 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/es.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","es",{button:"Plantillas",emptyListMsg:"(No hay plantillas definidas)",insertOption:"Reemplazar el contenido actual",options:"Opciones de plantillas",selectPromptMsg:"Por favor selecciona la plantilla a abrir en el editor
(el contenido actual se perderá):",title:"Contenido de Plantillas"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/et.js b/www/lib/ckeditor/plugins/templates/lang/et.js new file mode 100644 index 00000000..7e5e5855 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/et.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","et",{button:"Mall",emptyListMsg:"(Ühtegi malli ei ole defineeritud)",insertOption:"Praegune sisu asendatakse",options:"Malli valikud",selectPromptMsg:"Palun vali mall, mis avada redaktoris
(praegune sisu läheb kaotsi):",title:"Sisumallid"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/eu.js b/www/lib/ckeditor/plugins/templates/lang/eu.js new file mode 100644 index 00000000..25b36ae1 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/eu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","eu",{button:"Txantiloiak",emptyListMsg:"(Ez dago definitutako txantiloirik)",insertOption:"Ordeztu oraingo edukiak",options:"Txantiloi Aukerak",selectPromptMsg:"Mesedez txantiloia aukeratu editorean kargatzeko
(orain dauden edukiak galduko dira):",title:"Eduki Txantiloiak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/fa.js b/www/lib/ckeditor/plugins/templates/lang/fa.js new file mode 100644 index 00000000..b7a94ba4 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/fa.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fa",{button:"الگوها",emptyListMsg:"(الگوئی تعریف نشده است)",insertOption:"محتویات کنونی جایگزین شوند",options:"گزینه‌های الگو",selectPromptMsg:"لطفاً الگوی مورد نظر را برای بازکردن در ویرایشگر انتخاب کنید",title:"الگوهای محتویات"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/fi.js b/www/lib/ckeditor/plugins/templates/lang/fi.js new file mode 100644 index 00000000..e58e9e46 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/fi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fi",{button:"Pohjat",emptyListMsg:"(Ei määriteltyjä pohjia)",insertOption:"Korvaa koko sisältö",options:"Sisältöpohjan ominaisuudet",selectPromptMsg:"Valitse editoriin avattava pohja",title:"Sisältöpohjat"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/fo.js b/www/lib/ckeditor/plugins/templates/lang/fo.js new file mode 100644 index 00000000..9ef42b39 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/fo.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fo",{button:"Skabelónir",emptyListMsg:"(Ongar skabelónir tøkar)",insertOption:"Yvirskriva núverandi innihald",options:"Møguleikar fyri Template",selectPromptMsg:"Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum
(Hetta yvirskrivar núverandi innihald):",title:"Innihaldsskabelónir"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/fr-ca.js b/www/lib/ckeditor/plugins/templates/lang/fr-ca.js new file mode 100644 index 00000000..91003fc7 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/fr-ca.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr-ca",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer tout le contenu actuel",options:"Options de modèles",selectPromptMsg:"Sélectionner le modèle à ouvrir dans l'éditeur",title:"Modèles de contenu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/fr.js b/www/lib/ckeditor/plugins/templates/lang/fr.js new file mode 100644 index 00000000..48cb6d3d --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/fr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","fr",{button:"Modèles",emptyListMsg:"(Aucun modèle disponible)",insertOption:"Remplacer le contenu actuel",options:"Options des modèles",selectPromptMsg:"Veuillez sélectionner le modèle pour l'ouvrir dans l'éditeur",title:"Contenu des modèles"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/gl.js b/www/lib/ckeditor/plugins/templates/lang/gl.js new file mode 100644 index 00000000..24483d1a --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/gl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gl",{button:"Modelos",emptyListMsg:"(Non hai modelos definidos)",insertOption:"Substituír o contido actual",options:"Opcións de modelos",selectPromptMsg:"Seleccione o modelo a abrir no editor",title:"Modelos de contido"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/gu.js b/www/lib/ckeditor/plugins/templates/lang/gu.js new file mode 100644 index 00000000..ae121968 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/gu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","gu",{button:"ટેમ્પ્લેટ",emptyListMsg:"(કોઈ ટેમ્પ્લેટ ડિફાઇન નથી)",insertOption:"મૂળ શબ્દને બદલો",options:"ટેમ્પ્લેટના વિકલ્પો",selectPromptMsg:"એડિટરમાં ઓપન કરવા ટેમ્પ્લેટ પસંદ કરો (વર્તમાન કન્ટેન્ટ સેવ નહીં થાય):",title:"કન્ટેન્ટ ટેમ્પ્લેટ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/he.js b/www/lib/ckeditor/plugins/templates/lang/he.js new file mode 100644 index 00000000..0e970ca5 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/he.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","he",{button:"תבניות",emptyListMsg:"(לא הוגדרו תבניות)",insertOption:"החלפת תוכן ממשי",options:"אפשרויות התבניות",selectPromptMsg:"יש לבחור תבנית לפתיחה בעורך.
התוכן המקורי ימחק:",title:"תביות תוכן"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/hi.js b/www/lib/ckeditor/plugins/templates/lang/hi.js new file mode 100644 index 00000000..246bfe04 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/hi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hi",{button:"टॅम्प्लेट",emptyListMsg:"(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",insertOption:"मूल शब्दों को बदलें",options:"Template Options",selectPromptMsg:"ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",title:"कन्टेन्ट टॅम्प्लेट"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/hr.js b/www/lib/ckeditor/plugins/templates/lang/hr.js new file mode 100644 index 00000000..3bc52ea0 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/hr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hr",{button:"Predlošci",emptyListMsg:"(Nema definiranih predložaka)",insertOption:"Zamijeni trenutne sadržaje",options:"Opcije predložaka",selectPromptMsg:"Molimo odaberite predložak koji želite otvoriti
(stvarni sadržaj će biti izgubljen):",title:"Predlošci sadržaja"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/hu.js b/www/lib/ckeditor/plugins/templates/lang/hu.js new file mode 100644 index 00000000..90ccbb66 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/hu.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","hu",{button:"Sablonok",emptyListMsg:"(Nincs sablon megadva)",insertOption:"Kicseréli a jelenlegi tartalmat",options:"Sablon opciók",selectPromptMsg:"Válassza ki melyik sablon nyíljon meg a szerkesztőben
(a jelenlegi tartalom elveszik):",title:"Elérhető sablonok"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/id.js b/www/lib/ckeditor/plugins/templates/lang/id.js new file mode 100644 index 00000000..8dc86b0b --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/id.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","id",{button:"Contoh",emptyListMsg:"(Tidak ada contoh didefinisikan)",insertOption:"Ganti konten sebenarnya",options:"Opsi Contoh",selectPromptMsg:"Mohon pilih contoh untuk dibuka di editor",title:"Contoh Konten"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/is.js b/www/lib/ckeditor/plugins/templates/lang/is.js new file mode 100644 index 00000000..13e0736d --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/is.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","is",{button:"Sniðmát",emptyListMsg:"(Ekkert sniðmát er skilgreint!)",insertOption:"Skipta út raunverulegu innihaldi",options:"Template Options",selectPromptMsg:"Veldu sniðmát til að opna í ritlinum.
(Núverandi innihald víkur fyrir því!):",title:"Innihaldssniðmát"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/it.js b/www/lib/ckeditor/plugins/templates/lang/it.js new file mode 100644 index 00000000..c3303ce1 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/it.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","it",{button:"Modelli",emptyListMsg:"(Nessun modello definito)",insertOption:"Cancella il contenuto corrente",options:"Opzioni del Modello",selectPromptMsg:"Seleziona il modello da aprire nell'editor",title:"Contenuto dei modelli"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ja.js b/www/lib/ckeditor/plugins/templates/lang/ja.js new file mode 100644 index 00000000..dbf519c3 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ja.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ja",{button:"テンプレート",emptyListMsg:"(テンプレートが定義されていません)",insertOption:"現在のエディタの内容と置き換えます",options:"テンプレートオプション",selectPromptMsg:"エディターで使用するテンプレートを選択してください。
(現在のエディタの内容は失われます):",title:"内容テンプレート"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ka.js b/www/lib/ckeditor/plugins/templates/lang/ka.js new file mode 100644 index 00000000..5864b757 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ka.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ka",{button:"თარგები",emptyListMsg:"(თარგი არაა განსაზღვრული)",insertOption:"მიმდინარე შეგთავსის შეცვლა",options:"თარგების პარამეტრები",selectPromptMsg:"აირჩიეთ თარგი რედაქტორისთვის",title:"თარგები"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/km.js b/www/lib/ckeditor/plugins/templates/lang/km.js new file mode 100644 index 00000000..14a0cf02 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/km.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","km",{button:"ពុម្ព​គំរូ",emptyListMsg:"(មិន​មាន​ពុម្ព​គំរូ​ត្រូវ​បាន​កំណត់)",insertOption:"ជំនួស​ក្នុង​មាតិកា​បច្ចុប្បន្ន",options:"ជម្រើស​ពុម្ព​គំរូ",selectPromptMsg:"សូម​រើស​ពុម្ព​គំរូ​ដើម្បី​បើក​ក្នុង​កម្មវិធី​សរសេរ​អត្ថបទ",title:"ពុម្ព​គំរូ​មាតិកា"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ko.js b/www/lib/ckeditor/plugins/templates/lang/ko.js new file mode 100644 index 00000000..99c4f608 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ko.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ko",{button:"템플릿",emptyListMsg:"(템플릿이 없습니다.)",insertOption:"현재 내용 바꾸기",options:"템플릿 옵션",selectPromptMsg:"에디터에서 사용할 템플릿을 선택하십시요.
(지금까지 작성된 내용은 사라집니다.):",title:"내용 템플릿"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ku.js b/www/lib/ckeditor/plugins/templates/lang/ku.js new file mode 100644 index 00000000..a5bda7d0 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ku.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ku",{button:"ڕووکار",emptyListMsg:"(هیچ ڕووکارێك دیارینەکراوە)",insertOption:"لە شوێن دانانی ئەم پێکهاتانەی ئێستا",options:"هەڵبژاردەکانی ڕووکار",selectPromptMsg:"ڕووکارێك هەڵبژێره بۆ کردنەوەی له سەرنووسەر:",title:"پێکهاتەی ڕووکار"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/lt.js b/www/lib/ckeditor/plugins/templates/lang/lt.js new file mode 100644 index 00000000..ebbf213c --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/lt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lt",{button:"Šablonai",emptyListMsg:"(Šablonų sąrašas tuščias)",insertOption:"Pakeisti dabartinį turinį pasirinktu šablonu",options:"Template Options",selectPromptMsg:"Pasirinkite norimą šabloną
(Dėmesio! esamas turinys bus prarastas):",title:"Turinio šablonai"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/lv.js b/www/lib/ckeditor/plugins/templates/lang/lv.js new file mode 100644 index 00000000..a08ad5b4 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/lv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","lv",{button:"Sagataves",emptyListMsg:"(Nav norādītas sagataves)",insertOption:"Aizvietot pašreizējo saturu",options:"Sagataves uzstādījumi",selectPromptMsg:"Lūdzu, norādiet sagatavi, ko atvērt editorā
(patreizējie dati tiks zaudēti):",title:"Satura sagataves"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/mk.js b/www/lib/ckeditor/plugins/templates/lang/mk.js new file mode 100644 index 00000000..ade20ea2 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/mk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mk",{button:"Templates",emptyListMsg:"(No templates defined)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Please select the template to open in the editor",title:"Content Templates"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/mn.js b/www/lib/ckeditor/plugins/templates/lang/mn.js new file mode 100644 index 00000000..768bce5a --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/mn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","mn",{button:"Загварууд",emptyListMsg:"(Загвар тодорхойлогдоогүй байна)",insertOption:"Одоогийн агууллагыг дарж бичих",options:"Template Options",selectPromptMsg:"Загварыг нээж editor-рүү сонгож оруулна уу
(Одоогийн агууллагыг устаж магадгүй):",title:"Загварын агуулга"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ms.js b/www/lib/ckeditor/plugins/templates/lang/ms.js new file mode 100644 index 00000000..5bf40cdf --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ms.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ms",{button:"Templat",emptyListMsg:"(Tiada Templat Disimpan)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Sila pilih templat untuk dibuka oleh editor
(kandungan sebenar akan hilang):",title:"Templat Kandungan"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/nb.js b/www/lib/ckeditor/plugins/templates/lang/nb.js new file mode 100644 index 00000000..5260dc85 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/nb.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nb",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/nl.js b/www/lib/ckeditor/plugins/templates/lang/nl.js new file mode 100644 index 00000000..a752e4bc --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/nl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","nl",{button:"Sjablonen",emptyListMsg:"(Geen sjablonen gedefinieerd)",insertOption:"Vervang de huidige inhoud",options:"Template opties",selectPromptMsg:"Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",title:"Inhoud sjablonen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/no.js b/www/lib/ckeditor/plugins/templates/lang/no.js new file mode 100644 index 00000000..cf5948b3 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/no.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","no",{button:"Maler",emptyListMsg:"(Ingen maler definert)",insertOption:"Erstatt gjeldende innhold",options:"Alternativer for mal",selectPromptMsg:"Velg malen du vil åpne i redigeringsverktøyet:",title:"Innholdsmaler"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/pl.js b/www/lib/ckeditor/plugins/templates/lang/pl.js new file mode 100644 index 00000000..537d93c6 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/pl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pl",{button:"Szablony",emptyListMsg:"(Brak zdefiniowanych szablonów)",insertOption:"Zastąp obecną zawartość",options:"Opcje szablonów",selectPromptMsg:"Wybierz szablon do otwarcia w edytorze
(obecna zawartość okna edytora zostanie utracona):",title:"Szablony zawartości"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/pt-br.js b/www/lib/ckeditor/plugins/templates/lang/pt-br.js new file mode 100644 index 00000000..65949501 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/pt-br.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt-br",{button:"Modelos de layout",emptyListMsg:"(Não foram definidos modelos de layout)",insertOption:"Substituir o conteúdo atual",options:"Opções de Template",selectPromptMsg:"Selecione um modelo de layout para ser aberto no editor
(o conteúdo atual será perdido):",title:"Modelo de layout de conteúdo"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/pt.js b/www/lib/ckeditor/plugins/templates/lang/pt.js new file mode 100644 index 00000000..829299eb --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/pt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","pt",{button:"Modelos",emptyListMsg:"(Sem modelos definidos)",insertOption:"Substituir conteúdos actuais",options:"Opções do Modelo",selectPromptMsg:"Por favor, selecione o modelo para abrir no editor",title:"Conteúdo dos Modelos"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ro.js b/www/lib/ckeditor/plugins/templates/lang/ro.js new file mode 100644 index 00000000..8ef5d355 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ro.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ro",{button:"Template-uri (şabloane)",emptyListMsg:"(Niciun template (şablon) definit)",insertOption:"Înlocuieşte cuprinsul actual",options:"Opțiuni șabloane",selectPromptMsg:"Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor
(conţinutul actual va fi pierdut):",title:"Template-uri (şabloane) de conţinut"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ru.js b/www/lib/ckeditor/plugins/templates/lang/ru.js new file mode 100644 index 00000000..201fa65b --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ru.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ru",{button:"Шаблоны",emptyListMsg:"(не определено ни одного шаблона)",insertOption:"Заменить текущее содержимое",options:"Параметры шаблона",selectPromptMsg:"Пожалуйста, выберите, какой шаблон следует открыть в редакторе",title:"Шаблоны содержимого"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/si.js b/www/lib/ckeditor/plugins/templates/lang/si.js new file mode 100644 index 00000000..dc4ea690 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/si.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","si",{button:"අච්චුව",emptyListMsg:"කිසිම අච්චුවක් කලින් තීරණය කර ",insertOption:"සත්‍ය අන්තර්ගතයන් ප්‍රතිස්ථාපනය කරන්න",options:"අච්චු ",selectPromptMsg:"කරුණාකර සංස්කරණය සදහා අච්චුවක් ",title:"අන්තර්ගත් අච්චුන්"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/sk.js b/www/lib/ckeditor/plugins/templates/lang/sk.js new file mode 100644 index 00000000..60f33664 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/sk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sk",{button:"Šablóny",emptyListMsg:"(Žiadne šablóny nedefinované)",insertOption:"Nahradiť aktuálny obsah",options:"Možnosti šablóny",selectPromptMsg:"Prosím vyberte šablónu na otvorenie v editore",title:"Šablóny obsahu"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/sl.js b/www/lib/ckeditor/plugins/templates/lang/sl.js new file mode 100644 index 00000000..db33ea9a --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/sl.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sl",{button:"Predloge",emptyListMsg:"(Ni pripravljenih predlog)",insertOption:"Zamenjaj trenutno vsebino",options:"Možnosti Predloge",selectPromptMsg:"Izberite predlogo, ki jo želite odpreti v urejevalniku
(trenutna vsebina bo izgubljena):",title:"Vsebinske predloge"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/sq.js b/www/lib/ckeditor/plugins/templates/lang/sq.js new file mode 100644 index 00000000..f10c387e --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/sq.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sq",{button:"Shabllonet",emptyListMsg:"(Asnjë shabllon nuk është paradefinuar)",insertOption:"Zëvendëso përmbajtjen aktuale",options:"Opsionet e Shabllonit",selectPromptMsg:"Përzgjidhni shabllonin për të hapur tek redaktuesi",title:"Përmbajtja e Shabllonit"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/sr-latn.js b/www/lib/ckeditor/plugins/templates/lang/sr-latn.js new file mode 100644 index 00000000..96498838 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/sr-latn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr-latn",{button:"Obrasci",emptyListMsg:"(Nema definisanih obrazaca)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",title:"Obrasci za sadržaj"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/sr.js b/www/lib/ckeditor/plugins/templates/lang/sr.js new file mode 100644 index 00000000..fea8b5ea --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/sr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sr",{button:"Обрасци",emptyListMsg:"(Нема дефинисаних образаца)",insertOption:"Replace actual contents",options:"Template Options",selectPromptMsg:"Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",title:"Обрасци за садржај"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/sv.js b/www/lib/ckeditor/plugins/templates/lang/sv.js new file mode 100644 index 00000000..78e82de7 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/sv.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","sv",{button:"Sidmallar",emptyListMsg:"(Ingen mall är vald)",insertOption:"Ersätt aktuellt innehåll",options:"Inställningar för mall",selectPromptMsg:"Var god välj en mall att använda med editorn
(allt nuvarande innehåll raderas):",title:"Sidmallar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/th.js b/www/lib/ckeditor/plugins/templates/lang/th.js new file mode 100644 index 00000000..e9d8e6b0 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/th.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","th",{button:"เทมเพลต",emptyListMsg:"(ยังไม่มีการกำหนดเทมเพลต)",insertOption:"แทนที่เนื้อหาเว็บไซต์ที่เลือก",options:"ตัวเลือกเกี่ยวกับเทมเพลท",selectPromptMsg:"กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์
(เนื้อหาส่วนนี้จะหายไป):",title:"เทมเพลตของส่วนเนื้อหาเว็บไซต์"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/tr.js b/www/lib/ckeditor/plugins/templates/lang/tr.js new file mode 100644 index 00000000..bd550faa --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/tr.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tr",{button:"Şablonlar",emptyListMsg:"(Belirli bir şablon seçilmedi)",insertOption:"Mevcut içerik ile değiştir",options:"Şablon Seçenekleri",selectPromptMsg:"Düzenleyicide açmak için lütfen bir şablon seçin.
(hali hazırdaki içerik kaybolacaktır.):",title:"İçerik Şablonları"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/tt.js b/www/lib/ckeditor/plugins/templates/lang/tt.js new file mode 100644 index 00000000..04f0c93c --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/tt.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","tt",{button:"Шаблоннар",emptyListMsg:"(Шаблоннар билгеләнмәгән)",insertOption:"Әлеге эчтәлекне алмаштыру",options:"Шаблон үзлекләре",selectPromptMsg:"Please select the template to open in the editor",title:"Эчтәлек шаблоннары"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/ug.js b/www/lib/ckeditor/plugins/templates/lang/ug.js new file mode 100644 index 00000000..bb66471e --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/ug.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","ug",{button:"قېلىپ",emptyListMsg:"(قېلىپ يوق)",insertOption:"نۆۋەتتىكى مەزمۇننى ئالماشتۇر",options:"قېلىپ تاللانمىسى",selectPromptMsg:"تەھرىرلىگۈچنىڭ مەزمۇن قېلىپىنى تاللاڭ:",title:"مەزمۇن قېلىپى"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/uk.js b/www/lib/ckeditor/plugins/templates/lang/uk.js new file mode 100644 index 00000000..9e543981 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/uk.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","uk",{button:"Шаблони",emptyListMsg:"(Не знайдено жодного шаблону)",insertOption:"Замінити поточний вміст",options:"Опції шаблону",selectPromptMsg:"Оберіть, будь ласка, шаблон для відкриття в редакторі
(поточний зміст буде втрачено):",title:"Шаблони змісту"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/vi.js b/www/lib/ckeditor/plugins/templates/lang/vi.js new file mode 100644 index 00000000..3c182f47 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/vi.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","vi",{button:"Mẫu dựng sẵn",emptyListMsg:"(Không có mẫu dựng sẵn nào được định nghĩa)",insertOption:"Thay thế nội dung hiện tại",options:"Tùy chọn mẫu dựng sẵn",selectPromptMsg:"Hãy chọn mẫu dựng sẵn để mở trong trình biên tập
(nội dung hiện tại sẽ bị mất):",title:"Nội dung Mẫu dựng sẵn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/zh-cn.js b/www/lib/ckeditor/plugins/templates/lang/zh-cn.js new file mode 100644 index 00000000..f0216481 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/zh-cn.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh-cn",{button:"模板",emptyListMsg:"(没有模板)",insertOption:"替换当前内容",options:"模板选项",selectPromptMsg:"请选择要在编辑器中使用的模板:",title:"内容模板"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/lang/zh.js b/www/lib/ckeditor/plugins/templates/lang/zh.js new file mode 100644 index 00000000..dd974dff --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/lang/zh.js @@ -0,0 +1 @@ +CKEDITOR.plugins.setLang("templates","zh",{button:"範本",emptyListMsg:"(尚未定義任何範本)",insertOption:"替代實際內容",options:"範本選項",selectPromptMsg:"請選擇要在編輯器中開啟的範本。",title:"內容範本"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/plugin.js b/www/lib/ckeditor/plugins/templates/plugin.js new file mode 100644 index 00000000..a5f6d642 --- /dev/null +++ b/www/lib/ckeditor/plugins/templates/plugin.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",lang:"af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"templates,templates-rtl",hidpi:!0,init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&& +a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=[],b=0,c=a.length;bType the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/templates/templates/images/template1.gif b/www/lib/ckeditor/plugins/templates/templates/images/template1.gif new file mode 100644 index 00000000..efdabbeb Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/templates/images/template1.gif differ diff --git a/www/lib/ckeditor/plugins/templates/templates/images/template2.gif b/www/lib/ckeditor/plugins/templates/templates/images/template2.gif new file mode 100644 index 00000000..d1cebb3a Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/templates/images/template2.gif differ diff --git a/www/lib/ckeditor/plugins/templates/templates/images/template3.gif b/www/lib/ckeditor/plugins/templates/templates/images/template3.gif new file mode 100644 index 00000000..db41cb4f Binary files /dev/null and b/www/lib/ckeditor/plugins/templates/templates/images/template3.gif differ diff --git a/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js b/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js new file mode 100644 index 00000000..adc1cfb3 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/dialogs/uicolor.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("uicolor",function(b){function f(a){/^#/.test(a)&&(a=window.YAHOO.util.Color.hex2rgb(a.substr(1)));c.setValue(a,!0);c.refresh(e)}function g(a){b.setUiColor(a);d._.contents.tab1.configBox.setValue('config.uiColor = "#'+c.get("hex")+'"')}var d,c,h=b.getUiColor(),e="cke_uicolor_picker"+CKEDITOR.tools.getNextNumber();return{title:b.lang.uicolor.title,minWidth:360,minHeight:320,onLoad:function(){d=this;this.setupContent();CKEDITOR.env.ie7Compat&&d.parts.contents.setStyle("overflow", +"hidden")},contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{id:"yuiColorPicker",type:"html",html:"
",onLoad:function(){var a=CKEDITOR.getUrl("plugins/uicolor/yui/");this.picker=c=new window.YAHOO.widget.ColorPicker(e,{showhsvcontrols:!0,showhexcontrols:!0,images:{PICKER_THUMB:a+"assets/picker_thumb.png",HUE_THUMB:a+"assets/hue_thumb.png"}});h&&f(h);c.on("rgbChange",function(){d._.contents.tab1.predefined.setValue(""); +g("#"+c.get("hex"))});for(var a=new CKEDITOR.dom.nodeList(c.getElementsByTagName("input")),b=0;b
 
'}]},{id:"configBox",type:"text",label:b.lang.uicolor.config,onShow:function(){var a=b.getUiColor();a&&this.setValue('config.uiColor = "'+a+'"')}}]}]}],buttons:[CKEDITOR.dialog.okButton]}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png b/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png new file mode 100644 index 00000000..e6efa4a3 Binary files /dev/null and b/www/lib/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png differ diff --git a/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png b/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png new file mode 100644 index 00000000..d5739dff Binary files /dev/null and b/www/lib/ckeditor/plugins/uicolor/icons/uicolor.png differ diff --git a/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt b/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt new file mode 100644 index 00000000..2af2d324 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/_translationstatus.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +bg.js Found: 4 Missing: 0 +cs.js Found: 4 Missing: 0 +cy.js Found: 4 Missing: 0 +da.js Found: 4 Missing: 0 +de.js Found: 4 Missing: 0 +el.js Found: 4 Missing: 0 +eo.js Found: 4 Missing: 0 +et.js Found: 4 Missing: 0 +fa.js Found: 4 Missing: 0 +fi.js Found: 4 Missing: 0 +fr.js Found: 4 Missing: 0 +he.js Found: 4 Missing: 0 +hr.js Found: 4 Missing: 0 +it.js Found: 4 Missing: 0 +mk.js Found: 4 Missing: 0 +nb.js Found: 4 Missing: 0 +nl.js Found: 4 Missing: 0 +no.js Found: 4 Missing: 0 +pl.js Found: 4 Missing: 0 +tr.js Found: 4 Missing: 0 +ug.js Found: 4 Missing: 0 +uk.js Found: 4 Missing: 0 +vi.js Found: 4 Missing: 0 +zh-cn.js Found: 4 Missing: 0 diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ar.js b/www/lib/ckeditor/plugins/uicolor/lang/ar.js new file mode 100644 index 00000000..6dcf6470 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ar",{title:"منتقي الألوان",preview:"معاينة مباشرة",config:"قص السطر إلى الملف config.js",predefined:"مجموعات ألوان معرفة مسبقا"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/bg.js b/www/lib/ckeditor/plugins/uicolor/lang/bg.js new file mode 100644 index 00000000..6c58885a --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/bg.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","bg",{title:"ПИ избор на цвят",preview:"Преглед",config:"Вмъкнете този низ във Вашия config.js fajl",predefined:"Предефинирани цветови палитри"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ca.js b/www/lib/ckeditor/plugins/uicolor/lang/ca.js new file mode 100644 index 00000000..6f97e2a7 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ca",{title:"UI Color Picker",preview:"Vista prèvia",config:"Enganxa aquest text dins el fitxer config.js",predefined:"Conjunts de colors predefinits"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/cs.js b/www/lib/ckeditor/plugins/uicolor/lang/cs.js new file mode 100644 index 00000000..ef0e2e0b --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cs",{title:"Výběr barvy rozhraní",preview:"Živý náhled",config:"Vložte tento řetězec do vašeho souboru config.js",predefined:"Přednastavené sady barev"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/cy.js b/www/lib/ckeditor/plugins/uicolor/lang/cy.js new file mode 100644 index 00000000..45634661 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","cy",{title:"Dewisydd Lliwiau'r UI",preview:"Rhagolwg Byw",config:"Gludwch y llinyn hwn i'ch ffeil config.js",predefined:"Setiau lliw wedi'u cyn-ddiffinio"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/da.js b/www/lib/ckeditor/plugins/uicolor/lang/da.js new file mode 100644 index 00000000..d05bbe87 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/da.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","da",{title:"Brugerflade på farvevælger",preview:"Vis liveeksempel",config:"Indsæt denne streng i din config.js fil",predefined:"Prædefinerede farveskemaer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/de.js b/www/lib/ckeditor/plugins/uicolor/lang/de.js new file mode 100644 index 00000000..dfb3f1a4 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","de",{title:"UI Pipette",preview:"Live-Vorschau",config:"Fügen Sie diese Zeichenfolge in die 'config.js' Datei.",predefined:"Vordefinierte Farbsätze"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/el.js b/www/lib/ckeditor/plugins/uicolor/lang/el.js new file mode 100644 index 00000000..3cb51681 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","el",{title:"Διεπαφή Επιλογής Χρωμάτων",preview:"Ζωντανή Προεπισκόπηση",config:"Επικολλήστε αυτό το κείμενο στο αρχείο config.js",predefined:"Προκαθορισμένα σύνολα χρωμάτων"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js b/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js new file mode 100644 index 00000000..ce29dcdd --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en-gb",{title:"UI Colour Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined colour sets"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/en.js b/www/lib/ckeditor/plugins/uicolor/lang/en.js new file mode 100644 index 00000000..b43a201d --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","en",{title:"UI Color Picker",preview:"Live preview",config:"Paste this string into your config.js file",predefined:"Predefined color sets"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/eo.js b/www/lib/ckeditor/plugins/uicolor/lang/eo.js new file mode 100644 index 00000000..2498f670 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eo",{title:"UI Kolorselektilo",preview:"Vidigi la aspekton",config:"Gluu tiun signoĉenon en vian dosieron config.js",predefined:"Antaŭdifinita koloraro"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/es.js b/www/lib/ckeditor/plugins/uicolor/lang/es.js new file mode 100644 index 00000000..ef68b1d4 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","es",{title:"Recolector de Color de Interfaz de Usuario",preview:"Vista previa en vivo",config:"Pega esta cadena en tu archivo config.js",predefined:"Conjuntos predefinidos de colores"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/et.js b/www/lib/ckeditor/plugins/uicolor/lang/et.js new file mode 100644 index 00000000..7ebe8364 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/et.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","et",{title:"Värvivalija kasutajaliides",preview:"Automaatne eelvaade",config:"Aseta see sõne oma config.js faili.",predefined:"Eelmääratud värvikomplektid"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/eu.js b/www/lib/ckeditor/plugins/uicolor/lang/eu.js new file mode 100644 index 00000000..52e479f3 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/eu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","eu",{title:"EI Kolore Hautatzailea",preview:"Zuzeneko aurreikuspena",config:"Itsatsi karaktere kate hau zure config.js fitxategian.",predefined:"Aurredefinitutako kolore multzoak"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/fa.js b/www/lib/ckeditor/plugins/uicolor/lang/fa.js new file mode 100644 index 00000000..7d62b4cc --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fa",{title:"انتخاب رنگ رابط کاربری",preview:"پیش‌نمایش زنده",config:"این رشته را در پروندهٔ config.js خود رونوشت کنید.",predefined:"مجموعه رنگ از پیش تعریف شده"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/fi.js b/www/lib/ckeditor/plugins/uicolor/lang/fi.js new file mode 100644 index 00000000..724ff5ad --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fi",{title:"Käyttöliittymän väripaletti",preview:"Esikatsele heti",config:"Liitä tämä merkkijono config.js tiedostoosi",predefined:"Esimääritellyt värijoukot"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js b/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js new file mode 100644 index 00000000..75791374 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/fr-ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr-ca",{title:"Sélecteur de couleur",preview:"Aperçu",config:"Insérez cette ligne dans votre fichier config.js",predefined:"Ensemble de couleur prédéfinies"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/fr.js b/www/lib/ckeditor/plugins/uicolor/lang/fr.js new file mode 100644 index 00000000..457a953d --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","fr",{title:"UI Sélecteur de couleur",preview:"Aperçu",config:"Collez cette chaîne de caractères dans votre fichier config.js",predefined:"Palettes de couleurs prédéfinies"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/gl.js b/www/lib/ckeditor/plugins/uicolor/lang/gl.js new file mode 100644 index 00000000..6151989e --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","gl",{title:"Recolledor de cor da interface de usuario",preview:"Vista previa en vivo",config:"Pegue esta cadea no seu ficheiro config.js",predefined:"Conxuntos predefinidos de cores"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/he.js b/www/lib/ckeditor/plugins/uicolor/lang/he.js new file mode 100644 index 00000000..e210e039 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","he",{title:"בחירת צבע ממשק משתמש",preview:"תצוגה מקדימה",config:"הדבק את הטקסט הבא לתוך הקובץ config.js",predefined:"קבוצות צבעים מוגדרות מראש"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/hr.js b/www/lib/ckeditor/plugins/uicolor/lang/hr.js new file mode 100644 index 00000000..1495ab04 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hr",{title:"UI odabir boja",preview:"Pregled uživo",config:"Zalijepite ovaj tekst u Vašu config.js datoteku.",predefined:"Već postavljeni setovi boja"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/hu.js b/www/lib/ckeditor/plugins/uicolor/lang/hu.js new file mode 100644 index 00000000..2c4a5e55 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","hu",{title:"UI Színválasztó",preview:"Élő előnézet",config:"Illessze be ezt a szöveget a config.js fájlba",predefined:"Előre definiált színbeállítások"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/id.js b/www/lib/ckeditor/plugins/uicolor/lang/id.js new file mode 100644 index 00000000..b2af0502 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/id.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","id",{title:"Pengambil Warna UI",preview:"Pratinjau",config:"Tempel string ini ke arsip config.js anda.",predefined:"Set warna belum terdefinisi."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/it.js b/www/lib/ckeditor/plugins/uicolor/lang/it.js new file mode 100644 index 00000000..3c294a76 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","it",{title:"Selettore Colore UI",preview:"Anteprima Live",config:"Incolla questa stringa nel tuo file config.js",predefined:"Set di colori predefiniti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ja.js b/www/lib/ckeditor/plugins/uicolor/lang/ja.js new file mode 100644 index 00000000..55b1f9c2 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ja",{title:"UIカラーピッカー",preview:"ライブプレビュー",config:"この文字列を config.js ファイルへ貼り付け",predefined:"既定カラーセット"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/km.js b/www/lib/ckeditor/plugins/uicolor/lang/km.js new file mode 100644 index 00000000..c38c5be9 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","km",{title:"ប្រដាប់​រើស​ពណ៌",preview:"មើល​ជាមុន​ផ្ទាល់",config:"បិទ​ភ្ជាប់​ខ្សែ​អក្សរ​នេះ​ទៅ​ក្នុង​ឯកសារ config.js របស់​អ្នក",predefined:"ឈុត​ពណ៌​កំណត់​រួច​ស្រេច"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ko.js b/www/lib/ckeditor/plugins/uicolor/lang/ko.js new file mode 100644 index 00000000..af9199f4 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ko",{title:"UI 색상 선택기",preview:"미리보기",config:"이 문자열을 config.js 에 붙여넣으세요",predefined:"미리 정의된 색깔들"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ku.js b/www/lib/ckeditor/plugins/uicolor/lang/ku.js new file mode 100644 index 00000000..11b7fd1c --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ku.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ku",{title:"هەڵگری ڕەنگ بۆ ڕووکاری بەکارهێنەر",preview:"پێشبینین بە زیندوویی",config:"ئەم دەقانە بلکێنە بە پەڕگەی config.js-fil",predefined:"کۆمەڵە ڕەنگە دیاریکراوەکانی پێشوو"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/lv.js b/www/lib/ckeditor/plugins/uicolor/lang/lv.js new file mode 100644 index 00000000..5655b659 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/lv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","lv",{title:"UI krāsas izvēle",preview:"Priekšskatījums",config:"Ielīmējiet šo rindu jūsu config.js failā",predefined:"Predefinēti krāsu komplekti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/mk.js b/www/lib/ckeditor/plugins/uicolor/lang/mk.js new file mode 100644 index 00000000..b219d766 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/mk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","mk",{title:"Палета со бои",preview:"Преглед",config:"Залепи го овој текст во config.js датотеката",predefined:"Предефинирани множества на бои"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/nb.js b/www/lib/ckeditor/plugins/uicolor/lang/nb.js new file mode 100644 index 00000000..84ae603b --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nb",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/nl.js b/www/lib/ckeditor/plugins/uicolor/lang/nl.js new file mode 100644 index 00000000..8a62e469 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","nl",{title:"UI Kleurenkiezer",preview:"Live voorbeeld",config:"Plak deze tekst in jouw config.js bestand",predefined:"Voorgedefinieerde kleurensets"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/no.js b/www/lib/ckeditor/plugins/uicolor/lang/no.js new file mode 100644 index 00000000..b51a6994 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","no",{title:"Fargevelger for brukergrensesnitt",preview:"Forhåndsvisning i sanntid",config:"Lim inn følgende tekst i din config.js-fil",predefined:"Forhåndsdefinerte fargesett"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/pl.js b/www/lib/ckeditor/plugins/uicolor/lang/pl.js new file mode 100644 index 00000000..38b0c2aa --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pl",{title:"Wybór koloru interfejsu",preview:"Podgląd na żywo",config:"Wklej poniższy łańcuch znaków do pliku config.js:",predefined:"Predefiniowane zestawy kolorów"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js b/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js new file mode 100644 index 00000000..be6aa759 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt-br",{title:"Paleta de Cores",preview:"Visualização ao vivo",config:"Cole o texto no seu arquivo config.js",predefined:"Conjuntos de cores predefinidos"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/pt.js b/www/lib/ckeditor/plugins/uicolor/lang/pt.js new file mode 100644 index 00000000..f96f758b --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","pt",{title:"Seleção da Cor da IU",preview:"Pré-visualização Live ",config:"Colar este item no seu ficheiro config.js",predefined:"Conjuntos de cor predefinidos"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ru.js b/www/lib/ckeditor/plugins/uicolor/lang/ru.js new file mode 100644 index 00000000..133e6dd4 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ru",{title:"Выбор цвета интерфейса",preview:"Предпросмотр в реальном времени",config:"Вставьте эту строку в файл config.js",predefined:"Предопределенные цветовые схемы"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/si.js b/www/lib/ckeditor/plugins/uicolor/lang/si.js new file mode 100644 index 00000000..2c9755a1 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/si.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","si",{title:"වර්ණ ",preview:"සජීව නැවත නරභීම",config:"මෙම අක්ෂර පේලිය ගෙන config.js ලිපිගොනුව මතින් තබන්න",predefined:"කලින් වෙන්කරගත් පරිදි ඇති වර්ණ"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/sk.js b/www/lib/ckeditor/plugins/uicolor/lang/sk.js new file mode 100644 index 00000000..2456d281 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sk",{title:"UI výber farby",preview:"Živý náhľad",config:"Vložte tento reťazec do vášho config.js súboru",predefined:"Preddefinované sady farieb"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/sl.js b/www/lib/ckeditor/plugins/uicolor/lang/sl.js new file mode 100644 index 00000000..62dda984 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sl",{title:"UI Izbiralec Barve",preview:"Živi predogled",config:"Prilepite ta niz v vašo config.js datoteko",predefined:"Vnaprej določeni barvni kompleti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/sq.js b/www/lib/ckeditor/plugins/uicolor/lang/sq.js new file mode 100644 index 00000000..56ebe486 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/sq.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sq",{title:"UI Mbledhës i Ngjyrave",preview:"Parapamje direkte",config:"Hidhni këtë varg në skedën tuaj config.js",predefined:"Setet e paradefinuara të ngjyrave"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/sv.js b/www/lib/ckeditor/plugins/uicolor/lang/sv.js new file mode 100644 index 00000000..9b3e7231 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","sv",{title:"UI Färgväljare",preview:"Live förhandsgranskning",config:"Klistra in den här strängen i din config.js-fil",predefined:"Fördefinierade färguppsättningar"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/tr.js b/www/lib/ckeditor/plugins/uicolor/lang/tr.js new file mode 100644 index 00000000..ec553d0d --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tr",{title:"UI Renk Seçici",preview:"Canlı ön izleme",config:"Bu yazıyı config.js dosyasının içine yapıştırın",predefined:"Önceden tanımlı renk seti"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/tt.js b/www/lib/ckeditor/plugins/uicolor/lang/tt.js new file mode 100644 index 00000000..66990c45 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","tt",{title:"Интерфейс төсләрен сайлау",preview:"Тере карап алу",config:"Бу юлны config.js файлына языгыз",predefined:"Баштан билгеләнгән төсләр җыелмасы"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/ug.js b/www/lib/ckeditor/plugins/uicolor/lang/ug.js new file mode 100644 index 00000000..4cadfee2 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/ug.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","ug",{title:"ئىشلەتكۈچى ئارايۈزى رەڭ تاللىغۇچ",preview:"شۇئان ئالدىن كۆزىتىش",config:"بۇ ھەرپ تىزىقىنى config.js ھۆججەتكە چاپلايدۇ",predefined:"ئالدىن بەلگىلەنگەن رەڭلەر"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/uk.js b/www/lib/ckeditor/plugins/uicolor/lang/uk.js new file mode 100644 index 00000000..acd28a19 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","uk",{title:"Color Picker Інтерфейс",preview:"Перегляд наживо",config:"Вставте цей рядок у файл config.js",predefined:"Стандартний набір кольорів"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/vi.js b/www/lib/ckeditor/plugins/uicolor/lang/vi.js new file mode 100644 index 00000000..bd02f062 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","vi",{title:"Giao diện người dùng Color Picker",preview:"Xem trước trực tiếp",config:"Dán chuỗi này vào tập tin config.js của bạn",predefined:"Tập màu định nghĩa sẵn"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js b/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js new file mode 100644 index 00000000..552dc689 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh-cn",{title:"用户界面颜色选择器",preview:"即时预览",config:"粘贴此字符串到您的 config.js 文件",predefined:"预定义颜色集"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/lang/zh.js b/www/lib/ckeditor/plugins/uicolor/lang/zh.js new file mode 100644 index 00000000..cff7a9a9 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("uicolor","zh",{title:"UI 色彩選擇器",preview:"即時預覽",config:"請將此段字串複製到您的 config.js 檔案中。",predefined:"設定預先定義的色彩"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/plugin.js b/www/lib/ckeditor/plugins/uicolor/plugin.js new file mode 100644 index 00000000..fc402d0a --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/plugin.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.add("uicolor",{requires:"dialog",lang:"ar,bg,ca,cs,cy,da,de,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,mk,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn",icons:"uicolor",hidpi:!0,init:function(a){CKEDITOR.env.ie6Compat||(a.addCommand("uicolor",new CKEDITOR.dialogCommand("uicolor")),a.ui.addButton&&a.ui.addButton("UIColor",{label:a.lang.uicolor.title,command:"uicolor",toolbar:"tools,1"}),CKEDITOR.dialog.add("uicolor",this.path+"dialogs/uicolor.js"), +CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("plugins/uicolor/yui/yui.js")),CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl("plugins/uicolor/yui/assets/yui.css")))}}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png b/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png new file mode 100644 index 00000000..d9bcdeb5 Binary files /dev/null and b/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_bg.png differ diff --git a/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png b/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png new file mode 100644 index 00000000..14d5db48 Binary files /dev/null and b/www/lib/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png differ diff --git a/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png b/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png new file mode 100644 index 00000000..f8d91932 Binary files /dev/null and b/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_mask.png differ diff --git a/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png b/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png new file mode 100644 index 00000000..78445a2f Binary files /dev/null and b/www/lib/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png differ diff --git a/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css b/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css new file mode 100644 index 00000000..2e10cb69 --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/yui/assets/yui.css @@ -0,0 +1,7 @@ +/* +Copyright (c) 2009, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.7.0 +*/ +.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;} diff --git a/www/lib/ckeditor/plugins/uicolor/yui/yui.js b/www/lib/ckeditor/plugins/uicolor/yui/yui.js new file mode 100644 index 00000000..cb187ddc --- /dev/null +++ b/www/lib/ckeditor/plugins/uicolor/yui/yui.js @@ -0,0 +1,225 @@ +if("undefined"==typeof YAHOO||!YAHOO)var YAHOO={};YAHOO.namespace=function(){var c=arguments,e=null,b,d,a;for(b=0;b "),c.isObject(a[d])?i.push(0h)break;i=a.indexOf("}",h);if(h+1>=i)break;k=n=a.substring(h+1,i);l=null;j=k.indexOf(" ");-1b.ie&&(j=g=2,h=e.compatMode,m=o(e.documentElement,"borderLeftWidth"),e=o(e.documentElement,"borderTopWidth"),6===b.ie&&"BackCompat"!==h&&(j=g=0),"BackCompat"==h&&("medium"!==m&& +(g=parseInt(m,10)),"medium"!==e&&(j=parseInt(e,10))),f[0]-=g,f[1]-=j);if(d||a)f[0]+=a,f[1]+=d;f[0]=k(f[0]);f[1]=k(f[1])}return f}:function(a){var d,f,e,g=!1,j=a;if(c.Dom._canPosition(a)){g=[a.offsetLeft,a.offsetTop];d=c.Dom.getDocumentScrollLeft(a.ownerDocument);f=c.Dom.getDocumentScrollTop(a.ownerDocument);for(e=m||519=this.left&&c.right<=this.right&&c.top>=this.top&&c.bottom<=this.bottom};YAHOO.util.Region.prototype.getArea=function(){return(this.bottom-this.top)*(this.right-this.left)};YAHOO.util.Region.prototype.intersect=function(c){var e=Math.max(this.top,c.top),b=Math.min(this.right,c.right),d=Math.min(this.bottom,c.bottom),c=Math.max(this.left,c.left);return d>=e&&b>=c?new YAHOO.util.Region(e,b,d,c):null}; +YAHOO.util.Region.prototype.union=function(c){var e=Math.min(this.top,c.top),b=Math.max(this.right,c.right),d=Math.max(this.bottom,c.bottom),c=Math.min(this.left,c.left);return new YAHOO.util.Region(e,b,d,c)};YAHOO.util.Region.prototype.toString=function(){return"Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}"}; +YAHOO.util.Region.getRegion=function(c){var e=YAHOO.util.Dom.getXY(c);return new YAHOO.util.Region(e[1],e[0]+c.offsetWidth,e[1]+c.offsetHeight,e[0])};YAHOO.util.Point=function(c,e){YAHOO.lang.isArray(c)&&(e=c[1],c=c[0]);YAHOO.util.Point.superclass.constructor.call(this,e,c,e,c)};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region); +(function(){var c=YAHOO.util,e=/^width|height$/,b=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,d={get:function(a,d){var e="",e=a.currentStyle[d];return e="opacity"===d?c.Dom.getStyle(a,"opacity"):!e||e.indexOf&&-1d&&(c=d-(a[j]-d)),a.style[b]="auto")):(!a.style[k]&&!a.style[b]&&(a.style[b]=d),c=a.style[k]);return c+"px"},getBorderWidth:function(a,b){var d=null;a.currentStyle.hasLayout||(a.style.zoom=1);switch(b){case "borderTopWidth":d=a.clientTop;break;case "borderBottomWidth":d=a.offsetHeight-a.clientHeight-a.clientTop;break;case "borderLeftWidth":d=a.clientLeft;break;case "borderRightWidth":d=a.offsetWidth-a.clientWidth-a.clientLeft}return d+"px"},getPixel:function(a, +b){var d=null,c=a.currentStyle.right;a.style.right=a.currentStyle[b];d=a.style.pixelRight;a.style.right=c;return d+"px"},getMargin:function(a,b){return"auto"==a.currentStyle[b]?"0px":c.Dom.IE.ComputedStyle.getPixel(a,b)},getVisibility:function(a,b){for(var d;(d=a.currentStyle)&&"inherit"==d[b];)a=a.parentNode;return d?d[b]:"visible"},getColor:function(a,b){return c.Dom.Color.toRGB(a.currentStyle[b])||"transparent"},getBorderColor:function(a,b){var d=a.currentStyle;return c.Dom.Color.toRGB(c.Dom.Color.toHex(d[b]|| +d.color))}},a={};a.top=a.right=a.bottom=a.left=a.width=a.height=d.getOffset;a.color=d.getColor;a.borderTopWidth=a.borderRightWidth=a.borderBottomWidth=a.borderLeftWidth=d.getBorderWidth;a.marginTop=a.marginRight=a.marginBottom=a.marginLeft=d.getMargin;a.visibility=d.getVisibility;a.borderColor=a.borderTopColor=a.borderRightColor=a.borderBottomColor=a.borderLeftColor=d.getBorderColor;c.Dom.IE_COMPUTED=a;c.Dom.IE_ComputedStyle=d})(); +(function(){var c=parseInt,e=RegExp,b=YAHOO.util;b.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(d){b.Dom.Color.re_RGB.test(d)||(d=b.Dom.Color.toHex(d));b.Dom.Color.re_hex.exec(d)&& +(d="rgb("+[c(e.$1,16),c(e.$2,16),c(e.$3,16)].join(", ")+")");return d},toHex:function(d){d=b.Dom.Color.KEYWORDS[d]||d;if(b.Dom.Color.re_RGB.exec(d))var d=1===e.$2.length?"0"+e.$2:Number(e.$2),a=1===e.$3.length?"0"+e.$3:Number(e.$3),d=[(1===e.$1.length?"0"+e.$1:Number(e.$1)).toString(16),d.toString(16),a.toString(16)].join("");6>d.length&&(d=d.replace(b.Dom.Color.re_hex3,"$1$1"));"transparent"!==d&&0>d.indexOf("#")&&(d="#"+d);return d.toLowerCase()}}})(); +YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(c,e,b,d){this.type=c;this.scope=e||window;this.silent=b;this.signature=d||YAHOO.util.CustomEvent.LIST;this.subscribers=[];"_YUICEOnSubscribe"!==c&&(this.subscribeEvent=new YAHOO.util.CustomEvent("_YUICEOnSubscribe",this,!0));this.lastError=null};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1; +YAHOO.util.CustomEvent.prototype={subscribe:function(c,e,b){if(!c)throw Error("Invalid callback for subscriber to '"+this.type+"'");this.subscribeEvent&&this.subscribeEvent.fire(c,e,b);this.subscribers.push(new YAHOO.util.Subscriber(c,e,b))},unsubscribe:function(c,e){if(!c)return this.unsubscribeAll();for(var b=!1,d=0,a=this.subscribers.length;dthis.webkit&& +("click"==b||"dblclick"==b)},removeListener:function(d,c,f,g){var j,h,k;if("string"==typeof d)d=this.getEl(d);else if(this._isValidCollection(d)){g=!0;for(j=d.length-1;-1c.webkit?c._dri=setInterval(function(){var b=document.readyState;if("loaded"==b||"complete"==b)clearInterval(c._dri),c._dri=null,c._ready()},c.POLL_INTERVAL):c._simpleAdd(document,"DOMContentLoaded",c._ready);c._simpleAdd(window,"load",c._load);c._simpleAdd(window,"unload",c._unload);c._tryPreloadAttach()}());YAHOO.util.EventProvider=function(){}; +YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(c,e,b,d){this.__yui_events=this.__yui_events||{};var a=this.__yui_events[c];if(a)a.subscribe(e,b,d);else{a=this.__yui_subscribers=this.__yui_subscribers||{};a[c]||(a[c]=[]);a[c].push({fn:e,obj:b,overrideContext:d})}},unsubscribe:function(c,e,b){var d=this.__yui_events=this.__yui_events||{};if(c){if(d=d[c])return d.unsubscribe(e,b)}else{var c=true,a;for(a in d)YAHOO.lang.hasOwnProperty(d,a)&&(c=c&&d[a].unsubscribe(e, +b));return c}return false},unsubscribeAll:function(c){return this.unsubscribe(c)},createEvent:function(c,e){this.__yui_events=this.__yui_events||{};var b=e||{},d=this.__yui_events;if(!d[c]){var a=new YAHOO.util.CustomEvent(c,b.scope||this,b.silent,YAHOO.util.CustomEvent.FLAT);d[c]=a;b.onSubscribeCallback&&a.subscribeEvent.subscribe(b.onSubscribeCallback);this.__yui_subscribers=this.__yui_subscribers||{};if(b=this.__yui_subscribers[c])for(var f=0;fthis.clickPixelThresh||c>this.clickPixelThresh)&&this.startDrag(this.startX,this.startY)}if(this.dragThreshMet){if(d&& +d.events.b4Drag){d.b4Drag(b);d.fireEvent("b4DragEvent",{e:b})}if(d&&d.events.drag){d.onDrag(b);d.fireEvent("dragEvent",{e:b})}d&&this.fireEvents(b,false)}this.stopEvent(b)}},fireEvents:function(b,d){var a=this.dragCurrent;if(a&&!a.isLocked()&&!a.dragOnly){var c=YAHOO.util.Event.getPageX(b),e=YAHOO.util.Event.getPageY(b),h=new YAHOO.util.Point(c,e),e=a.getTargetCoord(h.x,h.y),i=a.getDragEl(),c=["out","over","drop","enter"],j=new YAHOO.util.Region(e.y,e.x+i.offsetWidth,e.y+i.offsetHeight,e.x),k=[], +l={},e=[],i={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]},m;for(m in this.dragOvers){var n=this.dragOvers[m];if(this.isTypeOfDD(n)){this.isOverTarget(h,n,this.mode,j)||i.outEvts.push(n);k[m]=true;delete this.dragOvers[m]}}for(var o in a.groups)if("string"==typeof o)for(m in this.ids[o]){n=this.ids[o][m];if(this.isTypeOfDD(n)&&n.isTarget&&(!n.isLocked()&&n!=a)&&this.isOverTarget(h,n,this.mode,j)){l[o]=true;if(d)i.dropEvts.push(n);else{k[n.id]?i.overEvts.push(n):i.enterEvts.push(n);this.dragOvers[n.id]= +n}}}this.interactionInfo={out:i.outEvts,enter:i.enterEvts,over:i.overEvts,drop:i.dropEvts,point:h,draggedRegion:j,sourceRegion:this.locationCache[a.id],validDrop:d};for(var r in l)e.push(r);if(d&&!i.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(b);a.fireEvent("invalidDropEvent",{e:b})}}for(m=0;m2E3)){setTimeout(b._addListeners,10);if(document&&document.body)b._timeoutCount=b._timeoutCount+1}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id))return true;for(var a=b.parentNode;a;){if(this.isHandle(d,a.id))return true;a=a.parentNode}return false}}}(), +YAHOO.util.DDM=YAHOO.util.DragDropMgr,YAHOO.util.DDM._addListeners()); +(function(){var c=YAHOO.util.Event,e=YAHOO.util.Dom;YAHOO.util.DragDrop=function(b,d,a){b&&this.init(b,d,a)};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments)},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},unlock:function(){this.locked=false},isTarget:true,padding:null,dragOnly:false,useShim:false, +_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(){},startDrag:function(){},b4Drag:function(){},onDrag:function(){},onDragEnter:function(){},b4DragOver:function(){},onDragOver:function(){},b4DragOut:function(){},onDragOut:function(){},b4DragDrop:function(){},onDragDrop:function(){}, +onInvalidDrop:function(){},b4EndDrag:function(){},endDrag:function(){},b4MouseDown:function(){},onMouseDown:function(){},onMouseUp:function(){},onAvailable:function(){},getEl:function(){if(!this._domRef)this._domRef=e.get(this.id);return this._domRef},getDragEl:function(){return e.get(this.dragElId)},init:function(b,d,a){this.initTarget(b,d,a);c.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var e in this.events)this.createEvent(e+"Event")},initTarget:function(b,d,a){this.config= +a||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof b!=="string"){this._domRef=b;b=e.generateId(b)}this.id=b;this.addToGroup(d?d:"default");this.handleElId=b;c.onAvailable(b,this.handleOnAvailable,this,true);this.setDragElId(b);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig()},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true, +b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events)for(var b in this.config.events)this.config.events[b]===false&&(this.events[b]=false);this.padding=this.config.padding||[0,0,0,0];this.isTarget=this.config.isTarget!==false;this.maintainOffset=this.config.maintainOffset;this.primaryButtonOnly=this.config.primaryButtonOnly!==false;this.dragOnly=this.config.dragOnly===true?true:false;this.useShim= +this.config.useShim===true?true:false},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(b,d,a,c){this.padding=!d&&0!==d?[b,b,b,b]:!a&&0!==a?[b,d,b,d]:[b,d,a,c]},setInitPosition:function(b,d){var a=this.getEl();if(this.DDM.verifyEl(a)){var c=b||0,g=d||0,a=e.getXY(a);this.initPageX=a[0]-c;this.initPageY=a[1]-g;this.lastPageX=a[0];this.lastPageY=a[1];this.setStartPosition(a)}},setStartPosition:function(b){b=b||e.getXY(this.getEl());this.deltaSetXY= +null;this.startPageX=b[0];this.startPageY=b[1]},addToGroup:function(b){this.groups[b]=true;this.DDM.regDragDrop(this,b)},removeFromGroup:function(b){this.groups[b]&&delete this.groups[b];this.DDM.removeDDFromGroup(this,b)},setDragElId:function(b){this.dragElId=b},setHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.handleElId=b;this.DDM.regHandle(this.id,b)},setOuterHandleElId:function(b){typeof b!=="string"&&(b=e.generateId(b));c.on(b,"mousedown",this.handleMouseDown,this,true); +this.setHandleElId(b);this.hasOuterHandles=true},unreg:function(){c.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(b){var d=b.which||b.button;if(!(this.primaryButtonOnly&&d>1)&&!this.isLocked()){var d=this.b4MouseDown(b),a=true;this.events.b4MouseDown&&(a=this.fireEvent("b4MouseDownEvent",b));var e=this.onMouseDown(b),g=true;this.events.mouseDown&&(g=this.fireEvent("mouseDownEvent", +b));if(!(d===false||e===false||a===false||g===false)){this.DDM.refreshCache(this.groups);d=new YAHOO.util.Point(c.getPageX(b),c.getPageY(b));if((this.hasOuterHandles||this.DDM.isOverTarget(d,this))&&this.clickValidator(b)){this.setStartPosition();this.DDM.handleMouseDown(b,this);this.DDM.stopEvent(b)}}}},clickValidator:function(b){b=YAHOO.util.Event.getTarget(b);return this.isValidHandleChild(b)&&(this.id==this.handleElId||this.DDM.handleWasClicked(b,this.id))},getTargetCoord:function(b,d){var a= +b-this.deltaX,c=d-this.deltaY;if(this.constrainX){if(athis.maxX)a=this.maxX}if(this.constrainY){if(cthis.maxY)c=this.maxY}a=this.getTick(a,this.xTicks);c=this.getTick(c,this.yTicks);return{x:a,y:c}},addInvalidHandleType:function(b){b=b.toUpperCase();this.invalidHandleTypes[b]=b},addInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));this.invalidHandleIds[b]=b},addInvalidHandleClass:function(b){this.invalidHandleClasses.push(b)}, +removeInvalidHandleType:function(b){delete this.invalidHandleTypes[b.toUpperCase()]},removeInvalidHandleId:function(b){typeof b!=="string"&&(b=e.generateId(b));delete this.invalidHandleIds[b]},removeInvalidHandleClass:function(b){for(var d=0,a=this.invalidHandleClasses.length;d=this.minX;c=c-d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}for(c=this.initPageX;c<=this.maxX;c=c+d)if(!a[c]){this.xTicks[this.xTicks.length]=c;a[c]=true}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(b,d){this.yTicks=[];this.yTickSize=d;for(var a={},c=this.initPageY;c>=this.minY;c= +c-d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}for(c=this.initPageY;c<=this.maxY;c=c+d)if(!a[c]){this.yTicks[this.yTicks.length]=c;a[c]=true}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(b,d,a){this.leftConstraint=parseInt(b,10);this.rightConstraint=parseInt(d,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;a&&this.setXTicks(this.initPageX,a);this.constrainX=true},clearConstraints:function(){this.constrainY=this.constrainX= +false;this.clearTicks()},clearTicks:function(){this.yTicks=this.xTicks=null;this.yTickSize=this.xTickSize=0},setYConstraint:function(b,d,a){this.topConstraint=parseInt(b,10);this.bottomConstraint=parseInt(d,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;a&&this.setYTicks(this.initPageY,a);this.constrainY=true},resetConstraints:function(){this.initPageX||this.initPageX===0?this.setInitPosition(this.maintainOffset?this.lastPageX-this.initPageX:0,this.maintainOffset? +this.lastPageY-this.initPageY:0):this.setInitPosition();this.constrainX&&this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);this.constrainY&&this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)},getTick:function(b,d){if(d){if(d[0]>=b)return d[0];for(var a=0,c=d.length;a=b)return d[e]-b>b-d[a]?d[a]:d[e]}return d[d.length-1]}return b},toString:function(){return"DragDrop "+this.id}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider)})(); +YAHOO.util.DD=function(c,e,b){c&&this.init(c,e,b)}; +YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:!0,autoOffset:function(c,e){this.setDelta(c-this.startPageX,e-this.startPageY)},setDelta:function(c,e){this.deltaX=c;this.deltaY=e},setDragElPos:function(c,e){this.alignElWithMouse(this.getDragEl(),c,e)},alignElWithMouse:function(c,e,b){var d=this.getTargetCoord(e,b);if(this.deltaSetXY){YAHOO.util.Dom.setStyle(c,"left",d.x+this.deltaSetXY[0]+"px");YAHOO.util.Dom.setStyle(c,"top",d.y+this.deltaSetXY[1]+"px")}else{YAHOO.util.Dom.setXY(c,[d.x,d.y]); +e=parseInt(YAHOO.util.Dom.getStyle(c,"left"),10);b=parseInt(YAHOO.util.Dom.getStyle(c,"top"),10);this.deltaSetXY=[e-d.x,b-d.y]}this.cachePosition(d.x,d.y);var a=this;setTimeout(function(){a.autoScroll.call(a,d.x,d.y,c.offsetHeight,c.offsetWidth)},0)},cachePosition:function(c,e){if(c){this.lastPageX=c;this.lastPageY=e}else{var b=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=b[0];this.lastPageY=b[1]}},autoScroll:function(c,e,b,d){if(this.scroll){var a=this.DDM.getClientHeight(),f=this.DDM.getClientWidth(), +g=this.DDM.getScrollTop(),h=this.DDM.getScrollLeft(),d=d+c,i=a+g-e-this.deltaY,j=f+h-c-this.deltaX,k=document.all?80:30;b+e>a&&i<40&&window.scrollTo(h,g+k);e0&&e-g<40)&&window.scrollTo(h,g-k);d>f&&j<40&&window.scrollTo(h+k,g);c0&&c-h<40)&&window.scrollTo(h-k,g)}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=this.config.scroll!==false},b4MouseDown:function(c){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))}, +b4Drag:function(c){this.setDragElPos(YAHOO.util.Event.getPageX(c),YAHOO.util.Event.getPageY(c))},toString:function(){return"DD "+this.id}});YAHOO.util.DDProxy=function(c,e,b){if(c){this.init(c,e,b);this.initFrame()}};YAHOO.util.DDProxy.dragElId="ygddfdiv"; +YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:!0,centerFrame:!1,createFrame:function(){var c=this,e=document.body;if(!e||!e.firstChild)setTimeout(function(){c.createFrame()},50);else{var b=this.getDragEl(),d=YAHOO.util.Dom;if(!b){b=document.createElement("div");b.id=this.dragElId;var a=b.style;a.position="absolute";a.visibility="hidden";a.cursor="move";a.border="2px solid #aaa";a.zIndex=999;a.height="25px";a.width="25px";a=document.createElement("div");d.setStyle(a,"height","100%");d.setStyle(a, +"width","100%");d.setStyle(a,"background-color","#ccc");d.setStyle(a,"opacity","0");b.appendChild(a);e.insertBefore(b,e.firstChild)}}},initFrame:function(){this.createFrame()},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=this.config.resizeFrame!==false;this.centerFrame=this.config.centerFrame;this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId)},showFrame:function(c,e){this.getEl();var b=this.getDragEl(),d=b.style;this._resizeProxy(); +this.centerFrame&&this.setDelta(Math.round(parseInt(d.width,10)/2),Math.round(parseInt(d.height,10)/2));this.setDragElPos(c,e);YAHOO.util.Dom.setStyle(b,"visibility","visible")},_resizeProxy:function(){if(this.resizeFrame){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl(),d=parseInt(c.getStyle(b,"borderTopWidth"),10),a=parseInt(c.getStyle(b,"borderRightWidth"),10),f=parseInt(c.getStyle(b,"borderBottomWidth"),10),g=parseInt(c.getStyle(b,"borderLeftWidth"),10);isNaN(d)&&(d=0);isNaN(a)&&(a=0);isNaN(f)&& +(f=0);isNaN(g)&&(g=0);a=Math.max(0,e.offsetWidth-a-g);e=Math.max(0,e.offsetHeight-d-f);c.setStyle(b,"width",a+"px");c.setStyle(b,"height",e+"px")}},b4MouseDown:function(c){this.setStartPosition();var e=YAHOO.util.Event.getPageX(c),c=YAHOO.util.Event.getPageY(c);this.autoOffset(e,c)},b4StartDrag:function(c,e){this.showFrame(c,e)},b4EndDrag:function(){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden")},endDrag:function(){var c=YAHOO.util.Dom,e=this.getEl(),b=this.getDragEl();c.setStyle(b, +"visibility","");c.setStyle(e,"visibility","hidden");YAHOO.util.DDM.moveToEl(e,b);c.setStyle(b,"visibility","hidden");c.setStyle(e,"visibility","")},toString:function(){return"DDProxy "+this.id}});YAHOO.util.DDTarget=function(c,e,b){c&&this.initTarget(c,e,b)};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return"DDTarget "+this.id}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.7.0",build:"1796"}); +(function(){function c(a,b,d,e){c.ANIM_AVAIL=!YAHOO.lang.isUndefined(YAHOO.util.Anim);if(a){this.init(a,b,true);this.initSlider(e);this.initThumb(d)}}var e=YAHOO.util.Dom.getXY,b=YAHOO.util.Event,d=Array.prototype.slice;YAHOO.lang.augmentObject(c,{getHorizSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,d,e,0,0,i),"horiz")},getVertSlider:function(a,b,d,e,i){return new c(a,a,new YAHOO.widget.SliderThumb(b,a,0,0,d,e,i),"vert")},getSliderRegion:function(a,b,d,e,i,j,k){return new c(a, +a,new YAHOO.widget.SliderThumb(b,a,d,e,i,j,k),"region")},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(c,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(a){this.type=a;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=c.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration= +0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0]},initThumb:function(a){var b=this;this.thumb=a;a.cacheBetweenDrags=true;if(a._isHoriz&&a.xTicks&&a.xTicks.length)this.tickPause=Math.round(360/a.xTicks.length);else if(a.yTicks&&a.yTicks.length)this.tickPause=Math.round(360/a.yTicks.length);a.onAvailable=function(){return b.setStartSliderState()};a.onMouseDown=function(){b._mouseDown=true;return b.focus()};a.startDrag=function(){b._slideStart()}; +a.onDrag=function(){b.fireEvents(true)};a.onMouseUp=function(){b.thumbMouseUp()}},onAvailable:function(){this._bindKeyEvents()},_bindKeyEvents:function(){b.on(this.id,"keydown",this.handleKeyDown,this,true);b.on(this.id,"keypress",this.handleKeyPress,this,true)},handleKeyPress:function(a){if(this.enableKeys)switch(b.getCharCode(a)){case 37:case 38:case 39:case 40:case 36:case 35:b.preventDefault(a)}},handleKeyDown:function(a){if(this.enableKeys){var d=b.getCharCode(a),e=this.thumb,h=this.getXValue(), +i=this.getYValue(),j=true;switch(d){case 37:h=h-this.keyIncrement;break;case 38:i=i-this.keyIncrement;break;case 39:h=h+this.keyIncrement;break;case 40:i=i+this.keyIncrement;break;case 36:h=e.leftConstraint;i=e.topConstraint;break;case 35:h=e.rightConstraint;i=e.bottomConstraint;break;default:j=false}if(j){e._isRegion?this._setRegionValue(c.SOURCE_KEY_EVENT,h,i,true):this._setValue(c.SOURCE_KEY_EVENT,e._isHoriz?h:i,true);b.stopEvent(a)}}},setStartSliderState:function(){this.setThumbCenterPoint(); +this.baselinePos=e(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion)if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null}else this.setRegionValue(0,0,true,true,true);else if(this.deferredSetValue){this._setValue.apply(this,this.deferredSetValue);this.deferredSetValue=null}else this.setValue(0,true,true,true)},setThumbCenterPoint:function(){var a=this.thumb.getEl(); +if(a)this.thumbCenterPoint={x:parseInt(a.offsetWidth/2,10),y:parseInt(a.offsetHeight/2,10)}},lock:function(){this.thumb.lock();this.locked=true},unlock:function(){this.thumb.unlock();this.locked=false},thumbMouseUp:function(){this._mouseDown=false;!this.isLocked()&&!this.moveComplete&&this.endMove()},onMouseUp:function(){this._mouseDown=false;this.backgroundEnabled&&(!this.isLocked()&&!this.moveComplete)&&this.endMove()},getThumb:function(){return this.thumb},focus:function(){this.valueChangeSource= +c.SOURCE_UI_EVENT;var a=this.getEl();if(a.focus)try{a.focus()}catch(b){}this.verifyOffset();return!this.isLocked()},onChange:function(){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue()},getXValue:function(){return this.thumb.getXValue()},getYValue:function(){return this.thumb.getYValue()},setValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setValue.apply(this,a)},_setValue:function(a,b,d,e,i){var j=this.thumb,k; +if(!j.available){this.deferredSetValue=arguments;return false}if(this.isLocked()&&!e||isNaN(b)||j._isRegion)return false;this._silent=i;this.valueChangeSource=a||c.SOURCE_SET_VALUE;j.lastOffset=[b,b];this.verifyOffset(true);this._slideStart();if(j._isHoriz){k=j.initPageX+b+this.thumbCenterPoint.x;this.moveThumb(k,j.initPageY,d)}else{k=j.initPageY+b+this.thumbCenterPoint.y;this.moveThumb(j.initPageX,k,d)}return true},setRegionValue:function(){var a=d.call(arguments);a.unshift(c.SOURCE_SET_VALUE);return this._setRegionValue.apply(this, +a)},_setRegionValue:function(a,b,d,e,i,j){var k=this.thumb;if(!k.available){this.deferredSetRegionValue=arguments;return false}if(this.isLocked()&&!i||isNaN(b)||!k._isRegion)return false;this._silent=j;this.valueChangeSource=a||c.SOURCE_SET_VALUE;k.lastOffset=[b,d];this.verifyOffset(true);this._slideStart();this.moveThumb(k.initPageX+b+this.thumbCenterPoint.x,k.initPageY+d+this.thumbCenterPoint.y,e);return true},verifyOffset:function(){var a=e(this.getEl()),b=this.thumb;(!this.thumbCenterPoint||!this.thumbCenterPoint.x)&& +this.setThumbCenterPoint();if(a&&(a[0]!=this.baselinePos[0]||a[1]!=this.baselinePos[1])){this.setInitPosition();this.baselinePos=a;b.initPageX=this.initPageX+b.startOffset[0];b.initPageY=this.initPageY+b.startOffset[1];b.deltaSetXY=null;this.resetThumbConstraints();return false}return true},moveThumb:function(a,b,d,h){var i=this.thumb,j=this,k,l;if(i.available){i.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);l=i.getTargetCoord(a,b);k=[Math.round(l.x),Math.round(l.y)];if(this.animate&& +i._graduated&&!d){this.lock();this.curCoord=e(this.thumb.getEl());this.curCoord=[Math.round(this.curCoord[0]),Math.round(this.curCoord[1])];setTimeout(function(){j.moveOneTick(k)},this.tickPause)}else if(this.animate&&c.ANIM_AVAIL&&!d){this.lock();a=new YAHOO.util.Motion(i.id,{points:{to:k}},this.animationDuration,YAHOO.util.Easing.easeOut);a.onComplete.subscribe(function(){j.unlock();j._mouseDown||j.endMove()});a.animate()}else{i.setDragElPos(a,b);!h&&!this._mouseDown&&this.endMove()}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart(); +this.fireEvent("slideStart")}this._sliding=true}},_slideEnd:function(){if(this._sliding&&this.moveComplete){var a=this._silent;this.moveComplete=this._silent=this._sliding=false;if(!a){this.onSlideEnd();this.fireEvent("slideEnd")}}},moveOneTick:function(a){var b=this.thumb,d=this,c=null,e;if(b._isRegion){c=this._getNextX(this.curCoord,a);e=c!==null?c[0]:this.curCoord[0];c=this._getNextY(this.curCoord,a);c=c!==null?c[1]:this.curCoord[1];c=e!==this.curCoord[0]||c!==this.curCoord[1]?[e,c]:null}else c= +b._isHoriz?this._getNextX(this.curCoord,a):this._getNextY(this.curCoord,a);if(c){this.curCoord=c;this.thumb.alignElWithMouse(b.getEl(),c[0]+this.thumbCenterPoint.x,c[1]+this.thumbCenterPoint.y);if(c[0]==a[0]&&c[1]==a[1]){this.unlock();this._mouseDown||this.endMove()}else setTimeout(function(){d.moveOneTick(a)},this.tickPause)}else{this.unlock();this._mouseDown||this.endMove()}},_getNextX:function(a,b){var d=this.thumb,c;c=[];c=null;if(a[0]>b[0]){c=d.tickSize-this.thumbCenterPoint.x;c=d.getTargetCoord(a[0]- +c,a[1]);c=[c.x,c.y]}else if(a[0]b[1]){c=d.tickSize-this.thumbCenterPoint.y;c=d.getTargetCoord(a[0],a[1]-c);c=[c.x,c.y]}else if(a[1]1)this._graduated=true;this._isHoriz=c||e;this._isVert=b||d;this._isRegion=this._isHoriz&&this._isVert},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); +this.tickSize=0;this._graduated=false},getValue:function(){return this._isHoriz?this.getXValue():this.getYValue()},getXValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[0])){this.lastOffset=c;return c[0]-this.startOffset[0]}return this.lastOffset[0]-this.startOffset[0]},getYValue:function(){if(!this.available)return 0;var c=this.getOffsetFromParent();if(YAHOO.lang.isNumber(c[1])){this.lastOffset=c;return c[1]-this.startOffset[1]}return this.lastOffset[1]- +this.startOffset[1]},toString:function(){return"SliderThumb "+this.id},onChange:function(){}}); +(function(){function c(b,a,c,e){var h=this,i=false,j=false,k,l;this.minSlider=b;this.maxSlider=a;this.activeSlider=b;this.isHoriz=b.thumb._isHoriz;k=this.minSlider.thumb.onMouseDown;l=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){h.activeSlider=h.minSlider;k.apply(this,arguments)};this.maxSlider.thumb.onMouseDown=function(){h.activeSlider=h.maxSlider;l.apply(this,arguments)};this.minSlider.thumb.onAvailable=function(){b.setStartSliderState();i=true;j&&h.fireEvent("ready", +h)};this.maxSlider.thumb.onAvailable=function(){a.setStartSliderState();j=true;i&&h.fireEvent("ready",h)};b.onMouseDown=a.onMouseDown=function(a){return this.backgroundEnabled&&h._handleMouseDown(a)};b.onDrag=a.onDrag=function(a){h._handleDrag(a)};b.onMouseUp=a.onMouseUp=function(a){h._handleMouseUp(a)};b._bindKeyEvents=function(){h._bindKeyEvents(this)};a._bindKeyEvents=function(){};b.subscribe("change",this._handleMinChange,b,this);b.subscribe("slideStart",this._handleSlideStart,b,this);b.subscribe("slideEnd", +this._handleSlideEnd,b,this);a.subscribe("change",this._handleMaxChange,a,this);a.subscribe("slideStart",this._handleSlideStart,a,this);a.subscribe("slideEnd",this._handleSlideEnd,a,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);e=YAHOO.lang.isArray(e)?e:[0,c];e[0]=Math.min(Math.max(parseInt(e[0],10)|0,0),c);e[1]=Math.max(Math.min(parseInt(e[1],10)|0,c),0);e[0]>e[1]&&e.splice(0,2,e[1],e[0]);this.minVal=e[0]; +this.maxVal=e[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true)}var e=YAHOO.util.Event,b=YAHOO.widget;c.prototype={minVal:-1,maxVal:-1,minRange:0,_handleSlideStart:function(b,a){this.fireEvent("slideStart",a)},_handleSlideEnd:function(b,a){this.fireEvent("slideEnd",a)},_handleDrag:function(d){b.Slider.prototype.onDrag.call(this.activeSlider,d)},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue()},_handleMaxChange:function(){this.activeSlider= +this.maxSlider;this.updateValue()},_bindKeyEvents:function(b){e.on(b.id,"keydown",this._handleKeyDown,this,true);e.on(b.id,"keypress",this._handleKeyPress,this,true)},_handleKeyDown:function(b){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments)},_handleKeyPress:function(b){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments)},setValues:function(b,a,c,e,h){var i=this.minSlider,j=this.maxSlider,k=i.thumb,l=j.thumb,m=this,n=false,o=false;if(k._isHoriz){k.setXConstraint(k.leftConstraint, +l.rightConstraint,k.tickSize);l.setXConstraint(k.leftConstraint,l.rightConstraint,l.tickSize)}else{k.setYConstraint(k.topConstraint,l.bottomConstraint,k.tickSize);l.setYConstraint(k.topConstraint,l.bottomConstraint,l.tickSize)}this._oneTimeCallback(i,"slideEnd",function(){n=true;if(o){m.updateValue(h);setTimeout(function(){m._cleanEvent(i,"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});this._oneTimeCallback(j,"slideEnd",function(){o=true;if(n){m.updateValue(h);setTimeout(function(){m._cleanEvent(i, +"slideEnd");m._cleanEvent(j,"slideEnd")},0)}});i.setValue(b,c,e,false);j.setValue(a,c,e,false)},setMinValue:function(b,a,c,e){var h=this.minSlider,i=this;this.activeSlider=h;i=this;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")},0)});h.setValue(b,a,c)},setMaxValue:function(b,a,c,e){var h=this.maxSlider,i=this;this.activeSlider=h;this._oneTimeCallback(h,"slideEnd",function(){i.updateValue(e);setTimeout(function(){i._cleanEvent(h,"slideEnd")}, +0)});h.setValue(b,a,c)},updateValue:function(b){var a=this.minSlider.getValue(),c=this.maxSlider.getValue(),e=false,h,i,j,k;if(a!=this.minVal||c!=this.maxVal){e=true;h=this.minSlider.thumb;i=this.maxSlider.thumb;j=this.isHoriz?"x":"y";k=this.minSlider.thumbCenterPoint[j]+this.maxSlider.thumbCenterPoint[j];j=Math.max(c-k-this.minRange,0);k=Math.min(-a-k-this.minRange,0);if(this.isHoriz){j=Math.min(j,i.rightConstraint);h.setXConstraint(h.leftConstraint,j,h.tickSize);i.setXConstraint(k,i.rightConstraint, +i.tickSize)}else{j=Math.min(j,i.bottomConstraint);h.setYConstraint(h.leftConstraint,j,h.tickSize);i.setYConstraint(k,i.bottomConstraint,i.tickSize)}}this.minVal=a;this.maxVal=c;e&&!b&&this.fireEvent("change",this)},selectActiveSlider:function(b){var a=this.minSlider,c=this.maxSlider,e=a.isLocked()||!a.backgroundEnabled,h=c.isLocked()||!a.backgroundEnabled,i=YAHOO.util.Event;if(e||h)this.activeSlider=e?c:a;else{b=this.isHoriz?i.getPageX(b)-a.thumb.initPageX-a.thumbCenterPoint.x:i.getPageY(b)-a.thumb.initPageY- +a.thumbCenterPoint.y;this.activeSlider=b*2>c.getValue()+a.getValue()?c:a}},_handleMouseDown:function(d){if(d._handled)return false;d._handled=true;this.selectActiveSlider(d);return b.Slider.prototype.onMouseDown.call(this.activeSlider,d)},_handleMouseUp:function(d){b.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments)},_oneTimeCallback:function(b,a,c){b.subscribe(a,function(){b.unsubscribe(a,arguments.callee);c.apply({},[].slice.apply(arguments))})},_cleanEvent:function(b,a){var c,e,h,i, +j,k;if(b.__yui_events&&b.events[a]){for(e=b.__yui_events.length;e>=0;--e)if(b.__yui_events[e].type===a){c=b.__yui_events[e];break}if(c){j=c.subscribers;k=[];e=i=0;for(h=j.length;e255||b<0?0:b).toString(16)).slice(-2).toUpperCase()}, +hex2dec:function(b){return parseInt(b,16)},hex2rgb:function(b){var c=this.hex2dec;return[c(b.slice(0,2)),c(b.slice(2,4)),c(b.slice(4,6))]},websafe:function(b,d,a){if(c(b))return this.websafe.apply(this,b);var f=function(a){if(e(a)){var a=Math.min(Math.max(0,a),255),b,c;for(b=0;b<256;b=b+51){c=b+51;if(a>=b&&a<=c)return a-b>25?c:b}}return a};return[f(b),f(d),f(a)]}}}(); +(function(){function c(a,b){e=e+1;b=b||{};if(arguments.length===1&&!YAHOO.lang.isString(a)&&!a.nodeName){b=a;a=b.element||null}!a&&!b.element&&(a=this._createHostElement(b));c.superclass.constructor.call(this,a,b);this.initPicker()}var e=0,b=YAHOO.util,d=YAHOO.lang,a=YAHOO.widget.Slider,f=b.Color,g=b.Dom,h=b.Event,i=d.substitute;YAHOO.extend(c,YAHOO.util.Element,{ID:{R:"yui-picker-r",R_HEX:"yui-picker-rhex",G:"yui-picker-g",G_HEX:"yui-picker-ghex",B:"yui-picker-b",B_HEX:"yui-picker-bhex",H:"yui-picker-h", +S:"yui-picker-s",V:"yui-picker-v",PICKER_BG:"yui-picker-bg",PICKER_THUMB:"yui-picker-thumb",HUE_BG:"yui-picker-hue-bg",HUE_THUMB:"yui-picker-hue-thumb",HEX:"yui-picker-hex",SWATCH:"yui-picker-swatch",WEBSAFE_SWATCH:"yui-picker-websafe-swatch",CONTROLS:"yui-picker-controls",RGB_CONTROLS:"yui-picker-rgb-controls",HSV_CONTROLS:"yui-picker-hsv-controls",HEX_CONTROLS:"yui-picker-hex-controls",HEX_SUMMARY:"yui-picker-hex-summary",CONTROLS_LABEL:"yui-picker-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered", +SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"°",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv", +RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var a=document.createElement("div");if(this.CSS.BASE)a.className=this.CSS.BASE;return a},_updateHueSlider:function(){var a= +this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.HUE),b=a-Math.round(b/360*a);b===a&&(b=0);this.hueSlider.setValue(b,this.skipAnim)},_updatePickerSlider:function(){var a=this.get(this.OPT.PICKER_SIZE),b=this.get(this.OPT.SATURATION),c=this.get(this.OPT.VALUE),b=Math.round(b*a/100),c=Math.round(a-c*a/100);this.pickerSlider.setRegionValue(b,c,this.skipAnim)},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider()},setValue:function(a,b){this.set(this.OPT.RGB,a,b||false);this._updateSliders()}, +hueSlider:null,pickerSlider:null,_getH:function(){var a=this.get(this.OPT.PICKER_SIZE),a=(a-this.hueSlider.getValue())/a,a=Math.round(a*360);return a===360?0:a},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE)},_getV:function(){var a=this.get(this.OPT.PICKER_SIZE);return(a-this.pickerSlider.getYValue())/a},_updateSwatch:function(){var a=this.get(this.OPT.RGB),b=this.get(this.OPT.WEBSAFE),c=this.getElement(this.ID.SWATCH),a=a.join(","),d=this.get(this.OPT.TXT);g.setStyle(c, +"background-color","rgb("+a+")");c.title=i(d.CURRENT_COLOR,{rgb:"#"+this.get(this.OPT.HEX)});c=this.getElement(this.ID.WEBSAFE_SWATCH);a=b.join(",");g.setStyle(c,"background-color","rgb("+a+")");c.title=i(d.CLOSEST_WEBSAFE,{rgb:"#"+f.rgb2hex(b)})},_getValuesFromSliders:function(){this.set(this.OPT.RGB,f.hsv2rgb(this._getH(),this._getS(),this._getV()))},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION); +this.getElement(this.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=f.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=f.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=f.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX)}, +_onHueSliderChange:function(){var b=this._getH(),c="rgb("+f.hsv2rgb(b,1,1).join(",")+")";this.set(this.OPT.HUE,b,true);g.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",c);this.hueSlider.valueChangeSource!==a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_onPickerSliderChange:function(){var b=this._getS(),c=this._getV();this.set(this.OPT.SATURATION,Math.round(b*100),true);this.set(this.OPT.VALUE,Math.round(c*100),true);this.pickerSlider.valueChangeSource!== +a.SOURCE_SET_VALUE&&this._getValuesFromSliders();this._updateFormFields();this._updateSwatch()},_getCommand:function(a){var b=h.getCharCode(a);return b===38?3:b===13?6:b===40?4:b>=48&&b<=57?1:b>=97&&b<=102?2:b>=65&&b<=70?2:"8, 9, 13, 27, 37, 39".indexOf(b)>-1||a.ctrlKey||a.metaKey?5:0},_useFieldValue:function(a,b,c){a=b.value;c!==this.OPT.HEX&&(a=parseInt(a,10));a!==this.get(c)&&this.set(c,a)},_rgbFieldKeypress:function(a,b,c){var d=this._getCommand(a),e=a.shiftKey?10:1;switch(d){case 6:this._useFieldValue.apply(this, +arguments);break;case 3:this.set(c,Math.min(this.get(c)+e,255));this._updateFormFields();break;case 4:this.set(c,Math.max(this.get(c)-e,0));this._updateFormFields()}},_hexFieldKeypress:function(a,b,c){this._getCommand(a)===6&&this._useFieldValue.apply(this,arguments)},_hexOnly:function(a,b){switch(this._getCommand(a)){case 6:case 5:case 1:break;case 2:if(b!==true)break;default:h.stopEvent(a);return false}},_numbersOnly:function(a){return this._hexOnly(a,true)},getElement:function(a){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[a]]}, +_createElements:function(){var a,b,c,e,f=this.get(this.OPT.IDS),g=this.get(this.OPT.TXT),h=this.get(this.OPT.IMAGES),i=function(a,b){var c=document.createElement(a);b&&d.augmentObject(c,b,true);return c},q=function(a,b){var c=d.merge({autocomplete:"off",value:"0",size:3,maxlength:3},b);c.name=c.id;return new i(a,c)};e=this.get("element");a=new i("div",{id:f[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.PICKER_THUMB],className:"yui-picker-thumb"}); +c=new i("img",{src:h.PICKER_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});b=new i("div",{id:f[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"});c=new i("img",{src:h.HUE_THUMB});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.CONTROLS],className:"yui-picker-controls"});e.appendChild(a);e=a;a=new i("div",{className:"hd"});b=new i("a",{id:f[this.ID.CONTROLS_LABEL], +href:"#"});a.appendChild(b);e.appendChild(a);a=new i("div",{className:"bd"});e.appendChild(a);e=a;a=new i("ul",{id:f[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});b=new i("li");b.appendChild(document.createTextNode(g.R+" "));c=new q("input",{id:f[this.ID.R],className:"yui-picker-r"});b.appendChild(c);a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.G+" "));c=new q("input",{id:f[this.ID.G],className:"yui-picker-g"});b.appendChild(c);a.appendChild(b);b=new i("li"); +b.appendChild(document.createTextNode(g.B+" "));c=new q("input",{id:f[this.ID.B],className:"yui-picker-b"});b.appendChild(c);a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls"});b=new i("li");b.appendChild(document.createTextNode(g.H+" "));c=new q("input",{id:f[this.ID.H],className:"yui-picker-h"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.DEG));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.S+" ")); +c=new q("input",{id:f[this.ID.S],className:"yui-picker-s"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);b=new i("li");b.appendChild(document.createTextNode(g.V+" "));c=new q("input",{id:f[this.ID.V],className:"yui-picker-v"});b.appendChild(c);b.appendChild(document.createTextNode(" "+g.PERCENT));a.appendChild(b);e.appendChild(a);a=new i("ul",{id:f[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});b=new i("li",{id:f[this.ID.R_HEX]});a.appendChild(b); +b=new i("li",{id:f[this.ID.G_HEX]});a.appendChild(b);b=new i("li",{id:f[this.ID.B_HEX]});a.appendChild(b);e.appendChild(a);a=new i("div",{id:f[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});a.appendChild(document.createTextNode(g.HEX+" "));b=new q("input",{id:f[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});a.appendChild(b);e.appendChild(a);e=this.get("element");a=new i("div",{id:f[this.ID.SWATCH],className:"yui-picker-swatch"});e.appendChild(a);a=new i("div",{id:f[this.ID.WEBSAFE_SWATCH], +className:"yui-picker-websafe-swatch"});e.appendChild(a)},_attachRGBHSV:function(a,b){h.on(this.getElement(a),"keydown",function(a,c){c._rgbFieldKeypress(a,this,b)},this);h.on(this.getElement(a),"keypress",this._numbersOnly,this,true);h.on(this.getElement(a),"blur",function(a,c){c._useFieldValue(a,this,b)},this)},_updateRGB:function(){this.set(this.OPT.RGB,[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)]);this._updateSliders()},_initElements:function(){var a=this.OPT,b=this.get(a.IDS), +a=this.get(a.ELEMENTS),c,e,f;for(c in this.ID)d.hasOwnProperty(this.ID,c)&&(b[this.ID[c]]=b[c]);(e=g.get(b[this.ID.PICKER_BG]))||this._createElements();for(c in b)if(d.hasOwnProperty(b,c)){e=g.get(b[c]);f=g.generateId(e);b[c]=f;b[b[c]]=f;a[f]=e}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true)},_initSliders:function(){var b=this.ID,c=this.get(this.OPT.PICKER_SIZE);this.hueSlider=a.getVertSlider(this.getElement(b.HUE_BG),this.getElement(b.HUE_THUMB),0,c);this.pickerSlider= +a.getSliderRegion(this.getElement(b.PICKER_BG),this.getElement(b.PICKER_THUMB),0,c,0,c);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE))},_bindUI:function(){var a=this.ID,b=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);h.on(this.getElement(a.WEBSAFE_SWATCH),"click",function(){this.setValue(this.get(b.WEBSAFE))},this,true);h.on(this.getElement(a.CONTROLS_LABEL),"click",function(a){this.set(b.SHOW_CONTROLS, +!this.get(b.SHOW_CONTROLS));h.preventDefault(a)},this,true);this._attachRGBHSV(a.R,b.RED);this._attachRGBHSV(a.G,b.GREEN);this._attachRGBHSV(a.B,b.BLUE);this._attachRGBHSV(a.H,b.HUE);this._attachRGBHSV(a.S,b.SATURATION);this._attachRGBHSV(a.V,b.VALUE);h.on(this.getElement(a.HEX),"keydown",function(a,c){c._hexFieldKeypress(a,this,b.HEX)},this);h.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);h.on(this.getElement(this.ID.HEX),"blur",function(a,c){c._useFieldValue(a,this,b.HEX)}, +this)},syncUI:function(a){this.skipAnim=a;this._updateRGB();this.skipAnim=false},_updateRGBFromHSV:function(){var a=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100];this.set(this.OPT.RGB,f.hsv2rgb(a));this._updateSliders()},_updateHex:function(){var a=this.get(this.OPT.HEX),b=a.length,c;if(b===3){a=a.split("");for(c=0;c1)for(h in b)d.hasOwnProperty(b,h)&&(b[h]=b[h]+e);this.setAttributeConfig(this.OPT.IDS,{value:b,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:a.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:a.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:d.isBoolean(a.showcontrols)?a.showcontrols:true, +method:function(a){this._hideShowEl(g.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0],a);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=a?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:d.isBoolean(a.showrgbcontrols)?a.showrgbcontrols:true,method:function(a){this._hideShowEl(this.ID.RGB_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:d.isBoolean(a.showhsvcontrols)? +a.showhsvcontrols:false,method:function(a){this._hideShowEl(this.ID.HSV_CONTROLS,a);a&&this.get(this.OPT.SHOW_HEX_SUMMARY)&&this.set(this.OPT.SHOW_HEX_SUMMARY,false)}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:d.isBoolean(a.showhexcontrols)?a.showhexcontrols:false,method:function(a){this._hideShowEl(this.ID.HEX_CONTROLS,a)}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:d.isBoolean(a.showwebsafe)?a.showwebsafe:true,method:function(a){this._hideShowEl(this.ID.WEBSAFE_SWATCH, +a)}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:d.isBoolean(a.showhexsummary)?a.showhexsummary:true,method:function(a){this._hideShowEl(this.ID.HEX_SUMMARY,a);a&&this.get(this.OPT.SHOW_HSV_CONTROLS)&&this.set(this.OPT.SHOW_HSV_CONTROLS,false)}});this.setAttributeConfig(this.OPT.ANIMATE,{value:d.isBoolean(a.animate)?a.animate:true,method:function(a){if(this.pickerSlider){this.pickerSlider.animate=a;this.hueSlider.animate=a}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this, +true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements()}});YAHOO.widget.ColorPicker=c})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.7.0",build:"1796"}); +(function(){var c=YAHOO.util,e=function(b,c,a,e){this.init(b,c,a,e)};e.NAME="Anim";e.prototype={toString:function(){var b=this.getEl()||{};return this.constructor.NAME+": "+(b.id||b.tagName)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(b,c,a){return this.method(this.currentFrame,c,a-c,this.totalFrames)},setAttribute:function(b, +d,a){var e=this.getEl();this.patterns.noNegatives.test(b)&&(d=d>0?d:0);"style"in e?c.Dom.setStyle(e,b,d+a):b in e&&(e[b]=d)},getAttribute:function(b){var d=this.getEl(),a=c.Dom.getStyle(d,b);if(a!=="auto"&&!this.patterns.offsetUnit.test(a))return parseFloat(a);var e=this.patterns.offsetAttribute.exec(b)||[],g=!!e[3],h=!!e[2];"style"in d?a=h||c.Dom.getStyle(d,"position")=="absolute"&&g?d["offset"+e[0].charAt(0).toUpperCase()+e[0].substr(1)]:0:b in d&&(a=d[b]);return a},getDefaultUnit:function(b){return this.patterns.defaultUnit.test(b)? +"px":""},setRuntimeAttribute:function(b){var c,a,e=this.attributes;this.runtimeAttributes[b]={};var g=function(a){return typeof a!=="undefined"};if(!g(e[b].to)&&!g(e[b].by))return false;c=g(e[b].from)?e[b].from:this.getAttribute(b);if(g(e[b].to))a=e[b].to;else if(g(e[b].by))if(c.constructor==Array){a=[];for(var h=0,i=c.length;h0&&isFinite(l)){g.currentFrame+l>=h&&(l=h-(i+1));g.currentFrame= +g.currentFrame+l}}c._onTween.fire()}else YAHOO.util.AnimMgr.stop(c,b)}}};YAHOO.util.Bezier=new function(){this.getPosition=function(c,e){for(var b=c.length,d=[],a=0;a0&&!(j[0]instanceof Array))j=[j];else{var n=[];l=0;for(m=j.length;l0&&(this.runtimeAttributes[c]=this.runtimeAttributes[c].concat(j)); +this.runtimeAttributes[c][this.runtimeAttributes[c].length]=k}else b.setRuntimeAttribute.call(this,c)};var a=function(a,b){var c=e.Dom.getXY(this.getEl());return a=[a[0]-c[0]+b[0],a[1]-c[1]+b[1]]},f=function(a){return typeof a!=="undefined"};e.Motion=c})(); +(function(){var c=function(a,b,d,e){a&&c.superclass.constructor.call(this,a,b,d,e)};c.NAME="Scroll";var e=YAHOO.util;YAHOO.extend(c,e.ColorAnim);var b=c.superclass,d=c.prototype;d.doMethod=function(a,c,d){var e=null;return e=a=="scroll"?[this.method(this.currentFrame,c[0],d[0]-c[0],this.totalFrames),this.method(this.currentFrame,c[1],d[1]-c[1],this.totalFrames)]:b.doMethod.call(this,a,c,d)};d.getAttribute=function(a){var c=null,c=this.getEl();return c=a=="scroll"?[c.scrollLeft,c.scrollTop]:b.getAttribute.call(this, +a)};d.setAttribute=function(a,c,d){var e=this.getEl();if(a=="scroll"){e.scrollLeft=c[0];e.scrollTop=c[1]}else b.setAttribute.call(this,a,c,d)};e.Scroll=c})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/images/handle.png b/www/lib/ckeditor/plugins/widget/images/handle.png new file mode 100644 index 00000000..ba8cda5b Binary files /dev/null and b/www/lib/ckeditor/plugins/widget/images/handle.png differ diff --git a/www/lib/ckeditor/plugins/widget/lang/ar.js b/www/lib/ckeditor/plugins/widget/lang/ar.js new file mode 100644 index 00000000..02901ca4 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/ar.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ar",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/ca.js b/www/lib/ckeditor/plugins/widget/lang/ca.js new file mode 100644 index 00000000..bcee2d0a --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/ca.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ca",{move:"Clicar i arrossegar per moure"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/cs.js b/www/lib/ckeditor/plugins/widget/lang/cs.js new file mode 100644 index 00000000..2f2ab938 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/cs.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cs",{move:"Klepněte a táhněte pro přesunutí"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/cy.js b/www/lib/ckeditor/plugins/widget/lang/cy.js new file mode 100644 index 00000000..19bc34b0 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/cy.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","cy",{move:"Clcio a llusgo i symud"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/de.js b/www/lib/ckeditor/plugins/widget/lang/de.js new file mode 100644 index 00000000..0de3212c --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/de.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","de",{move:"Zum verschieben anwählen und ziehen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/el.js b/www/lib/ckeditor/plugins/widget/lang/el.js new file mode 100644 index 00000000..9200420f --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/el.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","el",{move:"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/en-gb.js b/www/lib/ckeditor/plugins/widget/lang/en-gb.js new file mode 100644 index 00000000..af267ba8 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/en-gb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en-gb",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/en.js b/www/lib/ckeditor/plugins/widget/lang/en.js new file mode 100644 index 00000000..5b1d70a7 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/en.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","en",{move:"Click and drag to move"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/eo.js b/www/lib/ckeditor/plugins/widget/lang/eo.js new file mode 100644 index 00000000..eb556143 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/eo.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","eo",{move:"klaki kaj treni por movi"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/es.js b/www/lib/ckeditor/plugins/widget/lang/es.js new file mode 100644 index 00000000..d59696db --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/es.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","es",{move:"Dar clic y arrastrar para mover"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/fa.js b/www/lib/ckeditor/plugins/widget/lang/fa.js new file mode 100644 index 00000000..cd7b4e08 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/fa.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fa",{move:"کلیک و کشیدن برای جابجایی"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/fi.js b/www/lib/ckeditor/plugins/widget/lang/fi.js new file mode 100644 index 00000000..cd2fccef --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/fi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fi",{move:"Siirrä klikkaamalla ja raahaamalla"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/fr.js b/www/lib/ckeditor/plugins/widget/lang/fr.js new file mode 100644 index 00000000..4a07790c --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/fr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","fr",{move:"Cliquer et glisser pour déplacer"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/gl.js b/www/lib/ckeditor/plugins/widget/lang/gl.js new file mode 100644 index 00000000..4213bd7a --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/gl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","gl",{move:"Prema e arrastre para mover"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/he.js b/www/lib/ckeditor/plugins/widget/lang/he.js new file mode 100644 index 00000000..aa9754ae --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/he.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","he",{move:"לחץ וגרור להזזה"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/hr.js b/www/lib/ckeditor/plugins/widget/lang/hr.js new file mode 100644 index 00000000..c58da39d --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/hr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hr",{move:"Klikni i povuci da pomakneš"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/hu.js b/www/lib/ckeditor/plugins/widget/lang/hu.js new file mode 100644 index 00000000..03305f3b --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/hu.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","hu",{move:"Kattints és húzd a mozgatáshoz"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/it.js b/www/lib/ckeditor/plugins/widget/lang/it.js new file mode 100644 index 00000000..d1a714e3 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/it.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","it",{move:"Fare clic e trascinare per spostare"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/ja.js b/www/lib/ckeditor/plugins/widget/lang/ja.js new file mode 100644 index 00000000..33cdb9ef --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/ja.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ja",{move:"ドラッグして移動"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/km.js b/www/lib/ckeditor/plugins/widget/lang/km.js new file mode 100644 index 00000000..bc46a96e --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/km.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","km",{move:"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/ko.js b/www/lib/ckeditor/plugins/widget/lang/ko.js new file mode 100644 index 00000000..4bf733aa --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/ko.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ko",{move:"움직이려면 클릭 후 드래그 하세요"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/nb.js b/www/lib/ckeditor/plugins/widget/lang/nb.js new file mode 100644 index 00000000..b5bfd46d --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/nb.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nb",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/nl.js b/www/lib/ckeditor/plugins/widget/lang/nl.js new file mode 100644 index 00000000..a5bfea95 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/nl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","nl",{move:"Klik en sleep om te verplaatsen"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/no.js b/www/lib/ckeditor/plugins/widget/lang/no.js new file mode 100644 index 00000000..92db9080 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/no.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","no",{move:"Klikk og dra for å flytte"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/pl.js b/www/lib/ckeditor/plugins/widget/lang/pl.js new file mode 100644 index 00000000..a51890f2 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/pl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pl",{move:"Kliknij i przeciągnij, by przenieść."}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/pt-br.js b/www/lib/ckeditor/plugins/widget/lang/pt-br.js new file mode 100644 index 00000000..e6387da3 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/pt-br.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt-br",{move:"Click e arraste para mover"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/pt.js b/www/lib/ckeditor/plugins/widget/lang/pt.js new file mode 100644 index 00000000..0a7f1171 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/pt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","pt",{move:"Clique e arraste para mover"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/ru.js b/www/lib/ckeditor/plugins/widget/lang/ru.js new file mode 100644 index 00000000..e3d4e3e6 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/ru.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","ru",{move:"Нажмите и перетащите"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/sk.js b/www/lib/ckeditor/plugins/widget/lang/sk.js new file mode 100644 index 00000000..d26dab0c --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/sk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sk",{move:"Kliknite a potiahnite pre presunutie"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/sl.js b/www/lib/ckeditor/plugins/widget/lang/sl.js new file mode 100644 index 00000000..f99d4e74 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/sl.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sl",{move:"Kliknite in povlecite, da premaknete"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/sv.js b/www/lib/ckeditor/plugins/widget/lang/sv.js new file mode 100644 index 00000000..33f6f126 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/sv.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","sv",{move:"Klicka och drag för att flytta"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/tr.js b/www/lib/ckeditor/plugins/widget/lang/tr.js new file mode 100644 index 00000000..5f2ca8f1 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/tr.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tr",{move:"Taşımak için, tıklayın ve sürükleyin"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/tt.js b/www/lib/ckeditor/plugins/widget/lang/tt.js new file mode 100644 index 00000000..1b158207 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/tt.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","tt",{move:"Күчереп куер өчен басып шудырыгыз"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/uk.js b/www/lib/ckeditor/plugins/widget/lang/uk.js new file mode 100644 index 00000000..a07313c8 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/uk.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","uk",{move:"Клікніть і потягніть для переміщення"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/vi.js b/www/lib/ckeditor/plugins/widget/lang/vi.js new file mode 100644 index 00000000..785a5323 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/vi.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","vi",{move:"Nhấp chuột và kéo để di chuyển"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/zh-cn.js b/www/lib/ckeditor/plugins/widget/lang/zh-cn.js new file mode 100644 index 00000000..690512a2 --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/zh-cn.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh-cn",{move:"点击并拖拽以移动"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/lang/zh.js b/www/lib/ckeditor/plugins/widget/lang/zh.js new file mode 100644 index 00000000..e683c06c --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/lang/zh.js @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("widget","zh",{move:"拖曳以移動"}); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/widget/plugin.js b/www/lib/ckeditor/plugins/widget/plugin.js new file mode 100644 index 00000000..a9cc00fb --- /dev/null +++ b/www/lib/ckeditor/plugins/widget/plugin.js @@ -0,0 +1,58 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function o(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};I(this);J(this);this.on("checkWidgets",K);this.editor.on("contentDomInvalidated",this.checkWidgets,this);L(this);M(this);N(this);O(this);P(this)}function k(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({}, +"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:k.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);Q(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes", +this.getClasses());this.dataReady=!0;s(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function q(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function R(a,b){a.addCommand(b.name, +{exec:function(){function c(){a.widgets.finalizeCreation(g)}var d=a.widgets.focused;if(d&&d.name==b.name)d.edit();else if(b.insert)b.insert();else if(b.template){var d="function"==typeof b.defaults?b.defaults():b.defaults,d=CKEDITOR.dom.element.createFromHtml(b.template.output(d)),e,f=a.widgets.wrapElement(d,b.name),g=new CKEDITOR.dom.documentFragment(f.getDocument());g.append(f);(e=a.widgets.initOn(d,b))?(d=e.once("edit",function(b){if(b.data.dialog)e.once("dialog",function(b){var b=b.data,d,f;d= +b.once("ok",c,null,null,20);f=b.once("cancel",function(){a.widgets.destroy(e,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else c()},null,null,999),e.edit(),d.removeListener()):c()}},refresh:function(a,b){this.setState(l(a.editable(),b.blockLimit)?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF)},context:"div",allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function t(a,b){a.focused= +null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function K(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e;if(b){for(d in c)b.contains(c[d].wrapper)||this.destroy(c[d],!0);if(a&&a.initOnlyNew)b=this.initOnAll();else{var f=b.find(".cke_widget_wrapper"),b=[];d=0;for(c=f.count();dCKEDITOR.env.version||d.isInline()?d:b.document;d.attachListener(e, +"drop",function(c){var d=c.data.$.dataTransfer.getData("text"),e,h;if(d){try{e=JSON.parse(d)}catch(j){return}if("cke-widget"==e.type&&(c.data.preventDefault(),e.editor==b.name&&(h=a.instances[e.id]))){a:if(e=c.data.$,d=b.createRange(),c.data.testRange)d=c.data.testRange;else if(document.caretRangeFromPoint)c=b.document.$.caretRangeFromPoint(e.clientX,e.clientY),d.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),d.collapse(!0);else if(e.rangeParent)d.setStart(CKEDITOR.dom.node(e.rangeParent), +e.rangeOffset),d.collapse(!0);else if(document.body.createTextRange)c=b.document.getBody().$.createTextRange(),c.moveToPoint(e.clientX,e.clientY),e="cke-temp-"+(new Date).getTime(),c.pasteHTML(''),c=b.document.getById(e),d.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START),c.remove();else{d=null;break a}d&&(CKEDITOR.env.gecko?setTimeout(A,0,b,h,d):A(b,h,d))}}});CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(a){if(!a.is(CKEDITOR.dtd.$listItem)&&a.is(CKEDITOR.dtd.$block)){for(;a;){if(w(a))return; +a=a.getParent()}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function M(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var b=c.data.getTarget();if(!b.type)return!1;e=a.getByElement(b);f= +0;e&&(e.inline&&b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")?f=1:l(e.wrapper,b)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){e&&f&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){e&&setTimeout(function(){e.focus();e=null})})});b.on("doubleclick",function(c){var b=a.getByElement(c.data.element);if(b&&!l(b.wrapper,c.data.element))return b.fire("doubleclick",{element:c.data.element})}, +null,null,1)}function N(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e}, +null,null,1)}function P(a){function b(c){a.focused&&B(a.focused,"cut"==c.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function L(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=l(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;if(e){if(e!==d||!e.focusedEditable.equals(c))n(a, +e,null),d&&c&&n(a,d,c)}else d&&c&&n(a,d,c)});b.on("dataReady",function(){C(a).commit()});b.on("blur",function(){var c;(c=a.focused)&&t(a,c);(c=a.widgetHoldingFocusedEditable)&&n(a,c,null)})}function J(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(c){var b=c.attributes,d;if("data-cke-widget-id"in b){if(b=a.instances[b["data-cke-widget-id"]])d=c.getFirst(v),f.push({wrapper:c,element:d, +widget:b,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in b)return f[f.length-1].editables[b["data-cke-widget-editable"]]=c,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var a=c[a.data.downcastingSessionId],b,f,g,i,h,j;b=a.shift();){f=b.widget;g=b.element;i=f._.downcastFn&&f._.downcastFn.call(f,g);for(j in b.editables)h=b.editables[j],delete h.attributes.contenteditable, +h.setHtml(f.editables[j].getData());i||(i=g);b.wrapper.replaceWith(i)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function I(a){function b(){c.fire("lockSnapshot");a.checkWidgets({initOnlyNew:!0,focusInited:d});c.fire("unlockSnapshot")}var c=a.editor,d,e;c.on("toHtml",function(c){var b=T(a),e;for(c.data.dataValue.forEach(b.iterator,CKEDITOR.NODE_ELEMENT,!0);e=b.toBeWrapped.pop();){var h=e[0],j=h.parent;j.type==CKEDITOR.NODE_ELEMENT&&j.attributes["data-cke-widget-wrapper"]&& +j.replaceWith(h);a.wrapElement(e[0],e[1])}d=1==c.data.dataValue.children.length&&c.data.dataValue.children[0].type==CKEDITOR.NODE_ELEMENT&&c.data.dataValue.children[0].attributes["data-cke-widget-wrapper"]},null,null,8);c.on("dataReady",function(){if(e)for(var b=a,d=c.editable().find(".cke_widget_wrapper"),i,h,j=0,k=d.count();jCKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,i;a.editor.fire("lockSnapshot"); +for(f&&(g=a.focused)&&t(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(i=g.editor.checkDirty(),g.setSelected(!1),!i&&g.editor.resetDirty());f&&e&&(i=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!i&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function D(a,b,c){var d=0,b=E(b),e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f], +d=1);d&&a.setData("classes",e)}}function F(a){a.cancel()}function B(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),g=d.createElement(e),e=CKEDITOR.env.ie&&9>CKEDITOR.env.version;g.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?"left":"right","-5000px");f.setHtml(''+ +a.wrapper.getOuterHtml()+'');c.fire("saveSnapshot");c.fire("lockSnapshot");g.append(f);c.editable().append(g);var i=c.on("selectionChange",F,null,null,0),h=a.repository.on("checkSelection",F,null,null,0);if(e)var j=d.getDocumentElement().$,k=j.scrollTop;d=c.createRange();d.selectNodeContents(f);d.select();e&&(j.scrollTop=k);setTimeout(function(){b||a.focus();g.remove();i.removeListener();h.removeListener();c.fire("unlockSnapshot");if(b){a.repository.del(a);c.fire("saveSnapshot")}}, +100)}}function E(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function G(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function H(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function Y(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)(!a|| +!a[d])&&this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function Z(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(U),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1", +src:CKEDITOR.tools.transparentImageData,width:m,title:b.lang.widget.move,height:m}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(a.inline)d.on("dragstart",function(c){c.data.$.dataTransfer.setData("text",JSON.stringify({type:"cke-widget",editor:b.name,id:a.id}))});else d.on("mousedown",$,a);a.dragHandlerContainer=c}}function $(){function a(){var a; +for(j.reset();a=g.pop();)a.removeListener();var c=i,b=this.repository.finder;a=this.repository.liner;var d=this.editor,e=this.editor.editable();CKEDITOR.tools.isEmpty(a.visible)||(c=b.getRange(c[0]),this.focus(),d.fire("saveSnapshot"),d.fire("lockSnapshot",{dontUpdate:1}),d.getSelection().reset(),e.insertElementIntoRange(this.wrapper,c),this.focus(),d.fire("unlockSnapshot"),d.fire("saveSnapshot"));e.removeClass("cke_widget_dragging");a.hideVisible()}var b=this.repository.finder,c=this.repository.locator, +d=this.repository.liner,e=this.editor,f=e.editable(),g=[],i=[],h=b.greedySearch(),j=CKEDITOR.tools.eventsBuffer(50,function(){k=c.locate(h);i=c.sort(l,1);i.length&&(d.prepare(h,k),d.placeLine(i[0]),d.cleanup())}),k,l;f.addClass("cke_widget_dragging");g.push(f.on("mousemove",function(a){l=a.data.$.clientY;j.input()}));g.push(e.document.once("mouseup",a,this));g.push(CKEDITOR.document.once("mouseup",a,this))}function aa(a){var b,c,d=a.editables;a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b, +"string"==typeof c?{selector:c}:c)}function ba(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function ca(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function Q(a,b){da(a);ca(a);aa(a);ba(a);Z(a);Y(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart", +function(c){var b=c.data.getTarget();!l(a,b)&&(!a.inline||!(b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("data-cke-widget-drag-handler")))&&c.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){B(a,b==CKEDITOR.CTRL+88);return}if(b in ea||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&& +b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function da(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function s(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}var m=15;CKEDITOR.plugins.add("widget",{lang:"ar,ca,cs,cy,de,el,en,en-gb,eo,es,fa,fi,fr,gl,he,hr,hu,it,ja,km,ko,nb,nl,no,pl,pt,pt-br,ru,sk,sl,sv,tr,tt,uk,vi,zh,zh-cn",requires:"lineutils,clipboard",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover>.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:"+ +m+"px;height:0;left:-9999px;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{height:"+m+"px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:"+m+"px;height:"+m+"px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},beforeInit:function(a){a.widgets= +new o(a)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});V(a)}});o.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));R(this.editor,b);var c=b,d=c.upcast;if(d)if("string"==typeof d)for(d= +d.split(",");d.length;)this._.upcasts.push([c.upcasts[d.pop()],c.name]);else this._.upcasts.push([d,c.name]);return this.registered[a]=b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=C(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=r;b=a.next();)c.select(this.getByElement(b)); +c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,c=b.createRange(),d;if(!(d=c.moveToClosestEditablePosition(a.wrapper,!0)))d=c.moveToClosestEditablePosition(a.wrapper,!1);d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&n(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a){var b= +this.instances,c,d;for(d in b)c=b[d],this.destroy(c,a)},finalizeCreation:function(a){if((a=a.getFirst())&&r(a))this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus()},getByElement:function(){var a={div:1,span:1};return function(b,c){if(!b)return null;var d=b.is(a)&&b.data("cke-widget-id");if(!c&&!d){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(d=b.is(a)&&b.data("cke-widget-id")))}return this.instances[d]||null}}(),initOn:function(a,b,c){b? +"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new k(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){for(var a=(a||this.editor.editable()).find(".cke_widget_new"),b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(p)))&&b.push(c);return b},parseElementClasses:function(a){if(!a)return null;for(var a= +CKEDITOR.tools.trim(a).split(/\s+/),b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){d=this.registered[b||a.data("widget")];if(!d)return null;if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);b&&a.data("widget",b);e=z(d,a.getName());c=new CKEDITOR.dom.element(e? +"span":"div");c.setAttributes(x(e));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){d=this.registered[b||a.attributes["data-widget"]];if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]= +b);e=z(d,a.name);c=new CKEDITOR.htmlParser.element(e?"span":"div",x(e));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&y(d,f,c)}return c},_tests_getNestedEditable:l,_tests_createEditableFilter:u};CKEDITOR.event.implementOn(o.prototype);k.prototype={addClass:function(a){this.element.addClass(a)},applyStyle:function(a){D(this,a,1)},checkStyleActive:function(a){var a=E(a),b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1; +return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",H);c.removeListener("blur", +G);this.editor.focusManager.remove(c);b||(c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,e;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),e=a.on("ok",function(){var d,e=b.on("data", +function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);e.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();e.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this.wrapper.findOne(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)? +(c=new q(this.editor,c,{filter:u.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&c.data("cke-filter",c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",H,this),CKEDITOR.env.ie&&c.on("blur",G,this),c.setData(c.getHtml()),!0):!1},isInited:function(){return!(!this.wrapper|| +!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a)},removeStyle:function(a){D(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(s(this),this.fire("data", +c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-m};if(!c||!(b.x==c.x&&b.y==c.y))c=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+ +"px",left:b.x+"px"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b}};CKEDITOR.event.implementOn(k.prototype);q.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(), +filter:this.filter,enterMode:this.enterMode})}});var X=RegExp('^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?]*data-cke-copybin-start="1"[^>]*>.?([\\s\\S]+)]*data-cke-copybin-end="1"[^>]*>.?(?:)?(?:)?$'),ea={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}function b(a,b,e){return!e||!this.checkElement(a)?!1:(a=e.widgets.getByElement(a,!0))&&a.checkStyleActive(this)} +CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget},apply:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.applyStyle(this)},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return!(b instanceof CKEDITOR.editor)?!1:this.checkElement(a.lastElement)}, +checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return!r(a)?!1:(a=a.getFirst(p))&&a.data("widget")==this.widget},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;var a=a.widgets.registered[this.widget],b,e={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;e[a.styleableElements]={classes:b,propertiesOnly:!0};return e}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this): +null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=k;k.repository=o;k.nestedEditable=q})(); \ No newline at end of file diff --git a/www/lib/ckeditor/plugins/wsc/LICENSE.md b/www/lib/ckeditor/plugins/wsc/LICENSE.md new file mode 100644 index 00000000..6096de23 --- /dev/null +++ b/www/lib/ckeditor/plugins/wsc/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html b/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html new file mode 100644 index 00000000..8e0a10df --- /dev/null +++ b/www/lib/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -0,0 +1,66 @@ + + + + + + + + +

+ diff --git a/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html new file mode 100644 index 00000000..61203e03 --- /dev/null +++ b/www/lib/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git a/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css b/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css new file mode 100644 index 00000000..da2f1743 --- /dev/null +++ b/www/lib/ckeditor/plugins/wsc/dialogs/wsc.css @@ -0,0 +1,82 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js b/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js new file mode 100644 index 00000000..443145c9 --- /dev/null +++ b/www/lib/ckeditor/plugins/wsc/dialogs/wsc.js @@ -0,0 +1,74 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function y(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString,f=a.fn||null,g=a.id||"",e=a.target||window,i=a.message||{id:g};a.message&&"[object Object]"== +b.call(a.message)&&(a.message.id||(a.message.id=g),i=a.message);a=window.JSON.stringify(i,f);e.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}, +misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){return!(0===a.offsetWidth||0==a.offsetHeight||"none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display))},hasClass:function(a,b){return!(!a.className||!a.className.match(RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(), +a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null, +text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var z=function(b){var c,d;for(d in b)c=b[d].instance.getElement().getFirst()|| +b[d].instance.getElement(),c.setText(a.LocalizationComing[d])},A=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}},j,q;a.framesetHtml=function(b){return"'};a.setIframe=function(b,c){var d;d=a.framesetHtml(c);var f=a.iframeNumber+"_"+c;b.getElement().setHtml(d); +d=document.getElementById(f);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('iframe
+ + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/www/lib/ckeditor/samples/api.html b/www/lib/ckeditor/samples/api.html new file mode 100644 index 00000000..a957eed0 --- /dev/null +++ b/www/lib/ckeditor/samples/api.html @@ -0,0 +1,207 @@ + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/www/lib/ckeditor/samples/appendto.html b/www/lib/ckeditor/samples/appendto.html new file mode 100644 index 00000000..b8467702 --- /dev/null +++ b/www/lib/ckeditor/samples/appendto.html @@ -0,0 +1,56 @@ + + + + + + Append To Page Element Using JavaScript Code — CKEditor Sample + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace(), + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/www/lib/ckeditor/samples/assets/inlineall/logo.png b/www/lib/ckeditor/samples/assets/inlineall/logo.png new file mode 100644 index 00000000..b4d5979e Binary files /dev/null and b/www/lib/ckeditor/samples/assets/inlineall/logo.png differ diff --git a/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css new file mode 100644 index 00000000..fa0ff379 --- /dev/null +++ b/www/lib/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/www/lib/ckeditor/samples/assets/posteddata.php b/www/lib/ckeditor/samples/assets/posteddata.php new file mode 100644 index 00000000..6b26aae3 --- /dev/null +++ b/www/lib/ckeditor/samples/assets/posteddata.php @@ -0,0 +1,59 @@ + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/www/lib/ckeditor/samples/assets/sample.jpg b/www/lib/ckeditor/samples/assets/sample.jpg new file mode 100644 index 00000000..9498271c Binary files /dev/null and b/www/lib/ckeditor/samples/assets/sample.jpg differ diff --git a/www/lib/ckeditor/samples/assets/uilanguages/languages.js b/www/lib/ckeditor/samples/assets/uilanguages/languages.js new file mode 100644 index 00000000..3f7ff624 --- /dev/null +++ b/www/lib/ckeditor/samples/assets/uilanguages/languages.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese", +zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name + + + + + Data Filtering — CKEditor Sample + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/www/lib/ckeditor/samples/divreplace.html b/www/lib/ckeditor/samples/divreplace.html new file mode 100644 index 00000000..873c8c2e --- /dev/null +++ b/www/lib/ckeditor/samples/divreplace.html @@ -0,0 +1,141 @@ + + + + + + Replace DIV — CKEditor Sample + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/www/lib/ckeditor/samples/index.html b/www/lib/ckeditor/samples/index.html new file mode 100644 index 00000000..5ae467f8 --- /dev/null +++ b/www/lib/ckeditor/samples/index.html @@ -0,0 +1,170 @@ + + + + + + CKEditor Samples + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+ +
Create editors with jQuery
+
Creating standard and inline CKEditor instances with jQuery adapter.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ + +

Plugins

+
+
Code Snippet plugin New!
+
View and modify code using the Code Snippet plugin.
+ +
New Image plugin New!
+
Using the new Image plugin to insert captioned images and adjust their dimensions.
+ +
Mathematics plugin New!
+
Create mathematical equations in TeX and display them in visual form.
+ +
Editing source code in a dialog New!
+
Editing HTML content of both inline and classic editor instances.
+ +
AutoGrow plugin
+
Using the AutoGrow plugin in order to make the editor grow to fit the size of its content.
+ +
Output for BBCode
+
Configuring CKEditor to produce BBCode tags instead of HTML.
+ +
Developer Tools plugin
+
Using the Developer Tools plugin to display information about dialog window UI elements to allow for easier customization.
+ +
Document Properties plugin
+
Manage various page meta data with a dialog.
+ +
Magicline plugin
+
Using the Magicline plugin to access difficult focus spaces.
+ +
Placeholder plugin
+
Using the Placeholder plugin to create uneditable sections that can only be created and modified with a proper dialog window.
+ +
Shared-Space plugin
+
Having the toolbar and the bottom bar spaces shared by different editor instances.
+ +
Stylesheet Parser plugin
+
Using the Stylesheet Parser plugin to fill the Styles drop-down list based on the CSS classes available in the document stylesheet.
+ +
TableResize plugin
+
Using the TableResize plugin to enable table column resizing.
+ +
UIColor plugin
+
Using the UIColor plugin to pick up skin color.
+ +
Full page support
+
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
+
+
+
+

+ Inline Editing +

+
+
Massive inline editor creation
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ +
Replace textarea with inline editor New!
+
A form with a textarea that is replaced by an inline editor at runtime.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation
+
Navigating among editor instances with tab key.
+ + + +
Using the JavaScript API to customize dialog windows
+
Using the dialog windows API to customize dialog windows without changing the original editor code.
+ +
Replace Textarea with a "DIV-based" editor
+
Using div instead of iframe for rich editing.
+ +
Using the "Enter" key in CKEditor
+
Configuring the behavior of Enter and Shift+Enter keys.
+ +
Output for Flash
+
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+ +
Output HTML
+
Configuring CKEditor to produce legacy HTML 4 code.
+ +
Toolbar Configurations
+
Configuring CKEditor to display full or custom toolbar layout.
+ +
+
+
+ + + diff --git a/www/lib/ckeditor/samples/inlineall.html b/www/lib/ckeditor/samples/inlineall.html new file mode 100644 index 00000000..f82af1db --- /dev/null +++ b/www/lib/ckeditor/samples/inlineall.html @@ -0,0 +1,311 @@ + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/www/lib/ckeditor/samples/inlinebycode.html b/www/lib/ckeditor/samples/inlinebycode.html new file mode 100644 index 00000000..4e475367 --- /dev/null +++ b/www/lib/ckeditor/samples/inlinebycode.html @@ -0,0 +1,121 @@ + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + + diff --git a/www/lib/ckeditor/samples/inlinetextarea.html b/www/lib/ckeditor/samples/inlinetextarea.html new file mode 100644 index 00000000..fd27c0f1 --- /dev/null +++ b/www/lib/ckeditor/samples/inlinetextarea.html @@ -0,0 +1,110 @@ + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea with Inline Editor +

+
+

+ You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+

This is a sample form with some fields

+

+ Title:
+

+

+ Article Body (Textarea converted to CKEditor):
+ +

+

+ +

+
+ + + + + diff --git a/www/lib/ckeditor/samples/jquery.html b/www/lib/ckeditor/samples/jquery.html new file mode 100644 index 00000000..380b8284 --- /dev/null +++ b/www/lib/ckeditor/samples/jquery.html @@ -0,0 +1,100 @@ + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Create Editors with jQuery +

+
+
+

+ This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

+ +
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckeditor/ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+ +

Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.

+ +
+$( document ).ready( function() {
+	$( 'textarea#editor1' ).ckeditor();
+} );
+
+
+ +

Inline Example

+ +
+

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +
+ +

Classic (iframe-based) Example

+ + + +

+ + + + + +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html b/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html new file mode 100644 index 00000000..39434152 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/autogrow/autogrow.html @@ -0,0 +1,99 @@ + + + + + + AutoGrow Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using AutoGrow Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + AutoGrow (autogrow) plugin that lets the editor window expand + and shrink depending on the amount and size of content entered in the editing area. +

+

+ In its default implementation the AutoGrow feature can expand the + CKEditor window infinitely in order to avoid introducing scrollbars to the editing area. +

+

+ It is also possible to set a maximum height for the editor window. Once CKEditor + editing area reaches the value in pixels specified in the + autoGrow_maxHeight + configuration setting, scrollbars will be added and the editor window will no longer expand. +

+

+ To add a CKEditor instance using the autogrow plugin and its + autoGrow_maxHeight attribute, insert the following JavaScript call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'autogrow',
+	autoGrow_maxHeight: 800,
+
+	// Remove the Resize plugin as it does not make sense to use it in conjunction with the AutoGrow plugin.
+	removePlugins: 'resize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. The maximum height should + be given in pixels. +

+
+
+

+ + + +

+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html b/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html new file mode 100644 index 00000000..940d12c0 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/bbcode/bbcode.html @@ -0,0 +1,111 @@ + + + + + + BBCode Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » BBCode Plugin +

+
+

+ This sample shows how to configure CKEditor to output BBCode format instead of HTML. + Please note that the editor configuration was modified to reflect what is needed in a BBCode editing environment. + Smiley images, for example, were stripped to the emoticons that are commonly used in some BBCode dialects. +

+

+ Please note that currently there is no standard for the BBCode markup language, so its implementation + for different platforms (message boards, blogs etc.) can vary. This means that before using CKEditor to + output BBCode you may need to adjust the implementation to your own environment. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + a full definition: +

+
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'bbcode',
+	toolbar: [
+		[ 'Source', '-', 'Save', 'NewPage', '-', 'Undo', 'Redo' ],
+		[ 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat' ],
+		[ 'Link', 'Unlink', 'Image' ],
+		'/',
+		[ 'FontSize', 'Bold', 'Italic', 'Underline' ],
+		[ 'NumberedList', 'BulletedList', '-', 'Blockquote' ],
+		[ 'TextColor', '-', 'Smiley', 'SpecialChar', '-', 'Maximize' ]
+	],
+	... some other configurations omitted here
+});	
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html b/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html new file mode 100644 index 00000000..52588cf0 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/codesnippet/codesnippet.html @@ -0,0 +1,233 @@ + + + + + + Code Snippet — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Code Snippet Plugin +

+ +
+

+ This editor is using the Code Snippet plugin which introduces beautiful code snippets. + By default the codesnippet plugin depends on the built-in client-side syntax highlighting + library highlight.js. +

+

+ You can adjust the appearance of code snippets using the codeSnippet_theme configuration variable + (see available themes). +

+

+ Select theme: +

+

+ The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'codesnippet',
+	codeSnippet_theme: 'monokai_sublime'
+} );
+
+ +

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + +

Inline editor

+ +
+

+ The following sample shows the Code Snippet plugin running inside + an inline CKEditor instance. The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'codesnippet'
+} );
+
+ +

+ Note: The highlight.js themes + must be loaded manually to be applied inside an inline editor instance, as the + codeSnippet_theme setting will not work in that case. + You need to include the stylesheet in the <head> section of the page, for example: +

+ +
+<head>
+	...
+	<link href="path/to/highlight.js/styles/monokai_sublime.css" rel="stylesheet">
+</head>
+
+ +
+ +
+ +

JavaScript code:

+ +
function isEmpty( object ) {
+	for ( var i in object ) {
+		if ( object.hasOwnProperty( i ) )
+			return false;
+	}
+	return true;
+}
+ +

SQL query:

+ +
SELECT cust.id, cust.name, loc.city FROM cust LEFT JOIN loc ON ( cust.loc_id = loc.id ) WHERE cust.type IN ( 1, 2 );
+ +

Unknown markup:

+ +
 ________________
+/                \
+| How about moo? |  ^__^
+\________________/  (oo)\_______
+                  \ (__)\       )\/\
+                        ||----w |
+                        ||     ||
+
+
+ +

Server-side Highlighting and Custom Highlighting Engines

+ +

+ The Code Snippet GeSHi plugin is an + extension of the Code Snippet plugin which uses a server-side highligter. +

+ +

+ It also is possible to replace the default highlighter with any library using + the Highlighter API + and the editor.plugins.codesnippet.setHighlighter() method. +

+ + + + + + diff --git a/www/lib/ckeditor/samples/plugins/devtools/devtools.html b/www/lib/ckeditor/samples/plugins/devtools/devtools.html new file mode 100644 index 00000000..da3552ff --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/devtools/devtools.html @@ -0,0 +1,83 @@ + + + + + + Using DevTools Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the Developer Tools Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Developer Tools (devtools) plugin that displays + information about dialog window elements, including the name of the dialog window, + tab, and UI element. Please note that the tooltip also contains a link to the + CKEditor JavaScript API + documentation for each of the selected elements. +

+

+ This plugin is aimed at developers who would like to customize their CKEditor + instances and create their own plugins. By default it is turned off; it is + usually useful to only turn it on in the development phase. Note that it works with + all CKEditor dialog windows, including the ones that were created by custom plugins. +

+

+ To add a CKEditor instance using the devtools plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'devtools'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js new file mode 100644 index 00000000..3edd0728 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/www/lib/ckeditor/samples/plugins/dialog/dialog.html b/www/lib/ckeditor/samples/plugins/dialog/dialog.html new file mode 100644 index 00000000..df09d25b --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/dialog/dialog.html @@ -0,0 +1,187 @@ + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/www/lib/ckeditor/samples/plugins/divarea/divarea.html b/www/lib/ckeditor/samples/plugins/divarea/divarea.html new file mode 100644 index 00000000..d2880bd2 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/divarea/divarea.html @@ -0,0 +1,61 @@ + + + + + + Replace Textarea with a "DIV-based" editor — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Replace Textarea with a "DIV-based" editor +

+
+
+

+ This editor is using a <div> element-based editing area, provided by the Divarea plugin. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'divarea'
+});
+
+ + +

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/docprops/docprops.html b/www/lib/ckeditor/samples/plugins/docprops/docprops.html new file mode 100644 index 00000000..fcea6468 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/docprops/docprops.html @@ -0,0 +1,78 @@ + + + + + + Document Properties — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Document Properties Plugin +

+
+

+ This sample shows how to configure CKEditor to use the Document Properties plugin. + This plugin allows you to set the metadata of the page, including the page encoding, margins, + meta tags, or background. +

+

Note: This plugin is to be used along with the fullPage configuration.

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	extraPlugins: 'docprops',
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html b/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html new file mode 100644 index 00000000..2d515012 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/enterkey/enterkey.html @@ -0,0 +1,103 @@ + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla new file mode 100644 index 00000000..27e68ccd Binary files /dev/null and b/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla differ diff --git a/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf new file mode 100644 index 00000000..dbe17b6b Binary files /dev/null and b/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf differ diff --git a/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js new file mode 100644 index 00000000..95fdf0a7 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -0,0 +1,18 @@ +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html new file mode 100644 index 00000000..f25697df --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -0,0 +1,221 @@ + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg b/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg new file mode 100644 index 00000000..ca491e39 Binary files /dev/null and b/www/lib/ckeditor/samples/plugins/image2/assets/image1.jpg differ diff --git a/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg b/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg new file mode 100644 index 00000000..3dd6d61f Binary files /dev/null and b/www/lib/ckeditor/samples/plugins/image2/assets/image2.jpg differ diff --git a/www/lib/ckeditor/samples/plugins/image2/image2.html b/www/lib/ckeditor/samples/plugins/image2/image2.html new file mode 100644 index 00000000..34a5339a --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/image2/image2.html @@ -0,0 +1,65 @@ + + + + + + New Image plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » New Image plugin +

+ +
+

+ This editor is using the new Image (image2) plugin, which implements a dynamic click-and-drag resizing + and easy captioning of the images. +

+

+ To use the new plugin, extend config.extraPlugins: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'image2'
+} );
+
+
+ + + + + + + + diff --git a/www/lib/ckeditor/samples/plugins/magicline/magicline.html b/www/lib/ckeditor/samples/plugins/magicline/magicline.html new file mode 100644 index 00000000..800fbb3b --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/magicline/magicline.html @@ -0,0 +1,206 @@ + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html b/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html new file mode 100644 index 00000000..bdccc158 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/mathjax/mathjax.html @@ -0,0 +1,82 @@ + + + + + + Mathematical Formulas — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Mathematical Formulas +

+ +
+

+ This sample shows the usage of the CKEditor mathematical plugin that introduces a MathJax widget. You can now use it to create or modify equations using TeX. +

+

+ TeX content will be automatically replaced by a widget when you put it in a <span class="math-tex"> element. You can also add new equations by using the Math toolbar button and entering TeX content in the plugin dialog window. After you click OK, a widget will be inserted into the editor content. +

+

+ The output of the editor will be plain TeX with MathJax delimiters: \( and \), as in the code below: +

+
+<span class="math-tex">\( \sqrt{1} + (1)^2 = 2 \)</span>
+
+

+ To transform TeX into a visual equation, a page must include the MathJax script. +

+

+ In order to use the new plugin, include it in the config.extraPlugins configuration setting. +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'mathjax'
+} );
+
+

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + + + + + diff --git a/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html b/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html new file mode 100644 index 00000000..5a09a8ef --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/placeholder/placeholder.html @@ -0,0 +1,72 @@ + + + + + + Placeholder Plugin — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Using the Placeholder Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Placeholder plugin that lets you insert read-only elements + into your content. To enter and modify read-only text, use the + Create Placeholder   button and its matching dialog window. +

+

+ To add a CKEditor instance that uses the placeholder plugin and a related + Create Placeholder   toolbar button, insert the following JavaScript + call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'placeholder',
+	toolbar: [ [ 'Source', 'Bold' ], ['CreatePlaceholder'] ]
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html b/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html new file mode 100644 index 00000000..30ac7fcf --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/sharedspace/sharedspace.html @@ -0,0 +1,119 @@ + + + + + + Shared-Space Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Sharing Toolbar and Bottom-bar Spaces +

+
+

+ This sample shows several editor instances that share the very same spaces for both the toolbar and the bottom bar. +

+
+
+ +
+ +
+ +
+
+ +
+ +
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+ +
+ +
+ +
+ + + + + + diff --git a/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html b/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html new file mode 100644 index 00000000..2b920dff --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/sourcedialog/sourcedialog.html @@ -0,0 +1,118 @@ + + + + + + Editing source code in a dialog — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Editing source code in a dialog +

+
+

+ Sourcedialog plugin provides an easy way to edit raw HTML content + of an editor, similarly to what is possible with Sourcearea + plugin for classic (iframe-based) instances but using dialogs. Thanks to that, it's also possible + to manipulate raw content of inline editor instances. +

+

+ This plugin extends the toolbar with a button, + which opens a dialog window with a source code editor. It works with both classic + and inline instances. To enable this + plugin, basically add extraPlugins: 'sourcedialog' to editor's + config: +

+
+// Inline editor.
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'sourcedialog'
+});
+
+// Classic (iframe-based) editor.
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'sourcedialog',
+	removePlugins: 'sourcearea'
+});
+
+

+ Note that you may want to include removePlugins: 'sourcearea' + in your config when using Sourcedialog in classic editor instances. + This prevents feature redundancy. +

+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+ +
+

This is some sample text. You are using CKEditor.

+
+
+
+
+ + +
+ + + + diff --git a/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css b/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css new file mode 100644 index 00000000..ce545eec --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/stylesheetparser/assets/sample.css @@ -0,0 +1,70 @@ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 12px; + color: #222; + background-color: #fff; +} + +/* preserved spaces for rtl list item bullets. (#6249)*/ +ol,ul,dl +{ + padding-right:40px; +} + +h1,h2,h3,h4 +{ + font-family: Georgia, Times, serif; +} + +h1.lightBlue +{ + color: #00A6C7; + font-size: 1.8em; + font-weight:normal; +} + +h3.green +{ + color: #739E39; + font-weight:normal; +} + +span.markYellow { background-color: yellow; } +span.markGreen { background-color: lime; } + +img.left +{ + padding: 5px; + margin-right: 5px; + float:left; + border:2px solid #DDD; +} + +img.right +{ + padding: 5px; + margin-right: 5px; + float:right; + border:2px solid #DDD; +} + +a.green +{ + color:#739E39; +} + +table.grey +{ + background-color : #F5F5F5; +} + +table.grey th +{ + background-color : #DDD; +} + +ul.square +{ + list-style-type : square; +} diff --git a/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html b/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html new file mode 100644 index 00000000..450bc11f --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html @@ -0,0 +1,82 @@ + + + + + + Using Stylesheet Parser Plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using the Stylesheet Parser Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + Stylesheet Parser (stylesheetparser) plugin that fills + the Styles drop-down list based on the CSS rules available in the document stylesheet. +

+

+ To add a CKEditor instance using the stylesheetparser plugin, insert + the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'stylesheetparser'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html b/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html new file mode 100644 index 00000000..6dec40d6 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/tableresize/tableresize.html @@ -0,0 +1,104 @@ + + + + + + Using TableResize Plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using the TableResize Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + TableResize (tableresize) plugin that allows + the user to edit table columns by using the mouse. +

+

+ The TableResize plugin makes it possible to modify table column width. Hover + your mouse over the column border to see the cursor change to indicate that + the column can be resized. Click and drag your mouse to set the desired width. +

+

+ By default the plugin is turned off. To add a CKEditor instance using the + TableResize plugin, insert the following JavaScript call into your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'tableresize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. +

+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html b/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html new file mode 100644 index 00000000..6cf2ddf1 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/toolbar/toolbar.html @@ -0,0 +1,232 @@ + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html b/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html new file mode 100644 index 00000000..a6309be0 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/uicolor/uicolor.html @@ -0,0 +1,103 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + + + + +

+ CKEditor Samples » UI Color Plugin +

+
+

+ This sample shows how to use the UI Color picker toolbar button to preview the skin color of the editor. + Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+
+

+ If the uicolor plugin along with the dedicated UIColor + toolbar button is added to CKEditor, the user will also be able to pick the color of the + UI from the color palette available in the UI Color Picker dialog window. +

+

+ To insert a CKEditor instance with the uicolor plugin enabled, + use the following JavaScript call: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'uicolor',
+	toolbar: [ [ 'Bold', 'Italic' ], [ 'UIColor' ] ]
+});
+

Used in themed instance

+

+ Click the UI Color Picker toolbar button to open up a color picker dialog. +

+

+ + +

+

Used in inline instance

+

+ Click the below editable region to display floating toolbar, then click UI Color Picker button. +

+
+

This is some sample text. You are using CKEditor.

+
+ +
+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html new file mode 100644 index 00000000..174a25f3 --- /dev/null +++ b/www/lib/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -0,0 +1,77 @@ + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/readonly.html b/www/lib/ckeditor/samples/readonly.html new file mode 100644 index 00000000..58f97069 --- /dev/null +++ b/www/lib/ckeditor/samples/readonly.html @@ -0,0 +1,73 @@ + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/www/lib/ckeditor/samples/replacebyclass.html b/www/lib/ckeditor/samples/replacebyclass.html new file mode 100644 index 00000000..6fc3e6fe --- /dev/null +++ b/www/lib/ckeditor/samples/replacebyclass.html @@ -0,0 +1,57 @@ + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/replacebycode.html b/www/lib/ckeditor/samples/replacebycode.html new file mode 100644 index 00000000..e5a4c5ba --- /dev/null +++ b/www/lib/ckeditor/samples/replacebycode.html @@ -0,0 +1,56 @@ + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/sample.css b/www/lib/ckeditor/samples/sample.css new file mode 100644 index 00000000..8fd71aaa --- /dev/null +++ b/www/lib/ckeditor/samples/sample.css @@ -0,0 +1,365 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre +{ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} + +.marker +{ + background-color: Yellow; +} diff --git a/www/lib/ckeditor/samples/sample.js b/www/lib/ckeditor/samples/sample.js new file mode 100644 index 00000000..b25482d3 --- /dev/null +++ b/www/lib/ckeditor/samples/sample.js @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/www/lib/ckeditor/samples/sample_posteddata.php b/www/lib/ckeditor/samples/sample_posteddata.php new file mode 100644 index 00000000..e4869b7c --- /dev/null +++ b/www/lib/ckeditor/samples/sample_posteddata.php @@ -0,0 +1,16 @@ +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.md or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/www/lib/ckeditor/samples/tabindex.html b/www/lib/ckeditor/samples/tabindex.html new file mode 100644 index 00000000..89521668 --- /dev/null +++ b/www/lib/ckeditor/samples/tabindex.html @@ -0,0 +1,75 @@ + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/www/lib/ckeditor/samples/uicolor.html b/www/lib/ckeditor/samples/uicolor.html new file mode 100644 index 00000000..ce4b2a26 --- /dev/null +++ b/www/lib/ckeditor/samples/uicolor.html @@ -0,0 +1,69 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/samples/uilanguages.html b/www/lib/ckeditor/samples/uilanguages.html new file mode 100644 index 00000000..66acca43 --- /dev/null +++ b/www/lib/ckeditor/samples/uilanguages.html @@ -0,0 +1,119 @@ + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/www/lib/ckeditor/samples/xhtmlstyle.html b/www/lib/ckeditor/samples/xhtmlstyle.html new file mode 100644 index 00000000..f219d11d --- /dev/null +++ b/www/lib/ckeditor/samples/xhtmlstyle.html @@ -0,0 +1,231 @@ + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/www/lib/ckeditor/skins/kama/dialog.css b/www/lib/ckeditor/skins/kama/dialog.css new file mode 100644 index 00000000..31152d4c --- /dev/null +++ b/www/lib/ckeditor/skins/kama/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/dialog_ie.css b/www/lib/ckeditor/skins/kama/dialog_ie.css new file mode 100644 index 00000000..359d4574 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/dialog_ie7.css b/www/lib/ckeditor/skins/kama/dialog_ie7.css new file mode 100644 index 00000000..3973bd10 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_single_page .cke_dialog_footer{margin-top:22px}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{top:33px}.cke_dialog_footer_buttons{position:static;margin-top:7px;margin-right:24px}.cke_rtl .cke_dialog_footer_buttons{margin-right:0;margin-left:24px}.cke_rtl .cke_dialog_close_button{margin-top:0;position:absolute;left:10px;top:5px}span.cke_dialog_ui_buttonm{margin:2px 0}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{position:absolute}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{height:14px;position:relative} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/dialog_ie8.css b/www/lib/ckeditor/skins/kama/dialog_ie8.css new file mode 100644 index 00000000..ddbd6012 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_rtl .cke_dialog_footer_buttons td{padding-left:2px}.cke_rtl .cke_dialog_close_button{left:8px} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/dialog_iequirks.css b/www/lib/ckeditor/skins/kama/dialog_iequirks.css new file mode 100644 index 00000000..04ba2ee5 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{width:60px;padding:5px 20px 5px;display:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}select.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_dialog_page_contents{position:absolute}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_dialog_close_button{top:27px;background-image:url(images/sprites_ie6.png)}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{display:block;top:33px;margin-top:33px}.cke_rtl .cke_dialog_ui_labeled_content{_width:95%}a.cke_dialog_ui_button{background:0;padding:0}a.cke_dialog_ui_button span{width:70px;padding:5px 15px;text-align:center;color:#3b3b1f;background:#53d9f0 none;display:inline-block;cursor:default}a.cke_dialog_ui_button_ok span{background-image:none;background-color:#b8e834;margin-right:0}a.cke_dialog_ui_button_cancel span{background-image:none;background-color:#f65d20;margin-right:0}a.cke_dialog_ui_button:hover span,a.cke_dialog_ui_button:focus span,a.cke_dialog_ui_button:active span{background-image:none;background:#f7a922}div.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{width:99%}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid red!important;filter:chroma(color=red)}.cke_dialog_ui_focused,.cke_btn_over{border:1px dotted #696969!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/editor.css b/www/lib/ckeditor/skins/kama/editor.css new file mode 100644 index 00000000..8ac84cbf --- /dev/null +++ b/www/lib/ckeditor/skins/kama/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/editor_ie.css b/www/lib/ckeditor/skins/kama/editor_ie.css new file mode 100644 index 00000000..f9059430 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/editor_ie7.css b/www/lib/ckeditor/skins/kama/editor_ie7.css new file mode 100644 index 00000000..e47ea631 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:22px}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle;padding-bottom:8px}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:3px;height:5px;padding:0;position:absolute;right:8px;top:11px;background-position:0 -1411px}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -1390px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/editor_ie8.css b/www/lib/ckeditor/skins/kama/editor_ie8.css new file mode 100644 index 00000000..926a9ceb --- /dev/null +++ b/www/lib/ckeditor/skins/kama/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/editor_iequirks.css b/www/lib/ckeditor/skins/kama/editor_iequirks.css new file mode 100644 index 00000000..809e90f5 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{white-space:normal}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #ccc;background-color:#e9f5ff}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_menubutton_on:hover,.cke_menubutton_on:focus,.cke_menubutton_on:active{border-color:#316ac5;background-color:#dff1ff}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -2304px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2352px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -2400px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -2448px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2496px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -2544px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -2592px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -2640px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2688px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2736px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -2784px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -2832px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -2880px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -2928px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -2976px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -3024px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -3072px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3120px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -3168px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -3216px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3264px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -3312px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -3360px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -3408px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -3456px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3504px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -3552px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -3600px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3648px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -3696px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3744px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -3792px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -3840px!important}.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -3888px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -3936px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -3984px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -4032px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -4080px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2208px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4464px!important}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *{float:none}.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,.cke_rtl .cke_button_arrow{vertical-align:top;display:inline-block}.cke_toolgroup,.cke_combo_button,.cke_combo_arrow,.cke_button_arrow,.cke_toolbox_collapser,.cke_resizer{background-image:url(images/sprites_ie6.png)}.cke_toolgroup{background-color:#fff;display:inline-block;padding:2px}.cke_inner{padding-top:2px;background-color:#d3d3d3;background-image:none}.cke_toolbar{margin:2px 0}.cke_rtl .cke_toolbar{margin-bottom:-1px;margin-top:-1px}.cke_toolbar_separator{vertical-align:top}.cke_toolbox{width:100%;float:left;padding-bottom:4px}.cke_rtl .cke_toolbox{margin-top:2px;margin-bottom:-4px}.cke_combo_button{background-color:#fff}.cke_rtl .cke_combo_button{padding-right:6px;padding-left:0}.cke_combo_text{line-height:21px}.cke_ltr .cke_combo_open{margin-left:-3px}.cke_combo_arrow{background-position:2px -1467px;margin:2px 0 0;border:0;width:8px;height:13px}.cke_rtl .cke_button_arrow{background-position-x:0}.cke_toolbox_collapser .cke_arrow{display:block;visibility:hidden;font-size:0;color:transparent;border:0}.cke_button_arrow{background-position:2px -1467px;margin:0;border:0;width:8px;height:15px}.cke_ltr .cke_button_arrow{background-position:0 -1467px;margin-left:-3px}.cke_toolbox_collapser{background-position:3px -1367px}.cke_toolbox_collapser_min{background-position:4px -1387px;margin:2px 0 0}.cke_rtl .cke_toolbox_collapser_min{background-position:4px -1408px}.cke_resizer{background-position:0 -1427px;width:12px;height:12px;border:0;margin:9px 0 0;vertical-align:baseline}.cke_dialog_tabs{position:absolute;top:38px;left:0}.cke_dialog_body{clear:both;margin-top:20px}a.cke_dialog_ui_button{background:url(images/sprites.png) repeat_x 0 _ 1069px}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1179px}a.cke_dialog_ui_button_ok{background:url(images/sprites.png) repeat_x 0 _ 1144px}a.cke_dialog_ui_button_cancel{background:url(images/sprites.png) repeat_x 0 _ 1105px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{background-image:none}.cke_menubutton_label{height:25px}.cke_menuarrow{background-image:url(images/sprites_ie6.png)}.cke_menuitem .cke_icon,.cke_button_icon,.cke_menuitem .cke_disabled .cke_icon,.cke_button_disabled .cke_button_icon{filter:""}.cke_menuseparator{font-size:0}.cke_colorbox{font-size:0}.cke_source{white-space:normal} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/kama/icons.png b/www/lib/ckeditor/skins/kama/icons.png new file mode 100644 index 00000000..a041850a Binary files /dev/null and b/www/lib/ckeditor/skins/kama/icons.png differ diff --git a/www/lib/ckeditor/skins/kama/icons_hidpi.png b/www/lib/ckeditor/skins/kama/icons_hidpi.png new file mode 100644 index 00000000..1581f600 Binary files /dev/null and b/www/lib/ckeditor/skins/kama/icons_hidpi.png differ diff --git a/www/lib/ckeditor/skins/kama/images/dialog_sides.gif b/www/lib/ckeditor/skins/kama/images/dialog_sides.gif new file mode 100644 index 00000000..b5d9a532 Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/dialog_sides.gif differ diff --git a/www/lib/ckeditor/skins/kama/images/dialog_sides.png b/www/lib/ckeditor/skins/kama/images/dialog_sides.png new file mode 100644 index 00000000..2df7a15b Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/dialog_sides.png differ diff --git a/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png b/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png new file mode 100644 index 00000000..b179935f Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/dialog_sides_rtl.png differ diff --git a/www/lib/ckeditor/skins/kama/images/mini.gif b/www/lib/ckeditor/skins/kama/images/mini.gif new file mode 100644 index 00000000..babc31a5 Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/mini.gif differ diff --git a/www/lib/ckeditor/skins/kama/images/sprites.png b/www/lib/ckeditor/skins/kama/images/sprites.png new file mode 100644 index 00000000..5fc409d1 Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/sprites.png differ diff --git a/www/lib/ckeditor/skins/kama/images/sprites_ie6.png b/www/lib/ckeditor/skins/kama/images/sprites_ie6.png new file mode 100644 index 00000000..070a8cee Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/sprites_ie6.png differ diff --git a/www/lib/ckeditor/skins/kama/images/toolbar_start.gif b/www/lib/ckeditor/skins/kama/images/toolbar_start.gif new file mode 100644 index 00000000..94aa4abc Binary files /dev/null and b/www/lib/ckeditor/skins/kama/images/toolbar_start.gif differ diff --git a/www/lib/ckeditor/skins/kama/readme.md b/www/lib/ckeditor/skins/kama/readme.md new file mode 100644 index 00000000..ac304db8 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/readme.md @@ -0,0 +1,40 @@ +"Kama" Skin +==================== + +"Kama" is the default skin of CKEditor 3.x. +It's been ported to CKEditor 4 and fully featured. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/www/lib/ckeditor/skins/kama/skin.js b/www/lib/ckeditor/skins/kama/skin.js new file mode 100644 index 00000000..5d2c0959 --- /dev/null +++ b/www/lib/ckeditor/skins/kama/skin.js @@ -0,0 +1,8 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.skin.name="kama";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8"; +CKEDITOR.skin.chameleon=function(e,d){function b(a){return"background:-moz-linear-gradient("+a+");background:-webkit-linear-gradient("+a+");background:-o-linear-gradient("+a+");background:-ms-linear-gradient("+a+");background:linear-gradient("+a+");"}var c,a="."+e.id;"editor"==d?c=a+" .cke_inner,"+a+" .cke_dialog_tab{background-color:$color;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to($color));"+b("top,#fff -15px,$color 40px")+"}"+a+" .cke_toolgroup{background:-webkit-gradient(linear,0 0,0 100,from(#fff),to($color));"+ +b("top,#fff,$color 100px")+"}"+a+" .cke_combo_button{background:-webkit-gradient(linear, left bottom, left -100, from(#fff), to($color));"+b("bottom,#fff,$color 100px")+"}"+a+" .cke_dialog_contents,"+a+" .cke_dialog_footer{background-color:$color !important;}"+a+" .cke_dialog_tab:hover,"+a+" .cke_dialog_tab:active,"+a+" .cke_dialog_tab:focus,"+a+" .cke_dialog_tab_selected{background-color:$color;background-image:none;}":"panel"==d&&(c=".cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_label,.cke_menubutton:focus .cke_menubutton_label,.cke_menubutton:active .cke_menubutton_label{background-color:$color !important;}.cke_menubutton_disabled:hover .cke_menubutton_label,.cke_menubutton_disabled:focus .cke_menubutton_label,.cke_menubutton_disabled:active .cke_menubutton_label{background-color: transparent !important;}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton_disabled .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menuseparator{background-color:$color !important;}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:$color !important;}"); +return c}; \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/dialog.css b/www/lib/ckeditor/skins/moono/dialog.css new file mode 100644 index 00000000..1504938d --- /dev/null +++ b/www/lib/ckeditor/skins/moono/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/dialog_ie.css b/www/lib/ckeditor/skins/moono/dialog_ie.css new file mode 100644 index 00000000..93cf7aed --- /dev/null +++ b/www/lib/ckeditor/skins/moono/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/dialog_ie7.css b/www/lib/ckeditor/skins/moono/dialog_ie7.css new file mode 100644 index 00000000..4b98ae57 --- /dev/null +++ b/www/lib/ckeditor/skins/moono/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/dialog_ie8.css b/www/lib/ckeditor/skins/moono/dialog_ie8.css new file mode 100644 index 00000000..4f2edca9 --- /dev/null +++ b/www/lib/ckeditor/skins/moono/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/dialog_iequirks.css b/www/lib/ckeditor/skins/moono/dialog_iequirks.css new file mode 100644 index 00000000..bb36a95d --- /dev/null +++ b/www/lib/ckeditor/skins/moono/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/editor.css b/www/lib/ckeditor/skins/moono/editor.css new file mode 100644 index 00000000..c21d8f8d --- /dev/null +++ b/www/lib/ckeditor/skins/moono/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/editor_gecko.css b/www/lib/ckeditor/skins/moono/editor_gecko.css new file mode 100644 index 00000000..7aa2f32c --- /dev/null +++ b/www/lib/ckeditor/skins/moono/editor_gecko.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/editor_ie.css b/www/lib/ckeditor/skins/moono/editor_ie.css new file mode 100644 index 00000000..9afe7e92 --- /dev/null +++ b/www/lib/ckeditor/skins/moono/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/editor_ie7.css b/www/lib/ckeditor/skins/moono/editor_ie7.css new file mode 100644 index 00000000..ba856696 --- /dev/null +++ b/www/lib/ckeditor/skins/moono/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/editor_ie8.css b/www/lib/ckeditor/skins/moono/editor_ie8.css new file mode 100644 index 00000000..c4f4a1af --- /dev/null +++ b/www/lib/ckeditor/skins/moono/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/editor_iequirks.css b/www/lib/ckeditor/skins/moono/editor_iequirks.css new file mode 100644 index 00000000..3de6bfdb --- /dev/null +++ b/www/lib/ckeditor/skins/moono/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__bidiltr_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_button__bidirtl_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_button__codesnippet_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_button__bgcolor_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_button__textcolor_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_button__creatediv_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_rtl .cke_button__docprops_icon,.cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_ltr .cke_button__docprops_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_ltr .cke_button__find_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__replace_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_button__flash_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_button__button_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_button__checkbox_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_button__form_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__hiddenfield_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_button__imagebutton_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_button__radio_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__select_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_ltr .cke_button__textarea_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_ltr .cke_button__textfield_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_button__iframe_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -1152px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -1176px!important}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1200px!important}.cke_ltr .cke_button__anchor_icon{background:url(icons.png) no-repeat 0 -1224px!important}.cke_button__link_icon{background:url(icons.png) no-repeat 0 -1248px!important}.cke_button__unlink_icon{background:url(icons.png) no-repeat 0 -1272px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1296px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -1320px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1344px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -1368px!important}.cke_button__mathjax_icon{background:url(icons.png) no-repeat 0 -1392px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -1416px!important}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1440px!important}.cke_ltr .cke_button__newpage_icon{background:url(icons.png) no-repeat 0 -1464px!important}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1488px!important}.cke_ltr .cke_button__pagebreak_icon{background:url(icons.png) no-repeat 0 -1512px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1536px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -1560px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1584px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -1608px!important}.cke_button__placeholder_icon{background:url(icons.png) no-repeat 0 -1632px!important}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1656px!important}.cke_ltr .cke_button__preview_icon{background:url(icons.png) no-repeat 0 -1680px!important}.cke_button__print_icon{background:url(icons.png) no-repeat 0 -1704px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -1728px!important}.cke_button__save_icon{background:url(icons.png) no-repeat 0 -1752px!important}.cke_button__scayt_icon{background:url(icons.png) no-repeat 0 -1776px!important}.cke_button__selectall_icon{background:url(icons.png) no-repeat 0 -1800px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1824px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -1848px!important}.cke_button__smiley_icon{background:url(icons.png) no-repeat 0 -1872px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1896px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -1920px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1944px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -1968px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -1992px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -2016px!important}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2040px!important}.cke_ltr .cke_button__templates_icon{background:url(icons.png) no-repeat 0 -2064px!important}.cke_button__uicolor_icon{background:url(icons.png) no-repeat 0 -2088px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2112px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -2136px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2160px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -2184px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -2208px!important}.cke_button__spellchecker_icon{background:url(icons.png) no-repeat 0 -2232px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__bidiltr_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_hidpi .cke_button__bidirtl_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_hidpi .cke_button__codesnippet_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_button__bgcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_hidpi .cke_button__textcolor_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_button__creatediv_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__docprops_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__docprops_icon,.cke_ltr.cke_hidpi .cke_button__docprops_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__find_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__replace_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_hidpi .cke_button__flash_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_button__button_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_hidpi .cke_button__checkbox_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_button__form_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__hiddenfield_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_hidpi .cke_button__imagebutton_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_button__radio_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__select_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textarea_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__textfield_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_hidpi .cke_button__iframe_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -1128px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -1152px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -1176px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__anchor_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1200px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon{background:url(icons_hidpi.png) no-repeat 0 -1224px!important;background-size:16px!important}.cke_hidpi .cke_button__link_icon{background:url(icons_hidpi.png) no-repeat 0 -1248px!important;background-size:16px!important}.cke_hidpi .cke_button__unlink_icon{background:url(icons_hidpi.png) no-repeat 0 -1272px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1296px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1320px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1344px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -1368px!important;background-size:16px!important}.cke_hidpi .cke_button__mathjax_icon{background:url(icons_hidpi.png) no-repeat 0 -1392px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -1416px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__newpage_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1440px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon{background:url(icons_hidpi.png) no-repeat 0 -1464px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1488px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon{background:url(icons_hidpi.png) no-repeat 0 -1512px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1536px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -1560px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1584px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -1608px!important;background-size:16px!important}.cke_hidpi .cke_button__placeholder_icon{background:url(icons_hidpi.png) no-repeat 0 -1632px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__preview_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1656px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon{background:url(icons_hidpi.png) no-repeat 0 -1680px!important;background-size:16px!important}.cke_hidpi .cke_button__print_icon{background:url(icons_hidpi.png) no-repeat 0 -1704px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -1728px!important;background-size:16px!important}.cke_hidpi .cke_button__save_icon{background:url(icons_hidpi.png) no-repeat 0 -1752px!important;background-size:16px!important}.cke_hidpi .cke_button__scayt_icon{background:url(icons_hidpi.png) no-repeat 0 -1776px!important;background-size:16px!important}.cke_hidpi .cke_button__selectall_icon{background:url(icons_hidpi.png) no-repeat 0 -1800px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1824px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -1848px!important;background-size:16px!important}.cke_hidpi .cke_button__smiley_icon{background:url(icons_hidpi.png) no-repeat 0 -1872px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1896px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -1920px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1944px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -1968px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -1992px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -2016px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__templates_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2040px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon{background:url(icons_hidpi.png) no-repeat 0 -2064px!important;background-size:16px!important}.cke_hidpi .cke_button__uicolor_icon{background:url(icons_hidpi.png) no-repeat 0 -2088px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2112px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -2136px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2160px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -2184px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -4416px!important}.cke_hidpi .cke_button__spellchecker_icon{background:url(icons_hidpi.png) no-repeat 0 -2232px!important;background-size:16px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0} \ No newline at end of file diff --git a/www/lib/ckeditor/skins/moono/icons.png b/www/lib/ckeditor/skins/moono/icons.png new file mode 100644 index 00000000..163fd0de Binary files /dev/null and b/www/lib/ckeditor/skins/moono/icons.png differ diff --git a/www/lib/ckeditor/skins/moono/icons_hidpi.png b/www/lib/ckeditor/skins/moono/icons_hidpi.png new file mode 100644 index 00000000..c181faa9 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/icons_hidpi.png differ diff --git a/www/lib/ckeditor/skins/moono/images/arrow.png b/www/lib/ckeditor/skins/moono/images/arrow.png new file mode 100644 index 00000000..d72b5f3b Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/arrow.png differ diff --git a/www/lib/ckeditor/skins/moono/images/close.png b/www/lib/ckeditor/skins/moono/images/close.png new file mode 100644 index 00000000..6a04ab52 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/close.png differ diff --git a/www/lib/ckeditor/skins/moono/images/hidpi/close.png b/www/lib/ckeditor/skins/moono/images/hidpi/close.png new file mode 100644 index 00000000..e406c2c3 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/hidpi/close.png differ diff --git a/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png b/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png new file mode 100644 index 00000000..edbd12f3 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/hidpi/lock-open.png differ diff --git a/www/lib/ckeditor/skins/moono/images/hidpi/lock.png b/www/lib/ckeditor/skins/moono/images/hidpi/lock.png new file mode 100644 index 00000000..1b87bbb7 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/hidpi/lock.png differ diff --git a/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png b/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png new file mode 100644 index 00000000..c6c2b86e Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/hidpi/refresh.png differ diff --git a/www/lib/ckeditor/skins/moono/images/lock-open.png b/www/lib/ckeditor/skins/moono/images/lock-open.png new file mode 100644 index 00000000..04769877 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/lock-open.png differ diff --git a/www/lib/ckeditor/skins/moono/images/lock.png b/www/lib/ckeditor/skins/moono/images/lock.png new file mode 100644 index 00000000..c5a14400 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/lock.png differ diff --git a/www/lib/ckeditor/skins/moono/images/refresh.png b/www/lib/ckeditor/skins/moono/images/refresh.png new file mode 100644 index 00000000..1ff63c30 Binary files /dev/null and b/www/lib/ckeditor/skins/moono/images/refresh.png differ diff --git a/www/lib/ckeditor/skins/moono/readme.md b/www/lib/ckeditor/skins/moono/readme.md new file mode 100644 index 00000000..d086fe9b --- /dev/null +++ b/www/lib/ckeditor/skins/moono/readme.md @@ -0,0 +1,51 @@ +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/www/lib/ckeditor/styles.js b/www/lib/ckeditor/styles.js new file mode 100644 index 00000000..18e4316b --- /dev/null +++ b/www/lib/ckeditor/styles.js @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/www/lib/d3/.bower.json b/www/lib/d3/.bower.json new file mode 100644 index 00000000..5c7a0fde --- /dev/null +++ b/www/lib/d3/.bower.json @@ -0,0 +1,35 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ], + "homepage": "https://github.com/mbostock/d3", + "_release": "3.4.11", + "_resolution": { + "type": "version", + "tag": "v3.4.11", + "commit": "9dbb2266543a6c998c3552074240efb36e4c7cab" + }, + "_source": "git://github.com/mbostock/d3.git", + "_target": "~3.4.11", + "_originalSource": "d3", + "_direct": true +} \ No newline at end of file diff --git a/www/lib/d3/.spmignore b/www/lib/d3/.spmignore new file mode 100644 index 00000000..0a673041 --- /dev/null +++ b/www/lib/d3/.spmignore @@ -0,0 +1,4 @@ +bin +lib +src +test diff --git a/www/lib/d3/CONTRIBUTING.md b/www/lib/d3/CONTRIBUTING.md new file mode 100644 index 00000000..76126d5f --- /dev/null +++ b/www/lib/d3/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing + +If you’re looking for ways to contribute, please [peruse open issues](https://github.com/mbostock/d3/issues?milestone=&page=1&state=open). The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed. + +Before submitting a pull request, consider implementing a live example first, say using [bl.ocks.org](http://bl.ocks.org). Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the d3-js Google group. + +If your proposed feature does not involve changing core functionality, consider submitting it instead as a [D3 plugin](https://github.com/d3/d3-plugins). New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core. + +To contribute new documentation or add examples to the gallery, just [edit the Wiki](https://github.com/mbostock/d3/wiki)! + +## How to Submit a Pull Request + +1. Click the “Fork” button to create your personal fork of the D3 repository. + +2. After cloning your fork of the D3 repository in the terminal, run `npm install` to install D3’s dependencies. + +3. Create a new branch for your new feature. For example: `git checkout -b my-awesome-feature`. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. + +4. The `d3.js` and `d3.min.js` files are built from source files in the `src` directory. _Do not edit `d3.js` directly._ Instead, edit the source files, and then run `make` to build the generated files. + +5. Use `make test` to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. + +6. Sign D3’s [Individual Contributor License Agreement](https://docs.google.com/forms/d/1CzjdBKtDuA8WeuFJinadx956xLQ4Xriv7-oDvXnZMaI/viewform). Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute. + +7. Submit your pull request, and good luck! diff --git a/www/lib/d3/LICENSE b/www/lib/d3/LICENSE new file mode 100644 index 00000000..83013469 --- /dev/null +++ b/www/lib/d3/LICENSE @@ -0,0 +1,26 @@ +Copyright (c) 2010-2014, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* The name Michael Bostock may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/www/lib/d3/README.md b/www/lib/d3/README.md new file mode 100644 index 00000000..eb334e27 --- /dev/null +++ b/www/lib/d3/README.md @@ -0,0 +1,9 @@ +# Data-Driven Documents + + + +**D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation. + +Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) + +For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). diff --git a/www/lib/d3/bower.json b/www/lib/d3/bower.json new file mode 100644 index 00000000..9f5968d2 --- /dev/null +++ b/www/lib/d3/bower.json @@ -0,0 +1,24 @@ +{ + "name": "d3", + "version": "3.4.11", + "main": "d3.js", + "scripts": [ + "d3.js" + ], + "ignore": [ + ".DS_Store", + ".git", + ".gitignore", + ".npmignore", + ".travis.yml", + "Makefile", + "bin", + "component.json", + "index.js", + "lib", + "node_modules", + "package.json", + "src", + "test" + ] +} diff --git a/www/lib/d3/composer.json b/www/lib/d3/composer.json new file mode 100644 index 00000000..bfc5b7b5 --- /dev/null +++ b/www/lib/d3/composer.json @@ -0,0 +1,19 @@ +{ + "name": "mbostock/d3", + "description": "A small, free JavaScript library for manipulating documents based on data.", + "keywords": ["dom", "svg", "visualization", "js", "canvas"], + "homepage": "http://d3js.org/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Mike Bostock", + "homepage": "http://bost.ocks.org/mike" + } + ], + "support": { + "issues": "https://github.com/mbostock/d3/issues", + "wiki": "https://github.com/mbostock/d3/wiki", + "API": "https://github.com/mbostock/d3/wiki/API-Reference", + "source": "https://github.com/mbostock/d3" + } +} diff --git a/www/lib/d3/d3.js b/www/lib/d3/d3.js new file mode 100644 index 00000000..82287776 --- /dev/null +++ b/www/lib/d3/d3.js @@ -0,0 +1,9233 @@ +!function() { + var d3 = { + version: "3.4.11" + }; + if (!Date.now) Date.now = function() { + return +new Date(); + }; + var d3_arraySlice = [].slice, d3_array = function(list) { + return d3_arraySlice.call(list); + }; + var d3_document = document, d3_documentElement = d3_document.documentElement, d3_window = window; + try { + d3_array(d3_documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } + try { + d3_document.createElement("div").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ""); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ""); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; + } + d3.ascending = d3_ascending; + function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; + }; + d3.max = function(array, f) { + var i = -1, n = array.length, a, b; + if (arguments.length === 1) { + while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; + }; + d3.extent = function(array, f) { + var i = -1, n = array.length, a, b, c; + if (arguments.length === 1) { + while (++i < n && !((a = c = array[i]) != null && a <= a)) a = c = undefined; + while (++i < n) if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n && !((a = c = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [ a, c ]; + }; + d3.sum = function(array, f) { + var s = 0, n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + return s; + }; + function d3_number(x) { + return x != null && !isNaN(x); + } + d3.mean = function(array, f) { + var s = 0, n = array.length, a, i = -1, j = n; + if (arguments.length === 1) { + while (++i < n) if (d3_number(a = array[i])) s += a; else --j; + } else { + while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j; + } + return j ? s / j : undefined; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + if (arguments.length > 1) array = array.map(f); + array = array.filter(d3_number); + return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined; + }; + function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1; + } + return lo; + } + }; + } + var d3_bisect = d3_bisector(d3_ascending); + d3.bisectLeft = d3_bisect.left; + d3.bisect = d3.bisectRight = d3_bisect.right; + d3.bisector = function(f) { + return d3_bisector(f.length === 1 ? function(d, x) { + return d3_ascending(f(d), x); + } : f); + }; + d3.shuffle = function(array) { + var m = array.length, t, i; + while (m) { + i = Math.random() * m-- | 0; + t = array[m], array[m] = array[i], array[i] = t; + } + return array; + }; + d3.permute = function(array, indexes) { + var i = indexes.length, permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.pairs = function(array) { + var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; + return pairs; + }; + d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { + zip[j] = arguments[j][i]; + } + } + return zips; + }; + function d3_zipLength(d) { + return d.length; + } + d3.transpose = function(matrix) { + return d3.zip.apply(d3, matrix); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + var n = arrays.length, m, i = -1, j = 0, merged, array; + while (++i < n) j += arrays[i].length; + merged = new Array(j); + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + return merged; + }; + var abs = Math.abs; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error("infinite range"); + var range = [], k = d3_range_integerScale(abs(step)), i = -1, j; + start *= k, stop *= k, step *= k; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while (x * k % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + try { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } catch (e) { + ctor.prototype = properties; + } + } + d3.map = function(object) { + var map = new d3_Map(); + if (object instanceof d3_Map) object.forEach(function(key, value) { + map.set(key, value); + }); else for (var key in object) map.set(key, object[key]); + return map; + }; + function d3_Map() {} + d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this[d3_map_prefix + key]; + }, + set: function(key, value) { + return this[d3_map_prefix + key] = value; + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + this.forEach(function(key, value) { + values.push(value); + }); + return values; + }, + entries: function() { + var entries = []; + this.forEach(function(key, value) { + entries.push({ + key: key, + value: value + }); + }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) f.call(this, key.substring(1), this[key]); + } + }); + var d3_map_prefix = "\x00", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); + function d3_map_has(key) { + return d3_map_prefix + key in this; + } + function d3_map_remove(key) { + key = d3_map_prefix + key; + return key in this && delete this[key]; + } + function d3_map_keys() { + var keys = []; + this.forEach(function(key) { + keys.push(key); + }); + return keys; + } + function d3_map_size() { + var size = 0; + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) ++size; + return size; + } + function d3_map_empty() { + for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) return false; + return true; + } + d3.nest = function() { + var nest = {}, keys = [], sortKeys = [], sortValues, rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; + var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values; + while (++i < n) { + if (values = valuesByKey.get(keyValue = key(object = array[i]))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [ object ]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + nest.key = function(d) { + keys.push(d); + return nest; + }; + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; + }; + function d3_Set() {} + d3_class(d3_Set, { + has: d3_map_has, + add: function(value) { + this[d3_map_prefix + value] = true; + return value; + }, + remove: function(value) { + value = d3_map_prefix + value; + return value in this && delete this[value]; + }, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var value in this) if (value.charCodeAt(0) === d3_map_prefixCode) f.call(this, value.substring(1)); + } + }); + d3.behavior = {}; + d3.rebind = function(target, source) { + var i = 1, n = arguments.length, method; + while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.substring(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; + } + } + var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ]; + function d3_noop() {} + d3.dispatch = function() { + var dispatch = new d3_dispatch(), i = -1, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), name = ""; + if (i >= 0) { + name = type.substring(i + 1); + type = type.substring(0, i); + } + if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } + }; + function d3_dispatch_event(dispatch) { + var listeners = [], listenerByName = new d3_Map(); + function event() { + var z = listeners, i = -1, n = z.length, l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; + } + event.on = function(name, listener) { + var l = listenerByName.get(name), i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) listeners.push(listenerByName.set(name, { + on: listener + })); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventPreventDefault() { + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), i = 0, n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + var d3_subclass = {}.__proto__ ? function(object, prototype) { + object.__proto__ = prototype; + } : function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; + function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, d3_selectMatcher = d3_documentElement.matches || d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + if (typeof Sizzle === "function") { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3_selectionRoot; + }; + var d3_selectionPrototype = d3.selection.prototype = []; + d3_selectionPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, group, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i, j)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return typeof selector === "function" ? selector : function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], subgroup, node; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); + subgroup.parentNode = node; + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return typeof selector === "function" ? selector : function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsPrefix = { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(":"), prefix = name; + if (i >= 0) { + prefix = name.substring(0, i); + name = name.substring(i + 1); + } + return d3_nsPrefix.hasOwnProperty(prefix) ? { + space: d3_nsPrefix[prefix], + local: name + } : name; + } + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); + } + return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); + } + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") { + var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); + } + function d3_selection_classes(name) { + return (name + "").trim().split(/^|\s+/); + } + function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + return typeof value === "function" ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); + priority = ""; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); + } + return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === "string") return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; else this[name] = x; + } + return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + } : value == null ? function() { + this.textContent = ""; + } : function() { + this.textContent = value; + }) : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length ? this.each(typeof value === "function" ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + } : value == null ? function() { + this.innerHTML = ""; + } : function() { + this.innerHTML = value; + }) : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); + }); + }; + function d3_selection_creator(name) { + return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? function() { + return this.ownerDocument.createElementNS(name.space, name.local); + } : function() { + return this.ownerDocument.createElementNS(this.namespaceURI, name); + }; + } + d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); + }); + }; + d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); + }; + d3_selectionPrototype.data = function(value, key) { + var i = -1, n = this.length, group, node; + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; + } + } + return value; + } + function bind(group, groupData) { + var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; + for (i = -1; ++i < n; ) { + keyValue = key.call(node = group[i], node.__data__, i); + if (nodeByKeyValue.has(keyValue)) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues.push(keyValue); + } + for (i = -1; ++i < m; ) { + keyValue = key.call(groupData, nodeData = groupData[i], i); + if (node = nodeByKeyValue.get(keyValue)) { + updateNodes[i] = node; + node.__data__ = nodeData; + } else if (!dataByKeyValue.has(keyValue)) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + dataByKeyValue.set(keyValue, nodeData); + nodeByKeyValue.remove(keyValue); + } + for (i = -1; ++i < n; ) { + if (nodeByKeyValue.has(keyValues[i])) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (;i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (;i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length ? this.property("__data__", value) : this.property("__data__"); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + d3_selectionPrototype.size = function() { + var n = 0; + this.each(function() { + ++n; + }); + return n; + }; + function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.call = d3_selectionPrototype.call; + d3_selection_enterPrototype.size = d3_selectionPrototype.size; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], subgroup, subnode, upgroup, group, node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); + }; + function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, n = group.length, node; + if (j != j0) j0 = j, i0 = 0; + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n) ; + return node; + }; + } + d3_selectionPrototype.transition = function() { + var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || { + time: Date.now(), + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) d3_transitionNode(node, i, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, id); + }; + d3_selectionPrototype.interrupt = function() { + return this.each(d3_selection_interrupt); + }; + function d3_selection_interrupt() { + var lock = this.__transition__; + if (lock) ++lock.active; + } + d3.select = function(node) { + var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ]; + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + d3.selectAll = function(nodes) { + var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); + group.parentNode = d3_documentElement; + return d3_selection([ group ]); + }; + var d3_selectionRoot = d3.select(d3_documentElement); + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + if (n < 2) return (n = this.node()["__on" + type]) && n._; + capture = false; + } + return this.each(d3_selection_on(type, listener, capture)); + }; + function d3_selection_on(type, listener, capture) { + var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; + if (i > 0) type = type.substring(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll; + } + var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }); + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; + } + function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, related = e.relatedTarget; + if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) { + l.call(target, e); + } + }; + } + var d3_event_dragSelect = "onselectstart" in d3_document ? null : d3_vendorSymbol(d3_documentElement.style, "userSelect"), d3_event_dragId = 0; + function d3_event_dragSuppress() { + var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); + if (d3_event_dragSelect) { + var style = d3_documentElement.style, select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = "none"; + } + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { + function off() { + w.on(click, null); + } + w.on(click, function() { + d3_eventPreventDefault(); + off(); + }, true); + setTimeout(off, 0); + } + }; + } + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, + point.y = e.clientY; + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [ point.x, point.y ]; + } + var rect = container.getBoundingClientRect(); + return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; + } + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, "touchmove", "touchend"); + function drag() { + this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); + } + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId); + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; + } else { + dragOffset = [ 0, 0 ]; + } + dispatch({ + type: "dragstart" + }); + function moved() { + var position1 = position(parent, dragId), dx, dy; + if (!position1) return; + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + dispatch({ + type: "drag", + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + function ended() { + if (!position(parent, dragId)) return; + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged && d3.event.target === target); + dispatch({ + type: "dragend" + }); + } + }; + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, "on"); + }; + function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; + } + function d3_behavior_dragTouchSubject() { + return d3.event.target; + } + function d3_behavior_dragMouseSubject() { + return d3_window; + } + var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); + } + function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); + } + function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); + } + function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; + } + function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; + } + function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); + } + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; + } + var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; + d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2]; + var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ; + function interpolate(t) { + var s = t * S; + if (dr) { + var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; + } + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ]; + } + interpolate.duration = S * 1e3; + return interpolate; + }; + d3.behavior.zoom = function() { + var view = { + x: 0, + y: 0, + k: 1 + }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + function zoom(g) { + g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); + } + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), view1 = view; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.zoom", function() { + view = this.__chart__ || { + x: 0, + y: 0, + k: 1 + }; + zoomstarted(dispatch); + }).tween("zoom:zoom", function() { + var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); + return function(t) { + var l = i(t), k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }).each("end.zoom", function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + zoom.translate = function(_) { + if (!arguments.length) return [ view.x, view.y ]; + view = { + x: +_[0], + y: +_[1], + k: view.k + }; + rescale(); + return zoom; + }; + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { + x: view.x, + y: view.y, + k: +_ + }; + rescale(); + return zoom; + }; + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ]; + return zoom; + }; + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [ +_[0], +_[1] ]; + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + function location(p) { + return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ]; + } + function point(l) { + return [ l[0] * view.k + view.x, l[1] * view.k + view.y ]; + } + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + function rescale() { + if (x1) x1.domain(x0.range().map(function(x) { + return (x - view.x) / view.k; + }).map(x0.invert)); + if (y1) y1.domain(y0.range().map(function(y) { + return (y - view.y) / view.k; + }).map(y0.invert)); + } + function zoomstarted(dispatch) { + dispatch({ + type: "zoomstart" + }); + } + function zoomed(dispatch) { + rescale(); + dispatch({ + type: "zoom", + scale: view.k, + translate: [ view.x, view.y ] + }); + } + function zoomended(dispatch) { + dispatch({ + type: "zoomend" + }); + } + function mousedowned() { + var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged && d3.event.target === target); + zoomended(dispatch); + } + } + function touchstarted() { + var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress(); + d3_selection_interrupt.call(that); + started(); + zoomstarted(dispatch); + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) locations0[t.identifier] = location(t); + }); + return touches; + } + function started() { + var target = d3.event.target; + d3.select(target).on(touchmove, moved).on(touchend, ended); + targets.push(target); + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + var touches = relocate(), now = Date.now(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0], l = locations0[p.identifier]; + scaleTo(view.k * 2); + translateTo(p, l); + d3_eventPreventDefault(); + zoomed(dispatch); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + function moved() { + var touches = d3.touches(that), p0, l0, p1, l1; + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if (l1 = locations0[p1.identifier]) { + if (l0) break; + p0 = p1, l0 = l1; + } + } + if (l1) { + var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; + l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; + scaleTo(scale1 * scale0); + } + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + function ended() { + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + for (var identifier in locations0) { + return void relocate(); + } + } + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), + d3_selection_interrupt.call(this), zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + function dblclicked() { + var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2; + zoomstarted(dispatch); + scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); + translateTo(p, l); + zoomed(dispatch); + zoomended(dispatch); + } + return d3.rebind(zoom, event, "on"); + }; + var d3_behavior_zoomInfinity = [ 0, Infinity ]; + var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { + return this.rgb() + ""; + }; + d3.hsl = d3_hsl; + function d3_hsl(h, s, l) { + return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); + } + var d3_hslPrototype = d3_hsl.prototype = new d3_color(); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + } + d3.hcl = d3_hcl; + function d3_hcl(h, c, l) { + return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); + } + var d3_hclPrototype = d3_hcl.prototype = new d3_color(); + d3_hclPrototype.brighter = function(k) { + return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.darker = function(k) { + return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); + } + d3.lab = d3_lab; + function d3_lab(l, a, b) { + return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); + } + var d3_lab_K = 18; + var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; + var d3_labPrototype = d3_lab.prototype = new d3_color(); + d3_labPrototype.brighter = function(k) { + return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.darker = function(k) { + return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); + } + function d3_lab_hcl(l, a, b) { + return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); + } + function d3_lab_xyz(x) { + return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; + } + function d3_xyz_lab(x) { + return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; + } + function d3_xyz_rgb(r) { + return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); + } + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); + } + function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); + } + function d3_rgbString(value) { + return d3_rgbNumber(value) + ""; + } + var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + var r = this.r, g = this.g, b = this.b, i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); + }; + d3_rgbPrototype.darker = function(k) { + k = Math.pow(.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); + } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, g = 0, b = 0, m1, m2, color; + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": + { + return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); + } + + case "rgb": + { + return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); + } + } + } + if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b); + if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.substring(1), 16))) { + if (format.length === 4) { + r = (color & 3840) >> 4; + r = r >> 4 | r; + g = color & 240; + g = g >> 4 | g; + b = color & 15; + b = b << 4 | b; + } else if (format.length === 7) { + r = (color & 16711680) >> 16; + g = (color & 65280) >> 8; + b = color & 255; + } + } + return rgb(r, g, b); + } + function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return new d3_hsl(h, s, l); + } + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); + } + function d3_rgb_xyz(r) { + return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); + } + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; + } + var d3_rgb_names = d3.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); + }); + function d3_functor(v) { + return typeof v === "function" ? v : function() { + return v; + }; + } + d3.functor = d3_functor; + function d3_identity(d) { + return d; + } + d3.xhr = d3_xhrType(d3_identity); + function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, + mimeType = null; + return d3_xhr(url, mimeType, response, callback); + }; + } + function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; + if (d3_window.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); + "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }; + function respond() { + var status = request.status, result; + if (!status && request.responseText || status >= 200 && status < 300 || status === 304) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } + } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; else headers[name] = value + ""; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + [ "get", "post" ].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) xhr.on("error", callback).on("load", function(request) { + callback(null, request); + }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, "on"); + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); + } + function d3_xhr_fixCallback(callback) { + return callback.length === 1 ? function(error, request) { + callback(error == null ? request : null); + } : callback; + } + d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) callback = row, row = null; + var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback); + xhr.row = function(_) { + return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row; + }; + return xhr; + } + function response(request) { + return dsv.parse(request.responseText); + } + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function("d", "return {" + row.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "]"; + }).join(",") + "}"); + o = f ? function(row, i) { + return f(a(row), i); + } : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; + function token() { + if (I >= N) return EOF; + if (eol) return eol = false, EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), k = 1; + if (c === 10) eol = true; else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.substring(j, I - k); + } + return text.substring(j); + } + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && !(a = f(a, n++))) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) { + return fields.map(function(field) { + return formatValue(row[field]); + }).join(delimiter); + })).join("\n"); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join("\n"); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + }; + d3.csv = d3.dsv(",", "text/csv"); + d3.tsv = d3.dsv(" ", "text/tab-separated-values"); + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } + }; + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, "requestAnimationFrame")] || function(callback) { + setTimeout(callback, 17); + }; + d3.timer = function(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + var time = then + delay, timer = { + c: callback, + t: time, + f: false, + n: null + }; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + }; + function d3_timer_step() { + var now = d3_timer_mark(), delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + } + d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); + }; + function d3_timer_mark() { + var now = Date.now(); + d3_timer_active = d3_timer_queueHead; + while (d3_timer_active) { + if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t); + d3_timer_active = d3_timer_active.n; + } + return now; + } + function d3_timer_sweep() { + var t0, t1 = d3_timer_queueHead, time = Infinity; + while (t1) { + if (t1.f) { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; + } else { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } + } + d3_timer_queueTail = t0; + return time; + } + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); + } + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if (value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { + return d / k; + } : function(d) { + return d * k; + }, + symbol: d + }; + } + function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) { + var i = value.length, t = [], j = 0, g = locale_grouping[0]; + while (i > 0 && g > 0) { + t.push(value.substring(i -= g, i + g)); + g = locale_grouping[j = (j + 1) % locale_grouping.length]; + } + return t.reverse().join(locale_thousands); + } : d3_identity; + return function(specifier) { + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false; + if (precision) precision = +precision.substring(1); + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + switch (type) { + case "n": + comma = true; + type = "g"; + break; + + case "%": + scale = 100; + suffix = "%"; + type = "f"; + break; + + case "p": + scale = 100; + suffix = "%"; + type = "r"; + break; + + case "b": + case "o": + case "x": + case "X": + if (symbol === "#") prefix = "0" + type.toLowerCase(); + + case "c": + case "d": + integer = true; + precision = 0; + break; + + case "s": + scale = -1; + type = "r"; + break; + } + if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1]; + if (type == "r" && !precision) type = "g"; + if (precision != null) { + if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); + } + type = d3_format_types.get(type) || d3_format_typeDefault; + var zcomma = zfill && comma; + return function(value) { + var fullSuffix = suffix; + if (integer && value % 1) return ""; + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; + if (scale < 0) { + var unit = d3.formatPrefix(value, precision); + value = unit.scale(value); + fullSuffix = unit.symbol + suffix; + } else { + value *= scale; + } + value = type(value, precision); + var i = value.lastIndexOf("."), before = i < 0 ? value : value.substring(0, i), after = i < 0 ? "" : locale_decimal + value.substring(i + 1); + if (!zfill && comma) before = formatGroup(before); + var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; + if (zcomma) before = formatGroup(padding + before); + negative += prefix; + value = before + after; + return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; + }; + }; + } + var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); + } + }); + function d3_format_typeDefault(x) { + return x + ""; + } + var d3_time = d3.time = {}, d3_date = Date; + function d3_date_utc() { + this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); + } + d3_date_utc.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step(date = local(new d3_date(date - 1)), 1); + return date; + } + function offset(date, k) { + step(date = new d3_date(+date), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; + } + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; + } + d3_time.year = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; + }, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, function(date) { + return date.getFullYear(); + }); + d3_time.years = d3_time.year.range; + d3_time.years.utc = d3_time.year.utc.range; + d3_time.day = d3_time_interval(function(date) { + var day = new d3_date(2e3, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, function(date, offset) { + date.setDate(date.getDate() + offset); + }, function(date) { + return date.getDate() - 1; + }); + d3_time.days = d3_time.day.range; + d3_time.days.utc = d3_time.day.utc.range; + d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); + }; + [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) { + i = 7 - i; + var interval = d3_time[day] = d3_time_interval(function(date) { + (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + d3_time[day + "s"] = interval.range; + d3_time[day + "s"].utc = interval.utc.range; + d3_time[day + "OfYear"] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); + }; + }); + d3_time.week = d3_time.sunday; + d3_time.weeks = d3_time.sunday.range; + d3_time.weeks.utc = d3_time.sunday.utc.range; + d3_time.weekOfYear = d3_time.sundayOfYear; + function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; + function d3_time_format(template) { + var n = template.length; + function format(date) { + var string = [], i = -1, j = 0, c, p, f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.substring(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); + string.push(c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0, + Z: null + }, i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ("p" in d) d.H = d.H % 12 + d.p * 12; + var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) { + date.setFullYear(d.y, 0, 1); + date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); + } else date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H + Math.floor(d.Z / 100), d.M + d.Z % 100, d.S, d.L); + return localZ ? date._ : date; + }; + format.toString = function() { + return template; + }; + return format; + } + function d3_time_parse(date, template, string, j) { + var c, p, t, i = 0, n = template.length, m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + format.toString = local.toString; + return format; + }; + d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; + var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + var d3_time_formats = { + a: function(d) { + return locale_shortDays[d.getDay()]; + }, + A: function(d) { + return locale_days[d.getDay()]; + }, + b: function(d) { + return locale_shortMonths[d.getMonth()]; + }, + B: function(d) { + return locale_months[d.getMonth()]; + }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return locale_periods[+(d.getHours() >= 12)]; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); + }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + "%": function() { + return "%"; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + "%": d3_time_parseLiteralPercent + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.substring(i)); + return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.substring(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + return d3_time_format; + } + var d3_time_formatPads = { + "-": "", + _: " ", + "0": "0" + }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/; + function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); + } + function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); + } + function d3_time_formatLookup(names) { + var map = new d3_Map(), i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; + } + function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 1)); + return n ? (date.w = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.U = +n[0], i + n[0].length) : -1; + } + function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i)); + return n ? (date.W = +n[0], i + n[0].length) : -1; + } + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.y = +n[0], i + n[0].length) : -1; + } + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; + } + function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string, + i + 5) : -1; + } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); + } + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.m = n[0] - 1, i + n[0].length) : -1; + } + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.d = +n[0], i + n[0].length) : -1; + } + function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.j = +n[0], i + n[0].length) : -1; + } + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.H = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.M = +n[0], i + n[0].length) : -1; + } + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.S = +n[0], i + n[0].length) : -1; + } + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.L = +n[0], i + n[0].length) : -1; + } + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(abs(z) / 60), zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); + } + function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.substring(i, i + 1)); + return n ? i + n[0].length : -1; + } + function d3_time_formatMulti(formats) { + var n = formats.length, i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; + } + d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; + }; + var d3_locale_enUS = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [ 3 ], + currency: [ "$", "" ], + dateTime: "%a %b %e %X %Y", + date: "%m/%d/%Y", + time: "%H:%M:%S", + periods: [ "AM", "PM" ], + days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], + shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] + }); + d3.format = d3_locale_enUS.numberFormat; + d3.geo = {}; + function d3_adder() {} + d3_adder.prototype = { + s: 0, + t: 0, + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } + }; + var d3_adderTemp = new d3_adder(); + function d3_adderSum(a, b, o) { + var x = o.s = a + b, bv = x - a, av = x - bv; + o.t = a - av + (b - bv); + } + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } + } + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); + } + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); + } + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder(); + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), + sinφ0 = Math.sin(φ); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; + var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; + } + function d3_geo_cartesian(spherical) { + var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); + return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; + } + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + function d3_geo_cartesianCross(a, b) { + return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; + } + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + } + function d3_geo_cartesianScale(vector, k) { + return [ vector[0] * k, vector[1] * k, vector[2] * k ]; + } + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ]; + } + function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + function point(λ, φ) { + ranges.push(range = [ λ0 = λ, λ1 = λ ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + function linePoint(λ, φ) { + var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; + } + function lineStart() { + bound.point = linePoint; + } + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; + } + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + function ringStart() { + d3_geo_area.lineStart(); + } + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; + } + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; + } + function compareRanges(a, b) { + return a[0] - b[0]; + } + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; + } + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + var n = ranges.length; + if (n) { + ranges.sort(compareRanges); + for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; + } + } + ranges = range = null; + return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ]; + }; + }(); + d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z; + if (m < ε2) { + x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; + if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; + m = x * x + y * y + z * z; + if (m < ε2) return [ NaN, NaN ]; + } + return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ]; + }; + var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2; + var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } + }; + function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); + } + function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_geo_centroidRingStart() { + var λ00, φ00, x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ00 = λ, φ00 = φ; + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u); + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { + var subject = [], clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; + } + var start = subject[0], points, point; + while (1) { + var current = start, isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); + } + } + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, i = 0, a = array[0], b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; + } + function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; + this.e = entry; + this.v = false; + this.n = this.p = null; + } + function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); + if (segments.length) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); + } else if (clipStartInside) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); + } + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); + } + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + var segments; + var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring; + function pointRing(λ, φ) { + ring.push([ λ, φ ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); + } + function ringStart() { + ringListener.lineStart(); + ring = []; + } + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; + ring.pop(); + polygon.push(ring); + ring = null; + if (!n) return; + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, i = -1, point; + if (n > 0) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], line; + return { + lineStart: function() { + lines.push(line = []); + }, + point: function(λ, φ) { + line.push([ λ, φ ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; + } + function d3_geo_clipSort(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); + } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], m = ring.length; + if (!m) continue; + var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } + } + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + } + var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); + } + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | (v00 && v0) << 1; + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b); + var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [ q, d3_geo_spherical(q1) ]; + } + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, code = 0; + if (λ < -r) code |= 1; else if (λ > r) code |= 2; + if (φ < -r) code |= 4; else if (φ > r) code |= 8; + return code; + } + } + function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r; + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + if (t0 > 0) line.a = { + x: ax + t0 * dx, + y: ay + t0 * dy + }; + if (t1 < 1) line.b = { + x: ax + t1 * dx, + y: ay + t1 * dy + }; + return line; + }; + } + var d3_geo_clipExtentMAX = 1e9; + d3.geo.clipExtent = function() { + var x0, y0, x1, y1, stream, clip, clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; + return stream; + }, + extent: function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); + if (stream) stream.valid = false, stream = null; + return clipExtent; + } + }; + return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]); + }; + function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function insidePolygon(p) { + var wn = 0, n = polygon.length, y = p[1]; + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first, clean; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([ x, y ]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); else { + var l = { + a: { + x: x_, + y: y_ + }, + b: { + x: x, + y: y + } + }; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + return clip; + }; + function corner(p, direction) { + return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; + } + function compare(a, b) { + return comparePoints(a.x, b.x); + } + function comparePoints(a, b) { + var ca = corner(a, 1), cb = corner(b, 1); + return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; + } + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_geo_conic(projectAt) { + var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070); + }; + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]); + var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]); + var point, pointStream = { + point: function(x, y) { + point = [ x, y ]; + } + }, lower48Point, alaskaPoint, hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y); + return point; + } + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k; + return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * .35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point; + alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); + }; + var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); + } + }; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; + } + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); + } + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; + } + function pointLine(x, y) { + buffer.push("L", x, ",", y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + buffer.push("Z"); + } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z"; + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } + }; + function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); + }; + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x, y); + context.arc(x, y, pointRadius, 0, τ); + } + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + function pointLine(x, y) { + context.lineTo(x, y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + context.closePath(); + } + return stream; + } + function d3_geo_resample(project) { + var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16; + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); + } + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = ringStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + function ringPoint(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + } + function ringEnd() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); + } + return resample; + } + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.path = function() { + var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream; + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ]; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return reset(); + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return reset(); + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + function reset() { + cacheStream = null; + return path; + } + return path.projection(d3.geo.albersUsa()).context(null); + }; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { + return project([ x * d3_degrees, y * d3_degrees ]); + }); + return function(stream) { + return d3_geo_projectionRadians(resample(stream)); + }; + } + d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; + }; + function d3_geo_transform(stream) { + this.stream = stream; + } + d3_geo_transform.prototype = { + point: function(x, y) { + this.stream.point(x, y); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); + } + }; + function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [ x[0] * k + δx, δy - x[1] * k ]; + }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [ point[0] * k + δx, δy - point[1] * k ]; + } + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; + } + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output)))); + stream.valid = true; + return stream; + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity; + return invalidate(); + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [ x, y ]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, "precision"); + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); + } + function invalidate() { + if (stream) stream.valid = false, stream = null; + return projection; + } + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); + } + function d3_geo_equirectangular(λ, φ) { + return [ λ, φ ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + } + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + return forward; + }; + function d3_geo_identityRotation(λ, φ) { + return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + } + d3_geo_identityRotation.invert = d3_geo_equirectangular; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; + return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; + return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [ 0, 0 ], angle, precision = 6, interpolate; + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + return { + type: "Polygon", + coordinates: [ ring ] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - .5 * step; + } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); + }; + d3.geo.graticule = function() { + var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5; + function graticule() { + return { + type: "MultiLineString", + coordinates: lines() + }; + } + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { + return abs(x % DX) > ε; + }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { + return abs(y % DY) > ε; + }).map(y)); + } + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: "LineString", + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [ DX, DY ]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [ dx, dy ]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]); + }; + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [ x, y ]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [ x, y ]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, source_, target = d3_target, target_; + function greatArc() { + return { + type: "LineString", + coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ] + }; + } + greatArc.distance = function() { + return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments)); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; + }; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d); + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; + return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ]; + } : function() { + return [ x0 * d3_degrees, y0 * d3_degrees ]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); + return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); + return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, function(ρ) { + return 2 * Math.asin(ρ / 2); + }); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + if (F > 0) { + if (φ < -halfπ + ε) φ = -halfπ + ε; + } else { + if (φ > halfπ - ε) φ = halfπ - ε; + } + var ρ = F / Math.pow(t(φ), n); + return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0; + if (abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ]; + } + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ]; + }; + return forward; + } + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ]; + } + d3_geo_mercator.invert = function(x, y) { + return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? clipAuto ? m.clipExtent(null) : m : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + return m.clipExtent(null); + } + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, function(ρ) { + return 2 * Math.atan(ρ); + }); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ]; + } + d3_geo_transverseMercator.invert = function(x, y) { + return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ]; + }; + (d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; + projection.center = function(_) { + return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); + }; + projection.rotate = function(_) { + return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), + [ _[0], _[1], _[2] - 90 ]); + }; + return rotate([ 0, 0, 90 ]); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + function d3_geom_pointX(d) { + return d[0]; + } + function d3_geom_pointY(d) { + return d[1]; + } + d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, y = d3_geom_pointY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = []; + for (i = 0; i < n; i++) { + points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]); + } + points.sort(d3_geom_hullOrder); + for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]); + var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints); + var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = []; + for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); + return polygon; + } + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + return hull; + }; + function d3_geom_hullUpper(points) { + var n = points.length, hull = [ 0, 1 ], hs = 2; + for (var i = 2; i < n; i++) { + while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs; + hull[hs++] = i; + } + return hull.slice(0, hs); + } + function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; + } + d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; + }; + var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; + d3_geom_polygonPrototype.area = function() { + var i = -1, n = this.length, a, b = this[n - 1], area = 0; + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + return area * .5; + }; + d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c; + if (!arguments.length) k = -1 / (6 * this.area()); + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [ x * k, y * k ]; + }; + d3_geom_polygonPrototype.clip = function(subject) { + var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + if (closed) subject.push(subject[0]); + a = b; + } + return subject; + }; + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [ x1 + ua * x21, y1 + ua * y21 ]; + } + function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); + } + var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = []; + function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = this.site = this.circle = null; + } + function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); + beach.site = site; + return beach; + } + function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); + } + function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, x = circle.x, y = circle.cy, vertex = { + x: x, + y: y + }, previous = beach.P, next = beach.N, disappearing = [ beach ]; + d3_geom_voronoiDetachBeach(beach); + var lArc = previous; + while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; + } + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + var rArc = next; + while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; + } + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + var nArcs = disappearing.length, iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + } + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiAddBeach(site) { + var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._; + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } + } + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + if (!lArc && !rArc) return; + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; + } + if (!rArc) { + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; + } + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = { + x: (cy * hb - by * hc) / d + ax, + y: (bx * hc - cx * hb) / d + ay + }; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix; + if (!pby2) return rfocx; + var lArc = arc.P; + if (!lArc) return -Infinity; + site = lArc.site; + var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix; + if (!plby2) return lfocx; + var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2; + if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; + return (rfocx + lfocx) / 2; + } + function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; + } + function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; + } + d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge; + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + } + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; + }; + function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end; + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; + start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? { + x: x0, + y: abs(x2 - x0) < ε ? y2 : y1 + } : abs(y3 - y1) < ε && x1 - x3 > ε ? { + x: abs(y2 - y1) < ε ? x2 : x1, + y: y1 + } : abs(x3 - x1) < ε && y3 - y0 > ε ? { + x: x1, + y: abs(x2 - x1) < ε ? y2 : y0 + } : abs(y3 - y0) < ε && x3 - x0 > ε ? { + x: abs(y2 - y0) < ε ? x2 : x0, + y: y0 + } : null), cell.site, null)); + ++nHalfEdges; + } + } + } + } + function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; + } + function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = this.y = this.arc = this.site = this.cy = null; + } + function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, rArc = arc.N; + if (!lArc || !rArc) return; + var lSite = lArc.site, cSite = arc.site, rSite = rArc.site; + if (lSite === rSite) return; + var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by; + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by; + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); + circle.cy = cy; + arc.circle = circle; + var before = null, node = d3_geom_voronoiCircles._; + while (node) { + if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) { + if (node.L) node = node.L; else { + before = node.P; + break; + } + } else { + if (node.R) node = node.R; else { + before = node; + break; + } + } + } + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; + } + function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; + } + } + function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e; + while (i--) { + e = edges[i]; + if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) { + e.a = e.b = null; + edges.splice(i, 1); + } + } + } + function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb; + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) va = { + x: fx, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: fx, + y: y1 + }; + } else { + if (!va) va = { + x: fx, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: fx, + y: y0 + }; + } + } else { + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) va = { + x: (y0 - fb) / fm, + y: y0 + }; else if (va.y >= y1) return; + vb = { + x: (y1 - fb) / fm, + y: y1 + }; + } else { + if (!va) va = { + x: (y1 - fb) / fm, + y: y1 + }; else if (va.y < y0) return; + vb = { + x: (y0 - fb) / fm, + y: y0 + }; + } + } else { + if (ly < ry) { + if (!va) va = { + x: x0, + y: fm * x0 + fb + }; else if (va.x >= x1) return; + vb = { + x: x1, + y: fm * x1 + fb + }; + } else { + if (!va) va = { + x: x1, + y: fm * x1 + fb + }; else if (va.x < x0) return; + vb = { + x: x0, + y: fm * x0 + fb + }; + } + } + } + edge.a = va; + edge.b = vb; + return true; + } + function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; + } + function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); + d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); + return edge; + } + function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; + } + function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; + } + } + function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y); + } + d3_geom_voronoiHalfEdge.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + } + }; + function d3_geom_voronoiRedBlackTree() { + this._ = null; + } + function d3_geom_voronoiRedBlackNode(node) { + node.U = node.C = node.L = node.R = node.P = node.N = null; + } + d3_geom_voronoiRedBlackTree.prototype = { + insert: function(after, node) { + var parent, grandpa, uncle; + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; + } + node.L = node.R = null; + node.U = parent; + node.C = true; + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + var parent = node.U, sibling, left = node.L, right = node.R, next, red; + if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right); + if (parent) { + if (parent.L === node) parent.L = next; else parent.R = next; + } else { + this._ = next; + } + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + if (node) node.U = parent; + if (red) return; + if (node && node.C) { + node.C = false; + return; + } + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + if (node) node.C = false; + } + }; + function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, q = node.R, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; + } + function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, q = node.L, parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; + } + function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; + } + function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle; + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); + while (true) { + circle = d3_geom_voronoiFirstCircle; + if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + x0 = site.x, y0 = site.y; + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } + } + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + var diagram = { + cells: d3_geom_voronoiCells, + edges: d3_geom_voronoiEdges + }; + d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; + return diagram; + } + function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; + } + d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent; + if (points) return voronoi(points); + function voronoi(data) { + var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1]; + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) { + var s = e.start(); + return [ s.x, s.y ]; + }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : []; + polygon.point = data[i]; + }); + return polygons; + } + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); + } + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { + return edge.l && edge.r; + }).map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + voronoi.triangles = function(data) { + var triangles = []; + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l; + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { + triangles.push([ data[i], data[s0.i], data[s1.i] ]); + } + } + }); + return triangles; + }; + voronoi.x = function(_) { + return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; + }; + voronoi.clipExtent = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + voronoi.size = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]); + }; + return voronoi; + }; + var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ]; + function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); + } + d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); + }; + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, y = d3_geom_pointY, compat; + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + function quadtree(data) { + var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_; + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + var dx = x2_ - x1_, dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, ny = n.y; + if (nx != null) { + if (abs(nx - x) + abs(ny - y) < .01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = sx; else x2 = sx; + if (bottom) y1 = sy; else y2 = sy; + insert(n, d, x, y, x1, y1, x2, y2); + } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; + } + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], + y2 = +_[1][1]; + return quadtree; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ]; + if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; + return quadtree; + }; + return quadtree; + }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; + return function(t) { + return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, c = {}, k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + b -= a = +a; + return function(t) { + return a + b * t; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.substring(bi, bs); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; else s[++i] = bm; + } else { + s[++i] = null; + q.push({ + i: i, + x: d3_interpolateNumber(am, bm) + }); + } + bi = d3_interpolate_numberB.lastIndex; + } + if (bi < b.length) { + bs = b.substring(bi); + if (s[i]) s[i] += bs; else s[++i] = bs; + } + return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { + return b(t) + ""; + }) : function() { + return b; + } : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); + } + var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; + return f; + } + d3.interpolators = [ function(a, b) { + var t = typeof b; + return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + } ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (;i < na; ++i) c[i] = a[i]; + for (;i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; + } + }); + var d3_ease_mode = d3.map({ + "in": d3_identity, + out: d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); + }; + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = .45; + if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); + }; + function d3_transform(m) { + var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [ m.e, m.f ]; + this.scale = [ kx, ky ]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransform(a, b) { + var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; + if (ta[0] != tb[0] || ta[1] != tb[1]) { + s.push("translate(", null, ",", null, ")"); + q.push({ + i: 1, + x: d3_interpolateNumber(ta[0], tb[0]) + }, { + i: 3, + x: d3_interpolateNumber(ta[1], tb[1]) + }); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } else { + s.push(""); + } + if (ra != rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(s.pop() + "rotate(", null, ")") - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(s.pop() + "rotate(" + rb + ")"); + } + if (wa != wb) { + q.push({ + i: s.push(s.pop() + "skewX(", null, ")") - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(s.pop() + "skewX(" + wb + ")"); + } + if (ka[0] != kb[0] || ka[1] != kb[1]) { + n = s.push(s.pop() + "scale(", null, ",", null, ")"); + q.push({ + i: n - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, { + i: n - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + }); + } else if (kb[0] != 1 || kb[1] != 1) { + s.push(s.pop() + "scale(" + kb + ")"); + } + n = q.length; + return function(t) { + var i = -1, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + } + function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return (x - a) * b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { + return Math.max(0, Math.min(1, (x - a) * b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], i = -1, n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; + function relayout() { + var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; + chords = []; + groups = []; + k = 0, i = -1; + while (++i < n) { + x = 0, j = -1; + while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (τ - padding * n) / k; + x = 0, i = -1; + while (++i < n) { + x0 = x, j = -1; + while (++j < n) { + var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }; + x += padding; + } + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value ? { + source: target, + target: source + } : { + source: source, + target: target + }); + } + } + } + if (sortChords) resort(); + } + function resort() { + chords.sort(function(a, b) { + return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + return chord; + }; + d3.layout.force = function() { + var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy; + if (dw * dw / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + force.tick = function() { + if ((alpha *= .99) < .005) { + event.end({ + type: "end", + alpha: alpha = 0 + }); + return true; + } + var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = x * x + y * y) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: "tick", + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) alpha = x; else alpha = 0; + } else if (x > 0) { + event.start({ + type: "start", + alpha: alpha = x + }); + d3.timer(force.tick); + } + return force; + }; + force.start = function() { + var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + var candidates = neighbors[i], j = -1, m = candidates.length, x; + while (++j < m) if (!isNaN(x = candidates[j][dimension])) return x; + return Math.random() * size; + } + return force.resume(); + }; + force.resume = function() { + return force.alpha(.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); + }; + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); + } + return d3.rebind(force, event, "on"); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + d.px = d.x, d.py = d.y; + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, n = nodes.length, i = -1, c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; + function hierarchy(root) { + var stack = [ root ], nodes = [], node; + root.depth = 0; + while ((node = stack.pop()) != null) { + nodes.push(node); + if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { + var n, childs, child; + while (--n >= 0) { + stack.push(child = childs[n]); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + return nodes; + } + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; + if (parent = node.parent) parent.value += node.value; + }); + } + return root; + }; + return hierarchy; + }; + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [ node ]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } + } + } + function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [ node ], nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, n, children; + while (++i < n) nodes.push(children[i]); + } + } + while ((node = nodes2.pop()) != null) { + callback(node); + } + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + })); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, n, c, d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + function depth(node) { + var children = node.children, d = 0; + if (children && (n = children.length)) { + var i = -1, n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); + }; + d3.layout.pie = function() { + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ; + function pie(data) { + var values = data.map(function(d, i) { + return +value.call(pie, d, i); + }); + var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); + var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values); + var index = d3.range(data.length); + if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { + return values[j] - values[i]; + } : function(i, j) { + return sort(data[i], data[j]); + }); + var arcs = []; + index.forEach(function(i) { + var d; + arcs[i] = { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + return arcs; + } + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + return pie; + }; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; + function stack(data, index) { + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [ x.call(stack, v, i), y.call(stack, v, i) ]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var n = series.length, m = series[0].length, i, j, o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + return data; + } + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; + }; + function d3_layout_stackX(d) { + return d.x; + } + function d3_layout_stackY(d) { + return d.y; + } + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + "inside-out": function(data) { + var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), top = 0, bottom = 0, tops = [], bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + "default": d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, m = data[0].length, y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, j = 0, v = array[0][1], k, n = array.length; + for (;i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; + } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; + }; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [ d3.min(values), d3.max(values) ]; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { + return radius; + }; + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r = +r(d.value); + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + if (padding) { + var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r -= dr; + }); + } + d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); + return nodes; + } + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === "function" ? _ : +_; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); + }; + function d3_layout_packSort(a, b) { + return a.value - b.value; + } + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; + } + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; + } + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; + return .999 * dr * dr > dx * dx + dy * dy; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } + } + d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0); + d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; + d3_layout_hierarchyVisitBefore(root1, secondWalk); + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else { + var left = root0, right = root0, bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return nodes; + } + function wrapTree(root0) { + var root1 = { + A: null, + children: [ root0 ] + }, queue = [ root1 ], node1; + while ((node1 = queue.pop()) != null) { + for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { + queue.push((children[i] = child = { + _: children[i], + parent: node1, + children: (child = children[i].children) && child.slice() || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: i + }).a = child); + } + } + return root1.children[0]; + } + function firstWalk(v) { + var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + function apportion(v, w, ancestor) { + if (w) { + var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); + }; + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; + } + function d3_layout_treeRight(v) { + var children = v.children, n; + return (n = children.length) ? children[n - 1] : v.t; + } + function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + function d3_layout_treeShift(v) { + var shift = 0, change = 0, children = v.children, i = children.length, w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } + } + function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; + d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + return nodes; + } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); + }; + function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); + } + function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, n = children.length, child, area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), remaining = children.slice(), child, row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + function worst(row, u) { + var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; + } + function position(row, u, rect, flush) { + var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } + } + function treemap(d) { + var nodes = stickies || hierarchy(d), root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([ root ], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); + } + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], + padConstant) : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; + } + function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { + x += dx / 2; + dx = 0; + } + if (dy < 0) { + y += dy / 2; + dy = 0; + } + return { + x: x, + y: y, + dx: dx, + dy: dy + }; + } + d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; + } + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [ start, stop ] : [ stop, start ]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); + } + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; + } + function d3_scale_nice(domain, nice) { + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; + } + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; + } + function d3_scale_niceStep(step) { + return step ? { + floor: function(x) { + return Math.floor(x / step) * step; + }, + ceil: function(x) { + return Math.ceil(x / step) * step; + } + } : d3_scale_niceIdentity; + } + var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity + }; + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; + } + d3.scale.linear = function() { + return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false); + }; + function d3_scale_linear(domain, range, interpolate, clamp) { + var output, input; + function rescale() { + var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); + } + function d3_scale_linearRebind(scale, linear) { + return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); + } + function d3_scale_linearNice(domain, m) { + return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + } + function d3_scale_linearTickRange(domain, m) { + if (m == null) m = 10; + var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; + if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; + extent[2] = step; + return extent; + } + function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + } + function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === "s") { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = "f"; + format = d3.format(match.join("")); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(""); + } else { + format = ",." + d3_scale_linearPrecision(range[2]) + "f"; + } + return d3.format(format); + } + var d3_scale_linearFormatSignificant = { + s: 1, + g: 1, + p: 1, + r: 1, + e: 1 + }; + function d3_scale_linearPrecision(value) { + return -Math.floor(Math.log(value) / Math.LN10 + .01); + } + function d3_scale_linearFormatPrecision(type, range) { + var p = d3_scale_linearPrecision(range[2]); + return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2; + } + d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]); + }; + function d3_scale_log(linear, base, positive, domain) { + function log(x) { + return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base); + } + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); + } + function scale(x) { + return linear(log(x)); + } + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + positive = x[0] >= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + scale.nice = function() { + var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); + linear.domain(niced); + domain = niced.map(pow); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); + var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, + Math.floor), e; + return function(d) { + return d / pow(f(log(d) + e)) <= k ? format(d) : ""; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = { + floor: function(x) { + return -Math.ceil(-x); + }, + ceil: function(x) { + return -Math.floor(-x); + } + }; + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); + } + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + return scale.domain(d3_scale_linearNice(domain, m)); + }; + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; + } + d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); + }; + d3.scale.ordinal = function() { + return d3_scale_ordinal([], { + t: "range", + a: [ [] ] + }); + }; + function d3_scale_ordinal(domain, ranger) { + var index, range, rangeBand; + function scale(x) { + return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length]; + } + function steps(start, step) { + return d3.range(domain.length).map(function(i) { + return start + step * i; + }); + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map(); + var i = -1, n = x.length, xi; + while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = { + t: "range", + a: arguments + }; + return scale; + }; + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); + range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); + rangeBand = 0; + ranger = { + t: "rangePoints", + a: arguments + }; + return scale; + }; + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = { + t: "rangeBands", + a: arguments + }; + return scale; + }; + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; + range = steps(start + Math.round(error / 2), step); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = { + t: "rangeRoundBands", + a: arguments + }; + return scale; + }; + scale.rangeBand = function() { + return rangeBand; + }; + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + return scale.domain(domain); + } + d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); + }; + d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); + }; + d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); + }; + d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); + }; + var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString); + var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString); + var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString); + var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString); + d3.scale.quantile = function() { + return d3_scale_quantile([], []); + }; + function d3_scale_quantile(domain, range) { + var thresholds; + function rescale() { + var k = 0, q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + function scale(x) { + if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)]; + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(d3_number).sort(d3_ascending); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.quantiles = function() { + return thresholds; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ]; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); + } + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [ 0, 1 ]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + scale.domain = function(x) { + if (!arguments.length) return [ x0, x1 ]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [ y, y + 1 / kx ]; + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([ .5 ], [ 0, 1 ]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; + } + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [ domain[y - 1], domain[y] ]; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([ 0, 1 ]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg = {}; + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function arc() { + var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, + a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); + return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; + } + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [ Math.cos(a) * r, Math.sin(a) * r ]; + }; + return arc; + }; + var d3_svg_arcOffset = -halfπ, d3_svg_arcMax = τ - ε; + function d3_svg_arcInnerRadius(d) { + return d.innerRadius; + } + function d3_svg_arcOuterRadius(d) { + return d.outerRadius; + } + function d3_svg_arcStartAngle(d) { + return d.startAngle; + } + function d3_svg_arcEndAngle(d) { + return d.endAngle; + } + function d3_svg_line(projection) { + var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; + function line(data) { + var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); + function segment() { + segments.push("M", interpolate(projection(points), tension)); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join("") : null; + } + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; + } + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + step: d3_svg_lineStep, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.join("L"); + } + function d3_svg_lineLinearClosed(points) { + return d3_svg_lineLinear(points) + "Z"; + } + function d3_svg_lineStep(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); + if (n > 1) path.push("H", p[0]); + return path.join(""); + } + function d3_svg_lineStepBefore(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); + } + function d3_svg_lineStepAfter(points) { + var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); + } + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); + } + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); + } + function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; + } + } + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; + } + return path; + } + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); + } + return tangents; + } + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push("L", pi); + return path.join(""); + } + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBasisClosed(points) { + var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); + } + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); + } + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + } + var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); + } + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); + } + function d3_svg_lineFiniteDifferences(points) { + var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; + } + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([ s || 0, m[i] * s || 0 ]); + } + return tangents; + } + function d3_svg_lineMonotone(points) { + return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); + } + d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; + }; + function d3_svg_lineRadial(points) { + var point, i = -1, n = points.length, r, a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; + } + function d3_svg_area(projection) { + var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; + function area(data) { + var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { + return x; + } : d3_functor(x1), fy1 = y0 === y1 ? function() { + return y; + } : d3_functor(y1), x, y; + function segment() { + segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); + } + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); + points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + if (points0.length) segment(); + return segments.length ? segments.join("") : null; + } + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? "M" : "L"; + return area; + }; + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + return area; + } + d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; + d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + d3.svg.area = function() { + return d3_svg_area(d3_identity); + }; + d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; + }; + d3.svg.chord = function() { + var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + function chord(d, i) { + var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); + return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; + } + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [ r * Math.cos(a0), r * Math.sin(a0) ], + p1: [ r * Math.cos(a1), r * Math.sin(a1) ] + }; + } + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + function arc(r, p, a) { + return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + } + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; + } + d3.svg.diagonal = function() { + var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; + function diagonal(d, i) { + var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { + x: p0.x, + y: m + }, { + x: p3.x, + y: m + }, p3 ]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + return diagonal; + }; + function d3_svg_diagonalProjection(d) { + return [ d.x, d.y ]; + } + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; + return [ r * Math.cos(a), r * Math.sin(a) ]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); + } + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + return symbol; + }; + function d3_svg_symbolSize() { + return 64; + } + function d3_svg_symbolType() { + return "circle"; + } + function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; + } + var d3_svg_symbols = d3.map({ + circle: d3_svg_symbolCircle, + cross: function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; + }, + diamond: function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; + }, + square: function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; + } + }); + d3.svg.symbolTypes = d3_svg_symbols.keys(); + var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); + function d3_transition(groups, id) { + d3_subclass(groups, d3_transitionPrototype); + groups.id = id; + return groups; + } + var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit; + d3_transitionPrototype.call = d3_selectionPrototype.call; + d3_transitionPrototype.empty = d3_selectionPrototype.empty; + d3_transitionPrototype.node = d3_selectionPrototype.node; + d3_transitionPrototype.size = d3_selectionPrototype.size; + d3.transition = function(selection) { + return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); + }; + d3.transition.prototype = d3_transitionPrototype; + d3_transitionPrototype.select = function(selector) { + var id = this.id, subgroups = [], subgroup, subnode, node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, id, node.__transition__[id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) { + transition = node.__transition__[id]; + subnodes = selector.call(node, node.__data__, i, j); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o; ) { + if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition); + subgroup.push(subnode); + } + } + } + } + return d3_transition(subgroups, id); + }; + d3_transitionPrototype.filter = function(filter) { + var subgroups = [], subgroup, group, node; + if (typeof filter !== "function") filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_transition(subgroups, this.id); + }; + d3_transitionPrototype.tween = function(name, tween) { + var id = this.id; + if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); + return d3_selection_each(this, tween == null ? function(node) { + node.__transition__[id].tween.remove(name); + } : function(node) { + node.__transition__[id].tween.set(name, tween); + }); + }; + function d3_transition_tween(groups, name, value, tween) { + var id = groups.id; + return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); + } : (value = tween(value), function(node) { + node.__transition__[id].tween.set(name, value); + })); + } + d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrTween(b) { + return b == null ? attrNull : (b += "", function() { + var a = this.getAttribute(name), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttribute(name, i(t)); + }); + }); + } + function attrTweenNS(b) { + return b == null ? attrNullNS : (b += "", function() { + var a = this.getAttributeNS(name.space, name.local), i; + return a !== b && (i = interpolate(a, b), function(t) { + this.setAttributeNS(name.space, name.local, i(t)); + }); + }); + } + return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { + this.setAttribute(name, f(t)); + }; + } + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + }; + } + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + priority = ""; + } + function styleNull() { + this.style.removeProperty(name); + } + function styleString(b) { + return b == null ? styleNull : (b += "", function() { + var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; + return a !== b && (i = d3_interpolate(a, b), function(t) { + this.style.setProperty(name, i(t), priority); + }); + }); + } + return d3_transition_tween(this, "style." + name, value, styleString); + }; + d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + function styleTween(d, i) { + var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { + this.style.setProperty(name, f(t), priority); + }; + } + return this.tween("style." + name, styleTween); + }; + d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, "text", value, d3_transition_text); + }; + function d3_transition_text(b) { + if (b == null) b = ""; + return function() { + this.textContent = b; + }; + } + d3_transitionPrototype.remove = function() { + return this.each("end.transition", function() { + var p; + if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this); + }); + }; + d3_transitionPrototype.ease = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].ease; + if (typeof value !== "function") value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { + node.__transition__[id].ease = value; + }); + }; + d3_transitionPrototype.delay = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].delay; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].delay = +value.call(node, node.__data__, i, j); + } : (value = +value, function(node) { + node.__transition__[id].delay = value; + })); + }; + d3_transitionPrototype.duration = function(value) { + var id = this.id; + if (arguments.length < 1) return this.node().__transition__[id].duration; + return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { + node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j)); + } : (value = Math.max(1, value), function(node) { + node.__transition__[id].duration = value; + })); + }; + d3_transitionPrototype.each = function(type, listener) { + var id = this.id; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node.__transition__[id]; + type.call(node, node.__data__, i, j); + }); + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } else { + d3_selection_each(this, function(node) { + var transition = node.__transition__[id]; + (transition.event || (transition.event = d3.dispatch("start", "end"))).on(type, listener); + }); + } + return this; + }; + d3_transitionPrototype.transition = function() { + var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if (node = group[i]) { + transition = Object.create(node.__transition__[id0]); + transition.delay += transition.duration; + d3_transitionNode(node, i, id1, transition); + } + subgroup.push(node); + } + } + return d3_transition(subgroups, id1); + }; + function d3_transitionNode(node, i, id, inherit) { + var lock = node.__transition__ || (node.__transition__ = { + active: 0, + count: 0 + }), transition = lock[id]; + if (!transition) { + var time = inherit.time; + transition = lock[id] = { + tween: new d3_Map(), + time: time, + ease: inherit.ease, + delay: inherit.delay, + duration: inherit.duration + }; + ++lock.count; + d3.timer(function(elapsed) { + var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = []; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + transition.event && transition.event.start.call(node, d, i); + transition.tween.forEach(function(key, value) { + if (value = value.call(node, d, i)) { + tweened.push(value); + } + }); + d3.timer(function() { + timer.c = tick(elapsed || 1) ? d3_true : tick; + return 1; + }, 0, time); + } + function tick(elapsed) { + if (lock.active !== id) return stop(); + var t = elapsed / duration, e = ease(t), n = tweened.length; + while (n > 0) { + tweened[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, d, i); + return stop(); + } + } + function stop() { + if (--lock.count) delete lock[id]; else delete node.__transition__; + return 1; + } + }, 0, time); + } + } + d3.svg.axis = function() { + var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); + var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickTransform; + var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), + d3.transition(path)); + tickEnter.append("line"); + tickEnter.append("text"); + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); + switch (orient) { + case "bottom": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", innerTickSize); + textEnter.attr("y", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", 0).attr("y2", innerTickSize); + textUpdate.attr("x", 0).attr("y", Math.max(innerTickSize, 0) + tickPadding); + text.attr("dy", ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + outerTickSize + "V0H" + range[1] + "V" + outerTickSize); + break; + } + + case "top": + { + tickTransform = d3_svg_axisX; + lineEnter.attr("y2", -innerTickSize); + textEnter.attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); + textUpdate.attr("x", 0).attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); + text.attr("dy", "0em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + -outerTickSize + "V0H" + range[1] + "V" + -outerTickSize); + break; + } + + case "left": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", -innerTickSize); + textEnter.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)); + lineUpdate.attr("x2", -innerTickSize).attr("y2", 0); + textUpdate.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "end"); + pathUpdate.attr("d", "M" + -outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + -outerTickSize); + break; + } + + case "right": + { + tickTransform = d3_svg_axisY; + lineEnter.attr("x2", innerTickSize); + textEnter.attr("x", Math.max(innerTickSize, 0) + tickPadding); + lineUpdate.attr("x2", innerTickSize).attr("y2", 0); + textUpdate.attr("x", Math.max(innerTickSize, 0) + tickPadding).attr("y", 0); + text.attr("dy", ".32em").style("text-anchor", "start"); + pathUpdate.attr("d", "M" + outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + outerTickSize); + break; + } + } + if (scale1.rangeBand) { + var x = scale1, dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { + return x(d) + dx; + }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1); + } + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale1); + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { + return "translate(" + x(d) + ",0)"; + }); + } + function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { + return "translate(0," + y(d) + ")"; + }); + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0]; + function brush(g) { + g.each(function() { + var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); + var background = g.selectAll(".background").data([ 0 ]); + background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); + g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move"); + var resize = g.selectAll(".resize").data(resizes, d3_identity); + resize.exit().remove(); + resize.enter().append("g").attr("class", function(d) { + return "resize " + d; + }).style("cursor", function(d) { + return d3_svg_brushCursor[d]; + }).append("rect").attr("x", function(d) { + return /[ew]$/.test(d) ? -3 : null; + }).attr("y", function(d) { + return /^[ns]/.test(d) ? -3 : null; + }).attr("width", 6).attr("height", 6).style("visibility", "hidden"); + resize.style("display", brush.empty() ? "none" : null); + var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range; + if (x) { + range = d3_scaleRange(x); + backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); + redrawX(gUpdate); + } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); + redrawY(gUpdate); + } + redraw(gUpdate); + }); + } + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), extent1 = { + x: xExtent, + y: yExtent, + i: xExtentDomain, + j: yExtentDomain + }, extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this).transition().each("start.brush", function() { + xExtentDomain = extent0.i; + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({ + type: "brushstart" + }); + }).tween("brush:brush", function() { + var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({ + type: "brush", + mode: "resize" + }); + }; + }).each("end.brush", function() { + xExtentDomain = extent1.i; + yExtentDomain = extent1.j; + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + }); + } else { + event_({ + type: "brushstart" + }); + event_({ + type: "brush", + mode: "resize" + }); + event_({ + type: "brushend" + }); + } + }); + }; + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; + }); + } + function redrawX(g) { + g.select(".extent").attr("x", xExtent[0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); + } + function redrawY(g) { + g.select(".extent").attr("y", yExtent[0]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); + } + function brushstart() { + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset; + var w = d3.select(d3_window).on("keydown.brush", keydown).on("keyup.brush", keyup); + if (d3.event.changedTouches) { + w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); + } else { + w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); + } + g.interrupt().selectAll("*").interrupt(); + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); + offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } else if (d3.event.altKey) center = origin.slice(); + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + event_({ + type: "brushstart" + }); + brushmove(); + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); + } + } + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); + } + } + function brushmove() { + var point = d3.mouse(target), moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ]; + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: "brush", + mode: dragging ? "move" : "resize" + }); + } + } + function move1(point, scale, i) { + var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; + if (dragging) { + max = (min += position) + size; + } else { + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); + dragRestore(); + event_({ + type: "brushend" + }); + } + } + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; + return brush; + }; + brush.clamp = function(z) { + if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null; + if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + x0 = xExtentDomain[0], x1 = xExtentDomain[1]; + } else { + x0 = xExtent[0], x1 = xExtent[1]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + if (yExtentDomain) { + y0 = yExtentDomain[0], y1 = yExtentDomain[1]; + } else { + y0 = yExtent[0], y1 = yExtent[1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; + } + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + xExtentDomain = [ x0, x1 ]; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ]; + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + yExtentDomain = [ y0, y1 ]; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ]; + } + return brush; + }; + brush.clear = function() { + if (!brush.empty()) { + xExtent = [ 0, 0 ], yExtent = [ 0, 0 ]; + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + brush.empty = function() { + return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1]; + }; + return d3.rebind(brush, event, "on"); + }; + var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" + }; + var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; + var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; + var d3_time_formatUtc = d3_time_format.utc; + var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); + d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3_time.second = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, function(date) { + return date.getSeconds(); + }); + d3_time.seconds = d3_time.second.range; + d3_time.seconds.utc = d3_time.second.utc.range; + d3_time.minute = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, function(date) { + return date.getMinutes(); + }); + d3_time.minutes = d3_time.minute.range; + d3_time.minutes.utc = d3_time.minute.utc.range; + d3_time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); + }, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, function(date) { + return date.getHours(); + }); + d3_time.hours = d3_time.hour.range; + d3_time.hours.utc = d3_time.hour.utc.range; + d3_time.month = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; + }, function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, function(date) { + return date.getMonth(); + }); + d3_time.months = d3_time.month.range; + d3_time.months.utc = d3_time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); + } + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + function tickMethod(extent, count) { + var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) { + return d / 31536e6; + }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + } + scale.nice = function(interval, skip) { + var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval); + if (method) interval = method[0], skip = method[1]; + function skipped(date) { + return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; + } + return scale.domain(d3_scale_nice(domain, skip > 1 ? { + floor: function(date) { + while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); + return date; + } + } : interval)); + }; + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ { + range: interval + }, skip ]; + if (method) interval = method[0], skip = method[1]; + return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; + var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ]; + var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) { + return d.getMilliseconds(); + } ], [ ":%S", function(d) { + return d.getSeconds(); + } ], [ "%I:%M", function(d) { + return d.getMinutes(); + } ], [ "%I %p", function(d) { + return d.getHours(); + } ], [ "%a %d", function(d) { + return d.getDay() && d.getDate() != 1; + } ], [ "%b %d", function(d) { + return d.getDate() != 1; + } ], [ "%B", function(d) { + return d.getMonth(); + } ], [ "%Y", d3_true ] ]); + var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { + return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); + }, + floor: d3_identity, + ceil: d3_identity + }; + d3_time_scaleLocalMethods.year = d3_time.year; + d3_time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); + }; + var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [ m[0].utc, m[1] ]; + }); + var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) { + return d.getUTCMilliseconds(); + } ], [ ":%S", function(d) { + return d.getUTCSeconds(); + } ], [ "%I:%M", function(d) { + return d.getUTCMinutes(); + } ], [ "%I %p", function(d) { + return d.getUTCHours(); + } ], [ "%a %d", function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } ], [ "%b %d", function(d) { + return d.getUTCDate() != 1; + } ], [ "%B", function(d) { + return d.getUTCMonth(); + } ], [ "%Y", d3_true ] ]); + d3_time_scaleUtcMethods.year = d3_time.year.utc; + d3_time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); + }; + d3.text = d3_xhrType(function(request) { + return request.responseText; + }); + d3.json = function(url, callback) { + return d3_xhr(url, "application/json", d3_json, callback); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3_xhr(url, "text/html", d3_html, callback); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = d3_xhrType(function(request) { + return request.responseXML; + }); + if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; + this.d3 = d3; +}(); \ No newline at end of file diff --git a/www/lib/d3/d3.min.js b/www/lib/d3/d3.min.js new file mode 100644 index 00000000..88550ae5 --- /dev/null +++ b/www/lib/d3/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function r(n){return n.length}function u(n){for(var t=1;n*t%1;)t*=10;return t}function i(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function o(){}function a(n){return ia+n in this}function c(n){return n=ia+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function l(){var n=0;for(var t in this)t.charCodeAt(0)===oa&&++n;return n}function f(){for(var n in this)if(n.charCodeAt(0)===oa)return!1;return!0}function h(){}function g(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function p(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=aa.length;r>e;++e){var u=aa[e]+t;if(u in n)return u}}function v(){}function d(){}function m(n){function t(){for(var t,r=e,u=-1,i=r.length;++ue;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function U(n){return sa(n,da),n}function j(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t0&&(n=n.substring(0,a));var s=ya.get(n);return s&&(n=s,c=Y),a?t?u:r:t?v:i}function O(n,t){return function(e){var r=Zo.event;Zo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Zo.event=r}}}function Y(n,t){var e=O(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function I(){var n=".dragsuppress-"+ ++Ma,t="click"+n,e=Zo.select(Wo).on("touchmove"+n,y).on("dragstart"+n,y).on("selectstart"+n,y);if(xa){var r=Bo.style,u=r[xa];r[xa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),xa&&(r[xa]=u),i&&(e.on(t,function(){y(),o()},!0),setTimeout(o,0))}}function Z(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>_a&&(Wo.scrollX||Wo.scrollY)){e=Zo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();_a=!(u.f||u.e),e.remove()}return _a?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function V(){return Zo.event.changedTouches[0].identifier}function X(){return Zo.event.target}function $(){return Wo}function B(n){return n>0?1:0>n?-1:0}function W(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function J(n){return n>1?0:-1>n?ba:Math.acos(n)}function G(n){return n>1?Sa:-1>n?-Sa:Math.asin(n)}function K(n){return((n=Math.exp(n))-1/n)/2}function Q(n){return((n=Math.exp(n))+1/n)/2}function nt(n){return((n=Math.exp(2*n))-1)/(n+1)}function tt(n){return(n=Math.sin(n/2))*n}function et(){}function rt(n,t,e){return this instanceof rt?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof rt?new rt(n.h,n.s,n.l):mt(""+n,yt,rt):new rt(n,t,e)}function ut(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new gt(u(n+120),u(n),u(n-120))}function it(n,t,e){return this instanceof it?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof it?new it(n.h,n.c,n.l):n instanceof at?st(n.l,n.a,n.b):st((n=xt((n=Zo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new it(n,t,e)}function ot(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new at(e,Math.cos(n*=Aa)*t,Math.sin(n)*t)}function at(n,t,e){return this instanceof at?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof at?new at(n.l,n.a,n.b):n instanceof it?ot(n.l,n.c,n.h):xt((n=gt(n)).r,n.g,n.b):new at(n,t,e)}function ct(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=lt(u)*ja,r=lt(r)*Ha,i=lt(i)*Fa,new gt(ht(3.2404542*u-1.5371385*r-.4985314*i),ht(-.969266*u+1.8760108*r+.041556*i),ht(.0556434*u-.2040259*r+1.0572252*i))}function st(n,t,e){return n>0?new it(Math.atan2(e,t)*Ca,Math.sqrt(t*t+e*e),n):new it(0/0,0/0,n)}function lt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function ft(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function ht(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function gt(n,t,e){return this instanceof gt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof gt?new gt(n.r,n.g,n.b):mt(""+n,gt,ut):new gt(n,t,e)}function pt(n){return new gt(n>>16,255&n>>8,255&n)}function vt(n){return pt(n)+""}function dt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(_t(u[0]),_t(u[1]),_t(u[2]))}return(i=Ia.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.substring(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function yt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new rt(r,u,c)}function xt(n,t,e){n=Mt(n),t=Mt(t),e=Mt(e);var r=ft((.4124564*n+.3575761*t+.1804375*e)/ja),u=ft((.2126729*n+.7151522*t+.072175*e)/Ha),i=ft((.0193339*n+.119192*t+.9503041*e)/Fa);return at(116*u-16,500*(r-u),200*(u-i))}function Mt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function _t(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function bt(n){return"function"==typeof n?n:function(){return n}}function wt(n){return n}function St(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),kt(t,e,n,r)}}function kt(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Zo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Wo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Zo.event;Zo.event=n;try{o.progress.call(i,c)}finally{Zo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Xo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Zo.rebind(i,o,"on"),null==r?i:i.get(Et(r))}function Et(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function At(){var n=Ct(),t=Nt()-n;t>24?(isFinite(t)&&(clearTimeout($a),$a=setTimeout(At,t)),Xa=0):(Xa=1,Wa(At))}function Ct(){var n=Date.now();for(Ba=Za;Ba;)n>=Ba.t&&(Ba.f=Ba.c(n-Ba.t)),Ba=Ba.n;return n}function Nt(){for(var n,t=Za,e=1/0;t;)t.f?t=n?n.n=t.n:Za=t.n:(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Tt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r?function(n){for(var t=n.length,u=[],i=0,o=r[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=r[i=(i+1)%r.length];return u.reverse().join(e)}:wt;return function(n){var e=Ga.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"",c=e[4]||"",s=e[5],l=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1;switch(h&&(h=+h.substring(1)),(s||"0"===r&&"="===o)&&(s=r="0",o="=",f&&(l-=Math.floor((l-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=Ka.get(g)||qt;var y=s&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Zo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}}}function qt(n){return n+""}function Rt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Dt(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new nc(e-1)),1),e}function i(n,e){return t(n=new nc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{nc=Rt;var r=new Rt;return r._=n,o(r,t,e)}finally{nc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Pt(n);return c.floor=c,c.round=Pt(r),c.ceil=Pt(u),c.offset=Pt(i),c.range=a,n}function Pt(n){return function(t,e){try{nc=Rt;var r=new Rt;return r._=t,n(r,e)._}finally{nc=Date}}}function Ut(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++aa;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in ec?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.substring(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.substring(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.substring(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.substring(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function s(n,t,r){return e(n,C.X.toString(),t,r)}function l(n,t,e){var r=x.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{nc=Rt;var t=new nc;return t._=n,r(t)}finally{nc=Date}}var r=t(n);return e.parse=function(n){try{nc=Rt;var t=r.parse(n);return t&&t._}finally{nc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=re;var x=Zo.map(),M=Ht(v),_=Ft(v),b=Ht(d),w=Ft(d),S=Ht(m),k=Ft(m),E=Ht(y),A=Ft(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return jt(n.getDate(),t,2)},e:function(n,t){return jt(n.getDate(),t,2)},H:function(n,t){return jt(n.getHours(),t,2)},I:function(n,t){return jt(n.getHours()%12||12,t,2)},j:function(n,t){return jt(1+Qa.dayOfYear(n),t,3)},L:function(n,t){return jt(n.getMilliseconds(),t,3)},m:function(n,t){return jt(n.getMonth()+1,t,2)},M:function(n,t){return jt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return jt(n.getSeconds(),t,2)},U:function(n,t){return jt(Qa.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return jt(Qa.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return jt(n.getFullYear()%100,t,2)},Y:function(n,t){return jt(n.getFullYear()%1e4,t,4)},Z:te,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Wt,e:Wt,H:Gt,I:Gt,j:Jt,L:ne,m:Bt,M:Kt,p:l,S:Qt,U:Yt,w:Ot,W:It,x:c,X:s,y:Vt,Y:Zt,Z:Xt,"%":ee};return t}function jt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Ht(n){return new RegExp("^(?:"+n.map(Zo.requote).join("|")+")","i")}function Ft(n){for(var t=new o,e=-1,r=n.length;++e68?1900:2e3)}function Bt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Wt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Jt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Gt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Kt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Qt(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ne(n,t,e){rc.lastIndex=0;var r=rc.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function te(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(ua(t)/60),u=ua(t)%60;return e+jt(r,"0",2)+jt(u,"0",2)}function ee(n,t,e){uc.lastIndex=0;var r=uc.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function re(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,c=Math.cos(t),s=Math.sin(t),l=i*s,f=u*c+l*Math.cos(a),h=l*o*Math.sin(a);lc.add(Math.atan2(h,f)),r=n,u=c,i=s}var t,e,r,u,i;fc.point=function(o,a){fc.point=n,r=(t=o)*Aa,u=Math.cos(a=(e=a)*Aa/2+ba/4),i=Math.sin(a)},fc.lineEnd=function(){n(t,e)}}function le(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function fe(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function he(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function ge(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function pe(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function ve(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function de(n){return[Math.atan2(n[1],n[0]),G(n[2])]}function me(n,t){return ua(n[0]-t[0])a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new Ee(e,n,null,!0),s=new Ee(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new Ee(r,n,null,!1),s=new Ee(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),ke(i),ke(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ke(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Ce))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=Zo.merge(g);var n=Le(m,p);g.length?(_||(i.polygonStart(),_=!0),Se(g,ze,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ne(),M=t(x),_=!1;return y}}function Ce(n){return n.length>1}function Ne(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:v,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function ze(n,t){return((n=n.x)[0]<0?n[1]-Sa-ka:Sa-n[1])-((t=t.x)[0]<0?t[1]-Sa-ka:Sa-t[1])}function Le(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;lc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+ba/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+ba/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>ba,k=p*x;if(lc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*wa:_,S^h>=e^m>=e){var E=he(le(f),le(n));ve(E);var A=he(u,E);ve(A);var C=(S^_>=0?-1:1)*G(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-ka>i||ka>i&&0>lc)^1&o}function Te(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?ba:-ba,c=ua(i-e);ua(c-ba)0?Sa:-Sa),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=ba&&(ua(e-u)ka?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Re(n,t,e,r){var u;if(null==n)u=e*Sa,r.point(-ba,u),r.point(0,u),r.point(ba,u),r.point(ba,0),r.point(ba,-u),r.point(0,-u),r.point(-ba,-u),r.point(-ba,0),r.point(-ba,u);else if(ua(n[0]-t[0])>ka){var i=n[0]i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?ba:-ba),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(me(e,g)||me(p,g))&&(p[0]+=ka,p[1]+=ka,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&me(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=le(n),u=le(t),o=[1,0,0],a=he(r,u),c=fe(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=he(o,a),p=pe(o,f),v=pe(a,h);ge(p,v);var d=g,m=fe(p,d),y=fe(d,d),x=m*m-y*(fe(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=pe(d,(-m-M)/y);if(ge(_,p),_=de(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ua(A-ba)A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ua(_[0]-w)ba^(w<=_[0]&&_[0]<=S)){var z=pe(d,(-m+M)/y);return ge(z,p),[_,de(z)]}}}function u(t,e){var r=o?n:ba-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ua(i)>ka,c=sr(n,6*Aa);return Ae(t,e,c,o?[0,-n]:[-ba,n-ba])}function Pe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function Ue(n,t,e,r){function u(r,u){return ua(r[0]-n)0?0:3:ua(r[0]-e)0?2:1:ua(r[1]-t)0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,s=a[0];c>o;++o)i=a[o],s[1]<=r?i[1]>r&&W(s,i,n)>0&&++t:i[1]<=r&&W(s,i,n)<0&&--t,s=i;return 0!==t}function s(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function l(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){l(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-kc,Math.min(kc,n)),t=Math.max(-kc,Math.min(kc,t));var e=l(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=Ne(),C=Pe(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Zo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),u&&Se(v,i,t,s,a),a.polygonEnd()),v=d=m=null}};return N}}function je(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function He(n){var t=0,e=ba/3,r=tr(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*ba/180,e=n[1]*ba/180):[180*(t/ba),180*(e/ba)]},u}function Fe(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,G((i-(n*n+e*e)*u*u)/(2*u))]},e}function Oe(){function n(n,t){Ac+=u*n-r*t,r=n,u=t}var t,e,r,u;Tc.point=function(i,o){Tc.point=n,t=r=i,e=u=o},Tc.lineEnd=function(){n(t,e)}}function Ye(n,t){Cc>n&&(Cc=n),n>zc&&(zc=n),Nc>t&&(Nc=t),t>Lc&&(Lc=t)}function Ie(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Ze(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Ze(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Ze(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Ve(n,t){pc+=n,vc+=t,++dc}function Xe(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);mc+=o*(t+n)/2,yc+=o*(e+r)/2,xc+=o,Ve(t=n,e=r)}var t,e;Rc.point=function(r,u){Rc.point=n,Ve(t=r,e=u)}}function $e(){Rc.point=Ve}function Be(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);mc+=o*(r+n)/2,yc+=o*(u+t)/2,xc+=o,o=u*n-r*t,Mc+=o*(r+n),_c+=o*(u+t),bc+=3*o,Ve(r=n,u=t)}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,Ve(t=r=i,e=u=o)},Rc.lineEnd=function(){n(t,e)}}function We(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,wa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:v};return a}function Je(n){function t(n){return(a?r:e)(n)}function e(t){return Qe(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=le([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ua(ua(w)-1)i||ua((y*z+x*L)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Aa),a=16; +return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function Ge(n){var t=Je(function(t,e){return n([t*Ca,e*Ca])});return function(n){return er(t(n))}}function Ke(n){this.stream=n}function Qe(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function nr(n){return tr(function(){return n})()}function tr(n){function t(n){return n=a(n[0]*Aa,n[1]*Aa),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*Ca,n[1]*Ca]}function r(){a=je(o=ir(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=Je(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Sc,_=wt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=er(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Sc):De((b=+n)*Aa),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Ue(n[0][0],n[0][1],n[1][0],n[1][1]):wt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Aa,d=n[1]%360*Aa,r()):[v*Ca,d*Ca]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Aa,y=n[1]%360*Aa,x=n.length>2?n[2]%360*Aa:0,r()):[m*Ca,y*Ca,x*Ca]},Zo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function er(n){return Qe(n,function(t,e){n.point(t*Aa,e*Aa)})}function rr(n,t){return[n,t]}function ur(n,t){return[n>ba?n-wa:-ba>n?n+wa:n,t]}function ir(n,t,e){return n?t||e?je(ar(n),cr(t,e)):ar(n):t||e?cr(t,e):ur}function or(n){return function(t,e){return t+=n,[t>ba?t-wa:-ba>t?t+wa:t,e]}}function ar(n){var t=or(n);return t.invert=or(-n),t}function cr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),G(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),G(l*r-a*u)]},e}function sr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=lr(e,u),i=lr(e,i),(o>0?i>u:u>i)&&(u+=o*wa)):(u=n+o*wa,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=de([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function lr(n,t){var e=le(t);e[0]-=n,ve(e);var r=J(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-ka)%(2*Math.PI)}function fr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function hr(n,t,e){var r=Zo.range(n,t-ka,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function gr(n){return n.source}function pr(n){return n.target}function vr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(tt(r-t)+u*o*tt(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ca,Math.atan2(o,Math.sqrt(r*r+u*u))*Ca]}:function(){return[n*Ca,t*Ca]};return p.distance=h,p}function dr(){function n(n,u){var i=Math.sin(u*=Aa),o=Math.cos(u),a=ua((n*=Aa)-t),c=Math.cos(a);Dc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Pc.point=function(u,i){t=u*Aa,e=Math.sin(i*=Aa),r=Math.cos(i),Pc.point=n},Pc.lineEnd=function(){Pc.point=Pc.lineEnd=v}}function mr(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function yr(n,t){function e(n,t){o>0?-Sa+ka>t&&(t=-Sa+ka):t>Sa-ka&&(t=Sa-ka);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(ba/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=B(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Sa]},e):Mr}function xr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ua(u)u;u++){for(;r>1&&W(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function Er(n,t){return n[0]-t[0]||n[1]-t[1]}function Ar(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Cr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function Nr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function zr(){Gr(this),this.edge=this.site=this.circle=null}function Lr(n){var t=Bc.pop()||new zr;return t.site=n,t}function Tr(n){Yr(n),Vc.remove(n),Bc.push(n),Gr(n)}function qr(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Tr(n);for(var c=i;c.circle&&ua(e-c.circle.x)l;++l)s=a[l],c=a[l-1],Br(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=Xr(c.site,s.site,null,u),Or(c),Or(s)}function Rr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Vc._;a;)if(r=Dr(a,o)-i,r>ka)a=a.L;else{if(u=i-Pr(a,o),!(u>ka)){r>-ka?(t=a.P,e=a):u>-ka?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Lr(n);if(Vc.insert(t,c),t||e){if(t===e)return Yr(t),e=Lr(t.site),Vc.insert(c,e),c.edge=e.edge=Xr(t.site,c.site),Or(t),Or(e),void 0;if(!e)return c.edge=Xr(t.site,c.site),void 0;Yr(t),Yr(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};Br(e.edge,s,p,M),c.edge=Xr(s,n,null,M),e.edge=Xr(n,p,null,M),Or(t),Or(e)}}function Dr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function Pr(n,t){var e=n.N;if(e)return Dr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ur(n){this.site=n,this.edges=[]}function jr(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Zc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(ua(r-t)>ka||ua(u-e)>ka)&&(a.splice(o,0,new Wr($r(i.site,l,ua(r-f)ka?{x:f,y:ua(t-f)ka?{x:ua(e-p)ka?{x:h,y:ua(t-h)ka?{x:ua(e-g)=-Ea)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Wc.pop()||new Fr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=$c._;x;)if(m.yd||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.yg){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.xi&&(u=t.substring(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:lu(e,r)})),i=Kc.lastIndex;return ir;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function hu(n,t){for(var e,r=Zo.interpolators.length;--r>=0&&!(e=Zo.interpolators[r](n,t)););return e}function gu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(hu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function pu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function vu(n){return function(t){return 1-n(1-t)}}function du(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function mu(n){return n*n}function yu(n){return n*n*n}function xu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Mu(n){return function(t){return Math.pow(t,n)}}function _u(n){return 1-Math.cos(n*Sa)}function bu(n){return Math.pow(2,10*(n-1))}function wu(n){return 1-Math.sqrt(1-n*n)}function Su(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/wa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*wa/t)}}function ku(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Eu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Au(n,t){n=Zo.hcl(n),t=Zo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ot(e+i*n,r+o*n,u+a*n)+""}}function Cu(n,t){n=Zo.hsl(n),t=Zo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ut(e+i*n,r+o*n,u+a*n)+""}}function Nu(n,t){n=Zo.lab(n),t=Zo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function zu(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Lu(n){var t=[n.a,n.b],e=[n.c,n.d],r=qu(t),u=Tu(t,e),i=qu(Ru(e,t,-u))||0;t[0]*e[1]180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:lu(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:lu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:lu(g[0],p[0])},{i:e-2,x:lu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i=0;)e.push(u[r])}function Bu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++oe;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function ii(n){return n.reduce(oi,0)}function oi(n,t){return n+t[1]}function ai(n,t){return ci(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ci(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function si(n){return[Zo.min(n),Zo.max(n)]}function li(n,t){return n.value-t.value}function fi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function hi(n,t){n._pack_next=t,t._pack_prev=n}function gi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function pi(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(vi),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],yi(r,u,i),t(i),fi(r,i),r._pack_prev=i,fi(i,u),u=r._pack_next,o=3;s>o;o++){yi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(gi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!gi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.ro;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(di)}}function vi(n){n._pack_next=n._pack_prev=n}function di(n){delete n._pack_next,delete n._pack_prev}function mi(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Si(n,t,e){return n.a.parent===t.parent?n.a:e}function ki(n){return 1+Zo.max(n,function(n){return n.y})}function Ei(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ai(n){var t=n.children;return t&&t.length?Ai(t[0]):n}function Ci(n){var t,e=n.children;return e&&(t=e.length)?Ci(e[t-1]):n}function Ni(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function zi(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Li(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ti(n){return n.rangeExtent?n.rangeExtent():Li(n.range())}function qi(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Ri(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Di(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ss}function Pi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Pi:qi,c=r?Uu:Pu;return o=u(n,t,c,e),a=u(t,n,c,hu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(zu)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Oi(n,t)},i.tickFormat=function(t,e){return Yi(n,t,e)},i.nice=function(t){return Hi(n,t),u()},i.copy=function(){return Ui(n,t,e,r)},u()}function ji(n,t){return Zo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Hi(n,t){return Ri(n,Di(Fi(n,t)[2]))}function Fi(n,t){null==t&&(t=10);var e=Li(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Oi(n,t){return Zo.range.apply(Zo,Fi(n,t))}function Yi(n,t,e){var r=Fi(n,t);if(e){var u=Ga.exec(e);if(u.shift(),"s"===u[8]){var i=Zo.formatPrefix(Math.max(ua(r[0]),ua(r[1])));return u[7]||(u[7]="."+Ii(i.scale(r[2]))),u[8]="f",e=Zo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Zi(u[8],r)),e=u.join("")}else e=",."+Ii(r[2])+"f";return Zo.format(e)}function Ii(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Zi(n,t){var e=Ii(t[2]);return n in ls?Math.abs(e-Ii(Math.max(ua(t[0]),ua(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Vi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Ri(r.map(u),e?Math:hs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Li(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++0;h--)o.push(i(s)*h);for(s=0;o[s]c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return fs;arguments.length<2?t=fs:"function"!=typeof t&&(t=Zo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Vi(n.copy(),t,e,r)},ji(o,n)}function Xi(n,t,e){function r(t){return n(u(t))}var u=$i(t),i=$i(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Oi(e,n)},r.tickFormat=function(n,t){return Yi(e,n,t)},r.nice=function(n){return r.domain(Hi(e,n))},r.exponent=function(o){return arguments.length?(u=$i(t=o),i=$i(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Xi(n.copy(),t,e)},ji(r,n)}function $i(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Bi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Zo.range(n.length).map(function(n){return t+e*n})}var u,i,a;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new o;for(var i,a=-1,c=r.length;++an?[0/0,0/0]:[n>0?o[n-1]:e[0],nt?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return Ji(n,t,e)},u()}function Gi(n,t){function e(e){return e>=e?t[Zo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Gi(n,t)},e}function Ki(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Oi(n,t)},t.tickFormat=function(t,e){return Yi(n,t,e)},t.copy=function(){return Ki(n)},t}function Qi(n){return n.innerRadius}function no(n){return n.outerRadius}function to(n){return n.startAngle}function eo(n){return n.endAngle}function ro(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=bt(e),p=bt(r);++f1&&u.push("H",r[0]),u.join("")}function ao(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function So(n){return n.length<3?uo(n):n[0]+ho(n,wo(n))}function ko(n){for(var t,e,r,u=-1,i=n.length;++ue?s():(u.active=e,i.event&&i.event.start.call(n,l,t),i.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),Zo.timer(function(){return p.c=c(r||1)?we:c,1},0,a),void 0)}function c(r){if(u.active!==e)return s();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a); +return o>=1?(i.event&&i.event.end.call(n,l,t),s()):void 0}function s(){return--u.count?delete u[e]:delete n.__transition__,1}var l=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ba,v=[];return p.t=h+a,r>=h?o(r-h):(p.c=o,void 0)},0,a)}}function Uo(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function jo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function Ho(n){return n.toISOString()}function Fo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Zo.bisect(Us,u);return i==Us.length?[t.year,Fi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Us[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Oo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Oo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Li(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Oo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Fo(n.copy(),t,e)},ji(r,n)}function Oo(n){return new Date(n)}function Yo(n){return JSON.parse(n.responseText)}function Io(n){var t=$o.createRange();return t.selectNode($o.body),t.createContextualFragment(n.responseText)}var Zo={version:"3.4.11"};Date.now||(Date.now=function(){return+new Date});var Vo=[].slice,Xo=function(n){return Vo.call(n)},$o=document,Bo=$o.documentElement,Wo=window;try{Xo(Bo.childNodes)[0].nodeType}catch(Jo){Xo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{$o.createElement("div").style.setProperty("opacity",0,"")}catch(Go){var Ko=Wo.Element.prototype,Qo=Ko.setAttribute,na=Ko.setAttributeNS,ta=Wo.CSSStyleDeclaration.prototype,ea=ta.setProperty;Ko.setAttribute=function(n,t){Qo.call(this,n,t+"")},Ko.setAttributeNS=function(n,t,e){na.call(this,n,t,e+"")},ta.setProperty=function(n,t,e){ea.call(this,n,t+"",e)}}Zo.ascending=n,Zo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Zo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ur&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ur&&(e=r)}return e},Zo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=e);)e=void 0;for(;++ue&&(e=r)}else{for(;++u=e);)e=void 0;for(;++ue&&(e=r)}return e},Zo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i=e);)e=u=void 0;for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=e);)e=void 0;for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},Zo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i1&&(e=e.map(r)),e=e.filter(t),e.length?Zo.quantile(e.sort(n),.5):void 0};var ra=e(n);Zo.bisectLeft=ra.left,Zo.bisect=Zo.bisectRight=ra.right,Zo.bisector=function(t){return e(1===t.length?function(e,r){return n(t(e),r)}:t)},Zo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Zo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Zo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Zo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,t=Zo.min(arguments,r),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ua=Math.abs;Zo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,i=[],o=u(ua(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)i.push(r/o);else for(;(r=n+e*++a)=i.length)return r?r.call(u,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=i[c++],d=new o;++g=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Zo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Zo.set=function(n){var t=new h;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},i(h,{has:a,add:function(n){return this[ia+n]=!0,n},remove:function(n){return n=ia+n,n in this&&delete this[n]},values:s,size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===oa&&n.call(this,t.substring(1))}}),Zo.behavior={},Zo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Zo.event=null,Zo.requote=function(n){return n.replace(ca,"\\$&")};var ca=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},la=function(n,t){return t.querySelector(n)},fa=function(n,t){return t.querySelectorAll(n)},ha=Bo.matches||Bo[p(Bo,"matchesSelector")],ga=function(n,t){return ha.call(n,t)};"function"==typeof Sizzle&&(la=function(n,t){return Sizzle(n,t)[0]||null},fa=Sizzle,ga=Sizzle.matchesSelector),Zo.selection=function(){return ma};var pa=Zo.selection.prototype=[];pa.select=function(n){var t,e,r,u,i=[];n=b(n);for(var o=-1,a=this.length;++o=0&&(e=n.substring(0,t),n=n.substring(t+1)),va.hasOwnProperty(e)?{space:va[e],local:n}:n}},pa.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Zo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},pa.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=A(n)).length,u=-1;if(t=e.classList){for(;++ur){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(z(e,n[e],t));return this}if(2>r)return Wo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(z(n,t,e))},pa.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},pa.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},pa.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},pa.append=function(n){return n=T(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},pa.insert=function(n,t){return n=T(n),t=b(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},pa.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},pa.data=function(n,t){function e(n,e){var r,u,i,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new o,y=new o,x=[];for(r=-1;++rr;++r)p[r]=q(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,u,i=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return _(u)},pa.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},pa.sort=function(n){n=D.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},pa.size=function(){var n=0;return this.each(function(){++n}),n};var da=[];Zo.selection.enter=U,Zo.selection.enter.prototype=da,da.append=pa.append,da.empty=pa.empty,da.node=pa.node,da.call=pa.call,da.size=pa.size,da.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(F(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(F(n,t,e))};var ya=Zo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ya.forEach(function(n){"on"+n in $o&&ya.remove(n)});var xa="onselectstart"in $o?null:p(Bo.style,"userSelect"),Ma=0;Zo.mouse=function(n){return Z(n,x())};var _a=/WebKit/.test(Wo.navigator.userAgent)?-1:0;Zo.touches=function(n,t){return arguments.length<2&&(t=x().touches),t?Xo(t).map(function(t){var e=Z(n,t);return e.identifier=t.identifier,e}):[]},Zo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+s[0],y:r[1]+s[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Zo.event.target===f),g({type:"dragend"}))}var s,l=this,f=Zo.event.target,h=l.parentNode,g=e.of(l,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Zo.select(u()).on(i+d,a).on(o+d,c),y=I(),x=t(h,v);r?(s=r.apply(l,arguments),s=[s.x-x[0],s.y-x[1]]):s=[0,0],g({type:"dragstart"})}}var e=M(n,"drag","dragstart","dragend"),r=null,u=t(v,Zo.mouse,$,"mousemove","mouseup"),i=t(V,Zo.touch,X,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Zo.rebind(n,e,"on")};var ba=Math.PI,wa=2*ba,Sa=ba/2,ka=1e-6,Ea=ka*ka,Aa=ba/180,Ca=180/ba,Na=Math.SQRT2,za=2,La=4;Zo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=Q(v),o=i/(za*h)*(e*nt(Na*t+v)-K(v));return[r+o*s,u+o*l,i*e/Q(Na*t+v)]}return[r+n*s,u+n*l,i*Math.exp(Na*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+La*f)/(2*i*za*h),p=(c*c-i*i-La*f)/(2*c*za*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Na;return e.duration=1e3*y,e},Zo.behavior.zoom=function(){function n(n){n.on(A,s).on(Ra+".zoom",f).on("dblclick.zoom",h).on(z,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(x.range().map(function(n){return(n-S.x)/S.k}).map(x.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u(Zo.mouse(r),h),a(s)}function e(){f.on(C,null).on(N,null),g(l&&Zo.event.target===i),c(s)}var r=this,i=Zo.event.target,s=L.of(r,arguments),l=0,f=Zo.select(Wo).on(C,n).on(N,e),h=t(Zo.mouse(r)),g=I();H.call(r),o(s)}function l(){function n(){var n=Zo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Zo.event.target;Zo.select(t).on(M,i).on(_,f),b.push(t);for(var e=Zo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var s=n(),l=Date.now();if(1===s.length){if(500>l-m){var h=s[0],g=v[h.identifier];r(2*S.k),u(h,g),y(),a(p)}m=l}else if(s.length>1){var h=s[0],x=s[1],w=h[0]-x[0],k=h[1]-x[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Zo.touches(g),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=d&&Math.sqrt(l/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Zo.event.touches.length){for(var t=Zo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Zo.selectAll(b).on(x,null),w.on(A,s).on(z,l),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,x=".zoom-"+Zo.event.changedTouches[0].identifier,M="touchmove"+x,_="touchend"+x,b=[],w=Zo.select(g).on(A,null).on(z,e),k=I();H.call(g),e(),o(p)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Zo.mouse(this)),H.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),y(),r(Math.pow(2,.002*Ta())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Zo.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Zo.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,x,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=qa,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=M(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Ss?Zo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Zo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?qa:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,x=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},Zo.rebind(n,L,"on")};var Ta,qa=[0,1/0],Ra="onwheel"in $o?(Ta=function(){return-Zo.event.deltaY*(Zo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in $o?(Ta=function(){return Zo.event.wheelDelta},"mousewheel"):(Ta=function(){return-Zo.event.detail},"MozMousePixelScroll");Zo.color=et,et.prototype.toString=function(){return this.rgb()+""},Zo.hsl=rt;var Da=rt.prototype=new et;Da.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,this.l/n)},Da.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new rt(this.h,this.s,n*this.l)},Da.rgb=function(){return ut(this.h,this.s,this.l)},Zo.hcl=it;var Pa=it.prototype=new et;Pa.brighter=function(n){return new it(this.h,this.c,Math.min(100,this.l+Ua*(arguments.length?n:1)))},Pa.darker=function(n){return new it(this.h,this.c,Math.max(0,this.l-Ua*(arguments.length?n:1)))},Pa.rgb=function(){return ot(this.h,this.c,this.l).rgb()},Zo.lab=at;var Ua=18,ja=.95047,Ha=1,Fa=1.08883,Oa=at.prototype=new et;Oa.brighter=function(n){return new at(Math.min(100,this.l+Ua*(arguments.length?n:1)),this.a,this.b)},Oa.darker=function(n){return new at(Math.max(0,this.l-Ua*(arguments.length?n:1)),this.a,this.b)},Oa.rgb=function(){return ct(this.l,this.a,this.b)},Zo.rgb=gt;var Ya=gt.prototype=new et;Ya.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new gt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new gt(u,u,u)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new gt(n*this.r,n*this.g,n*this.b)},Ya.hsl=function(){return yt(this.r,this.g,this.b)},Ya.toString=function(){return"#"+dt(this.r)+dt(this.g)+dt(this.b)};var Ia=Zo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ia.forEach(function(n,t){Ia.set(n,pt(t))}),Zo.functor=bt,Zo.xhr=St(wt),Zo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=kt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=s)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],s=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new h,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Zo.csv=Zo.dsv(",","text/csv"),Zo.tsv=Zo.dsv(" ","text/tab-separated-values"),Zo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=x().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return Z(n,r)};var Za,Va,Xa,$a,Ba,Wa=Wo[p(Wo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Zo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Va?Va.n=i:Za=i,Va=i,Xa||($a=clearTimeout($a),Xa=1,Wa(At))},Zo.timer.flush=function(){Ct(),Nt()},Zo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Ja=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Lt);Zo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Zo.round(n,zt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),Ja[8+e/3]};var Ga=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ka=Zo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Zo.round(n,zt(n,t))).toFixed(Math.max(0,Math.min(20,zt(n*(1+1e-15),t))))}}),Qa=Zo.time={},nc=Date;Rt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){tc.setUTCDate.apply(this._,arguments)},setDay:function(){tc.setUTCDay.apply(this._,arguments)},setFullYear:function(){tc.setUTCFullYear.apply(this._,arguments)},setHours:function(){tc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){tc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){tc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){tc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){tc.setUTCSeconds.apply(this._,arguments)},setTime:function(){tc.setTime.apply(this._,arguments)}};var tc=Date.prototype;Qa.year=Dt(function(n){return n=Qa.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),Qa.years=Qa.year.range,Qa.years.utc=Qa.year.utc.range,Qa.day=Dt(function(n){var t=new nc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),Qa.days=Qa.day.range,Qa.days.utc=Qa.day.utc.range,Qa.dayOfYear=function(n){var t=Qa.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=Qa[n]=Dt(function(n){return(n=Qa.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});Qa[n+"s"]=e.range,Qa[n+"s"].utc=e.utc.range,Qa[n+"OfYear"]=function(n){var e=Qa.year(n).getDay();return Math.floor((Qa.dayOfYear(n)+(e+t)%7)/7)}}),Qa.week=Qa.sunday,Qa.weeks=Qa.sunday.range,Qa.weeks.utc=Qa.sunday.utc.range,Qa.weekOfYear=Qa.sundayOfYear;var ec={"-":"",_:" ",0:"0"},rc=/^\s*\d+/,uc=/^%/;Zo.locale=function(n){return{numberFormat:Tt(n),timeFormat:Ut(n)}};var ic=Zo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Zo.format=ic.numberFormat,Zo.geo={},ue.prototype={s:0,t:0,add:function(n){ie(n,this.t,oc),ie(oc.s,this.s,this),this.s?this.t+=oc.t:this.s=oc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oc=new ue;Zo.geo.stream=function(n,t){n&&ac.hasOwnProperty(n.type)?ac[n.type](n,t):oe(n,t)};var ac={Feature:function(n,t){oe(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*ba+n:n,fc.lineStart=fc.lineEnd=fc.point=v}};Zo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=le([t*Aa,e*Aa]);if(m){var u=he(m,r),i=[u[1],-u[0],0],o=he(i,u);ve(o),o=de(o);var c=t-p,s=c>0?1:-1,v=o[0]*Ca*s,d=ua(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*Ca;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*Ca;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ua(r)>180?r+(r>0?360:-360):r}else v=n,d=e;fc.point(n,e),t(n,e)}function i(){fc.lineStart()}function o(){u(v,d),fc.lineEnd(),ua(y)>ka&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nlc?(l=-(h=180),f=-(g=90)):y>ka?g=90:-ka>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],Zo.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e); +for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),Zo.geo.centroid=function(n){hc=gc=pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,wc);var t=Mc,e=_c,r=bc,u=t*t+e*e+r*r;return Ea>u&&(t=mc,e=yc,r=xc,ka>gc&&(t=pc,e=vc,r=dc),u=t*t+e*e+r*r,Ea>u)?[0/0,0/0]:[Math.atan2(e,t)*Ca,G(r/Math.sqrt(u))*Ca]};var hc,gc,pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc={sphere:v,point:ye,lineStart:Me,lineEnd:_e,polygonStart:function(){wc.lineStart=be},polygonEnd:function(){wc.lineStart=Me}},Sc=Ae(we,Te,Re,[-ba,-ba/2]),kc=1e9;Zo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ue(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Zo.geo.conicEqualArea=function(){return He(Fe)}).raw=Fe,Zo.geo.albers=function(){return Zo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Zo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Zo.geo.albers(),o=Zo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Zo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+ka,f+.12*s+ka],[l-.214*s-ka,f+.234*s-ka]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+ka,f+.166*s+ka],[l-.115*s-ka,f+.234*s-ka]]).stream(c).point,n},n.scale(1070)};var Ec,Ac,Cc,Nc,zc,Lc,Tc={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Ac=0,Tc.lineStart=Oe},polygonEnd:function(){Tc.lineStart=Tc.lineEnd=Tc.point=v,Ec+=ua(Ac/2)}},qc={point:Ye,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Rc={point:Ve,lineStart:Xe,lineEnd:$e,polygonStart:function(){Rc.lineStart=Be},polygonEnd:function(){Rc.point=Ve,Rc.lineStart=Xe,Rc.lineEnd=$e}};Zo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Zo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Ec=0,Zo.geo.stream(n,u(Tc)),Ec},n.centroid=function(n){return pc=vc=dc=mc=yc=xc=Mc=_c=bc=0,Zo.geo.stream(n,u(Rc)),bc?[Mc/bc,_c/bc]:xc?[mc/xc,yc/xc]:dc?[pc/dc,vc/dc]:[0/0,0/0]},n.bounds=function(n){return zc=Lc=-(Cc=Nc=1/0),Zo.geo.stream(n,u(qc)),[[Cc,Nc],[zc,Lc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Ge(n):wt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Ie:new We(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Zo.geo.albersUsa()).context(null)},Zo.geo.transform=function(n){return{stream:function(t){var e=new Ke(t);for(var r in n)e[r]=n[r];return e}}},Ke.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Zo.geo.projection=nr,Zo.geo.projectionMutator=tr,(Zo.geo.equirectangular=function(){return nr(rr)}).raw=rr.invert=rr,Zo.geo.rotation=function(n){function t(t){return t=n(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t}return n=ir(n[0]%360*Aa,n[1]*Aa,n.length>2?n[2]*Aa:0),t.invert=function(t){return t=n.invert(t[0]*Aa,t[1]*Aa),t[0]*=Ca,t[1]*=Ca,t},t},ur.invert=rr,Zo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=ir(-n[0]*Aa,-n[1]*Aa,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ca,n[1]*=Ca}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=sr((t=+r)*Aa,u*Aa),n):t},n.precision=function(r){return arguments.length?(e=sr(t*Aa,(u=+r)*Aa),n):u},n.angle(90)},Zo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Aa,u=n[1]*Aa,i=t[1]*Aa,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},Zo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Zo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Zo.range(Math.ceil(s/m)*m,c,m).map(g)).concat(Zo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ua(n%d)>ka}).map(l)).concat(Zo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ua(n%m)>ka}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=fr(a,o,90),f=hr(r,e,y),h=fr(s,c,90),g=hr(i,u,y),n):y},n.majorExtent([[-180,-90+ka],[180,90-ka]]).minorExtent([[-180,-80-ka],[180,80+ka]])},Zo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=gr,u=pr;return n.distance=function(){return Zo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Zo.geo.interpolate=function(n,t){return vr(n[0]*Aa,n[1]*Aa,t[0]*Aa,t[1]*Aa)},Zo.geo.length=function(n){return Dc=0,Zo.geo.stream(n,Pc),Dc};var Dc,Pc={sphere:v,point:v,lineStart:dr,lineEnd:v,polygonStart:v,polygonEnd:v},Uc=mr(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Zo.geo.azimuthalEqualArea=function(){return nr(Uc)}).raw=Uc;var jc=mr(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},wt);(Zo.geo.azimuthalEquidistant=function(){return nr(jc)}).raw=jc,(Zo.geo.conicConformal=function(){return He(yr)}).raw=yr,(Zo.geo.conicEquidistant=function(){return He(xr)}).raw=xr;var Hc=mr(function(n){return 1/n},Math.atan);(Zo.geo.gnomonic=function(){return nr(Hc)}).raw=Hc,Mr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Sa]},(Zo.geo.mercator=function(){return _r(Mr)}).raw=Mr;var Fc=mr(function(){return 1},Math.asin);(Zo.geo.orthographic=function(){return nr(Fc)}).raw=Fc;var Oc=mr(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Zo.geo.stereographic=function(){return nr(Oc)}).raw=Oc,br.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Sa]},(Zo.geo.transverseMercator=function(){var n=_r(br),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=br,Zo.geom={},Zo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=bt(e),i=bt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(Er),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var s=kr(a),l=kr(c),f=l[0]===s[0],h=l[l.length-1]===s[s.length-1],g=[];for(t=s.length-1;t>=0;--t)g.push(n[a[s[t]][2]]);for(t=+f;t=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/ka)*ka,y:Math.round(o(n,t)/ka)*ka,i:t}})}var r=wr,u=Sr,i=r,o=u,a=Jc;return n?t(n):(t.links=function(n){return tu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return tu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Hr),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=ou()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=bt(a),M=bt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.xm&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=ou();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){au(n,k,v,d,m,y)},g=-1,null==t){for(;++g=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ns.get(e)||Qc,r=ts.get(r)||wt,pu(r(e.apply(null,Vo.call(arguments,1))))},Zo.interpolateHcl=Au,Zo.interpolateHsl=Cu,Zo.interpolateLab=Nu,Zo.interpolateRound=zu,Zo.transform=function(n){var t=$o.createElementNS(Zo.ns.prefix.svg,"g");return(Zo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Lu(e?e.matrix:es)})(n)},Lu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var es={a:1,b:0,c:0,d:1,e:0,f:0};Zo.interpolateTransform=Du,Zo.layout={},Zo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/d){if(p>c){var s=t.charge/c;n.px-=i*s,n.py-=o*s}return!0}if(t.point&&c&&p>c){var s=t.pointCharge/c;n.px-=i*s,n.py-=o*s}}return!t.charge}}function t(n){n.px=Zo.event.x,n.py=Zo.event.y,a.resume()}var e,r,u,i,o,a={},c=Zo.dispatch("start","tick","end"),s=[1,1],l=.9,f=rs,h=us,g=-30,p=is,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=s[0]/2,M=s[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Vu(t=Zo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Zo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++at;++t)(r=m[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Zo.behavior.drag().origin(wt).on("dragstart.force",Ou).on("drag.force",t).on("dragend.force",Yu)),arguments.length?(this.on("mouseover.force",Iu).on("mouseout.force",Zu).call(e),void 0):e},Zo.rebind(a,c,"on")};var rs=20,us=1,is=1/0;Zo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(s=e.call(n,i,i.depth))&&(c=s.length)){for(var c,s,l;--c>=0;)o.push(l=s[c]),l.parent=i,l.depth=i.depth+1;r&&(i.value=0),i.children=s}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Bu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=Gu,e=Wu,r=Ju;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&($u(t,function(n){n.children&&(n.value=0)}),Bu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Zo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++sg;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=wt,e=ei,r=ri,u=ti,i=Qu,o=ni;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:as.get(t)||ei,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:cs.get(t)||ri,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var as=Zo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ui),i=n.map(ii),o=Zo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return Zo.range(n.length).reverse()},"default":ei}),cs=Zo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ri});Zo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=l[0]&&a<=l[1]&&(o=c[Zo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=si,u=ai;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=bt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return ci(n,t)}:bt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Zo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Bu(a,function(n){n.r=+l(n.value)}),Bu(a,pi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;Bu(a,function(n){n.r+=f}),Bu(a,pi),Bu(a,function(n){n.r-=f})}return mi(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=Zo.layout.hierarchy().sort(li),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Xu(n,e)},Zo.layout.tree=function(){function n(n,u){var l=o.call(this,n,u),f=l[0],h=t(f);if(Bu(h,e),h.parent.m=-h.z,$u(h,r),s)$u(f,i);else{var g=f,p=f,v=f;$u(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);$u(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return l}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){wi(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],s=u.m,l=i.m,f=o.m,h=c.m;o=_i(o),u=Mi(u),o&&u;)c=Mi(c),i=_i(i),i.a=n,r=o.z+f-u.z-s+a(o._,u._),r>0&&(bi(Si(o,n,e),n,r),s+=r,l+=r),f+=o.m,s+=u.m,h+=c.m,l+=i.m;o&&!_i(i)&&(i.t=o,i.m+=f-l),u&&!Mi(c)&&(c.t=u,c.m+=s-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Zo.layout.hierarchy().sort(null).value(null),a=xi,c=[1,1],s=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(s=null==(c=t)?i:null,n):s?null:c},n.nodeSize=function(t){return arguments.length?(s=null==(c=t)?null:i,n):s?c:null},Xu(n,o)},Zo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;Bu(c,function(n){var t=n.children;t&&t.length?(n.x=Ei(t),n.y=ki(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ai(c),f=Ci(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return Bu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Zo.layout.hierarchy().sort(null).value(null),e=xi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Xu(n,t)},Zo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++oe&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++ie.dx)&&(l=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Zo.random.normal.apply(Zo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Zo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Zo.scale={};var ss={floor:wt,ceil:wt};Zo.scale.linear=function(){return Ui([0,1],[0,1],hu,!1)};var ls={s:1,g:1,p:1,r:1,e:1};Zo.scale.log=function(){return Vi(Zo.scale.linear().domain([0,1]),10,!0,[1,10])};var fs=Zo.format(".0e"),hs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Zo.scale.pow=function(){return Xi(Zo.scale.linear(),1,[0,1])},Zo.scale.sqrt=function(){return Zo.scale.pow().exponent(.5)},Zo.scale.ordinal=function(){return Bi([],{t:"range",a:[[]]})},Zo.scale.category10=function(){return Zo.scale.ordinal().range(gs)},Zo.scale.category20=function(){return Zo.scale.ordinal().range(ps)},Zo.scale.category20b=function(){return Zo.scale.ordinal().range(vs)},Zo.scale.category20c=function(){return Zo.scale.ordinal().range(ds)};var gs=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(vt),ps=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(vt),vs=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(vt),ds=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(vt);Zo.scale.quantile=function(){return Wi([],[])},Zo.scale.quantize=function(){return Ji(0,1,[0,1])},Zo.scale.threshold=function(){return Gi([.5],[0,1])},Zo.scale.identity=function(){return Ki([0,1])},Zo.svg={},Zo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ms,a=u.apply(this,arguments)+ms,c=(o>a&&(c=o,o=a,a=c),a-o),s=ba>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a); +return c>=ys?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=Qi,e=no,r=to,u=eo;return n.innerRadius=function(e){return arguments.length?(t=bt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=bt(t),n):e},n.startAngle=function(t){return arguments.length?(r=bt(t),n):r},n.endAngle=function(t){return arguments.length?(u=bt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ms;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ms=-Sa,ys=wa-ka;Zo.svg.line=function(){return ro(wt)};var xs=Zo.map({linear:uo,"linear-closed":io,step:oo,"step-before":ao,"step-after":co,basis:po,"basis-open":vo,"basis-closed":mo,bundle:yo,cardinal:fo,"cardinal-open":so,"cardinal-closed":lo,monotone:So});xs.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Ms=[0,2/3,1/3,0],_s=[0,1/3,2/3,0],bs=[0,1/6,2/3,1/6];Zo.svg.line.radial=function(){var n=ro(ko);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},ao.reverse=co,co.reverse=ao,Zo.svg.area=function(){return Eo(wt)},Zo.svg.area.radial=function(){var n=Eo(ko);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Zo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ms,l=s.call(n,u,r)+ms;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>ba)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=gr,o=pr,a=Ao,c=to,s=eo;return n.radius=function(t){return arguments.length?(a=bt(t),n):a},n.source=function(t){return arguments.length?(i=bt(t),n):i},n.target=function(t){return arguments.length?(o=bt(t),n):o},n.startAngle=function(t){return arguments.length?(c=bt(t),n):c},n.endAngle=function(t){return arguments.length?(s=bt(t),n):s},n},Zo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=gr,e=pr,r=Co;return n.source=function(e){return arguments.length?(t=bt(e),n):t},n.target=function(t){return arguments.length?(e=bt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Zo.svg.diagonal.radial=function(){var n=Zo.svg.diagonal(),t=Co,e=n.projection;return n.projection=function(n){return arguments.length?e(No(t=n)):t},n},Zo.svg.symbol=function(){function n(n,r){return(ws.get(t.call(this,n,r))||To)(e.call(this,n,r))}var t=Lo,e=zo;return n.type=function(e){return arguments.length?(t=bt(e),n):t},n.size=function(t){return arguments.length?(e=bt(t),n):e},n};var ws=Zo.map({circle:To,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*As)),e=t*As;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Es),e=t*Es/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Zo.svg.symbolTypes=ws.keys();var Ss,ks,Es=Math.sqrt(3),As=Math.tan(30*Aa),Cs=[],Ns=0;Cs.call=pa.call,Cs.empty=pa.empty,Cs.node=pa.node,Cs.size=pa.size,Zo.transition=function(n){return arguments.length?Ss?n.transition():n:ma.transition()},Zo.transition.prototype=Cs,Cs.select=function(n){var t,e,r,u=this.id,i=[];n=b(n);for(var o=-1,a=this.length;++oi;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return qo(u,this.id)},Cs.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):P(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Cs.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Du:hu,a=Zo.ns.qualify(n);return Ro(this,"attr."+n,t,a.local?i:u)},Cs.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Zo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Cs.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Wo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=hu(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return Ro(this,"style."+n,t,u)},Cs.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Wo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Cs.text=function(n){return Ro(this,"text",n,Do)},Cs.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Cs.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Zo.ease.apply(Zo,arguments)),P(this,function(e){e.__transition__[t].ease=n}))},Cs.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Cs.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:P(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Cs.each=function(n,t){var e=this.id;if(arguments.length<2){var r=ks,u=Ss;Ss=e,P(this,function(t,r,u){ks=t.__transition__[e],n.call(t,t.__data__,r,u)}),ks=r,Ss=u}else P(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Zo.dispatch("start","end"))).on(n,t)});return this},Cs.transition=function(){for(var n,t,e,r,u=this.id,i=++Ns,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Po(e,s,i,r)),n.push(e)}return qo(o,i)},Zo.svg.axis=function(){function n(n){n.each(function(){var n,s=Zo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):wt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",ka),d=Zo.transition(p.exit()).style("opacity",ka).remove(),m=Zo.transition(p.order()).style("opacity",1),y=Ti(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Zo.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=Uo,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Uo,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=jo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=jo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;l=f=function(n){return E(n)+A}}else l.rangeBand?l=f:d.call(n,f);v.call(n,l),m.call(n,f)})}var t,e=Zo.scale.linear(),r=zs,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Ls?t+"":zs,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var zs="bottom",Ls={top:1,right:1,bottom:1,left:1};Zo.svg.brush=function(){function n(i){i.each(function(){var i=Zo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,wt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Ts[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=Zo.transition(i),h=Zo.transition(o);c&&(l=Ti(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=Ti(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Zo.event.keyCode&&(C||(x=null,z[0]-=l[1],z[1]-=f[1],C=2),y())}function p(){32==Zo.event.keyCode&&2==C&&(z[0]+=l[1],z[1]+=f[1],C=0,y())}function v(){var n=Zo.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Zo.event.altKey?(x||(x=[(l[0]+l[1])/2,(f[0]+f[1])/2]),z[0]=l[+(n[0]p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Zo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=Zo.select(Zo.event.target),w=a.of(_,arguments),S=Zo.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=I(),z=Zo.mouse(_),L=Zo.select(Wo).on("keydown.brush",u).on("keyup.brush",p);if(Zo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=l[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);M=[l[1-T]-z[0],f[1-q]-z[1]],z[0]=l[T],z[1]=f[q]}else Zo.event.altKey&&(x=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Zo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=M(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],f=[0,0],h=!0,g=!0,p=qs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Ss?Zo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=gu(l,t.x),r=gu(f,t.y);return i=o=null,function(u){l=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=qs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,p=qs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(h=!!t[0],g=!!t[1]):c?h=!!t:s&&(g=!!t),n):c&&s?[h,g]:c?h:s?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),s&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(h=u,u=a,a=h))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&f[0]==f[1]},Zo.rebind(n,a,"on")};var Ts={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},qs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Rs=Qa.format=ic.timeFormat,Ds=Rs.utc,Ps=Ds("%Y-%m-%dT%H:%M:%S.%LZ");Rs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ho:Ps,Ho.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Ho.toString=Ps.toString,Qa.second=Dt(function(n){return new nc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),Qa.seconds=Qa.second.range,Qa.seconds.utc=Qa.second.utc.range,Qa.minute=Dt(function(n){return new nc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),Qa.minutes=Qa.minute.range,Qa.minutes.utc=Qa.minute.utc.range,Qa.hour=Dt(function(n){var t=n.getTimezoneOffset()/60;return new nc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),Qa.hours=Qa.hour.range,Qa.hours.utc=Qa.hour.utc.range,Qa.month=Dt(function(n){return n=Qa.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),Qa.months=Qa.month.range,Qa.months.utc=Qa.month.utc.range;var Us=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],js=[[Qa.second,1],[Qa.second,5],[Qa.second,15],[Qa.second,30],[Qa.minute,1],[Qa.minute,5],[Qa.minute,15],[Qa.minute,30],[Qa.hour,1],[Qa.hour,3],[Qa.hour,6],[Qa.hour,12],[Qa.day,1],[Qa.day,2],[Qa.week,1],[Qa.month,1],[Qa.month,3],[Qa.year,1]],Hs=Rs.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",we]]),Fs={range:function(n,t,e){return Zo.range(Math.ceil(n/e)*e,+t,e).map(Oo)},floor:wt,ceil:wt};js.year=Qa.year,Qa.scale=function(){return Fo(Zo.scale.linear(),js,Hs)};var Os=js.map(function(n){return[n[0].utc,n[1]]}),Ys=Ds.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",we]]);Os.year=Qa.year.utc,Qa.scale.utc=function(){return Fo(Zo.scale.linear(),Os,Ys)},Zo.text=St(function(n){return n.responseText}),Zo.json=function(n,t){return kt(n,"application/json",Yo,t)},Zo.html=function(n,t){return kt(n,"text/html",Io,t)},Zo.xml=St(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Zo):"object"==typeof module&&module.exports&&(module.exports=Zo),this.d3=Zo}(); \ No newline at end of file diff --git a/www/lib/es5-shim/.bower.json b/www/lib/es5-shim/.bower.json new file mode 100644 index 00000000..2841e33b --- /dev/null +++ b/www/lib/es5-shim/.bower.json @@ -0,0 +1,44 @@ +{ + "name": "es5-shim", + "version": "3.1.1", + "main": "es5-shim.js", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/es5-shim" + }, + "homepage": "https://github.com/es-shims/es5-shim", + "authors": [ + "Kris Kowal (http://github.com/kriskowal/)", + "Sami Samhuri (http://samhuri.net/)", + "Florian Schäfer (http://github.com/fschaefer)", + "Irakli Gozalishvili (http://jeditoolkit.com)", + "Kit Cambridge (http://kitcambridge.github.com)", + "Jordan Harband (https://github.com/ljharb/)" + ], + "description": "ECMAScript 5 compatibility shims for legacy JavaScript engines", + "keywords": [ + "shim", + "es5", + "es5", + "shim", + "javascript", + "ecmascript", + "polyfill" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "tests" + ], + "_release": "3.1.1", + "_resolution": { + "type": "version", + "tag": "v3.1.1", + "commit": "f5ca40f6f49b7eb0abef39bb1c3a5b4f7ca176d5" + }, + "_source": "git://github.com/es-shims/es5-shim.git", + "_target": "~3.1.0", + "_originalSource": "es5-shim" +} \ No newline at end of file diff --git a/www/lib/es5-shim/CHANGES b/www/lib/es5-shim/CHANGES new file mode 100644 index 00000000..2447cfc9 --- /dev/null +++ b/www/lib/es5-shim/CHANGES @@ -0,0 +1,124 @@ +3.1.1 + - Update minified files (#231) + +3.1.0 + - Fix String#replace in Firefox up through 29 (#228) + +3.0.2 + - Fix `Function#bind` in IE 7 and 8 (#224, #225, #226) + +3.0.1 + - Version bump to ensure npm has newest minified assets + +3.0.0 + - es5-sham: fix `Object.getPrototypeOf` and `Object.getOwnPropertyDescriptor` for Opera Mini + - Better override noncompliant native ES5 methods: `Array#forEach`, `Array#map`, `Array#filter`, `Array#every`, `Array#some`, `Array#reduce`, `Date.parse`, `String#trim` + - Added spec-compliant shim for `parseInt` + - Ensure `Object.keys` handles more edge cases with `arguments` objects and boxed primitives + - Improve minification of builds + +2.3.0 + - parseInt is now properly shimmed in ES3 browsers to default the radix + - update URLs to point to the new organization + +2.2.0 + - Function.prototype.bind shim now reports correct length on a bound function + - fix node 0.6.x v8 bug in Array#forEach + - test improvements + +2.1.0 + - Object.create fixes + - tweaks to the Object.defineProperties shim + +2.0.0 + - Separate reliable shims from dubious shims (shams). + +1.2.10 + - Group-effort Style Cleanup + - Took a stab at fixing Object.defineProperty on IE8 without + bad side-effects. (@hax) + - Object.isExtensible no longer fakes it. (@xavierm) + - Date.prototype.toISOString no longer deals with partial + ISO dates, per spec (@kitcambridge) + - More (mostly from @bryanforbes) + +1.2.9 + - Corrections to toISOString by @kitcambridge + - Fixed three bugs in array methods revealed by Jasmine tests. + - Cleaned up Function.prototype.bind with more fixes and tests from + @bryanforbes. + +1.2.8 + - Actually fixed problems with Function.prototype.bind, and regressions + from 1.2.7 (@bryanforbes, @jdalton #36) + +1.2.7 - REGRESSED + - Fixed problems with Function.prototype.bind when called as a constructor. + (@jdalton #36) + +1.2.6 + - Revised Date.parse to match ES 5.1 (kitcambridge) + +1.2.5 + - Fixed a bug for padding it Date..toISOString (tadfisher issue #33) + +1.2.4 + - Fixed a descriptor bug in Object.defineProperty (raynos) + +1.2.3 + - Cleaned up RequireJS and + + +**When used in a web browser**, JSON 3 exposes an additional `JSON3` object containing the `noConflict()` and `runInContext()` functions, as well as aliases to the `stringify()` and `parse()` functions. + +### `noConflict` and `runInContext` + +* `JSON3.noConflict()` restores the original value of the global `JSON` object and returns a reference to the `JSON3` object. +* `JSON3.runInContext([context, exports])` initializes JSON 3 using the given `context` object (e.g., `window`, `global`, etc.), or the global object if omitted. If an `exports` object is specified, the `stringify()`, `parse()`, and `runInContext()` functions will be attached to it instead of a new object. + +### Asynchronous Module Loaders + +JSON 3 is defined as an [anonymous module](https://github.com/amdjs/amdjs-api/wiki/AMD#define-function-) for compatibility with [RequireJS](http://requirejs.org/), [`curl.js`](https://github.com/cujojs/curl), and other asynchronous module loaders. + + + + +To avoid issues with third-party scripts, **JSON 3 is exported to the global scope even when used with a module loader**. If this behavior is undesired, `JSON3.noConflict()` can be used to restore the global `JSON` object to its original value. + +## CommonJS Environments + + var JSON3 = require("./path/to/json3"); + JSON3.parse("[1, 2, 3]"); + // => [1, 2, 3] + +## JavaScript Engines + + load("path/to/json3.js"); + JSON.stringify({"Hello": 123, "Good-bye": 456}, ["Hello"], "\t"); + // => '{\n\t"Hello": 123\n}' + +# Compatibility # + +JSON 3 has been **tested** with the following web browsers, CommonJS environments, and JavaScript engines. + +## Web Browsers + +- Windows [Internet Explorer](http://www.microsoft.com/windows/internet-explorer), version 6.0 and higher +- Mozilla [Firefox](http://www.mozilla.com/firefox), version 1.0 and higher +- Apple [Safari](http://www.apple.com/safari), version 2.0 and higher +- [Opera](http://www.opera.com) 7.02 and higher +- [Mozilla](http://sillydog.org/narchive/gecko.php) 1.0, [Netscape](http://sillydog.org/narchive/) 6.2.3, and [SeaMonkey](http://www.seamonkey-project.org/) 1.0 and higher + +## CommonJS Environments + +- [Node](http://nodejs.org/) 0.2.6 and higher +- [RingoJS](http://ringojs.org/) 0.4 and higher +- [Narwhal](http://narwhaljs.org/) 0.3.2 and higher + +## JavaScript Engines + +- Mozilla [Rhino](http://www.mozilla.org/rhino) 1.5R5 and higher +- WebKit [JSC](https://trac.webkit.org/wiki/JSC) +- Google [V8](http://code.google.com/p/v8) + +## Known Incompatibilities + +* Attempting to serialize the `arguments` object may produce inconsistent results across environments due to specification version differences. As a workaround, please convert the `arguments` object to an array first: `JSON.stringify([].slice.call(arguments, 0))`. + +## Required Native Methods + +JSON 3 assumes that the following methods exist and function as described in the ECMAScript specification: + +- The `Number`, `String`, `Array`, `Object`, `Date`, `SyntaxError`, and `TypeError` constructors. +- `String.fromCharCode` +- `Object#toString` +- `Function#call` +- `Math.floor` +- `Number#toString` +- `Date#valueOf` +- `String.prototype`: `indexOf`, `charCodeAt`, `charAt`, `slice`. +- `Array.prototype`: `push`, `pop`, `join`. + +# Contribute # + +Check out a working copy of the JSON 3 source code with [Git](http://git-scm.com/): + + $ git clone git://github.com/bestiejs/json3.git + $ cd json3 + +If you'd like to contribute a feature or bug fix, you can [fork](http://help.github.com/fork-a-repo/) JSON 3, commit your changes, and [send a pull request](http://help.github.com/send-pull-requests/). Please make sure to update the unit tests in the `test` directory as well. + +Alternatively, you can use the [GitHub issue tracker](https://github.com/bestiejs/json3/issues) to submit bug reports, feature requests, and questions, or send tweets to [@kitcambridge](http://twitter.com/kitcambridge). + +JSON 3 is released under the [MIT License](http://kit.mit-license.org/). diff --git a/www/lib/json3/bower.json b/www/lib/json3/bower.json new file mode 100644 index 00000000..7215dada --- /dev/null +++ b/www/lib/json3/bower.json @@ -0,0 +1,38 @@ +{ + "name": "json3", + "version": "3.3.2", + "main": "lib/json3.js", + "repository": { + "type": "git", + "url": "git://github.com/bestiejs/json3.git" + }, + "ignore": [ + ".*", + "**/.*", + "build.js", + "index.html", + "index.js", + "component.json", + "package.json", + "benchmark", + "page", + "test", + "vendor", + "tests" + ], + "homepage": "https://github.com/bestiejs/json3", + "description": "A modern JSON implementation compatible with nearly all JavaScript platforms", + "keywords": [ + "json", + "spec", + "ecma", + "es5", + "lexer", + "parser", + "stringify" + ], + "authors": [ + "Kit Cambridge " + ], + "license": "MIT" +} diff --git a/www/lib/json3/lib/json3.js b/www/lib/json3/lib/json3.js new file mode 100644 index 00000000..4817c9e7 --- /dev/null +++ b/www/lib/json3/lib/json3.js @@ -0,0 +1,902 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; + + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; + + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; + + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } + + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } + + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } + } + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; + } + + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); + }; + } + + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; + }; + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } + + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } + } + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } + } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; + + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; + + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; + } + result += useCharIndex ? symbols[index] : value.charAt(index); + } + } + return result + '"'; + }; + + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); + } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; + } else { + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); + } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; + } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; + + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); + } + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); + } + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); + }; + } + + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; + + // Internal: Stores the parser state. + var Index, Source; + + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; + + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } + } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); + } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; + + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); + } + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; + } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; + + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; + }; + } + } + + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); diff --git a/www/lib/json3/lib/json3.min.js b/www/lib/json3/lib/json3.min.js new file mode 100644 index 00000000..5f896fa0 --- /dev/null +++ b/www/lib/json3/lib/json3.min.js @@ -0,0 +1,17 @@ +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +(function(){function N(p,r){function q(a){if(q[a]!==w)return q[a];var c;if("bug-string-char-index"==a)c="a"!="a"[0];else if("json"==a)c=q("json-stringify")&&q("json-parse");else{var e;if("json-stringify"==a){c=r.stringify;var b="function"==typeof c&&s;if(b){(e=function(){return 1}).toJSON=e;try{b="0"===c(0)&&"0"===c(new t)&&'""'==c(new A)&&c(u)===w&&c(w)===w&&c()===w&&"1"===c(e)&&"[1]"==c([e])&&"[null]"==c([w])&&"null"==c(null)&&"[null,null,null]"==c([w,u,null])&&'{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'== +c({a:[e,!0,!1,null,"\x00\b\n\f\r\t"]})&&"1"===c(null,e)&&"[\n 1,\n 2\n]"==c([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==c(new C(-864E13))&&'"+275760-09-13T00:00:00.000Z"'==c(new C(864E13))&&'"-000001-01-01T00:00:00.000Z"'==c(new C(-621987552E5))&&'"1969-12-31T23:59:59.999Z"'==c(new C(-1))}catch(f){b=!1}}c=b}if("json-parse"==a){c=r.parse;if("function"==typeof c)try{if(0===c("0")&&!c(!1)){e=c('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');var n=5==e.a.length&&1===e.a[0];if(n){try{n=!c('"\t"')}catch(d){}if(n)try{n= +1!==c("01")}catch(g){}if(n)try{n=1!==c("1.")}catch(m){}}}}catch(X){n=!1}c=n}}return q[a]=!!c}p||(p=k.Object());r||(r=k.Object());var t=p.Number||k.Number,A=p.String||k.String,H=p.Object||k.Object,C=p.Date||k.Date,G=p.SyntaxError||k.SyntaxError,K=p.TypeError||k.TypeError,L=p.Math||k.Math,I=p.JSON||k.JSON;"object"==typeof I&&I&&(r.stringify=I.stringify,r.parse=I.parse);var H=H.prototype,u=H.toString,v,B,w,s=new C(-0xc782b5b800cec);try{s=-109252==s.getUTCFullYear()&&0===s.getUTCMonth()&&1===s.getUTCDate()&& +10==s.getUTCHours()&&37==s.getUTCMinutes()&&6==s.getUTCSeconds()&&708==s.getUTCMilliseconds()}catch(Q){}if(!q("json")){var D=q("bug-string-char-index");if(!s)var x=L.floor,M=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,c){return M[c]+365*(a-1970)+x((a-1969+(c=+(1d){c+="\\u00"+y(2,d.toString(16));break}c+=f?n[b]:a.charAt(b)}}return c+'"'},O=function(a,c,b,h,f,n,d){var g,m,k,l,p,r,s,t,q;try{g=c[a]}catch(z){}if("object"==typeof g&&g)if(m=u.call(g),"[object Date]"!=m||v.call(g, +"toJSON"))"function"==typeof g.toJSON&&("[object Number]"!=m&&"[object String]"!=m&&"[object Array]"!=m||v.call(g,"toJSON"))&&(g=g.toJSON(a));else if(g>-1/0&&g<1/0){if(E){l=x(g/864E5);for(m=x(l/365.2425)+1970-1;E(m+1,0)<=l;m++);for(k=x((l-E(m,0))/30.42);E(m,k+1)<=l;k++);l=1+l-E(m,k);p=(g%864E5+864E5)%864E5;r=x(p/36E5)%24;s=x(p/6E4)%60;t=x(p/1E3)%60;p%=1E3}else m=g.getUTCFullYear(),k=g.getUTCMonth(),l=g.getUTCDate(),r=g.getUTCHours(),s=g.getUTCMinutes(),t=g.getUTCSeconds(),p=g.getUTCMilliseconds(); +g=(0>=m||1E4<=m?(0>m?"-":"+")+y(6,0>m?-m:m):y(4,m))+"-"+y(2,k+1)+"-"+y(2,l)+"T"+y(2,r)+":"+y(2,s)+":"+y(2,t)+"."+y(3,p)+"Z"}else g=null;b&&(g=b.call(c,a,g));if(null===g)return"null";m=u.call(g);if("[object Boolean]"==m)return""+g;if("[object Number]"==m)return g>-1/0&&g<1/0?""+g:"null";if("[object String]"==m)return R(""+g);if("object"==typeof g){for(a=d.length;a--;)if(d[a]===g)throw K();d.push(g);q=[];c=n;n+=f;if("[object Array]"==m){k=0;for(a=g.length;k=b.length?b:b.slice(0,10));return O("",(l={},l[""]=a,l),f,n,h,"",[])}}if(!q("json-parse")){var V=A.fromCharCode,W={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},b,J,l=function(){b=J=null;throw G();},z=function(){for(var a=J,c=a.length,e,h,f,k,d;bd)l();else if(92==d)switch(d=a.charCodeAt(++b),d){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=W[d];b++;break;case 117:h=++b;for(f=b+4;b=d||97<=d&&102>=d||65<=d&&70>=d||l();e+=V("0x"+a.slice(h,b));break;default:l()}else{if(34==d)break;d=a.charCodeAt(b);for(h=b;32<=d&&92!=d&&34!=d;)d=a.charCodeAt(++b);e+=a.slice(h,b)}if(34==a.charCodeAt(b))return b++,e;l();default:h= +b;45==d&&(k=!0,d=a.charCodeAt(++b));if(48<=d&&57>=d){for(48==d&&(d=a.charCodeAt(b+1),48<=d&&57>=d)&&l();b=d);b++);if(46==a.charCodeAt(b)){for(f=++b;f=d);f++);f==b&&l();b=f}d=a.charCodeAt(b);if(101==d||69==d){d=a.charCodeAt(++b);43!=d&&45!=d||b++;for(f=b;f=d);f++);f==b&&l();b=f}return+a.slice(h,b)}k&&l();if("true"==a.slice(b,b+4))return b+=4,!0;if("false"==a.slice(b,b+5))return b+=5,!1;if("null"==a.slice(b, +b+4))return b+=4,null;l()}return"$"},P=function(a){var c,b;"$"==a&&l();if("string"==typeof a){if("@"==(D?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(c=[];;b||(b=!0)){a=z();if("]"==a)break;b&&(","==a?(a=z(),"]"==a&&l()):l());","==a&&l();c.push(P(a))}return c}if("{"==a){for(c={};;b||(b=!0)){a=z();if("}"==a)break;b&&(","==a?(a=z(),"}"==a&&l()):l());","!=a&&"string"==typeof a&&"@"==(D?a.charAt(0):a[0])&&":"==z()||l();c[a.slice(1)]=P(z())}return c}l()}return a},T=function(a,b,e){e=S(a,b,e);e=== +w?delete a[b]:a[b]=e},S=function(a,b,e){var h=a[b],f;if("object"==typeof h&&h)if("[object Array]"==u.call(h))for(f=h.length;f--;)T(h,f,e);else B(h,function(a){T(h,a,e)});return e.call(a,b,h)};r.parse=function(a,c){var e,h;b=0;J=""+a;e=P(z());"$"!=z()&&l();b=J=null;return c&&"[object Function]"==u.call(c)?S((h={},h[""]=e,h),"",c):e}}}r.runInContext=N;return r}var K=typeof define==="function"&&define.amd,F={"function":!0,object:!0},G=F[typeof exports]&&exports&&!exports.nodeType&&exports,k=F[typeof window]&& +window||this,t=G&&F[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;!t||t.global!==t&&t.window!==t&&t.self!==t||(k=t);if(G&&!K)N(k,G);else{var L=k.JSON,Q=k.JSON3,M=!1,A=N(k,k.JSON3={noConflict:function(){M||(M=!0,k.JSON=L,k.JSON3=Q,L=Q=null);return A}});k.JSON={parse:A.parse,stringify:A.stringify}}K&&define(function(){return A})}).call(this); diff --git a/www/lib/lodash/.bower.json b/www/lib/lodash/.bower.json new file mode 100644 index 00000000..f8119955 --- /dev/null +++ b/www/lib/lodash/.bower.json @@ -0,0 +1,33 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ], + "homepage": "https://github.com/lodash/lodash", + "_release": "2.4.1", + "_resolution": { + "type": "version", + "tag": "2.4.1", + "commit": "c7aa842eded639d6d90a5714d3195a8802c86687" + }, + "_source": "git://github.com/lodash/lodash.git", + "_target": "~2.4.1", + "_originalSource": "lodash" +} \ No newline at end of file diff --git a/www/lib/lodash/LICENSE.txt b/www/lib/lodash/LICENSE.txt new file mode 100644 index 00000000..49869bba --- /dev/null +++ b/www/lib/lodash/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2013 The Dojo Foundation +Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/www/lib/lodash/bower.json b/www/lib/lodash/bower.json new file mode 100644 index 00000000..a6f139d7 --- /dev/null +++ b/www/lib/lodash/bower.json @@ -0,0 +1,23 @@ +{ + "name": "lodash", + "version": "2.4.1", + "main": "dist/lodash.compat.js", + "ignore": [ + ".*", + "*.custom.*", + "*.template.*", + "*.map", + "*.md", + "/*.min.*", + "/lodash.js", + "index.js", + "component.json", + "package.json", + "doc", + "modularize", + "node_modules", + "perf", + "test", + "vendor" + ] +} diff --git a/www/lib/moment/moment.js b/www/lib/moment/moment.js new file mode 100644 index 00000000..c003e95f --- /dev/null +++ b/www/lib/moment/moment.js @@ -0,0 +1,3606 @@ +//! moment.js +//! version : 2.11.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + function isUndefined(input) { + return input === void 0; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + // internal storage for locale config files + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function get_set__set (mom, unit, value) { + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + return isArray(this._months) ? this._months[m.month()] : + this._months[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')$', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')$', 'i'); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + //the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(utils_hooks__hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to begining of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + if (!valid__isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(utils_hooks__hooks.now()); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return valid__createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = ((string || '').match(matcher) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + } else if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(matchOffset, this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this > +localInput; + } else { + return +localInput < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return +this < +localInput; + } else { + return +this.clone().endOf(units) < +localInput; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : local__createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + return +this === +localInput; + } else { + inputMs = +localInput; + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input,units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input,units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + delta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + local__createLocal(time).isValid())) { + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // JSON.stringify(new Date(NaN)) === 'null' + return this.isValid() ? this.toISOString() : 'null'; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + // console.log("got", weekYear, week, weekday, "set", date.toISOString()); + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = local__createLocal([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isSameOrAfter = isSameOrAfter; + momentPrototype__proto.isSameOrBefore = isSameOrBefore; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = toJSON; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + momentPrototype__proto.creationData = creationData; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + prototype__proto._monthsRegex = defaultMonthsRegex; + prototype__proto.monthsRegex = monthsRegex; + prototype__proto._monthsShortRegex = defaultMonthsShortRegex; + prototype__proto.monthsShortRegex = monthsShortRegex; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.11.1'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.now = now; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + utils_hooks__hooks.prototype = momentPrototype; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/www/robots.txt b/www/robots.txt new file mode 100644 index 00000000..94174950 --- /dev/null +++ b/www/robots.txt @@ -0,0 +1,3 @@ +# robotstxt.org + +User-agent: * diff --git a/www/scripts/app.js b/www/scripts/app.js new file mode 100644 index 00000000..057cc822 --- /dev/null +++ b/www/scripts/app.js @@ -0,0 +1,249 @@ +// 'use strict'; + +/** + * @ngdoc overview + * @name livewellApp + * @description + * # livewellApp + * + * Main module of the application. + */ +angular + .module('livewellApp', [ + 'ngAnimate', + 'ngCookies', + 'ngResource', + 'ngRoute', + 'ngSanitize', + 'ngTouch', + 'highcharts-ng', + 'angularMoment' + ]) + .config(function ($routeProvider) { + $routeProvider + .when('/', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/main', { + templateUrl: 'views/main.html', + controller: 'MainCtrl' + }) + .when('/about', { + templateUrl: 'views/about.html', + controller: 'AboutCtrl' + }) + .when('/foundations', { + templateUrl: 'views/foundations.html', + controller: 'FoundationsCtrl' + }) + .when('/checkins', { + templateUrl: 'views/checkins.html', + controller: 'CheckinsCtrl' + }) + .when('/daily_review', { + templateUrl: 'views/daily_review.html', + controller: 'DailyReviewCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness/:section', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/wellness', { + templateUrl: 'views/wellness.html', + controller: 'WellnessCtrl' + }) + .when('/instructions', { + templateUrl: 'views/instructions.html', + controller: 'InstructionsCtrl' + }) + .when('/daily_review_summary', { + templateUrl: 'views/daily_review_summary.html', + controller: 'DailyReviewSummaryCtrl' + }) + .when('/daily_review_conclusion', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/daily_review_conclusion/:intervention_set/:id', { + templateUrl: 'views/daily_review_conclusion.html', + controller: 'DailyReviewConclusionCtrl' + }) + .when('/medications', { + templateUrl: 'views/medications.html', + controller: 'MedicationsCtrl' + }) + .when('/skills', { + templateUrl: 'views/skills.html', + controller: 'SkillsCtrl' + }) + .when('/team', { + templateUrl: 'views/team.html', + controller: 'TeamCtrl' + }) + .when('/intervention', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/intervention/:code', { + templateUrl: 'views/intervention.html', + controller: 'InterventionCtrl' + }) + .when('/exit', { + templateUrl: 'views/exit.html', + controller: 'ExitCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/weekly_check_in', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/weekly_check_in/:questionIndex', { + templateUrl: 'views/weekly_check_in.html', + controller: 'WeeklyCheckInCtrl' + }) + .when('/daily_check_in', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/daily_check_in/:id', { + templateUrl: 'views/daily_check_in.html', + controller: 'DailyCheckInCtrl' + }) + .when('/settings', { + templateUrl: 'views/settings.html', + controller: 'SettingsCtrl' + }) + .when('/localStorageBackupRestore', { + templateUrl: 'views/localstoragebackuprestore.html', + controller: 'LocalstoragebackuprestoreCtrl' + }) + .when('/cms', { + templateUrl: 'views/cms.html', + controller: 'CmsCtrl' + }) + .when('/admin', { + templateUrl: 'views/admin.html', + controller: 'AdminCtrl' + }) + .when('/load_interventions', { + templateUrl: 'views/load_interventions.html', + controller: 'LoadInterventionsCtrl' + }) + .when('/lesson_player/:id', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/lesson_player/:id/:post', { + templateUrl: 'views/lesson_player.html', + controller: 'LessonPlayerCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/skills_awareness', { + templateUrl: 'views/skills_awareness.html', + controller: 'SkillsAwarenessCtrl' + }) + .when('/skills_lifestyle', { + templateUrl: 'views/skills_lifestyle.html', + controller: 'SkillsLifestyleCtrl' + }) + .when('/skills_coping', { + templateUrl: 'views/skills_coping.html', + controller: 'SkillsCopingCtrl' + }) + .when('/skills_team', { + templateUrl: 'views/skills_team.html', + controller: 'SkillsTeamCtrl' + }) + .when('/skills_fundamentals', { + templateUrl: 'views/skills_fundamentals.html', + controller: 'SkillsFundamentalsCtrl' + }) + .when('/ews', { + templateUrl: 'views/ews.html', + controller: 'EwsCtrl' + }) + .when('/ews2', { + templateUrl: 'views/ews2.html', + controller: 'Ews2Ctrl' + }) + .when('/schedule', { + templateUrl: 'views/schedule.html', + controller: 'ScheduleCtrl' + }) + .when('/summary_player', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/summary_player/:id/:post', { + templateUrl: 'views/summary_player.html', + controller: 'SummaryPlayerCtrl' + }) + .when('/load_interventions_review', { + templateUrl: 'views/load_interventions_review.html', + controller: 'LoadInterventionsReviewCtrl' + }) + .when('/mySkills', { + templateUrl: 'views/myskills.html', + controller: 'MyskillsCtrl' + }) + .when('/charts', { + templateUrl: 'views/charts.html', + controller: 'ChartsCtrl' + }) + .when('/chartsMedication', { + templateUrl: 'views/chartsmedication.html', + controller: 'ChartsmedicationCtrl' + }) + .when('/chartsSleep', { + templateUrl: 'views/chartssleep.html', + controller: 'ChartssleepCtrl' + }) + .when('/chartsRoutine', { + templateUrl: 'views/chartsroutine.html', + controller: 'ChartsroutineCtrl' + }) + .when('/chartsActivity', { + templateUrl: 'views/chartsactivity.html', + controller: 'ChartsactivityCtrl' + }) + .when('/dailyReviewTester', { + templateUrl: 'views/dailyreviewtester.html', + controller: 'DailyreviewtesterCtrl' + }) + .when('/personalSnapshot', { + templateUrl: 'views/personalsnapshot.html', + controller: 'PersonalsnapshotCtrl' + }) + .when('/home', { + templateUrl: 'views/home.html', + controller: 'HomeCtrl' + }) + .when('/usereditor', { + templateUrl: 'views/usereditor.html', + controller: 'UsereditorCtrl' + }) + .otherwise({ + redirectTo: '/' + }); + }).run(function($rootScope) { + +}); diff --git a/www/scripts/controllers/about.js b/www/scripts/controllers/about.js new file mode 100644 index 00000000..7e72299c --- /dev/null +++ b/www/scripts/controllers/about.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AboutCtrl + * @description + * # AboutCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AboutCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/www/scripts/controllers/admin.js b/www/scripts/controllers/admin.js new file mode 100644 index 00000000..03b340f1 --- /dev/null +++ b/www/scripts/controllers/admin.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AdminCtrl + * @description + * # AdminCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AdminCtrl', function ($scope,Questions) { + + }); diff --git a/www/scripts/controllers/awareness.js b/www/scripts/controllers/awareness.js new file mode 100644 index 00000000..883f8e80 --- /dev/null +++ b/www/scripts/controllers/awareness.js @@ -0,0 +1,50 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:AwarenessCtrl + * @description + * # AwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('AwarenessCtrl', function ($scope,UserData) { + + //awareness variables + $scope.awareness = UserData.query('awareness'); + $scope.intervention_anchors = UserData.query('anchors'); + $scope.plan = UserData.query('plan'); + + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + + $scope.loadAnchors = function(){ + $scope.showAnchors = true; + $scope.showAction = false; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-anchors').addClass('btn-active'); + } + + $scope.loadAction = function(){ + $scope.showAnchors = false; + $scope.showAction = true; + $scope.showPlan = false; + $('.awareness-btn').removeClass('btn-active'); + $('#load-action').addClass('btn-active'); + } + + $scope.loadPlan = function(){ + $scope.showAnchors = false; + $scope.showAction = false; + $scope.showPlan = true; + $('.awareness-btn').removeClass('btn-active'); + $('#load-plan').addClass('btn-active'); + } + + + }); diff --git a/www/scripts/controllers/backup b/www/scripts/controllers/backup new file mode 100644 index 00000000..d87a458c --- /dev/null +++ b/www/scripts/controllers/backup @@ -0,0 +1 @@ +"{\"awareness\":\"[{\\\"userId\\\":\\\"test\\\",\\\"order\\\":3,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"+2\\\",\\\"name\\\":\\\"Mild Up\\\",\\\"id\\\":\\\"cdd38c91ddf29885\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":4,\\\"value\\\":\\\"+1\\\",\\\"name\\\":\\\"Slight Up\\\",\\\"id\\\":\\\"d612cfee454b4a2a\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":5,\\\"value\\\":\\\"0\\\",\\\"name\\\":\\\"Balanced\\\",\\\"id\\\":\\\"83b912bed2eee8cd\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":6,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-1\\\",\\\"name\\\":\\\"Slight Down\\\",\\\"id\\\":\\\"529da655f43f3853\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":7,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-2\\\",\\\"name\\\":\\\"Mild Down\\\",\\\"id\\\":\\\"186ca99b9fa64874\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":8,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-3\\\",\\\"name\\\":\\\"Moderate Down\\\",\\\"id\\\":\\\"a4737da1b0cb1b0f\\\"},{\\\"userId\\\":\\\"test\\\",\\\"order\\\":9,\\\"response\\\":\\\"\\\",\\\"value\\\":\\\"-4\\\",\\\"name\\\":\\\"Severe Down\\\",\\\"id\\\":\\\"07f10ba389bdf871\\\"},{\\\"name\\\":\\\"Severe Up\\\",\\\"order\\\":1,\\\"response\\\":\\\"Crisis, call 911\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+4\\\",\\\"id\\\":\\\"bc86889da8728a75\\\"},{\\\"name\\\":\\\"Moderate Up\\\",\\\"order\\\":2,\\\"response\\\":\\\"Work closely with your psychiatrist\\\",\\\"userId\\\":\\\"test\\\",\\\"value\\\":\\\"+3\\\",\\\"id\\\":\\\"bf79863b86ad795f\\\"}]\",\"medications\":\"[{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Paxil\\\",\\\"dose\\\":\\\"30mg\\\",\\\"when\\\":\\\"twice daily\\\",\\\"id\\\":\\\"1207f5105ded9947\\\"},{\\\"userId\\\":\\\"test\\\",\\\"name\\\":\\\"Havidol\\\",\\\"dose\\\":\\\"100g\\\",\\\"when\\\":\\\"every 5 minutes\\\",\\\"id\\\":\\\"1e3cf5b135943a7d\\\"}]\",\"pound\":\"[\\\"user\\\",\\\"pound\\\"]\",\"questioncriteria\":\"[{\\\"levelOrder\\\":\\\"1\\\",\\\"levelOrderValue\\\":\\\"1\\\",\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"section\\\":\\\"medication\\\",\\\"id\\\":\\\"0b60522013b62834\\\"}]\",\"questionresponses\":\"[{\\\"label\\\":\\\"Not at all\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"6f04febc1dcd9901\\\"},{\\\"label\\\":\\\"Several days\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"06baf3eab84568a9\\\"},{\\\"label\\\":\\\"More than half the days\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"2255a56c9a5d7840\\\"},{\\\"label\\\":\\\"Nearly every day\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responseGroupLabel\\\":\\\"phq9\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"2b8171b28d4a9872\\\"},{\\\"label\\\":\\\" I often feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"dcbcb90d9073f8b9\\\"},{\\\"label\\\":\\\" I feel happier or more cheerful than usual most of the time.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"e788aab4046c2bcb\\\"},{\\\"label\\\":\\\"I feel happier or more cheerful than usual all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"7e6bdf02e6c088d5\\\"},{\\\"label\\\":\\\" I occasionally feel happier or more cheerful than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"responseGroupLabel\\\":\\\"amrs1\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"8afbd4f2cb39a841\\\"},{\\\"label\\\":\\\" I occasionally feel more self-confident than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"9b55a9e0c9e35a08\\\"},{\\\"label\\\":\\\" I often feel more self-confident than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"3b32f497db74d831\\\"},{\\\"label\\\":\\\" I feel more self-confident than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"b82d2f1d064b39f5\\\"},{\\\"label\\\":\\\" I feel extremely self-confident all of the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"responseGroupLabel\\\":\\\"amrs2\\\",\\\"value\\\":\\\" 3\\\",\\\"id\\\":\\\"e9634a047324d807\\\"},{\\\"label\\\":\\\" I occasionally talk more than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"248dd7f49401b816\\\"},{\\\"label\\\":\\\" I occasionally need less sleep than usual\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"26daf6c957e1d83b\\\"},{\\\"label\\\":\\\" I frequently need less sleep than usual\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"c6b337238dac09cb\\\"},{\\\"label\\\":\\\" I often need less sleep than usual\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"a5938f5841d23a8d\\\"},{\\\"label\\\":\\\" I can go all day and night without any sleep and still not feel tired.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"responseGroupLabel\\\":\\\"amrs3\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"dd04b42fb498a867\\\"},{\\\"label\\\":\\\" I talk constantly and cannot be interrupted.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"95c03e5561173858\\\"},{\\\"label\\\":\\\" I frequently talk more than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"31d48584769878d1\\\"},{\\\"label\\\":\\\" I often talk more than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"responseGroupLabel\\\":\\\"amrs4\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"ee97165355d88836\\\"},{\\\"label\\\":\\\" I have occasionally been more active than usual.\\\",\\\"order\\\":\\\"1\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"0\\\",\\\"id\\\":\\\"bbfc7642a646194e\\\"},{\\\"label\\\":\\\" I have often been more active than usual.\\\",\\\"order\\\":\\\"2\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"1\\\",\\\"id\\\":\\\"d62f39be9109c8fe\\\"},{\\\"label\\\":\\\" I have frequently been more active than usual.\\\",\\\"order\\\":\\\"3\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"2\\\",\\\"id\\\":\\\"d1c802de87aefa16\\\"},{\\\"label\\\":\\\" I am constantly active or on the go all the time.\\\",\\\"order\\\":\\\"4\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"responseGroupLabel\\\":\\\"amrs5\\\",\\\"value\\\":\\\"3\\\",\\\"id\\\":\\\"b1121bbd24aaf9e7\\\"},{\\\"responseGroupId\\\":\\\"a1\\\",\\\"responseGroupLabel\\\":\\\"a1\\\",\\\"order\\\":\\\"1\\\",\\\"label\\\":\\\"Page 1\\\",\\\"value\\\":\\\"1\\\",\\\"goToCriteria\\\":\\\"\\\",\\\"id\\\":\\\"d5ba075d4538bbac\\\"}]\",\"questions\":\"[{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING DOWN, DEPRESSED, OR HOPELESS?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"phq2\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"07189e9eea498a07\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by a POOR APPETITE OR OVEREATING?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"phq5\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"d4c04f0d4f0e0bc7\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING BAD ABOUT YOURSELF - OR THAT YOU ARE A FAILURE OR HAVE LET YOURSELF OR YOUR FAMILY DOWN?\\\",\\\"order\\\":6,\\\"questionDataLabel\\\":\\\"phq6\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"a1d7af08b11de878\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE CONCENTRATING ON THINGS, SUCH AS READING THE NEWSPAPER OR WATCHING TELEVISION?\\\",\\\"order\\\":7,\\\"questionDataLabel\\\":\\\"phq7\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"c317fef4e47308d2\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by MOVING OR SPEAKING SO SLOWLY THAT OTHER PEOPLE COULD HAVE NOTICED? OR THE OPPOSITE - BEING SO FIDGETY OR RESTLESS THAT YOU HAVE BEEN MOVING AROUND A LOT MORE THAN USUAL?\\\",\\\"order\\\":8,\\\"questionDataLabel\\\":\\\"phq8\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"3144ed93440c28ec\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by THOUGHTS THAT YOU WOULD BE BETTER OFF DEAD, OR OF HURTING YOURSELF?\\\",\\\"order\\\":9,\\\"questionDataLabel\\\":\\\"phq9\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"decf5d36ced538d0\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by TROUBLE FALLING OR STAYING ASLEEP, OR SLEEPING TOO MUCH?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"phq3\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"2bbfc1e863d4b98a\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by LITTLE INTEREST OR PLEASURE IN DOING THINGS?\\\",\\\"order\\\":1,\\\"questionDataLabel\\\":\\\"phq1\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"responses\\\":\\\"{}\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"f99a845eea530b2c\\\"},{\\\"content\\\":\\\"Over the past week, how often have you been bothered by FEELING TIRED OR HAVING LITTLE ENERGY?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"phq4\\\",\\\"questionGroup\\\":\\\"phq9\\\",\\\"required\\\":\\\"required\\\",\\\"responseGroupId\\\":\\\"phq9\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"4632c4b2ab01d86a\\\"},{\\\"questionGroup\\\":\\\"phq9\\\",\\\"order\\\":0,\\\"type\\\":\\\"html\\\",\\\"content\\\":\\\"

Welcome to the Weekly Check-In!

\\\",\\\"questionDataLabel\\\":\\\"\\\",\\\"responseGroupId\\\":\\\"\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"d485d4c8d859f8cc\\\"},{\\\"questionGroup\\\":\\\"amrs\\\",\\\"order\\\":1,\\\"type\\\":\\\"radio\\\",\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"questionDataLabel\\\":\\\"amrs1\\\",\\\"responseGroupId\\\":\\\"amrs1\\\",\\\"required\\\":\\\"\\\",\\\"id\\\":\\\"90c7b6d682c7187f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":2,\\\"questionDataLabel\\\":\\\"amrs2\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs2\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"430194fe140b18e8\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":3,\\\"questionDataLabel\\\":\\\"amrs4\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs4\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"ba2637d288da182f\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":4,\\\"questionDataLabel\\\":\\\"amrs3\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs3\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"23fae8ba4842c866\\\"},{\\\"content\\\":\\\"Which statement best describes the way you have been feeling?\\\",\\\"order\\\":5,\\\"questionDataLabel\\\":\\\"amrs5\\\",\\\"questionGroup\\\":\\\"amrs\\\",\\\"responseGroupId\\\":\\\"amrs5\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"53c964a687dff873\\\"},{\\\"content\\\":\\\"Where should I go next\\\",\\\"hideBackButton\\\":true,\\\"hideNextButton\\\":true,\\\"order\\\":1,\\\"questionCriteriaId\\\":\\\"a1\\\",\\\"questionDataLabel\\\":\\\"a1\\\",\\\"questionGroup\\\":\\\"cyoa\\\",\\\"responseGroupId\\\":\\\"a\\\",\\\"showBackButton\\\":\\\"false\\\",\\\"showNextButton\\\":\\\"false\\\",\\\"type\\\":\\\"radio\\\",\\\"id\\\":\\\"aed39f2a638cbb1c\\\"}]\",\"responsecriteria\":\"[]\",\"smarts\":\"[]\",\"staticcontent\":\"[{\\\"content\\\":\\\"Put in awesome text to teach people about livewell\\\",\\\"dateTimeUpdated\\\":\\\"NOW\\\",\\\"sectionKey\\\":\\\"instructions\\\",\\\"id\\\":\\\"fba0d88650522987\\\"}]\",\"team\":\"[{\\\"name\\\":\\\"Donatella Jackson\\\",\\\"role\\\":\\\"Nurse\\\",\\\"phone\\\":\\\"555.555.5555\\\",\\\"userId\\\":\\\"test\\\",\\\"id\\\":\\\"3e6ac0f8ce202a51\\\"}]\",\"user\":\"[{\\\"id\\\":1,\\\"userID\\\":null,\\\"groupID\\\":null,\\\"loginKey\\\":null,\\\"created_at\\\":\\\"2014-09-18T22:29:39.609Z\\\"}]\",\"userresponses\":\"[]\"}" \ No newline at end of file diff --git a/www/scripts/controllers/charts.js b/www/scripts/controllers/charts.js new file mode 100644 index 00000000..b46fb271 --- /dev/null +++ b/www/scripts/controllers/charts.js @@ -0,0 +1,192 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ChartsactivityCtrl + * @description + * # ChartsactivityCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ChartsCtrl', function($scope, $timeout,Pound) { + + $scope.pageTitle = 'My Charts'; + + + $timeout(function(){$('td').tooltip()}); + + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn'); + $scope.recodedResponses = JSON.parse(localStorage['recodedResponses']); + $scope.timezoneoffset = new Date().getTimezoneOffset() / 60; + + $scope.graph = [] + if ($scope.dailyCheckInResponseArray.length > 7) { + $scope.graph[6] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]; + $scope.graph[5] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]; + $scope.graph[4] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]; + $scope.graph[3] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]; + $scope.graph[2] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]; + $scope.graph[1] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]; + $scope.graph[0] = $scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]; + } else { + $scope.graph = $scope.dailyCheckInResponseArray; + } + + console.log($scope.graph); + + $scope.wellness = []; + $scope.dates = []; + + for (var i = 0; i < $scope.graph.length; i++) { + debugger; + $scope.wellness.push(parseInt($scope.graph[i].wellness)); + $scope.dates.push(moment($scope.graph[i].created_at).format('MM-DD')); + } + + + + $scope.routine = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','missed two']; + break; + case 1: + returnvalue = ['b','missed one']; + break; + case 2: + returnvalue = ['a','in range']; + break; + } + return returnvalue + } + }; + + $scope.medication = { + class: function(value) { + var returnvalue = null; + switch (value) { + case 0: + returnvalue = ['c','took none']; + break; + case 0.5: + returnvalue = ['b','took some']; + break; + case 1: + returnvalue = ['a','took all']; + break; + } + return returnvalue + } + }; + + $scope.sleep = { + class: function(value) { + var returnvalue = null; + + switch (value) { + case -1: + returnvalue = ['c','too little']; + break; + case -0.5: + returnvalue = ['b','too little']; + break; + case 0: + returnvalue = ['a','in range']; + break; + case .5: + returnvalue = ['b','too much']; + break; + case 1: + returnvalue = ['c','too much']; + break; + } + + return returnvalue + } + }; + + + + + Highcharts.theme = { + exporting: { + enabled: false + }, + chart: { + backgroundColor: 'transparent', + style: { + fontFamily: "sans-serif" + }, + plotBorderColor: '#606063' + }, + yAxis: { + max:3, + min:-3, + gridLineColor: '#707073', + labels: { + style: { + color: '#E0E0E3' + } + }, + lineColor: 'white', + minorGridLineColor: '#505053', + minorGridLineWidth: '1.5', + tickColor: '#707073', + }, + // special colors for some of the + legendBackgroundColor: 'rgba(0, 0, 0, 0.5)', + background2: '#505053', + dataLabelsColor: '#B0B0B3', + textColor: '#C0C0C0', + contrastTextColor: '#F0F0F3', + maskColor: 'rgba(255,255,255,0.3)' + }; + + Highcharts.setOptions(Highcharts.theme); + + $scope.config = { + title: { + text: ' ', + x: -20, //center, + enabled: false + }, + subtitle: { + text: '', + x: -20 + }, + xAxis: { + categories: $scope.dates + }, + yAxis: { + title: { + text: '' + }, + plotLines: [{ + value: 0, + width: 1.5, + color: 'white' + }], + labels: { + enabled: false + } + }, + tooltip: { + valueSuffix: '', + enabled: false + }, + legend: { + layout: 'vertical', + align: 'right', + verticalAlign: 'middle', + borderWidth: 0, + enabled: false + }, + series: [{ + showInLegend: false, + name: 'Wellness', + data: $scope.wellness + }] + }; + }); \ No newline at end of file diff --git a/www/scripts/controllers/checkins.js b/www/scripts/controllers/checkins.js new file mode 100644 index 00000000..a65a9f33 --- /dev/null +++ b/www/scripts/controllers/checkins.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CheckinsCtrl + * @description + * # CheckinsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('CheckinsCtrl', function ($scope, $location) { + $scope.pageTitle = 'Check Ins'; + + + + }); diff --git a/www/scripts/controllers/cms.js b/www/scripts/controllers/cms.js new file mode 100644 index 00000000..48226abc --- /dev/null +++ b/www/scripts/controllers/cms.js @@ -0,0 +1,70 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:CmsCtrl + * @description + * # CmsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('CmsCtrl', function ($scope,Questions) { + + + $scope.formFieldTypes = ['checkbox','radio','html','text','textarea','select','email','time','phone','url']; + + $scope.questionGroups = Questions.uniqueQuestionGroups(); + $scope.questions = Questions.questions; + $scope.responses = Questions.responses; + $scope.questionCriteria = Questions.questionCriteria; + $scope.responseCriteria = Questions.responseCriteria; + + console.log(Questions); + + $scope.viewTypes = [{name:'Table', value:'table'},{name:'Map', value:'map'}]; + $scope.viewType = 'table'; + $scope.questionGroup = 'cyoa'; + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + + $scope.showGroup = function(){ + $scope.selectedQuestions = _.sortBy(Questions.query($scope.questionGroup),'questionGroup'); + console.log($scope.selectedQuestions); + + } + +$scope.editResponses = function(id){ + $scope.modalTitle = 'Edit Responses'; + $scope.responseGroupId = id; + $scope.showResponses = _.where($scope.responses,{responseGroupId:$scope.responseGroupId}); + $scope.uniqueResponseGroups = _.pluck(_.uniq($scope.responses,'responseGroupId'),'responseGroupId'); + $scope.goesToOptions = $scope.selectedQuestions; + $("#responseModal").modal(); +} + +$scope.saveResponses = function(id){ + $("#responseModal").modal('toggle'); + Questions.save('responses',$scope.responses); + Questions.save('responseCriteria',$scope.responseCriteria); +} + + + +$scope.editQuestion = function(id){ + +} + +$scope.addQuestion = function(id){ + +} +$scope.deleteQuestion = function(id){ + +} + +$scope.editCriteria = function(id){ + +} + + + + +}); \ No newline at end of file diff --git a/www/scripts/controllers/daily_check_in.js b/www/scripts/controllers/daily_check_in.js new file mode 100644 index 00000000..3076cfa5 --- /dev/null +++ b/www/scripts/controllers/daily_check_in.js @@ -0,0 +1,500 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyCheckInCtrl + * @description + * # DailyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyCheckInCtrl', function($scope, $location, $routeParams, Pound, Guid) { + $scope.pageTitle = 'Daily Check In'; + + $scope.dailyCheckIn = { + gotUp: '', + toBed: '', + wellness: '', + medications: '', + startTime: new Date() + }; + + $scope.emergency = false; + + $scope.warningPhoneNumber = null; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0] != undefined) { + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + } else { + $scope.phoneNumber = '312-503-1886'; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachNumber = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].phone; + } else { + $scope.coachNumber = '312-503-1886'; + } + + $scope.responses = [{ + order: 1, + callCoach: true, + response: '-4', + label: '-4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a -4, if this is correct, close and press submit.' + }, { + order: 2, + callCoach: false, + response: '-3', + label: '-3', + tailoredMessage: 'some message' + }, { + order: 3, + callCoach: false, + response: '-2', + label: '-2', + tailoredMessage: 'some message' + }, { + order: 4, + callCoach: false, + response: '-1', + label: '-1', + tailoredMessage: 'some message' + }, { + order: 5, + callCoach: false, + response: '0', + label: '0', + tailoredMessage: 'some message' + }, { + order: 6, + callCoach: false, + response: '1', + label: '+1', + tailoredMessage: 'some message' + }, { + order: 7, + callCoach: false, + response: '2', + label: '+2', + tailoredMessage: 'some message' + }, { + order: 8, + callCoach: false, + response: '3', + label: '+3', + tailoredMessage: 'some message' + }, { + order: 9, + callCoach: true, + response: '4', + label: '+4', + tailoredMessage: 'some message', + warningMessage: 'You rated yourself as being in a crisis with a +4, if this is correct, close and press submit.' + }]; + + $scope.times = [{ + value: "0000", + label: "12:00AM" + }, { + value: "0030", + label: "12:30AM" + }, { + value: "0100", + label: "1:00AM" + }, { + value: "0130", + label: "1:30AM" + }, { + value: "0200", + label: "2:00AM" + }, { + value: "0230", + label: "2:30AM" + }, { + value: "0300", + label: "3:00AM" + }, { + value: "0330", + label: "3:30AM" + }, { + value: "0400", + label: "4:00AM" + }, { + value: "0430", + label: "4:30AM" + }, { + value: "0500", + label: "5:00AM" + }, { + value: "0530", + label: "5:30AM" + }, { + value: "0600", + label: "6:00AM" + }, { + value: "0630", + label: "6:30AM" + }, { + value: "0700", + label: "7:00AM" + }, { + value: "0730", + label: "7:30AM" + }, { + value: "0800", + label: "8:00AM" + }, { + value: "0830", + label: "8:30AM" + }, { + value: "0900", + label: "9:00AM" + }, { + value: "0930", + label: "9:30AM" + }, { + value: "1000", + label: "10:00AM" + }, { + value: "1030", + label: "10:30AM" + }, { + value: "1100", + label: "11:00AM" + }, { + value: "1130", + label: "11:30AM" + }, { + value: "1200", + label: "12:00PM" + }, { + value: "1230", + label: "12:30PM" + }, { + value: "1300", + label: "1:00PM" + }, { + value: "1330", + label: "1:30PM" + }, { + value: "1400", + label: "2:00PM" + }, { + value: "1430", + label: "2:30PM" + }, { + value: "1500", + label: "3:00PM" + }, { + value: "1530", + label: "3:30PM" + }, { + value: "1600", + label: "4:00PM" + }, { + value: "1630", + label: "4:30PM" + }, { + value: "1700", + label: "5:00PM" + }, { + value: "1730", + label: "5:30PM" + }, { + value: "1800", + label: "6:00PM" + }, { + value: "1830", + label: "6:30PM" + }, { + value: "1900", + label: "7:00PM" + }, { + value: "1930", + label: "7:30PM" + }, { + value: "2000", + label: "8:00PM" + }, { + value: "2030", + label: "8:30PM" + }, { + value: "2100", + label: "9:00PM" + }, { + value: "2130", + label: "9:30PM" + }, { + value: "2200", + label: "10:00PM" + }, { + value: "2230", + label: "10:30PM" + }, { + value: "2300", + label: "11:00PM" + }, { + value: "2330", + label: "11:30PM" + }]; + + $scope.hours = [{ + value: "0", + label: "0 hrs" + }, { + value: "0.5", + label: "0.5 hrs" + }, { + value: "1", + label: "1 hrs" + }, { + value: "1.5", + label: "1.5 hrs" + }, { + value: "2", + label: "2 hrs" + }, { + value: "2.5", + label: "2.5 hrs" + }, { + value: "3", + label: "3 hrs" + }, { + value: "3.5", + label: "3.5 hrs" + }, { + value: "4", + label: "4 hrs" + }, { + value: "4.5", + label: "4.5 hrs" + }, { + value: "5", + label: "5 hrs" + }, { + value: "5.5", + label: "5.5 hrs" + }, { + value: "6", + label: "6 hrs" + }, { + value: "6.5", + label: "6.5 hrs" + }, { + value: "7", + label: "7 hrs" + }, { + value: "7.5", + label: "7.5 hrs" + }, { + value: "8", + label: "8 hrs" + }, { + value: "8.5", + label: "8.5 hrs" + }, { + value: "9", + label: "9 hrs" + }, { + value: "9.5", + label: "9.5 hrs" + }, { + value: "10", + label: "10 hrs" + }, { + value: "10.5", + label: "10.5 hrs" + }, { + value: "11", + label: "11 hrs" + }, { + value: "11.5", + label: "11.5 hrs" + }, { + value: "12", + label: "12 hrs" + }, { + value: "12.5", + label: "12.5 hrs" + }, { + value: "13", + label: "13 hrs" + }, { + value: "13.5", + label: "13.5 hrs" + }, { + value: "14", + label: "14 hrs" + }, { + value: "14.5", + label: "14.5 hrs" + }, { + value: "15", + label: "15 hrs" + }, { + value: "15.5", + label: "15.5 hrs" + }, { + value: "16", + label: "16 hrs" + }, { + value: "16.5", + label: "16.5 hrs" + }, { + value: "17", + label: "17 hrs" + }, { + value: "17.5", + label: "17.5 hrs" + }, { + value: "18", + label: "18 hrs" + }, { + value: "18.5", + label: "18.5 hrs" + }, { + value: "19", + label: "19 hrs" + }, { + value: "19.5", + label: "19.5 hrs" + }, { + value: "20", + label: "20 hrs" + }, { + value: "20.5", + label: "20.5 hrs" + }, { + value: "21", + label: "21 hrs" + }, { + value: "21.5", + label: "21.5 hrs" + }, { + value: "22", + label: "22 hrs" + }, { + value: "22.5", + label: "22.5 hrs" + }, { + value: "23", + label: "23 hrs" + }, { + value: "23.5", + label: "23.5 hrs" + }, { + value: "24", + label: "24 hrs" + }]; + + + $scope.saveCheckIn = function() { + + var allAnswersFinished = $scope.dailyCheckIn.gotUp != '' & $scope.dailyCheckIn.toBed != '' & $scope.dailyCheckIn.medications != '' & $scope.dailyCheckIn.wellness != '' & $scope.dailyCheckIn.sleepDuration != ''; + + if (allAnswersFinished) { + $scope.dailyCheckIn.endTime = new Date(); + if ($scope.dailyCheckIn.wellness == 4 || $scope.dailyCheckIn.wellness == -4) { + $scope.emergency = true; + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: 'User answered with a ' + $scope.dailyCheckIn.wellness + ' on the daily check in' + }).execute(); + } + + Pound.add('dailyCheckIn', $scope.dailyCheckIn); + $scope.nextId = $routeParams.id; + + var sessionID = Guid.create(); + + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'toBed', + questionValue: $scope.dailyCheckIn.toBed + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'gotUp', + questionValue: $scope.dailyCheckIn.gotUp + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'wellness', + questionValue: $scope.dailyCheckIn.wellness + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'medications', + questionValue: $scope.dailyCheckIn.medications + }).execute(); + (new PurpleRobot()).emitReading('livewell_survey_data', { + survey: 'daily', + sessionGUID: sessionID, + startTime: $scope.dailyCheckIn.startTime, + questionDataLabel: 'sleepDuration', + questionValue: $scope.dailyCheckIn.sleepDuration + }).execute(); + + $("#continue").modal(); + } else { + $("#warning").modal(); + $scope.selectedWarningMessage = 'You must respond to all questions on this page!'; + } + } + + $scope.highlight = function(id, response) { + + $('label').removeClass('highlight'); + $(id).addClass('highlight'); + $scope.dailyCheckIn.wellness = response; + + } + + $scope.warning = function(response) { + + if (response.warningMessage.length > 0) { + $scope.selectedWarningMessage = response.warningMessage; + if (response.callCoach == true) { + $scope.warningPhoneNumber = $scope.phoneNumber; + } else { + $scope.warningPhoneNumber = null; + } + $("#warning").modal(); + } + + + } + + }); \ No newline at end of file diff --git a/www/scripts/controllers/daily_review.js b/www/scripts/controllers/daily_review.js new file mode 100644 index 00000000..b83c2238 --- /dev/null +++ b/www/scripts/controllers/daily_review.js @@ -0,0 +1,150 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewCtrl + * @description + * # DailyReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewCtrl', function($scope, $routeParams, $timeout, UserData, Pound, DailyReviewAlgorithm, ClinicalStatusUpdate, Guid) { + $scope.pageTitle = "Daily Review"; + + Pound.add('dailyReviewStarted', { + userStarted: true, + code: $scope.code + }); + + $timeout(function(){$('.add-tooltip').tooltip()}); + + $scope.routineData = UserData.query('sleepRoutineRanges'); + + $scope.cleanTime = function(militaryTime){ + + var time = militaryTime.toString(); + var cleanTime = ''; + + if (time[0] == '0' && time[1] == '0'){ + cleanTime = '12:' + time[2] + time[3]; + } else if( time[0] == '0'){ + cleanTime = time[1] + ":" + time[2] + time[3]; + } else if (parseInt(time[0] + time[1]) > 12 ){ + cleanTime = (parseInt(time[0] + time[1]) - 12) + ":" + time[2] + time[3]; + } else { + cleanTime = time[0] + time[1] + ":" + time[2] + time[3]; + } + + if (parseInt(militaryTime) > 1200){ + return cleanTime + ' PM' + } + else { + return cleanTime + ' AM' + } + + } + + $scope.interventionGroups = UserData.query('dailyReview'); + + $scope.updatedClinicalStatus = {}; + + var runAlgorithm = function(Pound) { + var object = {}; + var sessionID = Guid.create(); + + object.code = DailyReviewAlgorithm.code(); + $scope.updatedClinicalStatus = ClinicalStatusUpdate.execute(); + + (new PurpleRobot()).emitReading('livewell_dailyreviewcode', { + sessionGUID: sessionID, + code: object.code + }).execute(); + (new PurpleRobot()).emitReading('livewell_clinicalstatus', { + sessionGUID: sessionID, + status: $scope.updatedClinicalStatus + }).execute(); + + return object + + } + + $scope.code = runAlgorithm().code; + + //TO REMOVE + $scope.recodedResponses = DailyReviewAlgorithm.recodedResponses(); + $scope.dailyCheckInResponseArray = Pound.find('dailyCheckIn') + $scope.dailyCheckInResponses = ' |today| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 1]) + ' |t-1| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 2]) + ' |t-2| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 3]) + ' |t-3| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 4]) + ' |t-4| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 5]) + ' |t-5| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 6]) + ' |t-6| ' + JSON.stringify($scope.dailyCheckInResponseArray[$scope.dailyCheckInResponseArray.length - 7]); + + //STOP REMOVE + + $scope.percentages = DailyReviewAlgorithm.percentages(); + + $(".modal-backdrop").remove(); + + var latestWarning = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1]; + + if (latestWarning != undefined) { + if (latestWarning.shownToUser == undefined) { + $scope.warningMessage = Pound.find('clinical_reachout')[Pound.find('clinical_reachout').length - 1].message + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + + $scope.phoneNumber = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].phone; + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + coachEmail: $scope.coachEmail, + message: $scope.warningMessage + }).execute(); + + latestWarning.shownToUser = true; + Pound.update('clinical_reachout', latestWarning); + $scope.showWarning = true; + $("#warning").modal(); + } + } + + $scope.dailyReviewCategory = _.where($scope.interventionGroups, { + code: $scope.code + })[0].questionSet; + + $scope.interventionResponse = function() { + + if ($scope.code == 1 || $scope.code == 2) { + return 'Please contact your care provider or hospital'; + } else { + if (_.where($scope.interventionGroups, { + code: $scope.code + })[0] != undefined) { + if (typeof(_.where($scope.interventionGroups, { + code: $scope.code + })[0].response) == 'object') { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response[Math.floor((Math.random() * _.where($scope.interventionGroups, { + code: $scope.code + })[0].response.length))] + } else { + return _.where($scope.interventionGroups, { + code: $scope.code + })[0].response + } + } + } + } + + + }); \ No newline at end of file diff --git a/www/scripts/controllers/daily_review_conclusion.js b/www/scripts/controllers/daily_review_conclusion.js new file mode 100644 index 00000000..d0c7af3f --- /dev/null +++ b/www/scripts/controllers/daily_review_conclusion.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewConclusionCtrl + * @description + * # DailyReviewConclusionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewConclusionCtrl', function ($scope, $sanitize) { + $scope.pageTitle = "Daily Review"; + $scope.lastNotification = "Keep up the good work!
Check out your medication plan in Reduce Risk."; + }); diff --git a/www/scripts/controllers/daily_review_summary.js b/www/scripts/controllers/daily_review_summary.js new file mode 100644 index 00000000..9d9eb9db --- /dev/null +++ b/www/scripts/controllers/daily_review_summary.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyReviewSummaryCtrl + * @description + * # DailyReviewSummaryCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyReviewSummaryCtrl', function ($scope) { + $scope.pageTitle = "Daily Review"; + }); diff --git a/www/scripts/controllers/dailyreviewtester.js b/www/scripts/controllers/dailyreviewtester.js new file mode 100644 index 00000000..33415dc5 --- /dev/null +++ b/www/scripts/controllers/dailyreviewtester.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:DailyreviewtesterCtrl + * @description + * # DailyreviewtesterCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('DailyreviewtesterCtrl', function ($scope,Pound,dailyReview) { + + $scope.collection = Pound.find('dailyCheckIn'); + + $scope.proposedIntervention = dailyReview.getCode(); + + }); diff --git a/www/scripts/controllers/ews.js b/www/scripts/controllers/ews.js new file mode 100644 index 00000000..15f57db5 --- /dev/null +++ b/www/scripts/controllers/ews.js @@ -0,0 +1,38 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('EwsCtrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews = UserData.query('ews'); + + $scope.onClick=function(){ + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews', + questionDataLabel: 'ews', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + + $location.path('/ews2'); + + + } + + }); diff --git a/www/scripts/controllers/ews2.js b/www/scripts/controllers/ews2.js new file mode 100644 index 00000000..f57c3cf7 --- /dev/null +++ b/www/scripts/controllers/ews2.js @@ -0,0 +1,41 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('Ews2Ctrl', function ($scope,$location,UserData,UserDetails,Guid) { + + $scope.pageTitle = "Weekly Check In"; + + $scope.ews2 = UserData.query('ews2'); + + $scope.onClick=function(){ + + + var el = JSON.stringify($('form').serializeArray()) || {name:'ews', value:null}; ; + var sessionID = Guid.create(); + + var payload = { + userId: UserDetails.find, + survey: 'ews2', + questionDataLabel: 'ews2', + questionValue: el, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading('livewell_survey_data',payload).execute(); + console.log(payload); + + $location.path('/'); + + } + + + + }); diff --git a/www/scripts/controllers/exit.js b/www/scripts/controllers/exit.js new file mode 100644 index 00000000..064b8b5c --- /dev/null +++ b/www/scripts/controllers/exit.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ExitCtrl + * @description + * # ExitCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ExitCtrl', function ($scope) { + + navigator.app.exitApp(); + + }); diff --git a/www/scripts/controllers/fetch_content.js b/www/scripts/controllers/fetch_content.js new file mode 100644 index 00000000..6039c3de --- /dev/null +++ b/www/scripts/controllers/fetch_content.js @@ -0,0 +1,72 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FetchContentCtrl + * @description + * # FetchContentCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('FetchContentCtrl', function ($scope,$http) { + + var SERVER_LOCATION = 'https://livewell2.firebaseio.com/'; + var SECURE_CONTENT = 'https://mohrlab.northwestern.edu/livewell-dash/content/'; + var APP_COLLECTIONS_ROUTE = 'appcollections'; + var USER_ID = $scope.userID; + var ROUTE_SUFFIX = '.json'; + + $scope.error = ''; + $scope.errorColor = 'white'; + $scope.errorClass = ''; + + var downloadContent = function(app_collections){ + + if($scope.userID != undefined){localStorage['userID'] = $scope.userID; } + + _.each(app_collections,function(el){ + $http.get(SERVER_LOCATION + "users/" + localStorage['userID'] + "/" + el.route + ROUTE_SUFFIX ) + .success(function(response) { + + if(el.route == 'team' && response == null){ + alert('THE USER HAS NOT BEEN CONFIGURED!'); + } + + if (response.length != undefined){ + localStorage[el.route] = JSON.stringify(_.compact(response)); + } + else { + localStorage[el.route] = JSON.stringify(response); + } + }).error(function(err) { + $scope.error = 'Error on: ' + el.label; + $scope.errorColor = 'red'; + }); + }) + } + + $scope.fetchSecureContent = function(){ + + $http.get(SECURE_CONTENT +'?user='+ localStorage['userID'] +'&token=' + localStorage['registrationid']) + .success(function(content) { + localStorage['secureContent'] = JSON.stringify(content); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + $scope.fetchContent = function(){ + $scope.errorColor = 'green'; + $scope.fetchSecureContent(); + $http.get(SERVER_LOCATION + APP_COLLECTIONS_ROUTE + ROUTE_SUFFIX) + .success(function(app_collections) { + downloadContent(_.compact(app_collections)); + }).error(function(err) { + $scope.error = 'No internet connection!'; + $scope.errorColor = 'red'; + }); + } + + + }); diff --git a/www/scripts/controllers/foundations.js b/www/scripts/controllers/foundations.js new file mode 100644 index 00000000..3eb01464 --- /dev/null +++ b/www/scripts/controllers/foundations.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:FoundationsCtrl + * @description + * # FoundationsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('FoundationsCtrl', function ($scope) { + + $scope.pageTitle = "Foundations"; + + $scope.mainLinks = [ + {name:"Overview", id:162, post:'foundations', type:'lesson_player'}, + {name:"Basic Facts ", id:183, post:'foundations', type:'lesson_player'}, + {name:"Medications", id:184, post:'foundations', type:'lesson_player'}, + {name:"Lifestyle Skills", id:185, post:'foundations', type:'lesson_player'}, + {name:"Coping Skills", id:186, post:'foundations', type:'lesson_player'}, + {name:"Team", id:187, post:'foundations', type:'lesson_player'}, + {name:"Awareness", id:188, post:'foundations', type:'lesson_player'}, + {name:"Action", id:189, post:'foundations', type:'lesson_player'}, + {name:"Conclusion", id:250, post:'foundations', type:'lesson_player'}] + + }); diff --git a/www/scripts/controllers/home.js b/www/scripts/controllers/home.js new file mode 100644 index 00000000..f4daefec --- /dev/null +++ b/www/scripts/controllers/home.js @@ -0,0 +1,121 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:HomeCtrl + * @description + * # HomeCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('HomeCtrl', function ($scope, Pound) { + + + var possibleGreetings = ['Welcome back!','Hello!','Greetings!','Good to see you!']; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + var requiredUserCollections = []; + + $scope.appConfigured = localStorage['appConfigured']; + + $scope.verifyUserContent = function(){ + + $scope.errorVerifyUserColor = 'green'; + } + + $scope.startTrial = function(){ + $scope.startDate = new Date().getDay() + localStorage['appConfigured'] = true; + window.location.href = ""; + } + + $scope.dailyCheckInCompleteToday = function(){ + + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + + function dropTime(dt){ + + var datetime = dt; + + datetime.setHours(0) + datetime.setMinutes(0); + datetime.setSeconds(0); + datetime.setMilliseconds(0); + + return datetime.toString() + + } + + if (dropTime(mostRecentResponseDateTime) == dropTime(new Date()) ){ + return true + } else { + return false + } + + }; + + $scope.weeklyCheckInCompleteThisWeek = function(){ + + var collection = Pound.find('weeklyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + var now = moment(new Date()); + var lastSundayMorning = moment(new Date()).subtract(new Date().getDay(),'d').set({hour:0,minute:0,second:0,millisecond:0}); + + var validResponse = moment(mostRecentResponseDateTime).isAfter(lastSundayMorning) && moment(mostRecentResponseDateTime).isBefore(now); + + if (collection.length == 0){ + return false + } + else if (validResponse){ + return true + } else { + return false + } + + }; + + $scope.dailyReviewCompleteToday = function(){ + var dailyReviewComplete = false; + var thisMorning = moment(new Date()).set({hour:0,minute:0,second:0,millisecond:0}); + + var collection = Pound.find('dailyReviewStarted'); + var mostRecentResponse = collection[collection.length-1] || 0; + var mostRecentResponseDateTime = new Date(Date.parse(mostRecentResponse.created_at)); + + if(moment(mostRecentResponseDateTime).isAfter(thisMorning)){ + + dailyReviewComplete = true; + } + + return dailyReviewComplete + + + } + + $scope.lastDailyCheckInWasEmergency = function(){ + var collection = Pound.find('dailyCheckIn'); + var mostRecentResponse = collection[collection.length-1] || 0; + + if(mostRecentResponse.wellness != '-4' && mostRecentResponse.wellness != '4'){ + return false + } + else{ + return true + } + } + + $scope.greeting = possibleGreetings[Math.floor(Math.random()*possibleGreetings.length)]; + + $(".modal-backdrop").remove(); + + }); \ No newline at end of file diff --git a/www/scripts/controllers/instructions.js b/www/scripts/controllers/instructions.js new file mode 100644 index 00000000..aa98396a --- /dev/null +++ b/www/scripts/controllers/instructions.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InstructionsCtrl + * @description + * # InstructionsCtrl + * Controller of the livewellApp + */ + angular.module('livewellApp') + .controller('InstructionsCtrl', function ($scope, StaticContent) { + $scope.pageTitle = "Instructions"; + + $scope.mainLinks = [ + {id:198,name:"Introduction", post:"instructions"}, + {id:201,name:"Settings", post:"instructions"}, + {id:199,name:"Toolbox", post:"instructions"}, + {id:202,name:"Coach", post:"instructions"}, + {id:203,name:"Psychiatrist", post:"instructions"}, + {id:204,name:"Foundations", post:"instructions"}, + {id:205,name:"Daily Check In", post:"instructions"}, + {id:372,name:"Weekly Check In", post:"instructions"}, + {id:369,name:"Daily Review", post:"instructions"}, + {id:371,name:"Wellness Plan", post:"instructions"}, + {id:370,name:"Charts", post:"instructions"} + ] + + + }); diff --git a/www/scripts/controllers/intervention.js b/www/scripts/controllers/intervention.js new file mode 100644 index 00000000..466ab0cd --- /dev/null +++ b/www/scripts/controllers/intervention.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:InterventionCtrl + * @description + * # InterventionCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('InterventionCtrl', function ($scope, $routeParams,Questions) { + $scope.pageTitle = "Daily Review"; + + console.log($routeParams); + $scope.questionGroups = Questions.query($routeParams.code); + + $scope.hideProgressBar = true; + + var pr = new PurpleRobot(); + pr.disableTrigger('dailyCheckIn1').disableTrigger('dailyCheckIn2').disableTrigger('dailyCheckIn3').disableTrigger('dailyCheckIn4').disableTrigger('dailyCheckIn5').disableTrigger('dailyCheckIn6').execute(); + + }); diff --git a/www/scripts/controllers/lesson_player.js b/www/scripts/controllers/lesson_player.js new file mode 100644 index 00000000..ca0d839f --- /dev/null +++ b/www/scripts/controllers/lesson_player.js @@ -0,0 +1,79 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LessonPlayerCtrl + * @description + * # LessonPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LessonPlayerCtrl', function ($scope, $routeParams, $sce, $location) { + + +$scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter_contents_list = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + var chapter_contents = []; + + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter_contents_list, function (element) { + // console.log(parseInt(element)); + chapter_contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + return chapter_contents; +}; + +$scope.lessons = JSON.parse(localStorage['lessons']); + +$scope.backButton = '<'; +$scope.backButtonClass = 'btn btn-info'; +$scope.nextButton = '>'; +$scope.nextButtonClass = 'btn btn-primary'; +$scope.currentSlideIndex = 0; + +$scope.pageTitle = _.where($scope.lessons, {id:parseInt($routeParams.id)})[0].pretty_name; + +$scope.currentChapterContents = $scope.getChapterContents($routeParams.id,$scope.lessons); + +$scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + + +$scope.next = function(){ + if ($scope.currentSlideIndex+1 < $scope.currentChapterContents.length){ + $scope.currentSlideIndex++; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + else { + if ($routeParams.post == undefined) + { window.location.href = '#/';} + else { + window.location.href = '#/' + $routeParams.post; + } + } + + if ($scope.currentSlideIndex+1 == $scope.currentChapterContents.length){ + $scope.nextButton = '>'; + } + else{ + $scope.nextButton = '>'; + + } +} + +$scope.back = function(){ + if ($scope.currentSlideIndex > 0){ + $scope.currentSlideIndex--; + $scope.currentSlideContents = $scope.currentChapterContents[$scope.currentSlideIndex].main_content; + } + +} + +}); diff --git a/www/scripts/controllers/load_interventions.js b/www/scripts/controllers/load_interventions.js new file mode 100644 index 00000000..8bde5f7e --- /dev/null +++ b/www/scripts/controllers/load_interventions.js @@ -0,0 +1,26 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoadInterventionsReviewCtrl + * @description + * # LoadInterventionsReviewCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoadInterventionsCtrl', function ($scope, UserData, $location, $filter) { + + $scope.pageTitle = 'Topics'; + + $scope.hierarchy = UserData.query('interventionLabels'); + $scope.interventionGroups = UserData.query('dailyReview') + + debugger; + + $scope.goToIntervention = function(code){ + + $location.path('intervention/' + $filter('filter')($scope.interventionGroups,{code:code},true)[0].questionSet); + + } + + }); diff --git a/www/scripts/controllers/localstoragebackuprestore.js b/www/scripts/controllers/localstoragebackuprestore.js new file mode 100644 index 00000000..a9764368 --- /dev/null +++ b/www/scripts/controllers/localstoragebackuprestore.js @@ -0,0 +1,43 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LocalstoragebackuprestoreCtrl + * @description + * # LocalstoragebackuprestoreCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LocalstoragebackuprestoreCtrl', function ($scope, $sanitize) { + + + + $scope.initiateLocalBackup = function(){ + $scope.localStorageContents = JSON.stringify(JSON.stringify(localStorage)); + } + + $scope.restoreLocalBackup = function(){ + var restoreContent = JSON.parse(JSON.parse($scope.localStorageContents)); + + _.each(_.keys(restoreContent), function(el){ + + debugger; + localStorage[el] = eval("restoreContent." + el); + + }); + localStorage = JSON.parse($scope.localStorageContents); + //open file or copy and paste string and replace localStorage + + } + + $scope.updateRemoteService = function(serverURL){ + + //use the local app-collections store to iterate over all local collections and post to valid routes + + } + + $scope.wipeLocalStorage = function(){ + localStorage.clear(); + } + + }); diff --git a/www/scripts/controllers/login.js b/www/scripts/controllers/login.js new file mode 100644 index 00000000..2317e239 --- /dev/null +++ b/www/scripts/controllers/login.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:LoginCtrl + * @description + * # LoginCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('LoginCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/www/scripts/controllers/main.js b/www/scripts/controllers/main.js new file mode 100644 index 00000000..7e11947d --- /dev/null +++ b/www/scripts/controllers/main.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MainCtrl + * @description + * # MainCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MainCtrl', function ($scope, UserDetails) { + + $scope.pageTitle = 'Main Menu'; + + $scope.mainLinks = [ + {name:"Foundations", href:"foundations"}, + {name:"Toolbox", href:"skills"}, + {name:"Wellness Plan", href:"wellness/resources"}, + ]; + + // $scope.showLogin = function(){ + + // if (UserDetails.find.id == null){ + // return true + // } + // else { + // return false + // } + + // } + + }); diff --git a/www/scripts/controllers/medications.js b/www/scripts/controllers/medications.js new file mode 100644 index 00000000..c67c03e5 --- /dev/null +++ b/www/scripts/controllers/medications.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MedicationsCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Medications"; + $scope.medications = UserData.query('medications'); + + + }); diff --git a/www/scripts/controllers/myskills.js b/www/scripts/controllers/myskills.js new file mode 100644 index 00000000..a0c0e3b2 --- /dev/null +++ b/www/scripts/controllers/myskills.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:MyskillsCtrl + * @description + * # MyskillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('MyskillsCtrl', function ($scope,$location,$filter,$route) { + + $scope.currentSkillId = null; + + $scope.currentSkillContent = null; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + if (JSON.parse(localStorage['mySkills'] != undefined)){ + $scope.mySkills = _.uniq(JSON.parse(localStorage['mySkills'])); + } else { + $scope.mySkills = []; + } + + $scope.skill = function(id){ + return $filter('filter')($scope.lessons,{id:id},true) + }; + + $scope.showSkill = function(id){ + $scope.currentSkillId = id; + $scope.currentSkillContent = $scope.skill(id)[0].main_content; + } + + $scope.removeSkill = function () { + + var id = $scope.currentSkillId; + var array = $scope.mySkills; + var index = array.indexOf(id); + + if (index > -1) { + array.splice(index, 1); + } + + $scope.mySkills = array; + + localStorage['mySkills'] = JSON.stringify($scope.mySkills); + + $route.reload() + + } + + + + + }); diff --git a/www/scripts/controllers/personalsnapshot.js b/www/scripts/controllers/personalsnapshot.js new file mode 100644 index 00000000..c18ce6d2 --- /dev/null +++ b/www/scripts/controllers/personalsnapshot.js @@ -0,0 +1,29 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:PersonalsnapshotCtrl + * @description + * # PersonalsnapshotCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('PersonalsnapshotCtrl', function ($scope, UserData) { + + // var sleepRoutineRanges = {}; + + // sleepRoutineRanges.MoreSevere = 12; + // sleepRoutineRanges.More = 9; + // sleepRoutineRanges.Less = 7; + // sleepRoutineRanges.LessSevere = 4; + + // sleepRoutineRanges.BedTimeStrt_MT = '2300'; + // sleepRoutineRanges.BedtimeStop_MT = '0100'; + + // sleepRoutineRanges.RiseTimeStrt_MT = '0630'; + // sleepRoutineRanges.RiseTimeStop_MT = '0830'; + + $scope.sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + $scope.currentClinicalStatusCode = UserData.query('clinicalStatus').currentCode; + + }); diff --git a/www/scripts/controllers/resources.js b/www/scripts/controllers/resources.js new file mode 100644 index 00000000..2de3bf3a --- /dev/null +++ b/www/scripts/controllers/resources.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:ResourcesCtrl + * @description + * # ResourcesCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ResourcesCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/www/scripts/controllers/risks.js b/www/scripts/controllers/risks.js new file mode 100644 index 00000000..ed681bcc --- /dev/null +++ b/www/scripts/controllers/risks.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:RisksCtrl + * @description + * # RisksCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('RisksCtrl', function ($scope,UserData) { + //risk variables + $scope.smarts = UserData.query('smarts'); + + + + }); diff --git a/www/scripts/controllers/schedule.js b/www/scripts/controllers/schedule.js new file mode 100644 index 00000000..b079ad15 --- /dev/null +++ b/www/scripts/controllers/schedule.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('ScheduleCtrl', function ($scope,UserData) { + $scope.pageTitle = "My Schedule"; + $scope.schedules = UserData.query('schedule'); + + + }); diff --git a/www/scripts/controllers/settings.js b/www/scripts/controllers/settings.js new file mode 100644 index 00000000..903c8e4c --- /dev/null +++ b/www/scripts/controllers/settings.js @@ -0,0 +1,269 @@ +'use strict'; +/** + * @ngdoc function + * @name livewellApp.controller:SettingsCtrl + * @description + * # SettingsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SettingsCtrl', function($scope) { + $scope.pageTitle = 'Settings'; + $scope.times = [{ + value: "00:00", + label: "12:00AM" + }, { + value: "00:30", + label: "12:30AM" + }, { + value: "01:00", + label: "1:00AM" + }, { + value: "01:30", + label: "1:30AM" + }, { + value: "02:00", + label: "2:00AM" + }, { + value: "02:30", + label: "2:30AM" + }, { + value: "03:00", + label: "3:00AM" + }, { + value: "03:30", + label: "3:30AM" + }, { + value: "04:00", + label: "4:00AM" + }, { + value: "04:30", + label: "4:30AM" + }, { + value: "05:00", + label: "5:00AM" + }, { + value: "05:30", + label: "5:30AM" + }, { + value: "06:00", + label: "6:00AM" + }, { + value: "06:30", + label: "6:30AM" + }, { + value: "07:00", + label: "7:00AM" + }, { + value: "07:30", + label: "7:30AM" + }, { + value: "08:00", + label: "8:00AM" + }, { + value: "08:30", + label: "8:30AM" + }, { + value: "09:00", + label: "9:00AM" + }, { + value: "09:30", + label: "9:30AM" + }, { + value: "10:00", + label: "10:00AM" + }, { + value: "10:30", + label: "10:30AM" + }, { + value: "11:00", + label: "11:00AM" + }, { + value: "11:30", + label: "11:30AM" + }, { + value: "12:00", + label: "12:00PM" + }, { + value: "12:30", + label: "12:30PM" + }, { + value: "13:00", + label: "1:00PM" + }, { + value: "13:30", + label: "1:30PM" + }, { + value: "14:00", + label: "2:00PM" + }, { + value: "14:30", + label: "2:30PM" + }, { + value: "15:00", + label: "3:00PM" + }, { + value: "15:30", + label: "3:30PM" + }, { + value: "16:00", + label: "4:00PM" + }, { + value: "16:30", + label: "4:30PM" + }, { + value: "17:00", + label: "5:00PM" + }, { + value: "17:30", + label: "5:30PM" + }, { + value: "18:00", + label: "6:00PM" + }, { + value: "18:30", + label: "6:30PM" + }, { + value: "19:00", + label: "7:00PM" + }, { + value: "19:30", + label: "7:30PM" + }, { + value: "20:00", + label: "8:00PM" + }, { + value: "20:30", + label: "8:30PM" + }, { + value: "21:00", + label: "9:00PM" + }, { + value: "21:30", + label: "9:30PM" + }, { + value: "22:00", + label: "10:00PM" + }, { + value: "22:30", + label: "10:30PM" + }, { + value: "23:00", + label: "11:00PM" + }, { + value: "23:30", + label: "11:30PM" + }]; + + if (localStorage['checkinPrompt'] == undefined) { + $scope.checkinPrompt = { + value: "00:00", + label: "12:00AM" + }; + + } else { + $scope.checkinPrompt = JSON.parse(localStorage['checkinPrompt']); + } + + $scope.savePromptSchedule = function() { + + + (new PurpleRobot()).emitReading('livewell_prompt_registration', { + startTime: $scope.checkinPrompt.value, + registrationId: localStorage.registrationId + }).execute(); + + + var checkInValues = $scope.checkinPrompt.value.split(":"); + localStorage['checkinPrompt'] = JSON.stringify($scope.checkinPrompt); + //new Date(year, month, day, hours, minutes, seconds, milliseconds) + var dailyCheckInDateTime1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd1 = new Date(2016, 0, 1, parseInt(checkInValues[0])-1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd2 = new Date(2016, 0, 1, parseInt(checkInValues[0]), parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd3 = new Date(2016, 0, 1, parseInt(checkInValues[0])+1, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd4 = new Date(2016, 0, 1, parseInt(checkInValues[0])+2, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd5 = new Date(2016, 0, 1, parseInt(checkInValues[0])+3, parseInt(checkInValues[1]) + 1, 0); + var dailyCheckInDateTime6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]), 0); + var dailyCheckinDateTimeEnd6 = new Date(2016, 0, 1, parseInt(checkInValues[0])+4, parseInt(checkInValues[1]) + 1, 0); + var dailyReviewRenewalDateTime = new Date(2016, 0, 1, 2, 0, 0); + var dailyReviewRenewalDateTimeEnd = new Date(2016, 0, 1, 2, 1, 0); + var pr = new PurpleRobot(); + + + + // var dailyCheckInDialog = + // pr.showScriptNotification({ + // title: "LiveWell", + // message: "Can you complete your LiveWell activities now?", + // isPersistent: true, + // isSticky: false, + // script: pr.launchApplication('edu.northwestern.cbits.livewell') + // }); + + // var dailyReviewRenew = + // pr.enableTrigger('dailyCheckIn1').enableTrigger('dailyCheckIn2').enableTrigger('dailyCheckIn3').enableTrigger('dailyCheckIn4').enableTrigger('dailyCheckIn5').enableTrigger('dailyCheckIn6'); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn1', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime1, + // endAt: dailyCheckinDateTimeEnd1 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn2', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime2, + // endAt: dailyCheckinDateTimeEnd2 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn3', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime3, + // endAt: dailyCheckinDateTimeEnd3 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn4', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime4, + // endAt: dailyCheckinDateTimeEnd4 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn5', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime5, + // endAt: dailyCheckinDateTimeEnd5 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyCheckIn6', + // random: false, + // script: dailyCheckInDialog, + // startAt: dailyCheckInDateTime6, + // endAt: dailyCheckinDateTimeEnd6 + // }).execute(); + + // (new PurpleRobot()).updateTrigger({ + // triggerId: 'dailyReviewReset', + // random: false, + // script: dailyReviewRenew, + // startAt: dailyReviewRenewalDateTime, + // endAt: dailyReviewRenewalDateTimeEnd + // }).execute(); + + $("form").append('
Your prompt times have been updated.
'); + + }; + }); \ No newline at end of file diff --git a/www/scripts/controllers/setup.js b/www/scripts/controllers/setup.js new file mode 100644 index 00000000..2e0ba11b --- /dev/null +++ b/www/scripts/controllers/setup.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SetupCtrl + * @description + * # SetupCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SetupCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/www/scripts/controllers/skills.js b/www/scripts/controllers/skills.js new file mode 100644 index 00000000..2836c901 --- /dev/null +++ b/www/scripts/controllers/skills.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCtrl', function ($scope) { + $scope.pageTitle = "Toolbox"; + + $scope.mainLinks = [ + {id:'fundamentals',name:"Making Changes"}, + {id:'awareness',name:"Self-Assessment"}, + {id:'lifestyle',name:"Lifestyle"}, + {id:'coping',name:"Coping"}, + {id:'team',name:"Team"}, + + ] + + + }); diff --git a/www/scripts/controllers/skills_awareness.js b/www/scripts/controllers/skills_awareness.js new file mode 100644 index 00000000..1ed61db5 --- /dev/null +++ b/www/scripts/controllers/skills_awareness.js @@ -0,0 +1,24 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsAwarenessCtrl + * @description + * # SkillsAwarenessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsAwarenessCtrl', function ($scope) { + + $scope.pageTitle = "Self-Assessment"; + + $scope.mainLinks = [ + {name:"Symptoms and Triggers", id:194, post:'skills_awareness'}, + {name:"Skills and Strengths", id:196, post:'skills_awareness'}, + {name:"Supports and Environment", id:197, post:'skills_awareness'} + ] + }); + + + + diff --git a/www/scripts/controllers/skills_coping.js b/www/scripts/controllers/skills_coping.js new file mode 100644 index 00000000..0fd71d97 --- /dev/null +++ b/www/scripts/controllers/skills_coping.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCopingCtrl + * @description + * # SkillsCopingCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsCopingCtrl', function ($scope) { + + $scope.pageTitle = "Coping"; + + $scope.mainLinks = [ + {name:"Depression - Dial Up", id:550, post:'skills_coping',type:'summary_player'}, + {name:"Mania - Dial Down", id:551, post:'skills_coping',type:'summary_player'} + ]; + }); diff --git a/www/scripts/controllers/skills_fundamentals.js b/www/scripts/controllers/skills_fundamentals.js new file mode 100644 index 00000000..f835b891 --- /dev/null +++ b/www/scripts/controllers/skills_fundamentals.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsFundamentalsCtrl + * @description + * # SkillsFundamentalsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsFundamentalsCtrl', function ($scope) { + + $scope.pageTitle = "Making Changes"; + + $scope.mainLinks = [ + {name:"Get Prepared", id:190, post:'skills_fundamentals'}, + {name:"Set Goal", id:193, post:'skills_fundamentals'}, + {name:"Develop Plan",id:191,post:'skills_fundamentals'}, + {name:"Monitor Behavior", id:192, post:'skills_fundamentals'}, + {name:"Evaluate Performance",id:195,post:'skills_fundamentals'} + ]; + }); diff --git a/www/scripts/controllers/skills_lifestyle.js b/www/scripts/controllers/skills_lifestyle.js new file mode 100644 index 00000000..9785c8f3 --- /dev/null +++ b/www/scripts/controllers/skills_lifestyle.js @@ -0,0 +1,22 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsLifestyleCtrl + * @description + * # SkillsLifestyleCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsLifestyleCtrl', function ($scope) { + $scope.pageTitle = "Lifestyle"; + + $scope.mainLinks = [ + {name:"Sleep", id:543, post:'skills_lifestyle'}, + {name:"Medications", id:544, post:'skills_lifestyle'}, + {name:"Attend", id:545, post:'skills_lifestyle'}, + {name:"Routine", id:546, post:'skills_lifestyle'}, + {name:"Tranquility", id:547, post:'skills_lifestyle'}, + {name:"Socialization", id:562, post:'skills_lifestyle'} + ]; + }); diff --git a/www/scripts/controllers/skills_team.js b/www/scripts/controllers/skills_team.js new file mode 100644 index 00000000..60a6c139 --- /dev/null +++ b/www/scripts/controllers/skills_team.js @@ -0,0 +1,34 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsTeamCtrl + * @description + * # SkillsTeamCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SkillsTeamCtrl', function ($scope) { + $scope.pageTitle = "Team"; + + // $scope.mainLinks = [ + // {name:"Duality", id:553, post:'skills_team'}, + // {name:"Humilty", id:554, post:'skills_team'}, + // {name:"Obligation", id:555, post:'skills_team'}, + // {name:"Sacrifice", id:556, post:'skills_team'}, + // {name:"Asking for Help", id:557, post:'skills_team'}, + // {name:"Giving Back", id:558, post:'skills_team'}, + // {name:"Doctor Checklist", id:559, post:'skills_team'}, + // {name:"Support Checklist", id:560, post:'skills_team'}, + // {name:"Hospital Checklist", id:561, post:'skills_team'} + // ]; + + $scope.mainLinks = [ + {name:"Psychiatrist", id:580, post:'skills_team'}, + {name:"Supports", id:581, post:'skills_team'}, + {name:"Hospital", id:582, post:'skills_team'} + ]; + + + + }); diff --git a/www/scripts/controllers/summary_player.js b/www/scripts/controllers/summary_player.js new file mode 100644 index 00000000..1bb3471f --- /dev/null +++ b/www/scripts/controllers/summary_player.js @@ -0,0 +1,66 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SummaryPlayerCtrl + * @description + * # SummaryPlayerCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('SummaryPlayerCtrl', function ($scope, $routeParams, $location) { + + $scope.getChapterContents = function (chapter_id, appContent) { + var search_criteria = { + id: parseInt(chapter_id) + }; + + var chapter = _.where(appContent, search_criteria)[0]; + + chapter.element_array = _.where(appContent, search_criteria)[0].element_list.toString().split(","); + + chapter.contents = []; + // console.log("Chapter selected:",_.where(appContent, search_criteria)[0]); + // console.log("Chapter contents list:",chapter_contents_list); + + _.each(chapter.element_array, function (element) { + // console.log(parseInt(element)); + chapter.contents.push(_.where(appContent, { + id: parseInt(element) + })[0]); + }); + + return chapter; + }; + + $scope.showAddSkills = false; + + $scope.lessons = JSON.parse(localStorage['lessons']); + + $scope.chapter = $scope.getChapterContents($routeParams.id,$scope.lessons); + + $scope.pageTitle = $scope.chapter.pretty_name; + + $scope.page = $scope.chapter.contents; + + $scope.addToMySkills = function(){ + + var id = $scope.page.id; + + if (localStorage['mySkills'] == undefined){ + + localStorage['mySkills'] = JSON.stringify([id]); + } + else { + var mySkills = JSON.parse(localStorage['mySkills']); + + mySkills.push(parseInt(id)); + localStorage['mySkills'] = JSON.stringify(mySkills); + } + + $location.path('/mySkills'); + + } + debugger; + + }); diff --git a/www/scripts/controllers/team.js b/www/scripts/controllers/team.js new file mode 100644 index 00000000..bf249f3a --- /dev/null +++ b/www/scripts/controllers/team.js @@ -0,0 +1,16 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:SkillsCtrl + * @description + * # SkillsCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('TeamCtrl', function ($scope, UserData) { + $scope.pageTitle = "My Team"; + + $scope.team = UserData.query('team'); + $scope.secureTeam = UserData.query('secureContent').team; + }); diff --git a/www/scripts/controllers/usereditor.js b/www/scripts/controllers/usereditor.js new file mode 100644 index 00000000..c2f0825d --- /dev/null +++ b/www/scripts/controllers/usereditor.js @@ -0,0 +1,17 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:UsereditorCtrl + * @description + * # UsereditorCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('UsereditorCtrl', function ($scope) { + $scope.awesomeThings = [ + 'HTML5 Boilerplate', + 'AngularJS', + 'Karma' + ]; + }); diff --git a/www/scripts/controllers/weekly_check_in.js b/www/scripts/controllers/weekly_check_in.js new file mode 100644 index 00000000..77259df0 --- /dev/null +++ b/www/scripts/controllers/weekly_check_in.js @@ -0,0 +1,136 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WeeklyCheckInCtrl + * @description + * # WeeklyCheckInCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WeeklyCheckInCtrl', function($scope, $location, $routeParams, Questions, Guid, UserDetails, Pound) { + + + $scope.pageTitle = 'Weekly Check In'; + + var phq_questions = Questions.query('phq9'); + var amrs_questions = Questions.query('amrs'); + + //combine questions into one group for the page + $scope.questionGroups = [phq_questions, amrs_questions]; + + //allows you to pass a question index url param into the question group directive + $scope.questionIndex = parseInt($routeParams.questionIndex) - 1 || 0; + + $scope.skippable = false; + + //overrides questiongroup default submit action to send data to PR + $scope.submit = function() { + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + + + _.each(responses, function(el) { + + var payload = { + userId: UserDetails.find, + survey: $scope.pageTitle, + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION, payload).execute(); + console.log(payload); + + }); + + var responsePayload = { + sessionID: sessionID, + responses: responses + }; + + Pound.add('weeklyCheckIn', responsePayload); + + var lWR = responses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + + if (_.where(JSON.parse(localStorage.team, { + role: 'Psychiatrist' + })[0] != undefined)) { + $scope.psychiatristEmail = _.where(JSON.parse(localStorage.team), { + role: 'Psychiatrist' + })[0].email; + } else { + $scope.psychiatristEmail = ''; + } + + if (_.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0] != undefined) { + $scope.coachEmail = _.where(JSON.parse(localStorage.team), { + role: 'Coach' + })[0].email; + } else { + $scope.coachEmail = '' + } + + + if (amrsSum >= 10) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'Altman Mania Rating Scale >= 10' + }).execute(); + } + if (amrsSum >= 16) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'Altman Mania Rating Scale >= 16' + }).execute(); + } + if (phq8Sum >= 15) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'coach', + message: 'PHQ8 >= 15' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + coachEmail: $scope.coachEmail, + message: 'PHQ8 >= 15' + }).execute(); + } + if (phq8Sum >= 20) { + (new PurpleRobot()).emitReading('livewell_clinicalreachout', { + call: 'psychiatrist', + message: 'PHQ8 >= 20' + }).execute(); + + (new PurpleRobot()).emitReading('livewell_email', { + psychiatristEmail: $scope.psychiatristEmail, + message: 'PHQ8 >= 20' + }).execute(); + } + + $location.path("/ews"); + + } + + }); \ No newline at end of file diff --git a/www/scripts/controllers/wellness.js b/www/scripts/controllers/wellness.js new file mode 100644 index 00000000..58e18178 --- /dev/null +++ b/www/scripts/controllers/wellness.js @@ -0,0 +1,64 @@ +'use strict'; + +/** + * @ngdoc function + * @name livewellApp.controller:WellnessCtrl + * @description + * # WellnessCtrl + * Controller of the livewellApp + */ +angular.module('livewellApp') + .controller('WellnessCtrl', function ($scope,$routeParams) { + $scope.pageTitle = 'Wellness Plan'; + + $scope.section = $routeParams.section || ""; + + $scope.showResources = function(){ + $scope.riskVisible = false; + $scope.awarenessVisible = false; + $scope.resourcesVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#resources').addClass('btn-active'); + } + + $scope.showRisk = function(){ + $scope.awarenessVisible = false; + $scope.resourcesVisible = false; + $scope.riskVisible = true; + $('button#awareness').removeClass('btn-active'); + $('button#risk').addClass('btn-active'); + $('button#resources').removeClass('btn-active'); + } + + $scope.showAwareness = function(){ + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = true; + $('button#resources').removeClass('btn-active'); + $('button#risk').removeClass('btn-active'); + $('button#awareness').addClass('btn-active'); + + } + + + switch($scope.section) { + case "resources": + $scope.showResources(); + break; + case "awareness": + $scope.showAwareness(); + break; + case "risk": + $scope.showRisk(); + break; + default: + $scope.resourcesVisible = false; + $scope.riskVisible = false; + $scope.awarenessVisible = false; + } + + + + + }); diff --git a/www/scripts/questionGroups/questiongroup.js b/www/scripts/questionGroups/questiongroup.js new file mode 100644 index 00000000..c37469b7 --- /dev/null +++ b/www/scripts/questionGroups/questiongroup.js @@ -0,0 +1,204 @@ +'use strict'; + +/** + * @ngdoc directive + * @name livewellApp.directive:questionGroup + * @description + * # questionGroup + */ +angular.module('livewellApp') + .directive('questionGroup', function ($location) { + return { + templateUrl: 'views/questionGroups/question_group.html', + restrict: 'E', + link: function postLink(scope, element, attrs) { + + scope._LABELS = scope.labels || [ + {name:'back',label:'<'}, + {name:'next',label:'>'}, + {name:'submit', label:'Save'} + ]; + + scope._SURVEY_FAILURE_LABEL = scope.surveyFailureLabel || 'Unfortunately, this survey failed to load:'; + + scope.questionGroups = _.flatten(scope.questionGroups); + scope.questionAnswered = []; + + scope.responseArray = []; + + scope.surveyFailure = function(){ + + var error = {}; + //there are no questions + if (scope.questionGroups.length == 0 && _.isArray(scope.questionGroups)) { + error = { error:true, message:"There are no questions available." } + } + //questions are not in an array + else if (_.isArray(scope.questionGroups) == false){ + error = { error:true, message:"Questions are not properly formatted." } + } + else { + error = { error:false } + } + + if (error.error == true){ + console.error(error); + } + + return error + + } + + scope.label = function(labelName){ + return _.where(scope._LABELS, {name:labelName})[0].label + } + + scope.numberOfQuestions = scope.questionGroups.length; + + scope.randomizationScheme = {}; + + scope.currentIndex = scope.questionIndex || 0; + + scope.showQuestion = function(questionPosition){ + + var dataLabelToRandomize = scope.questionGroups[scope.currentIndex].questionDataLabel; + + var numResponsesToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}).length; + + if (numResponsesToRandomize > 1){ + + var questionsToRandomize = _.where(scope.questionGroups,{questionDataLabel:dataLabelToRandomize}); + + if(scope.randomizationScheme[dataLabelToRandomize] == undefined){ + scope.randomizationScheme[dataLabelToRandomize] = Math.floor(Math.random() * (numResponsesToRandomize)); + } + + + var randomQuestionToPick = questionsToRandomize[scope.randomizationScheme[dataLabelToRandomize]]; + + scope.currentIndex = _.findIndex(scope.questionGroups,{id:randomQuestionToPick.id}); + + // console.log(questionPosition, scope.currentIndex,questionPosition == scope.currentIndex,scope.questionGroups,{id:randomQuestionToPick.id}); + + } + + + return questionPosition == scope.currentIndex; + } + + scope.goesToIndex = ""; + + scope.goesTo = function(goesToId,index){ + + scope.skipArray[index] = true; + + for (var index = 0; index < scope.questionGroups.length; index++) { + if (scope.questionGroups[index].questionDataLabel == goesToId){ + scope.goesToIndex = index; + } + } + + // alert(scope.goesToIndex,goesToId ); + + } + + scope.next = function(question,index){ + // console.log(question); + + scope.responseArray[scope.currentIndex] = $('form').serializeArray()[0]; + + if (question.responses.length == 1 && question.responses[0].goesTo != "") + { + scope.goesTo(question.responses[0].goesTo); + } + + if (scope.goesToIndex != "") + { + + scope.currentIndex = scope.goesToIndex; + + } + else { + + if( scope.skipArray[index] == true){ + scope.currentIndex++;} + else{ + alert('You must enter an answer to continue!');//modal + } + + } + scope.goesToIndex = ""; + }; + + scope.back = function(){ + + scope.currentIndex--; + + + }; + + + //is overridden by scope.complete function if different action is desired at the end of survey + scope.submit = scope.submit || function(){ + console.log('OVERRIDE THIS IN YOUR CONTROLLER SCOPE: ',$('form').serializeArray()); + + var _SAVE_LOCATION = 'livewell_survey_data'; + + $scope.responseArray[$scope.currentIndex] = $('form').serializeArray()[0]; + + var responses = _.flatten($scope.responseArray); + + var sessionID = Guid.create(); + + _.each(responses, function(el){ + + var payload = { + userId: UserDetails.find, + survey: 'survey', + questionDataLabel: el.name, + questionValue: el.value, + sessionGUID: sessionID, + savedAt: new Date() + }; + + (new PurpleRobot()).emitReading(_SAVE_LOCATION,payload).execute(); + console.log(payload); + + }); + + + + $location.path('#/'); + } + + scope.skippable = scope.skippable || true; + scope.skipArray = []; + + + scope.questionViewType = function(questionType){ + + switch (questionType){ + + case "radio" || "checkbox": + return "multiple" + break; + case "text" || "phone" || "email" || "textarea": + return "single" + break; + default: + return "html" + break; + + } + + } + +// scope.showEndNav = function(length,pageTitle) { +// if (length == 0 && pageTitle = 'Daily Review'){ +// return true} +// } +// } + + } + }; + }); diff --git a/www/scripts/services/clinicalstatusupdate.js b/www/scripts/services/clinicalstatusupdate.js new file mode 100644 index 00000000..f6c40c09 --- /dev/null +++ b/www/scripts/services/clinicalstatusupdate.js @@ -0,0 +1,147 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.clinicalStatusUpdate + * @description + * # clinicalStatusUpdate + * Service in the livewellApp. + */ +angular.module('livewellApp').service('ClinicalStatusUpdate', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}; + contents.execute = function() { + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + var dailyReviewResponses = Pound.find('dailyCheckIn'); + var weeklyReviewResponses = Pound.find('weeklyCheckIn'); + var newClinicalStatus = currentClinicalStatusCode(); + var sendEmail = false; + var intensityCount = { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0 + }; + + for (var i = dailyReviewResponses.length - 1; i > dailyReviewResponses.length - 8; i--) { + var aWV = 0; + if (dailyReviewResponses[i] != undefined) { + var aWV = Math.abs(parseInt(dailyReviewResponses[i].wellness)); + } + console.log(aWV); + if (aWV == 0) { + intensityCount[0] = intensityCount[0] + 1 + } + if (aWV == 1) { + intensityCount[1] = intensityCount[1] + 1 + } + if (aWV == 2) { + intensityCount[2] = intensityCount[2] + 1 + } + if (aWV == 3) { + intensityCount[3] = intensityCount[3] + 1 + } + if (aWV == 4) { + intensityCount[4] = intensityCount[4] + 1 + } + } + + var lastWeeklyResponses = []; + + if (weeklyReviewResponses[weeklyReviewResponses.length - 1] != undefined){ + lastWeeklyResponses = weeklyReviewResponses[weeklyReviewResponses.length - 1].responses; + } + else{ + lastWeeklyResponses = [ + {name:'phq1', value:'0'}, + {name:'phq2', value:'0'}, + {name:'phq3', value:'0'}, + {name:'phq4', value:'0'}, + {name:'phq5', value:'0'}, + {name:'phq6', value:'0'}, + {name:'phq7', value:'0'}, + {name:'phq8', value:'0'}, + {name:'amrs1', value:'0'}, + {name:'amrs2', value:'0'}, + {name:'amrs3', value:'0'}, + {name:'amrs4', value:'0'}, + {name:'amrs5', value:'0'} + ]; + } + var lWR = lastWeeklyResponses; + var phq8Sum = parseInt(lWR[0].value) + parseInt(lWR[1].value) + parseInt(lWR[2].value) + parseInt(lWR[3].value) + parseInt(lWR[4].value) + parseInt(lWR[5].value) + parseInt(lWR[6].value) + parseInt(lWR[7].value); + var amrsSum = parseInt(lWR[8].value) + parseInt(lWR[9].value) + parseInt(lWR[10].value) + parseInt(lWR[11].value) + parseInt(lWR[12].value); + //"[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + switch (parseInt(currentClinicalStatusCode())) { + case 1://well + //Well if abs(wr) ≥ 2 for 4 of last 7 days Prodromal + if ((intensityCount[2] + intensityCount[3] + intensityCount[4]) >= 4) { + newClinicalStatus = 2; + } + // //Well if last ASRM ≥ 6 Well, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + // //Well if last PHQ8 ≥ 10 Well, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 2://prodromal + //Prodromal if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Prodromal if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Prodromal if last ASRM ≥ 6 Prodromal, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Prodromal if last PHQ8 ≥ 10 Prodromal, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 3://recovering + //Recovering if abs(wr) ≤ 1 for 5 of last 7 days Well + if ((intensityCount[1] + intensityCount[0]) >= 5) { + newClinicalStatus = 1; + } + //Recovering if abs(wr) ≥ 3 for 5 of last 7 days Unwell + if ((intensityCount[3] + intensityCount[4]) >= 5) { + newClinicalStatus = 4; + } + //Recovering if last ASRM ≥ 6 Recovering, email alert to coach + if (amrsSum >= 6) { + sendEmail = true; + } + //Recovering if last PHQ8 ≥ 10 Recovering, email alert to coach + if (phq8Sum >= 10) { + sendEmail = true; + } + break; + case 4://unwell + //Unwell if abs(wr) ≤ 2 for 5 of last 7 days Recovering + if ((intensityCount[0] + intensityCount[1] + intensityCount[2]) >= 5) { + newClinicalStatus = 3; + } + break; + } + + var returnStatus = {}; + returnStatus.amrsSum = amrsSum; + returnStatus.phq8Sum = phq8Sum; + returnStatus.intensityCount = intensityCount; + returnStatus.oldStatus = currentClinicalStatusCode(); + returnStatus.newStatus = newClinicalStatus; + localStorage['clinicalStatus'] = JSON.stringify({ + currentCode: newClinicalStatus + }); + return returnStatus + } + return contents; +}); \ No newline at end of file diff --git a/www/scripts/services/dailyreview.js b/www/scripts/services/dailyreview.js new file mode 100644 index 00000000..18564eb2 --- /dev/null +++ b/www/scripts/services/dailyreview.js @@ -0,0 +1,548 @@ +'use strict'; +/** + * @ngdoc service + * @name livewellApp.dailyReview + * @description + * # dailyReview + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('DailyReviewAlgorithm', function(Pound, UserData) { + // AngularJS will instantiate a singleton by calling "new" on this function + var contents = {}, + recoder = {}, + history = {}, + dailyCheckInData = {}, + conditions = []; + var sleepRoutineRanges = UserData.query('sleepRoutineRanges'); + var currentClinicalStatusCode = function(){return UserData.query('clinicalStatus').currentCode}; + var dailyReviewResponses = Pound.find('dailyCheckIn'); + recoder.execute = function(sleepRoutineRanges, dailyReviewResponses) { + var historySeed = {}; + historySeed.wellness = [0, 0, 0, 0, 0, 0, 0]; // wellness balanced 7 days + historySeed.medications = [1, 1, 1, 1, 1, 1, 1]; // took all meds 7 days + historySeed.sleep = [0, 0, 0, 0, 0, 0, 0]; // in baseline range 7 days + historySeed.routine = [2, 2, 2, 2, 2, 2, 2]; // in both windows 7 days + for (var i = 0; i < 7; i++) { + var responsePosition = dailyReviewResponses.length + i - 7; + if (dailyReviewResponses[responsePosition] != undefined) { + historySeed.wellness[i] = parseInt(dailyReviewResponses[responsePosition].wellness); + historySeed.medications[i] = recoder.medications(dailyReviewResponses[responsePosition].medications); + historySeed.sleep[i] = recoder.sleep(dailyReviewResponses[responsePosition].sleepDuration,sleepRoutineRanges); + historySeed.routine[i] = recoder.routine(dailyReviewResponses[responsePosition].toBed, dailyReviewResponses[responsePosition].gotUp, sleepRoutineRanges); + } + } + localStorage['recodedResponses'] = JSON.stringify(historySeed); + return historySeed + } + + recoder.medications = function(medications) { + switch (medications) { + case '0': + return 0 + break; + case '1': + return 0.5 + break; + case '2': + return 1 + break; + } + } + + recoder.sleep = function(sleepDuration, sleepRoutineRanges) { + var score = 0; + // duration = gotUp - toBed + // look at ranges defined in sleepRoutineRanges, which range is it in? + + var duration = parseInt(sleepDuration); + + if (duration <= sleepRoutineRanges.LessSevere) { + score = -1; + } + if (duration >= sleepRoutineRanges.MoreSevere) { + score = 1; + } + if (duration >= sleepRoutineRanges.Less && duration <= sleepRoutineRanges.More) { + score = 0; + } + if (duration < sleepRoutineRanges.Less && duration >= sleepRoutineRanges.LessSevere) { + score = -0.5; + } + if (duration > sleepRoutineRanges.More && duration <= sleepRoutineRanges.MoreSevere) { + score = 0.5; + } + return score + } + + recoder.routine = function(toBed, gotUp, sleepRoutineRanges) { + var sum = 0; + var range = sleepRoutineRanges; + var numGotUp = parseInt(gotUp); + var numToBed = parseInt(toBed); + var bedTimeStart = parseInt(sleepRoutineRanges.BedTimeStrt_MT); + var bedTimeStop = parseInt(sleepRoutineRanges.BedTimeStop_MT); + var riseTimeStart = parseInt(sleepRoutineRanges.RiseTimeStrt_MT); + var riseTimeStop = parseInt(sleepRoutineRanges.RiseTimeStop_MT); + if (bedTimeStart > bedTimeStop) { + bedTimeStop = bedTimeStop + 2400; + } + if (riseTimeStart > riseTimeStop) { + riseTimeStop = riseTimeStop + 2400; + } + if (numGotUp < riseTimeStart && numGotUp < riseTimeStop) { + numGotUp = numGotUp + 2400; + } + if (numToBed < bedTimeStart && numToBed < bedTimeStop) { + numToBed = numToBed + 2400; + } + if (numGotUp >= riseTimeStart && numGotUp <= riseTimeStop) { + sum++ + } + if (numToBed >= bedTimeStart && numToBed <= bedTimeStop) { + sum++ + } + return parseInt(sum) + }; + + conditions[26] = function(data, code) { + //well + return true + }; + conditions[25] = function(data, code) { + //at risk routine + //Baseline ≥ 3 of last 4 days mrd ≠ Bedtime Window and/or mrd ≠ Risetime Window, + //Bedtime and Risetime Windows ≤ 5 of last 4 days + var sum1 = data.routine[3] + data.routine[4] + data.routine[5] + data.routine[6]; + + return code == 1 && Math.abs(data.wellness[6]) < 2 && ((data.routine[6] < 2 && sum1 <= 5)) + }; + conditions[24] = function(data, code) { + //at risk sleep erratic + //mrd ≠ Baseline, Baseline ≤ 2 of last 4 days + var sum1 = 0; + if (data.sleep[3] == 0) { + sum1++ + } + if (data.sleep[4] == 0) { + sum1++ + } + if (data.sleep[5] == 0) { + sum1++ + } + if (data.sleep[6] == 0) { + sum1++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] != 0) && sum1 <= 2 + }; + conditions[23] = function(data, code) { + //at risk sleep more + //mrd = More or More-Severe, More or More-Severe ≥ 2 last 4 days, Less or Less-Severe ≤ 1 last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == 1 || data.sleep[6] == 0.5) && sum1 <= 1 && sum2 >= 2 + }; + conditions[22] = function(data, code) { + //at risk sleep less + //mrd = Less or Less-Severe, Less or Less-Severe ≥ 2 of last 4 days, More or More-Severe ≤ 1 of last 4 days + var sum1 = 0; + if (data.sleep[3] == -1 || data.sleep[3] == -0.5) { + sum1++ + } + if (data.sleep[4] == -1 || data.sleep[4] == -0.5) { + sum1++ + } + if (data.sleep[5] == -1 || data.sleep[5] == -0.5) { + sum1++ + } + if (data.sleep[6] == -1 || data.sleep[6] == -0.5) { + sum1++ + } + var sum2 = 0; + if (data.sleep[3] == 1 || data.sleep[3] == 0.5) { + sum2++ + } + if (data.sleep[4] == 1 || data.sleep[4] == 0.5) { + sum2++ + } + if (data.sleep[5] == 1 || data.sleep[5] == 0.5) { + sum2++ + } + if (data.sleep[6] == 1 || data.sleep[6] == 0.5) { + sum2++ + } + return code == 1 && Math.abs(data.wellness[6]) < 2 && (data.sleep[6] == -1 || data.sleep[6] == -0.5) && sum1 >= 2 && sum2 <= 1 + }; + conditions[21] = function(data, code) { + //at risk medications + return code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 + }; + conditions[20] = function(data, code) { + //at risk sleep more severe + //mrd = More-Severe, More-Severe ≥ 3 of last 4 days + var sum = 0; + if (data.sleep[3] == 1) { + sum++ + } + if (data.sleep[4] == 1) { + sum++ + } + if (data.sleep[5] == 1) { + sum++ + } + if (data.sleep[6] == 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:20}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too much', email:'psychiatrist', code:20}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:20}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[19] = function(data, code) { + //at risk sleep less severe + //mrd = Less-Severe, Less-Severe ≥ 2 of last 4 days + var sum = 0; + if (data.sleep[3] == -1) { + sum++ + } + if (data.sleep[4] == -1) { + sum++ + } + if (data.sleep[5] == -1) { + sum++ + } + if (data.sleep[6] == -1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.sleep[6] == -1 && sum >= 2; + + if (dailyReviewIsTrueWhen){ + if (sum == 2){ + + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:19}).execute(); + } + if (sum == 3){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about sleeping too little', email:'psychiatrist', code:19}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:19}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[18] = function(data, code) { + //at risk medications severe + var sum = 0; + if (data.medications[3] != 1) { + sum++ + } + if (data.medications[4] != 1) { + sum++ + } + if (data.medications[5] != 1) { + sum++ + } + if (data.medications[6] != 1) { + sum++ + } + + var dailyReviewIsTrueWhen = code == 1 && Math.abs(data.wellness[6]) < 2 && data.medications[6] != 1 && sum >= 3; + + if (dailyReviewIsTrueWhen){ + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about taking your medications', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'psychiatrist', code:18}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{message:'Call your psychiatrist about taking your medications', call:'psychiatrist', email:'coach', code:18}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:18}).execute(); + } + } + return dailyReviewIsTrueWhen + }; + conditions[17] = function(data, code) { + //mild down well + var dailyReviewIsTrueWhen = data.wellness[6] == -2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:17}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'coach', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:17}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:17}).execute(); + } + } + + + + return dailyReviewIsTrueWhen; + }; + conditions[16] = function(data, code) { + //mild up well + var dailyReviewIsTrueWhen = data.wellness[6] == 2 && code == 1; + + if (dailyReviewIsTrueWhen){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:16}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:16}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:16}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[15] = function(data, code) { + //balanced prodromal + return code == 2 + }; + conditions[14] = function(data, code) { + //balanced recovering + return code == 3 + }; + conditions[13] = function(data, code) { + //mild down prodromal + return data.wellness[6] == -2 && code == 2; + }; + conditions[12] = function(data, code) { + //mild up prodromal + return data.wellness[6] == 2 && code == 2; + }; + conditions[11] = function(data, code) { + //mild down recovering + return data.wellness[6] == -2 && code == 3; + }; + conditions[10] = function(data, code) { + //mild up recovering + return data.wellness[6] == 2 && code == 3; + }; + conditions[9] = function(data, code) { + //moderate down + var dailyReviewIsTrueWhen = data.wellness[6] == -3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:9}).execute(); + } + if (sum == 4){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:9}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:9}).execute(); + } + } + + return dailyReviewIsTrueWhen + }; + conditions[8] = function(data, code) { + //moderate up + var dailyReviewIsTrueWhen = data.wellness[6] == 3 && code != 4; + + if (dailyReviewIsTrueWhen && code == 1){ + var sum = 0; + if (Math.abs(data.wellness[3]) > 1) { + sum++ + } + if (Math.abs(data.wellness[4]) > 1) { + sum++ + } + if (Math.abs(data.wellness[5]) > 1) { + sum++ + } + if (Math.abs(data.wellness[6]) > 1) { + sum++ + } + + if (sum == 2){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', code:8}).execute(); + } + if (sum >= 3){ + Pound.add('clinical_reachout',{call:'psychiatrist', message:'Call your psychiatrist about worsening symptoms', email:'psychiatrist',code:8}); + (new PurpleRobot()).emitReading('livewell_clinicalreachout',{call:'coach', email:'psychiatrist', code:8}).execute(); + } + + } + + return dailyReviewIsTrueWhen + }; + conditions[7] = function(data, code) { + //balanced unwell + return code == 4; + }; + conditions[6] = function(data, code) { + //mild down unwell + return data.wellness[6] == -2 && code == 4; + }; + conditions[5] = function(data, code) { + //mild up unwell + return data.wellness[6] == 2 && code == 4; + }; + conditions[4] = function(data, code) { + //moderate down unwell + return data.wellness[6] == -3 && code == 4; + }; + conditions[3] = function(data, code) { + //moderate up unwell + return data.wellness[6] == 3 && code == 4; + }; + conditions[2] = function(data, code) { + //logic for severe down + return data.wellness[6] == -4; + }; + conditions[1] = function(data, code) { + //logic for severe up + return data.wellness[6] == 4; + }; + conditions[0] = function() { + return false + } + // "[{"code":1,"label":"well"},{"code":2,"label":"prodromal"},{"code":3,"label":"recovering"},{"code":4,"label":"unwell"}]" + recoder.wellnessFormatter = function(wellnessRating) { + switch (wellnessRating) { + case -4: + return 0; + break; + case -3: + return .25; + break; + case -2: + return .5; + break + case -1: + return 1; + break; + case 0: + return 1; + break; + case 1: + return 1; + break; + case 2: + return 0.5; + break; + case 3: + return 0.25; + break; + case 4: + return 0; + break; + } + } + contents.getPercentages = function() { + var contents = {}; + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + var sleepValues = {}; + sleepValues[-1] = 0; + sleepValues[-0.5] = 0.25; + sleepValues[0] = 1; + sleepValues[0.5] = 0.5; + sleepValues[1] = 0.25; + contents.sleep = (sleepValues[recodedSevenDays.sleep[0]] + sleepValues[recodedSevenDays.sleep[1]] + sleepValues[recodedSevenDays.sleep[2]] + sleepValues[recodedSevenDays.sleep[3]] + sleepValues[recodedSevenDays.sleep[4]] + sleepValues[recodedSevenDays.sleep[5]] + sleepValues[recodedSevenDays.sleep[6]]) / 7; + contents.wellness = (recoder.wellnessFormatter(recodedSevenDays.wellness[0]) + recoder.wellnessFormatter(recodedSevenDays.wellness[1]) + recoder.wellnessFormatter(recodedSevenDays.wellness[2]) + recoder.wellnessFormatter(recodedSevenDays.wellness[3]) + recoder.wellnessFormatter(recodedSevenDays.wellness[4]) + recoder.wellnessFormatter(recodedSevenDays.wellness[5]) + recoder.wellnessFormatter(recodedSevenDays.wellness[6])) / 7; + contents.medications = (recodedSevenDays.medications[0] + recodedSevenDays.medications[1] + recodedSevenDays.medications[2] + recodedSevenDays.medications[3] + recodedSevenDays.medications[4] + recodedSevenDays.medications[5] + recodedSevenDays.medications[6]) / 7; + contents.routine = (recodedSevenDays.routine[0] + recodedSevenDays.routine[1] + recodedSevenDays.routine[2] + recodedSevenDays.routine[3] + recodedSevenDays.routine[4] + recodedSevenDays.routine[5] + recodedSevenDays.routine[6]) / 14; + return contents + } + contents.getCode = function() { + //look for the highest TRUE value in the condition set + var recodedSevenDays = recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')); + console.log(recodedSevenDays); + for (var i = 0; i < conditions.length; i++) { + var selection = conditions[i](recodedSevenDays, currentClinicalStatusCode()); + if (selection == true) { + return i + break; + } + } + } + contents.code = function(){return contents.getCode()}; + contents.percentages = function(){return contents.getPercentages()}; + contents.recodedResponses = function() { + return recoder.execute(sleepRoutineRanges, Pound.find('dailyCheckIn')) + }; + return contents + }); \ No newline at end of file diff --git a/www/scripts/services/guid.js b/www/scripts/services/guid.js new file mode 100644 index 00000000..5da4a5f2 --- /dev/null +++ b/www/scripts/services/guid.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Guid + * @description + * # Guid + * provides the capacity to generate a guid as needed, + */ +angular.module('livewellApp') + .service('Guid', function Guid() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var guid = {}; + + // make a string 4 of length 4 with random alphanumerics + guid.S4 = function () { + return (((1+Math.random())*0x10000)|0).toString(16).substring(1); + } + + // concat a bunch together plus stitch in '4' in the third group + guid.create = function() { + return (guid.S4() + guid.S4() + "-" + guid.S4() + "-4" + guid.S4().substr(0,3) + "-" + guid.S4() + "-" + guid.S4() + guid.S4() + guid.S4()).toLowerCase(); + } + + return guid + + }); diff --git a/www/scripts/services/pound.js b/www/scripts/services/pound.js new file mode 100644 index 00000000..d6ef03af --- /dev/null +++ b/www/scripts/services/pound.js @@ -0,0 +1,189 @@ + +/** + * @ngdoc service + * @name livewellApp.Pound + * @description + * # Pound + * acts as an interface to localStorage + * TODO, use localForage, but gracefully degrade to localStorage if it doesn't exist + */ +angular.module('livewellApp') + .service('Pound', function Pound() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var pound = {}; + + console.warn('CAUTION: localForage does not exist'); + + //pound.insert(key, object) + //adds to or CREATES a store + //key: name of thing to store + //object: value of thing to store in json form + //pound.add("foo",{"thing":"thing value"}); + //adds {"thing":"thing value"} to a key called "foo" in localStorage + pound.add = function(key,object){ + var collection = []; + + if (localStorage[key]){ + collection = JSON.parse(localStorage[key]); + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + localStorage[key] = JSON.stringify(collection); + } + else + { + object.id = 1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection = [object]; + localStorage[key] = JSON.stringify(collection); + pound.add("pound",key); + } + + return {added:object}; + }; + + + //pound.save(key, object, id) + //equivalent of upsert + //key: name of thing to store + //object: value of thing to store in json form + // + //pound.save("foo",{thing:"thing value", id:id_value}); + //looks to find a thing called foo that has an array of objects inside + //then looks to find an object in that array that has an id of a particular value, + // if it exists, the object is updated with the keys in the object to replace + ///if it does not exist, it is added + pound.save = function(key,object){ + var collection = []; + + if (localStorage[key]){ + + var exists = false; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == object.id){ + exists = true; + object.timestamp = new Date(); + collection[idx] = object; + } + + }); + + if (exists == false){ + object.id = collection.length+1; + object.timestamp = new Date(); + object.created_at = new Date(); + collection.push(object); + } + } + + else + { + object.id = 1; + object.created_at = new Date(); + collection = [object]; + pound.add("pound",key); + } + + localStorage[key] = JSON.stringify(collection); + + return {saved:object}; + }; + + //pound.update(key, object) + //get collection of JSON objects + //iterate through collection and check if passed object matches an element + //merge attributes of objects + //set the collection at the current index to the value of the object + //stringify the collection and set the localStorage key to that value + + pound.update = function(key, object) { + var collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx) { + + if (el.id == object.id) { + + for( var attribute in el) { + el[attribute] = object[attribute] + object.updated_at = new Date(); + } + + collection[idx] = object + } + }); + localStorage[key] = JSON.stringify(collection); + + return {updated:object}; + } + + //pound.find(key,criteria_object) + //key: name of localstorage location + //criteria_object: object that matches the criteria you're looking for + //pound.find("foo") + //returns the ENTIRE contents of the localStorage array + //pound.find("foo",{thing:"thing value"}) + //returns the elements in the array that match that criteria + + pound.find = function(key,criteria_object){ + var collection = []; + if(localStorage[key]){ + collection = JSON.parse(localStorage[key]); + + if (criteria_object){ + return _.where(collection,criteria_object) || [] } + else { return collection || [];} + } + else{ return [];} + }; + + pound.list = function(){ + return pound.find("pound"); + }; + + //pound.delete(key,id) + //removes an item from a collection that matches a specific id criteria + pound.delete = function(key,id){ + + var collection = []; + var object_to_delete; + collection = JSON.parse(localStorage[key]); + + _.each(collection, function(el, idx){ + if (el.id == id){ + object_to_delete = collection[idx]; + collection[idx] = false; + }; + }); + + localStorage[key] = JSON.stringify(_.compact(collection)); + + return {deleted:object_to_delete}; + } + + + //pound.nuke(key) + //completely removes the key from local storage and pound list + pound.nuke = function(key){ + var collection = pound.list; + + localStorage.removeItem(key); + _.each(collection, function(el, idx){ + if (el == key){ + collection[idx] = false; + }; + }); + localStorage["pound"] = JSON.stringify(_.compact(collection)); + + return {cleared:key}; + }; + + + return pound + + +}); diff --git a/www/scripts/services/questions.js b/www/scripts/services/questions.js new file mode 100644 index 00000000..fb116703 --- /dev/null +++ b/www/scripts/services/questions.js @@ -0,0 +1,83 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.Questions + * @description + * # Questions + * accesses locally stored questions that were provided over the questions / question-responses routes + */ +angular.module('livewellApp') + .service('Questions', function Questions($http) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _CONTENT_SERVER_URL = 'https://livewellnew.firebaseio.com'; + + var content = {}; + var _QUESTIONS_COLLECTION_KEY = 'questions'; + var _RESPONSES_COLLECTION_KEY = 'questionresponses'; + var _QUESTION_CRITERIA_COLLECTION_KEY = 'questioncriteria'; + var _RESPONSE_CRITERIA_COLLECTION_KEY = 'responsecriteria'; + + content.query = function(questionGroup){ + + if (localStorage[_QUESTIONS_COLLECTION_KEY] != undefined){ + //grab from synched local storage + content.items = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + //filter to show only one question group + if (questionGroup != undefined){ + content.items = _.where(content.items, {questionGroup:questionGroup}); + } + + //attach response groups to questions + var responses_collection = JSON.parse(localStorage[_RESPONSES_COLLECTION_KEY]); + var question_criteria_collection = JSON.parse(localStorage[_QUESTION_CRITERIA_COLLECTION_KEY]); + var response_criteria_collection = JSON.parse(localStorage[_RESPONSE_CRITERIA_COLLECTION_KEY]); + + _.each(content.items, function(el,idx){ + content.items[idx].responses = _.where(responses_collection, {responseGroupId: el.responseGroupId}); + content.items[idx].criteria = _.where(question_criteria_collection, {questionCriteriaId: el.questionCriteriaId}); + _.each(content.items[idx].responses, function(el2,idx2){ + content.items[idx].responses[idx2].criteria = _.where(response_criteria_collection,{responseId:el2.id}); + }); + + }); + + + + content.responses = responses_collection; + + content.questions = JSON.parse(localStorage[_QUESTIONS_COLLECTION_KEY]); + content.questionCriteria = question_criteria_collection; + content.responseCriteria = response_criteria_collection; + + content.items = _.sortBy(content.items,"order"); + + } + else{ + content.items = []; + } + + return content.items + + } + + content.save = function(collectionToSave,collection){ + debugger; + localStorage[collectionToSave] = JSON.stringify(collection); + $http.put(_CONTENT_SERVER_URL + "/" + collectionToSave).success(alert("Data saved to server")); + } + + content.uniqueQuestionGroups = function(){ + + var uniqueQuestionGroups = []; + _.each(_.uniq(content.query(),"questionGroup"), function(el){ + uniqueQuestionGroups.push({name: el.questionGroup, id: el.questionGroup}); + }); + + return _.uniq(uniqueQuestionGroups,"name") + + } + + return content + }); diff --git a/www/scripts/services/static_content.js b/www/scripts/services/static_content.js new file mode 100644 index 00000000..d32c3dce --- /dev/null +++ b/www/scripts/services/static_content.js @@ -0,0 +1,40 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.StaticContent + * @description + * # StaticContent + * accesses general purpose locally stored static content + */ +angular.module('livewellApp') + .service('StaticContent', function StaticContent() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + var _COLLECTION_KEY = 'staticContent'; + var _NULL_COLLECTION_MESSAGE = '
No content has been provided for this section.
'; + + if (localStorage[_COLLECTION_KEY] != undefined){ + content.items = JSON.parse(localStorage[_COLLECTION_KEY]); + } + else{ + content.items = []; + } + + content.query = function(key){ + + var queryResponse = _.where(content.items, {sectionKey:key}); + + if (queryResponse.length > 0){ + return queryResponse[0].content + } + else{ + return _NULL_COLLECTION_MESSAGE; + + }} + + +return content + +}); diff --git a/www/scripts/services/user_data.js b/www/scripts/services/user_data.js new file mode 100644 index 00000000..c53728de --- /dev/null +++ b/www/scripts/services/user_data.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserData + * @description + * # UserData + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserData', function UserData() { + // AngularJS will instantiate a singleton by calling "new" on this function + + var content = {}; + + content.query = function(collectionKey){ + + console.log(collectionKey); + if (localStorage[collectionKey] != undefined){ + content.items = JSON.parse(localStorage[collectionKey]); + } + else{ + content.items = []; + } + console.log(content.items); + return content.items + + } + + return content + + }); diff --git a/www/scripts/services/user_details.js b/www/scripts/services/user_details.js new file mode 100644 index 00000000..aaf3d55f --- /dev/null +++ b/www/scripts/services/user_details.js @@ -0,0 +1,49 @@ +'use strict'; + +/** + * @ngdoc service + * @name livewellApp.UserDetails + * @description + * # UserDetails + * Service in the livewellApp. + */ +angular.module('livewellApp') + .service('UserDetails', function UserDetails(Pound) { + // AngularJS will instantiate a singleton by calling "new" on this function + + var _USER_LOCAL_COLLECTION_KEY = 'user'; + + var userDetails = {}; + + var userDetailsModel = { + uid: 1, + userID: null, + groupID: null, + loginKey: null + } + + //if there is no user, create a dummy user object based on the above model + if (localStorage[_USER_LOCAL_COLLECTION_KEY] == undefined){ + // Pound.save(_USER_LOCAL_COLLECTION_KEY,userDetailsModel); + } + + //return the current user object + userDetails.find = Pound.find(_USER_LOCAL_COLLECTION_KEY,{uid:'1'})[0]; + + //updates the whole user object + userDetails.update = function(userObject){ + Pound.update(_USER_LOCAL_COLLECTION_KEY,userObject); + return userDetails.find + }; + + // updates one key in the whole user object + userDetails.updateKey = function(key, value){ + var userObject = userDetails.find; + userObject[key] = value; + return userDetails.update(userObject); + } + + return userDetails; + + + }); diff --git a/www/scripts/vendor/cordova.android.js b/www/scripts/vendor/cordova.android.js new file mode 100644 index 00000000..1a9f5d97 --- /dev/null +++ b/www/scripts/vendor/cordova.android.js @@ -0,0 +1,1749 @@ +// Platform: android +// 3.4.0 +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +;(function() { +var CORDOVA_JS_BUILD_LABEL = '3.4.0'; +// file: src/scripts/require.js + +/*jshint -W079 */ +/*jshint -W020 */ + +var require, + define; + +(function () { + var modules = {}, + // Stack of moduleIds currently being built. + requireStack = [], + // Map of module ID -> index into requireStack of modules currently being built. + inProgressModules = {}, + SEPARATOR = "."; + + + + function build(module) { + var factory = module.factory, + localRequire = function (id) { + var resultantId = id; + //Its a relative path, so lop off the last portion and add the id (minus "./") + if (id.charAt(0) === ".") { + resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); + } + return require(resultantId); + }; + module.exports = {}; + delete module.factory; + factory(localRequire, module.exports, module); + return module.exports; + } + + require = function (id) { + if (!modules[id]) { + throw "module " + id + " not found"; + } else if (id in inProgressModules) { + var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; + throw "Cycle in require graph: " + cycle; + } + if (modules[id].factory) { + try { + inProgressModules[id] = requireStack.length; + requireStack.push(id); + return build(modules[id]); + } finally { + delete inProgressModules[id]; + requireStack.pop(); + } + } + return modules[id].exports; + }; + + define = function (id, factory) { + if (modules[id]) { + throw "module " + id + " already defined"; + } + + modules[id] = { + id: id, + factory: factory + }; + }; + + define.remove = function (id) { + delete modules[id]; + }; + + define.moduleMap = modules; +})(); + +//Export for use in node +if (typeof module === "object" && typeof require === "function") { + module.exports.require = require; + module.exports.define = define; +} + +// file: src/cordova.js +define("cordova", function(require, exports, module) { + + +var channel = require('cordova/channel'); +var platform = require('cordova/platform'); + +/** + * Intercept calls to addEventListener + removeEventListener and handle deviceready, + * resume, and pause events. + */ +var m_document_addEventListener = document.addEventListener; +var m_document_removeEventListener = document.removeEventListener; +var m_window_addEventListener = window.addEventListener; +var m_window_removeEventListener = window.removeEventListener; + +/** + * Houses custom event handlers to intercept on document + window event listeners. + */ +var documentEventHandlers = {}, + windowEventHandlers = {}; + +document.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof documentEventHandlers[e] != 'undefined') { + documentEventHandlers[e].subscribe(handler); + } else { + m_document_addEventListener.call(document, evt, handler, capture); + } +}; + +window.addEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + if (typeof windowEventHandlers[e] != 'undefined') { + windowEventHandlers[e].subscribe(handler); + } else { + m_window_addEventListener.call(window, evt, handler, capture); + } +}; + +document.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof documentEventHandlers[e] != "undefined") { + documentEventHandlers[e].unsubscribe(handler); + } else { + m_document_removeEventListener.call(document, evt, handler, capture); + } +}; + +window.removeEventListener = function(evt, handler, capture) { + var e = evt.toLowerCase(); + // If unsubscribing from an event that is handled by a plugin + if (typeof windowEventHandlers[e] != "undefined") { + windowEventHandlers[e].unsubscribe(handler); + } else { + m_window_removeEventListener.call(window, evt, handler, capture); + } +}; + +function createEvent(type, data) { + var event = document.createEvent('Events'); + event.initEvent(type, false, false); + if (data) { + for (var i in data) { + if (data.hasOwnProperty(i)) { + event[i] = data[i]; + } + } + } + return event; +} + + +var cordova = { + define:define, + require:require, + version:CORDOVA_JS_BUILD_LABEL, + platformId:platform.id, + /** + * Methods to add/remove your own addEventListener hijacking on document + window. + */ + addWindowEventHandler:function(event) { + return (windowEventHandlers[event] = channel.create(event)); + }, + addStickyDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.createSticky(event)); + }, + addDocumentEventHandler:function(event) { + return (documentEventHandlers[event] = channel.create(event)); + }, + removeWindowEventHandler:function(event) { + delete windowEventHandlers[event]; + }, + removeDocumentEventHandler:function(event) { + delete documentEventHandlers[event]; + }, + /** + * Retrieve original event handlers that were replaced by Cordova + * + * @return object + */ + getOriginalHandlers: function() { + return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener}, + 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}}; + }, + /** + * Method to fire event from native code + * bNoDetach is required for events which cause an exception which needs to be caught in native code + */ + fireDocumentEvent: function(type, data, bNoDetach) { + var evt = createEvent(type, data); + if (typeof documentEventHandlers[type] != 'undefined') { + if( bNoDetach ) { + documentEventHandlers[type].fire(evt); + } + else { + setTimeout(function() { + // Fire deviceready on listeners that were registered before cordova.js was loaded. + if (type == 'deviceready') { + document.dispatchEvent(evt); + } + documentEventHandlers[type].fire(evt); + }, 0); + } + } else { + document.dispatchEvent(evt); + } + }, + fireWindowEvent: function(type, data) { + var evt = createEvent(type,data); + if (typeof windowEventHandlers[type] != 'undefined') { + setTimeout(function() { + windowEventHandlers[type].fire(evt); + }, 0); + } else { + window.dispatchEvent(evt); + } + }, + + /** + * Plugin callback mechanism. + */ + // Randomize the starting callbackId to avoid collisions after refreshing or navigating. + // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. + callbackId: Math.floor(Math.random() * 2000000000), + callbacks: {}, + callbackStatus: { + NO_RESULT: 0, + OK: 1, + CLASS_NOT_FOUND_EXCEPTION: 2, + ILLEGAL_ACCESS_EXCEPTION: 3, + INSTANTIATION_EXCEPTION: 4, + MALFORMED_URL_EXCEPTION: 5, + IO_EXCEPTION: 6, + INVALID_ACTION: 7, + JSON_EXCEPTION: 8, + ERROR: 9 + }, + + /** + * Called by native code when returning successful result from an action. + */ + callbackSuccess: function(callbackId, args) { + try { + cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning error result from an action. + */ + callbackError: function(callbackId, args) { + // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. + // Derive success from status. + try { + cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); + } catch (e) { + console.log("Error in error callback: " + callbackId + " = "+e); + } + }, + + /** + * Called by native code when returning the result from an action. + */ + callbackFromNative: function(callbackId, success, status, args, keepCallback) { + var callback = cordova.callbacks[callbackId]; + if (callback) { + if (success && status == cordova.callbackStatus.OK) { + callback.success && callback.success.apply(null, args); + } else if (!success) { + callback.fail && callback.fail.apply(null, args); + } + + // Clear callback if not expecting any more results + if (!keepCallback) { + delete cordova.callbacks[callbackId]; + } + } + }, + addConstructor: function(func) { + channel.onCordovaReady.subscribe(function() { + try { + func(); + } catch(e) { + console.log("Failed to run constructor: " + e); + } + }); + } +}; + + +module.exports = cordova; + +}); + +// file: src/android/android/nativeapiprovider.js +define("cordova/android/nativeapiprovider", function(require, exports, module) { + +/** + * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. + */ + +var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); +var currentApi = nativeApi; + +module.exports = { + get: function() { return currentApi; }, + setPreferPrompt: function(value) { + currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; + }, + // Used only by tests. + set: function(value) { + currentApi = value; + } +}; + +}); + +// file: src/android/android/promptbasednativeapi.js +define("cordova/android/promptbasednativeapi", function(require, exports, module) { + +/** + * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. + * This is used only on the 2.3 simulator, where addJavascriptInterface() is broken. + */ + +module.exports = { + exec: function(service, action, callbackId, argsJson) { + return prompt(argsJson, 'gap:'+JSON.stringify([service, action, callbackId])); + }, + setNativeToJsBridgeMode: function(value) { + prompt(value, 'gap_bridge_mode:'); + }, + retrieveJsMessages: function(fromOnlineEvent) { + return prompt(+fromOnlineEvent, 'gap_poll:'); + } +}; + +}); + +// file: src/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var exec = require('cordova/exec'); +var utils = require('cordova/utils'); + +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var typeName; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + typeName = utils.typeName(arg); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (typeName != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + typeName + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running unit tests. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +function getValue(value, defaultValue) { + return value === undefined ? defaultValue : value; +} + +moduleExports.checkArgs = checkArgs; +moduleExports.getValue = getValue; +moduleExports.enableChecks = true; + + +}); + +// file: src/common/base64.js +define("cordova/base64", function(require, exports, module) { + +var base64 = exports; + +base64.fromArrayBuffer = function(arrayBuffer) { + var array = new Uint8Array(arrayBuffer); + return uint8ToBase64(array); +}; + +//------------------------------------------------------------------------------ + +/* This code is based on the performance tests at http://jsperf.com/b64tests + * This 12-bit-at-a-time algorithm was the best performing version on all + * platforms tested. + */ + +var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64_12bit; + +var b64_12bitTable = function() { + b64_12bit = []; + for (var i=0; i<64; i++) { + for (var j=0; j<64; j++) { + b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j]; + } + } + b64_12bitTable = function() { return b64_12bit; }; + return b64_12bit; +}; + +function uint8ToBase64(rawData) { + var numBytes = rawData.byteLength; + var output=""; + var segment; + var table = b64_12bitTable(); + for (var i=0;i> 12]; + output += table[segment & 0xfff]; + } + if (numBytes - i == 2) { + segment = (rawData[i] << 16) + (rawData[i+1] << 8); + output += table[segment >> 12]; + output += b64_6bit[(segment & 0xfff) >> 6]; + output += '='; + } else if (numBytes - i == 1) { + segment = (rawData[i] << 16); + output += table[segment >> 12]; + output += '=='; + } + return output; +} + +}); + +// file: src/common/builder.js +define("cordova/builder", function(require, exports, module) { + +var utils = require('cordova/utils'); + +function each(objects, func, context) { + for (var prop in objects) { + if (objects.hasOwnProperty(prop)) { + func.apply(context, [objects[prop], prop]); + } + } +} + +function clobber(obj, key, value) { + exports.replaceHookForTesting(obj, key); + obj[key] = value; + // Getters can only be overridden by getters. + if (obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + +function assignOrWrapInDeprecateGetter(obj, key, value, message) { + if (message) { + utils.defineGetter(obj, key, function() { + console.log(message); + delete obj[key]; + clobber(obj, key, value); + return value; + }); + } else { + clobber(obj, key, value); + } +} + +function include(parent, objects, clobber, merge) { + each(objects, function (obj, key) { + try { + var result = obj.path ? require(obj.path) : {}; + + if (clobber) { + // Clobber if it doesn't exist. + if (typeof parent[key] === 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else if (typeof obj.path !== 'undefined') { + // If merging, merge properties onto parent, otherwise, clobber. + if (merge) { + recursiveMerge(parent[key], result); + } else { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } + } + result = parent[key]; + } else { + // Overwrite if not currently defined. + if (typeof parent[key] == 'undefined') { + assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); + } else { + // Set result to what already exists, so we can build children into it if they exist. + result = parent[key]; + } + } + + if (obj.children) { + include(result, obj.children, clobber, merge); + } + } catch(e) { + utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); + } + }); +} + +/** + * Merge properties from one object onto another recursively. Properties from + * the src object will overwrite existing target property. + * + * @param target Object to merge properties into. + * @param src Object to merge properties from. + */ +function recursiveMerge(target, src) { + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + if (target.prototype && target.prototype.constructor === target) { + // If the target object is a constructor override off prototype. + clobber(target.prototype, prop, src[prop]); + } else { + if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { + recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } + } + } + } +} + +exports.buildIntoButDoNotClobber = function(objects, target) { + include(target, objects, false, false); +}; +exports.buildIntoAndClobber = function(objects, target) { + include(target, objects, true, false); +}; +exports.buildIntoAndMerge = function(objects, target) { + include(target, objects, true, true); +}; +exports.recursiveMerge = recursiveMerge; +exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; +exports.replaceHookForTesting = function() {}; + +}); + +// file: src/common/channel.js +define("cordova/channel", function(require, exports, module) { + +var utils = require('cordova/utils'), + nextGuid = 1; + +/** + * Custom pub-sub "channel" that can have functions subscribed to it + * This object is used to define and control firing of events for + * cordova initialization, as well as for custom events thereafter. + * + * The order of events during page load and Cordova startup is as follows: + * + * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. + * onNativeReady* Internal event that indicates the Cordova native side is ready. + * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. + * onDeviceReady* User event fired to indicate that Cordova is ready + * onResume User event fired to indicate a start/resume lifecycle event + * onPause User event fired to indicate a pause lifecycle event + * onDestroy* Internal event fired when app is being destroyed (User should use window.onunload event, not this one). + * + * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. + * All listeners that subscribe after the event is fired will be executed right away. + * + * The only Cordova events that user code should register for are: + * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript + * pause App has moved to background + * resume App has returned to foreground + * + * Listeners can be registered as: + * document.addEventListener("deviceready", myDeviceReadyListener, false); + * document.addEventListener("resume", myResumeListener, false); + * document.addEventListener("pause", myPauseListener, false); + * + * The DOM lifecycle events should be used for saving and restoring state + * window.onload + * window.onunload + * + */ + +/** + * Channel + * @constructor + * @param type String the channel name + */ +var Channel = function(type, sticky) { + this.type = type; + // Map of guid -> function. + this.handlers = {}; + // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. + this.state = sticky ? 1 : 0; + // Used in sticky mode to remember args passed to fire(). + this.fireArgs = null; + // Used by onHasSubscribersChange to know if there are any listeners. + this.numHandlers = 0; + // Function that is called when the first listener is subscribed, or when + // the last listener is unsubscribed. + this.onHasSubscribersChange = null; +}, + channel = { + /** + * Calls the provided function only after all of the channels specified + * have been fired. All channels must be sticky channels. + */ + join: function(h, c) { + var len = c.length, + i = len, + f = function() { + if (!(--i)) h(); + }; + for (var j=0; jNative bridge. + POLLING: 0, + // For LOAD_URL to be viable, it would need to have a work-around for + // the bug where the soft-keyboard gets dismissed when a message is sent. + LOAD_URL: 1, + // For the ONLINE_EVENT to be viable, it would need to intercept all event + // listeners (both through addEventListener and window.ononline) as well + // as set the navigator property itself. + ONLINE_EVENT: 2, + // Uses reflection to access private APIs of the WebView that can send JS + // to be executed. + // Requires Android 3.2.4 or above. + PRIVATE_API: 3 + }, + jsToNativeBridgeMode, // Set lazily. + nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT, + pollEnabled = false, + messagesFromNative = []; + +function androidExec(success, fail, service, action, args) { + // Set default bridge modes if they have not already been set. + // By default, we use the failsafe, since addJavascriptInterface breaks too often + if (jsToNativeBridgeMode === undefined) { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + } + + // Process any ArrayBuffers in the args into a string. + for (var i = 0; i < args.length; i++) { + if (utils.typeName(args[i]) == 'ArrayBuffer') { + args[i] = base64.fromArrayBuffer(args[i]); + } + } + + var callbackId = service + cordova.callbackId++, + argsJson = JSON.stringify(args); + + if (success || fail) { + cordova.callbacks[callbackId] = {success:success, fail:fail}; + } + + if (jsToNativeBridgeMode == jsToNativeModes.LOCATION_CHANGE) { + window.location = 'http://cdv_exec/' + service + '#' + action + '#' + callbackId + '#' + argsJson; + } else { + var messages = nativeApiProvider.get().exec(service, action, callbackId, argsJson); + // If argsJson was received by Java as null, try again with the PROMPT bridge mode. + // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. + if (jsToNativeBridgeMode == jsToNativeModes.JS_OBJECT && messages === "@Null arguments.") { + androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); + androidExec(success, fail, service, action, args); + androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); + return; + } else { + androidExec.processMessages(messages); + } + } +} + +function pollOnceFromOnlineEvent() { + pollOnce(true); +} + +function pollOnce(opt_fromOnlineEvent) { + var msg = nativeApiProvider.get().retrieveJsMessages(!!opt_fromOnlineEvent); + androidExec.processMessages(msg); +} + +function pollingTimerFunc() { + if (pollEnabled) { + pollOnce(); + setTimeout(pollingTimerFunc, 50); + } +} + +function hookOnlineApis() { + function proxyEvent(e) { + cordova.fireWindowEvent(e.type); + } + // The network module takes care of firing online and offline events. + // It currently fires them only on document though, so we bridge them + // to window here (while first listening for exec()-releated online/offline + // events). + window.addEventListener('online', pollOnceFromOnlineEvent, false); + window.addEventListener('offline', pollOnceFromOnlineEvent, false); + cordova.addWindowEventHandler('online'); + cordova.addWindowEventHandler('offline'); + document.addEventListener('online', proxyEvent, false); + document.addEventListener('offline', proxyEvent, false); +} + +hookOnlineApis(); + +androidExec.jsToNativeModes = jsToNativeModes; +androidExec.nativeToJsModes = nativeToJsModes; + +androidExec.setJsToNativeBridgeMode = function(mode) { + if (mode == jsToNativeModes.JS_OBJECT && !window._cordovaNative) { + console.log('Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only.'); + mode = jsToNativeModes.PROMPT; + } + nativeApiProvider.setPreferPrompt(mode == jsToNativeModes.PROMPT); + jsToNativeBridgeMode = mode; +}; + +androidExec.setNativeToJsBridgeMode = function(mode) { + if (mode == nativeToJsBridgeMode) { + return; + } + if (nativeToJsBridgeMode == nativeToJsModes.POLLING) { + pollEnabled = false; + } + + nativeToJsBridgeMode = mode; + // Tell the native side to switch modes. + nativeApiProvider.get().setNativeToJsBridgeMode(mode); + + if (mode == nativeToJsModes.POLLING) { + pollEnabled = true; + setTimeout(pollingTimerFunc, 1); + } +}; + +// Processes a single message, as encoded by NativeToJsMessageQueue.java. +function processMessage(message) { + try { + var firstChar = message.charAt(0); + if (firstChar == 'J') { + eval(message.slice(1)); + } else if (firstChar == 'S' || firstChar == 'F') { + var success = firstChar == 'S'; + var keepCallback = message.charAt(1) == '1'; + var spaceIdx = message.indexOf(' ', 2); + var status = +message.slice(2, spaceIdx); + var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); + var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); + var payloadKind = message.charAt(nextSpaceIdx + 1); + var payload; + if (payloadKind == 's') { + payload = message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 't') { + payload = true; + } else if (payloadKind == 'f') { + payload = false; + } else if (payloadKind == 'N') { + payload = null; + } else if (payloadKind == 'n') { + payload = +message.slice(nextSpaceIdx + 2); + } else if (payloadKind == 'A') { + var data = message.slice(nextSpaceIdx + 2); + var bytes = window.atob(data); + var arraybuffer = new Uint8Array(bytes.length); + for (var i = 0; i < bytes.length; i++) { + arraybuffer[i] = bytes.charCodeAt(i); + } + payload = arraybuffer.buffer; + } else if (payloadKind == 'S') { + payload = window.atob(message.slice(nextSpaceIdx + 2)); + } else { + payload = JSON.parse(message.slice(nextSpaceIdx + 1)); + } + cordova.callbackFromNative(callbackId, success, status, [payload], keepCallback); + } else { + console.log("processMessage failed: invalid message:" + message); + } + } catch (e) { + console.log("processMessage failed: Message: " + message); + console.log("processMessage failed: Error: " + e); + console.log("processMessage failed: Stack: " + e.stack); + } +} + +// This is called from the NativeToJsMessageQueue.java. +androidExec.processMessages = function(messages) { + if (messages) { + messagesFromNative.push(messages); + // Check for the reentrant case, and enqueue the message if that's the case. + if (messagesFromNative.length > 1) { + return; + } + while (messagesFromNative.length) { + // Don't unshift until the end so that reentrancy can be detected. + messages = messagesFromNative[0]; + // The Java side can send a * message to indicate that it + // still has messages waiting to be retrieved. + if (messages == '*') { + messagesFromNative.shift(); + window.setTimeout(pollOnce, 0); + return; + } + + var spaceIdx = messages.indexOf(' '); + var msgLen = +messages.slice(0, spaceIdx); + var message = messages.substr(spaceIdx + 1, msgLen); + messages = messages.slice(spaceIdx + msgLen + 1); + processMessage(message); + if (messages) { + messagesFromNative[0] = messages; + } else { + messagesFromNative.shift(); + } + } + } +}; + +module.exports = androidExec; + +}); + +// file: src/common/exec/proxy.js +define("cordova/exec/proxy", function(require, exports, module) { + + +// internal map of proxy function +var CommandProxyMap = {}; + +module.exports = { + + // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); + add:function(id,proxyObj) { + console.log("adding proxy for " + id); + CommandProxyMap[id] = proxyObj; + return proxyObj; + }, + + // cordova.commandProxy.remove("Accelerometer"); + remove:function(id) { + var proxy = CommandProxyMap[id]; + delete CommandProxyMap[id]; + CommandProxyMap[id] = null; + return proxy; + }, + + get:function(service,action) { + return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null ); + } +}; +}); + +// file: src/common/init.js +define("cordova/init", function(require, exports, module) { + +var channel = require('cordova/channel'); +var cordova = require('cordova'); +var modulemapper = require('cordova/modulemapper'); +var platform = require('cordova/platform'); +var pluginloader = require('cordova/pluginloader'); + +var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; + +function logUnfiredChannels(arr) { + for (var i = 0; i < arr.length; ++i) { + if (arr[i].state != 2) { + console.log('Channel not fired: ' + arr[i].type); + } + } +} + +window.setTimeout(function() { + if (channel.onDeviceReady.state != 2) { + console.log('deviceready has not fired after 5 seconds.'); + logUnfiredChannels(platformInitChannelsArray); + logUnfiredChannels(channel.deviceReadyChannelsArray); + } +}, 5000); + +// Replace navigator before any modules are required(), to ensure it happens as soon as possible. +// We replace it so that properties that can't be clobbered can instead be overridden. +function replaceNavigator(origNavigator) { + var CordovaNavigator = function() {}; + CordovaNavigator.prototype = origNavigator; + var newNavigator = new CordovaNavigator(); + // This work-around really only applies to new APIs that are newer than Function.bind. + // Without it, APIs such as getGamepads() break. + if (CordovaNavigator.bind) { + for (var key in origNavigator) { + if (typeof origNavigator[key] == 'function') { + newNavigator[key] = origNavigator[key].bind(origNavigator); + } + } + } + return newNavigator; +} +if (window.navigator) { + window.navigator = replaceNavigator(window.navigator); +} + +if (!window.console) { + window.console = { + log: function(){} + }; +} +if (!window.console.warn) { + window.console.warn = function(msg) { + this.log("warn: " + msg); + }; +} + +// Register pause, resume and deviceready channels as events on document. +channel.onPause = cordova.addDocumentEventHandler('pause'); +channel.onResume = cordova.addDocumentEventHandler('resume'); +channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); + +// Listen for DOMContentLoaded and notify our channel subscribers. +if (document.readyState == 'complete' || document.readyState == 'interactive') { + channel.onDOMContentLoaded.fire(); +} else { + document.addEventListener('DOMContentLoaded', function() { + channel.onDOMContentLoaded.fire(); + }, false); +} + +// _nativeReady is global variable that the native side can set +// to signify that the native code is ready. It is a global since +// it may be called before any cordova JS is ready. +if (window._nativeReady) { + channel.onNativeReady.fire(); +} + +modulemapper.clobbers('cordova', 'cordova'); +modulemapper.clobbers('cordova/exec', 'cordova.exec'); +modulemapper.clobbers('cordova/exec', 'Cordova.exec'); + +// Call the platform-specific initialization. +platform.bootstrap && platform.bootstrap(); + +pluginloader.load(function() { + channel.onPluginsReady.fire(); +}); + +/** + * Create all cordova objects once native side is ready. + */ +channel.join(function() { + modulemapper.mapModules(window); + + platform.initialize && platform.initialize(); + + // Fire event to notify that all objects are created + channel.onCordovaReady.fire(); + + // Fire onDeviceReady event once page has fully loaded, all + // constructors have run and cordova info has been received from native + // side. + channel.join(function() { + require('cordova').fireDocumentEvent('deviceready'); + }, channel.deviceReadyChannelsArray); + +}, platformInitChannelsArray); + + +}); + +// file: src/common/modulemapper.js +define("cordova/modulemapper", function(require, exports, module) { + +var builder = require('cordova/builder'), + moduleMap = define.moduleMap, + symbolList, + deprecationMap; + +exports.reset = function() { + symbolList = []; + deprecationMap = {}; +}; + +function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { + if (!(moduleName in moduleMap)) { + throw new Error('Module ' + moduleName + ' does not exist.'); + } + symbolList.push(strategy, moduleName, symbolPath); + if (opt_deprecationMessage) { + deprecationMap[symbolPath] = opt_deprecationMessage; + } +} + +// Note: Android 2.3 does have Function.bind(). +exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('c', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('m', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) { + addEntry('d', moduleName, symbolPath, opt_deprecationMessage); +}; + +exports.runs = function(moduleName) { + addEntry('r', moduleName, null); +}; + +function prepareNamespace(symbolPath, context) { + if (!symbolPath) { + return context; + } + var parts = symbolPath.split('.'); + var cur = context; + for (var i = 0, part; part = parts[i]; ++i) { + cur = cur[part] = cur[part] || {}; + } + return cur; +} + +exports.mapModules = function(context) { + var origSymbols = {}; + context.CDV_origSymbols = origSymbols; + for (var i = 0, len = symbolList.length; i < len; i += 3) { + var strategy = symbolList[i]; + var moduleName = symbolList[i + 1]; + var module = require(moduleName); + // + if (strategy == 'r') { + continue; + } + var symbolPath = symbolList[i + 2]; + var lastDot = symbolPath.lastIndexOf('.'); + var namespace = symbolPath.substr(0, lastDot); + var lastName = symbolPath.substr(lastDot + 1); + + var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; + var parentObj = prepareNamespace(namespace, context); + var target = parentObj[lastName]; + + if (strategy == 'm' && target) { + builder.recursiveMerge(target, module); + } else if ((strategy == 'd' && !target) || (strategy != 'd')) { + if (!(symbolPath in origSymbols)) { + origSymbols[symbolPath] = target; + } + builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); + } + } +}; + +exports.getOriginalSymbol = function(context, symbolPath) { + var origSymbols = context.CDV_origSymbols; + if (origSymbols && (symbolPath in origSymbols)) { + return origSymbols[symbolPath]; + } + var parts = symbolPath.split('.'); + var obj = context; + for (var i = 0; i < parts.length; ++i) { + obj = obj && obj[parts[i]]; + } + return obj; +}; + +exports.reset(); + + +}); + +// file: src/android/platform.js +define("cordova/platform", function(require, exports, module) { + +module.exports = { + id: 'android', + bootstrap: function() { + var channel = require('cordova/channel'), + cordova = require('cordova'), + exec = require('cordova/exec'), + modulemapper = require('cordova/modulemapper'); + + // Tell the native code that a page change has occurred. + exec(null, null, 'PluginManager', 'startup', []); + // Tell the JS that the native side is ready. + channel.onNativeReady.fire(); + + // TODO: Extract this as a proper plugin. + modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); + + // Inject a listener for the backbutton on the document. + var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); + backButtonChannel.onHasSubscribersChange = function() { + // If we just attached the first handler or detached the last handler, + // let native know we need to override the back button. + exec(null, null, "App", "overrideBackbutton", [this.numHandlers == 1]); + }; + + // Add hardware MENU and SEARCH button handlers + cordova.addDocumentEventHandler('menubutton'); + cordova.addDocumentEventHandler('searchbutton'); + + // Let native code know we are all done on the JS side. + // Native code will then un-hide the WebView. + channel.onCordovaReady.subscribe(function() { + exec(null, null, "App", "show", []); + }); + } +}; + +}); + +// file: src/android/plugin/android/app.js +define("cordova/plugin/android/app", function(require, exports, module) { + +var exec = require('cordova/exec'); + +module.exports = { + /** + * Clear the resource cache. + */ + clearCache:function() { + exec(null, null, "App", "clearCache", []); + }, + + /** + * Load the url into the webview or into new browser instance. + * + * @param url The URL to load + * @param props Properties that can be passed in to the activity: + * wait: int => wait msec before loading URL + * loadingDialog: "Title,Message" => display a native loading dialog + * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error + * clearHistory: boolean => clear webview history (default=false) + * openExternal: boolean => open in a new browser (default=false) + * + * Example: + * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); + */ + loadUrl:function(url, props) { + exec(null, null, "App", "loadUrl", [url, props]); + }, + + /** + * Cancel loadUrl that is waiting to be loaded. + */ + cancelLoadUrl:function() { + exec(null, null, "App", "cancelLoadUrl", []); + }, + + /** + * Clear web history in this web view. + * Instead of BACK button loading the previous web page, it will exit the app. + */ + clearHistory:function() { + exec(null, null, "App", "clearHistory", []); + }, + + /** + * Go to previous page displayed. + * This is the same as pressing the backbutton on Android device. + */ + backHistory:function() { + exec(null, null, "App", "backHistory", []); + }, + + /** + * Override the default behavior of the Android back button. + * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "backbutton" event, this is automatically done. + * + * @param override T=override, F=cancel override + */ + overrideBackbutton:function(override) { + exec(null, null, "App", "overrideBackbutton", [override]); + }, + + /** + * Exit and terminate the application. + */ + exitApp:function() { + return exec(null, null, "App", "exitApp", []); + } +}; + +}); + +// file: src/common/pluginloader.js +define("cordova/pluginloader", function(require, exports, module) { + +var modulemapper = require('cordova/modulemapper'); +var urlutil = require('cordova/urlutil'); + +// Helper function to inject a